Add support for "locked" attribute to Settings Module
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
MR: Pending
Description
Add support for "locked" attribute to Settings Module
- See Workspaces Settings Configuration Infrastructur... (&14186) for overview and more context
- See Related Issues and MRs section in that epic for related issues and MRs
Acceptance Criteria
-
Adds support for "locked" attribute to Settings Module -
Update integration tests for settings module. -
Updates docs for settings module
Technical Requirements
- This is necessary to pass the
lockedattribute in the Settings Module along the ROP chain, so that later/subsequent/lower-precedence steps can be ignored/short-circuited if it the setting was locked by a previous step. - This support should be back-ported into
lib/gitlab/fp/settings/default_settings_parser.rb, and the return value of that should probably be changed from a tuple into a hash ofvalue,typeandlockedfor clarity. This return value API change will also have to be reflected in both the Web IDE and Workspaces usage oflib/gitlab/fp/settings/default_settings_parser.rb - The Web IDE Settings Module does NOT need to use this value yet.
- The Workspaces Settings module will use this in
lib/remote_development/settings/current_settings_reader.rbas well as the agent setting step, by simply adding an additional guard clause to check thelockedstatus for each setting in the loop. This will establish the pattern for handling thelockedattribute in the future when we add additional steps to the chain. - The
EnvVarOverrideProcessorstep will NOT observe thelockedattribute. The docs for the Settings Module should be updated to reflect this.
Design Requirements
Edited by 🤖 GitLab Bot 🤖