Group membership not required for AI features
What does this MR do and why?
- If a user has access to AI features via a group membership and the group itself has AI exp/beta features enabled, the user should be able to use AI features even if they are not a group member.
- Same applies for projects.
- Resolves Discussion: consider removing the group/project... (#447493 - closed)
- Resolves Duo Chat in UI: Unable to Summarize Public Issu... (#438457)
- Resolves Duo Chat in UI: Error Returned From Chat When V... (#438466 - closed)
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 |
---|---|
How to set up and validate locally
- Enable Duo Chat locally and run in SaaS mode
- Set up 2 Premium or Ultimate groups and enable experiment and beta features on both
- 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