Skip to content

Group membership not required for AI features

Jessie Young requested to merge jy-remove-membership into master

What does this MR do and why?

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

When viewing a Premium group with experiment and beta features enabled as a non-member:

Before After
Screenshot_2024-03-20_at_5.28.36_PM Screenshot_2024-03-20_at_5.28.50_PM

How to set up and validate locally

  1. Enable Duo Chat locally and run in SaaS mode
  2. Set up 2 Premium or Ultimate groups and enable experiment and beta features on both
  3. As a member of one group but not the other, you should be able to use Duo Chat on both groups.

Diagram of behavior after this change (DRAFT)

flowchart TD
    Deployment[SM/.com/Dedicated] --> AddOnEnforcement{Are we past <br>Add-on Enforcement / Free Chat Cut-off<br> date?}
    AddOnEnforcement -->|no<br>i.e. 28 April or earlier| Tier{.com: user is member of a Premium or Ultimate group?<br><br>SM: instance is Premium or Ultimate instance<br><br><br>Detail: Premium is only supported in 16.9+}
    Tier -->|yes| BetaOrGA
    Tier -->|no| No
    BetaOrGA{Is Chat<br>Beta or GA<br><br>whether .com/SM/Dedicated<br>the version of the<br>respective deployment<br>is relavant}
    
    BetaOrGA --> |GA<br>i.e. 16.11+| YesGA
    BetaOrGA --> |Beta<br>i.e. 16.10-| BetaEnabled
    BetaEnabled{SM: Are beta features enabled<br>on instance level?<br>---<br>GitLab.com: Does top-level group have<br>beta features enabled and<br>users is member of at least<br>one top level group<br>with beta features enabled?}
    YesGA{SM/GitLab.com:<br>Nothing needs to be checked.<br>There are no toggles.<br>Users do not need to agree<br>with subscription terms<br>They apply automatically}
    AddOnEnforcement -->|yes<br>i.e. 29 April| SeatAssigned{Does the user<br>have a seat<br>assigned?}
    BetaEnabled -->|yes| Testing[Chat enabled under GitLab Testing Agreement]
    YesGA -->| | Subscription[Chat enabled under Subscription Agreement]
    No[No Chat]
    BetaEnabled -->|no| No
    SeatAssigned -->|no| No
    SeatAssigned -->|yes| IsOnGA-version{Is the user on .com, then Chat is already GA<br>as 16.11 GA releaese was before 29 April<br><br>or<br><br>on a SM/Dedicated 16.11+ GA version?}
    IsOnGA-version --->|no<br>SM/Dedicated 16.10-<br>Pre-GA version| BetaEnabled
    IsOnGA-version ---->|yes<br>16.11+ GA version| Functionality[Chat enabled under AI Functionality Terms]

    Subscription --> WhereTheyCanUseIt
    Testing --> WhereTheyCanUseIt
    Functionality --> WhereTheyCanUseIt
    WhereTheyCanUseIt[Unless the group or project owners have blocked AI use:<br><br>.com: User can use chat in any Premium or Ultimate Group even when they are not a member of this group<br>---<br>SM: can use it in any group]
Edited by Torsten Linz

Merge request reports