Collect all codebase locations that need to consider DAP role-based permissions
## Summary This issue serves as a collection point for identifying all locations in the codebase that need to consider and use the new DAP (Duo Agent Platform) role-based permissions for agents and flows. ## Background As part of implementing the role-based permissions defined in #578270, we need to systematically identify and catalog all code locations that currently handle or will need to consider DAP role-based permissions for: - **Manage** actions (Create, Duplicate, Edit, Delete) - **Run** actions (executing agents/flows) ## Related Issues - Parent issue: #578270 - Permissions Model for GitLab Duo Automate (Agents & Flows) - Related Epic: Agent Identity Epic #19478 ## Permission Summaries Summaries of existing `execute` permissions and related authorization checks for DAP features when accessed through the **GitLab UI**: 1. [Flow Triggers](https://gitlab.com/gitlab-org/gitlab/-/issues/578370#note_2867682504) 2. [Agentic Chat](https://gitlab.com/gitlab-org/gitlab/-/issues/578370#note_2867682504) 3. [Built-in Flows](https://gitlab.com/gitlab-org/gitlab/-/issues/578370#note_2868088458) > [!note] > > These summaries are based on investigation and testing the DAP feature in the GitLab UI. IDE-based execution may follow similar flows, this requires further verification and is not covered in these summaries. Summary for existing `manage` permissions: 1. [Manage permissions](https://gitlab.com/gitlab-org/gitlab/-/issues/578370#note_2873758537) ## Areas to Investigate ### Frontend Components - [ ] Agent/Flow listing pages - [ ] Agent/Flow creation forms - [ ] Agent/Flow editing interfaces - [ ] Agent/Flow execution triggers - [ ] Automate menu visibility - [ ] Flow trigger management UI - [ ] Service account selection dropdowns ### Backend Controllers/APIs - [ ] Agent CRUD operations - [ ] Flow CRUD operations - [ ] Flow execution endpoints - [ ] Service account management - [ ] Project/Group automate settings - [ ] GraphQL resolvers for DAP ### Authorization/Policy Classes - [ ] Agent policies - [ ] Flow policies - [ ] Service account policies - [ ] Project/Group DAP policies - [ ] Flow trigger policies ### Database/Models - [ ] Agent model permissions - [ ] Flow model permissions - [ ] Service account associations - [ ] Project/Group DAP settings - [ ] User role intersections ### Configuration Files - [ ] Feature flag configurations - [ ] Route definitions - [ ] Navigation menu configurations - [ ] Role-based permission matrix definitions ## Collection Format For each location found, please add a comment with: ``` **Location**: `path/to/file.rb:line_number` **Component**: [Frontend/Backend/Policy/Model/Config] **Action**: [Manage/Run] **Current Implementation**: Brief description of current logic **Required Changes**: What needs to be updated to consider role-based permissions **Priority**: [High/Medium/Low] ``` ## Search Patterns Use these patterns to help identify relevant code locations: - `duo_agent`, `duo_workflow`, `agent_platform` - `flow_trigger`, `service_account` - `automate`, `DAP` - Permission checks: `can?`, `allowed?`, `authorize!` - Role checks: `maintainer?`, `developer?`, `owner?` ## Next Steps 1. [ ] Conduct systematic codebase search using patterns above 2. [ ] Document all findings in comments below 3. [ ] Categorize findings by priority and complexity 4. [ ] Create individual implementation issues for each area 5. [ ] Estimate effort for each change ## Acceptance Criteria - [ ] All current DAP role-based permission-related code locations are identified - [ ] Each location is documented with required changes to consider role-based permissions - [ ] Findings are prioritized and categorized - [ ] Implementation issues are created for each major area
issue