Add duo_remote_flows_enabled cascading setting
What does this MR do and why?
Add duo_remote_flows_enabled cascading setting
- Currently
duo_remote_flows_enabled
is a project setting - This MR uses cascading settings framework to add this attribute to
namespace_setting
andapplication_setting
and follow the cascading settings writes
Number of records that would be updated in project_settings
table in the BBM: 44009849
References
Screenshots or screen recordings
Before | After |
---|---|
How to set up and validate locally
Instance Level Settings
- Prerequisites: Log in as an admin user and ensure Duo features are set up locally
- This is a default enabled setting. You can check it by
ApplicationSetting.current.duo_remote_flows_enabled
-
Test inheritance: Create an issue in any project and you should see
Generate MR with Duo
button if their experimental settings are enabled. -
Disable instance-wide:
ApplicationSetting.current.update!(duo_remote_flows_enabled: false)
Group Level Settings
-
Disable for specific group:
group = Group.find_by_full_path('your-group-path') group.namespace_settings.update!(duo_remote_flows_enabled: false)
-
Test inheritance: Create an issue in any project within this group and you should not see
Generate MR with Duo
button on the issue. -
Test override: Set a project to explicitly enable:
project.project_setting.update!(duo_remote_flows_enabled: false)
Verify Duo Remote Flows is enabled only for this project.
Project Level Settings (Default enabled)
- Project-level behaviour should be default enabled.
- Projects can still explicitly enable/disable the feature
-
nil
values now inherit from parent settings instead of defaulting tofalse
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #561768 (closed)
Edited by Surabhi Suman