Ability to exclude Feature flags for specific users
Problem to solve
We recently rolled out feature flags with the ability to turn a feature off or on for specific userids. This use case is useful if the feature flag is intended for a small number of users. Another use case may be the reverse, the user may want to turn on the feature flag for the majority of users but off for a small number of users.
This is part of the Progressive Delivery MVC (&1198 (closed)), specifically the stage 1
section that's about enabling developers to do controlled rollouts.
Intended users
- Developers who create feature flags
- QA engineers enabling/disabling flags
- Release managers who want to control which features are released and to which customer base
- Support engineers that wish to release features to beta customers or test version to fix bugs for specific customers
Note: The userids listed belong to the 3rd party application and not to gitlab users (with the exclusion of dog-fooding) UserID selection is based on simple string matching, as you can see how it works if you use the Unleash UI here: https://gitlab.com/gitlab-org/gitlab-ee/uploads/c5752845de124863b0d2889b28c9d244/image.png
Further details
In the Unleash library inverseXWithId
covers the scenario where a flag is enabled for everything but a few IDs, whereas xWithId
covers the alternate. If you want both at the same time, you would be better off choosing the one that requires the least amount of IDs.
Proposal
Browser mockup |
---|
- Copy stretagy:
UserIDs (Exclude)
- Copy help text:
Enter one or more user ID separated by commas. The feature will not be available for these users.
Permissions and Security
Documentation
Testing
What does success look like, and how can we measure that?
Measure number of excluded userids
What is the type of buyer?
Links / references
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.