Create DAP Permission Settings Component

What does this MR do and why?

This code change adds a new "Admin" user role to an AI-powered feature called Duo Agent Platform and creates a settings interface for managing permissions.

The main additions include:

  1. New Admin Role: Added "Admin" as a new access level constant that can be used throughout the application.

  2. Permission Settings Component: Created a new settings page that allows administrators to configure minimum role requirements for three different actions:

    • Enable: Who can enable agents and flows to projects (Developer, Maintainer, Owner, Admin (SM)), default Maintainer
    • Manage: Who can create, edit, delete, and configure agents and flows (Developer, Maintainer, Owner, Admin(SM)), default Maintainer
    • Execute: Who can run agents and flows (Developer, Maintainer, Owner, Admin (SM)), default Developer
  3. Admin-Only Features: The Admin role only appears as an option when viewing settings in an admin instance, providing additional control for system administrators.

  4. Interactive Controls: The interface uses dropdown menus to select minimum roles, and when changes are made to "Manage" or "Execute" permissions, the system notifies other parts of the application about the updates.

  5. Comprehensive Testing: Added extensive test coverage to ensure the component works correctly with different role configurations and properly handles the admin-specific features.

This essentially creates a role-based permission system for AI features, giving organizations fine-grained control over who can use different aspects of the Duo Agent Platform.

References

Screenshots or screen recordings

Screens are for showcase purpose only. The component will be integrated in follow-up MRs.

.com SM

How to set up and validate locally

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 #578934 (closed)

Edited by Lukas Wanko

Merge request reports

Loading