[Group Hierarchy] Add group setting toggle
Apart from the feature flag, we need to restrict which group can use the group hierarchy optimization feature. We also need a place where we can create the Namespaces::Descendants
records.
The optimization might not make sense for all namespaces in the system, so to save disk space, we enable the optimization selectively. For example, we can enable it for the gitlab-org
group only...
Task: Introduce a new Group setting that creates/destroys the Namespace::Descendants
record.
Add a new setting to the group UI which is only visible when the group_hierarchy_optimization
(create the FF within this issue) feature flag is on. When the setting is toggled, instead of storing a boolean value, create the associated Namespaces::Descendants
record (use the default values which will set the outdated
value to false, on conflict do nothing).
When the setting is disabled, delete the associated Namespaces::Descendants
record.
Setting location:
-
Permissions and group features
> Add a new section:Performance
> checkbox:enable group hierarchy optimization
Note: this setting will be probably temporary, the main reason for this setting is to be able to roll out the feature to a few selected groups.