Control visibility of deployments-related functionalities
Release notes
In 15.3, we are updating how the visibility Deployments features are controlled.
Background (Original issue description)
After #225307 (closed), #322790 (closed) and #246813 (closed) were implemented, the previous "Operations" menu became three separate top-level items ("Deployments", "Infrastructure" and "Monitor") in the left sidebar, as shown below.
We will need a separate visibility toggle for Monitor as seen in the Visibility, project features, and permissions
settings. Currently, there is only one toggle for all of "Operations" when we need separate toggles for Deployments, Infrastructure, and Monitor.
Problem to solve
As a GitLab project admin, I want to control who has access to view and execute the Deployments-related functionality in GitLab projects.
Intended users
- Priyanka (Platform Engineer)
- Ingrid (Infrastructure Operator)
- Anyone who administers GitLab projects for their organisation/teams
User experience goal
Within the configuration settings, the user should be able to toggle on/off CRUD operations related to the Deployments functionalities.
Proposal
We should not make the top-level toggle "Deployments" as a persistent setting (i.e. not adding a database column to the "deployments"), because the setting values between "Deployments" and "Releases" will likely contradict. Instead we should dynamically compute the top-level toggle by aggregating sub toggle states. This way we can have the SSOT data source. So to summarize:
- We add database columns for each "Feature Flag", "Environments" and "Releases" feature. We don't add a database column to the top-level "Deployments". This is being discussed in the comments
- We migrate current "Operations" toggle value into "Feature Flag" and "Environments" toggles. We set the default value
20 = ENABLED
to the "Release" toggle, so that the projects won't be affected by this change. - Users can use the top-level "Deployments" toggle as a utility to apply the same setting to all of subsequent toggles in batch. (This could be a follow-up) => #367013
- The "Deployments" menu in the left-nav is hidden when
feature_flag_disabled? && environments_disabled? && releases_disabled?
. Otherwise, the menu is visible with enabled feature tabs. e.g. "Deployments > Releases" is visible, but "Deployments > Feature Flags" and "Deployments > Environments" are hidden.
The good thing is that this approach is resilient against the left-navigation bar re-organization. We can flexibility move around the toggles at any time.
Further details
Permissions and Security
-
Add expected impact to members with no access -
Add expected impact to Guest - impacted by setting -
Add expected impact to Reporter - impacted by setting -
Add expected impact to Developer - impacted by setting -
Add expected impact to Maintainer - impacted by setting -
Add expected impact to Owner - admin will set the config
Only the roles that have access to configuration settings should be able to see and modify the toggle.
Documentation
Yes, we will need an update to the documentation with screenshots, and clarify what features are toggled by the new setting.
Availability & Testing
Available Tier
Feature Usage Metrics
What does success look like, and how can we measure that?
What is the type of buyer?
Is this a cross-stage feature?
Yes, with devopsmonitor. This is part of a cross-stage update to configuration settings in &8004
What is the competitive advantage or differentiation for this feature?
n/a
Links / references
Implementation plan
split_operations_visibility_permissions
feature flag
Implement feature toggles behind
-
Environments !93118 (merged) -
Feature Flags !94102 (merged) -
Releases !94413 (merged) -
Monitor !91337 (merged) -
Add tests for Deployments Menu - !95414 (merged)
-
Monitor !91337 (merged) -
Environments !94254 (merged) -
Releases !96373 (merged) -
Feature Flags !95411 (merged)
split_operations_visibility_permissions
feature flag
Remove Rollout issue: #364240 (closed)
-
Update documentation and enable flag -
Remove flag
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.