Skip to content

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 and application_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

  1. Prerequisites: Log in as an admin user and ensure Duo features are set up locally
  2. This is a default enabled setting. You can check it by ApplicationSetting.current.duo_remote_flows_enabled
  3. Test inheritance: Create an issue in any project and you should see Generate MR with Duo button if their experimental settings are enabled.
  4. Disable instance-wide: ApplicationSetting.current.update!(duo_remote_flows_enabled: false)

Group Level Settings

  1. Disable for specific group:

    group = Group.find_by_full_path('your-group-path')
    group.namespace_settings.update!(duo_remote_flows_enabled: false)
  2. Test inheritance: Create an issue in any project within this group and you should not see Generate MR with Duo button on the issue.

  3. 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 to false

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

Merge request reports

Loading