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
image
  • 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.

Edited Oct 20, 2021 by 🤖 GitLab Bot 🤖
Assignee Loading
Time tracking Loading