Allow self-managed GitLab instances to require licensed seats for Duo Chat
Context
This was done for GitLab.com via Allow customers to require licensed seats for D... (#457090 - closed)
The reason for this change is that some customers were unhappy that non-licensed users were able to use Duo Chat. They want Duo Chat to only be available to users with seats, instead of all members of their group. The original plan was to keep free access to all members for a period of time until we "cut off" free access. This feature flag lets customers opt into na early free access cut-off.
We are discussing also adding this functionality for SM customers as a backport for %16.11.
Implementation details
The .com solution is a feature flag that can be enabled per group. Or, if it is globally enabled, it would apply to all groups.
The Duo Pro free access cut-off check for self-managed is here. We could update that logic to also check for ::Feature.enabled?(:duo_chat_requires_licensed_seat), which a self-managed instance could use to opt their entire instance into this behavior.
Most likely, a SM instance would want this to be a global feature flag rather than opting groups into it one-by-one like we are doing in gitlab.com
For which customers is this feature flag interesting?
Only SM customer and Dedicated customers that match ALL the following specific needs can benefit from this issue:
- Ultimate and Premium tier
- Wants to try out or use Duo features including Code Suggestions
- But does not want all users in their instance to have access to Duo Chat while it is still free.
No other customers needs this feature because
- SM/Dedicated/.com customers that don't meet ALL the above needs can be FULLY satisfied with our other controls outlined in https://docs.gitlab.com/ee/user/ai_features_enable.html
- .com customers that meet ALL the above needs can be satisfied with #457090 (closed). To help these .com customers follow the guidance in https://docs.google.com/document/d/1Qhy5Tp1HxshTXilsrhgwR5G9fbDtRk17EJKINtHgOu0/edit#heading=h.kqj00ohljkdk
How to set the feature flag
The feature flag to require users to have a Duo Pro add-on seat assigned to use Duo Chat on SM is called duo_chat_requires_licensed_seat_sm. Check here for the information about feature flags in GitLab.