Add foundational Flows to group by default with correct service account
Problem
With Agent Identity for the Duo Agent Platform (&19478) being implemented we still have to agree on how to treat our foundational flows (GitLab provided default flows) and iterate them towards the new Agent Identity implementation.
Old state:
- Instance level setting "Turn on Duo Agent Platform"
- Creates instance level
Duo Developerservice account
- Creates instance level
- Cascading setting
Allow flow execution- If enabled, for the project buttons for Issue-to-mr/fix-pipeline are shown.
- Feature flag for composite identity
- If enabled,
Duo Developerservice account composite identity is used for any flow. - If feature flag for composite identity is turned on it is used with the Duo Developer service account
- If the
Duo Developeraccount is not already added to the project it automatically will be as part of executing the flow.
- If enabled,
Desired Outcome
- Composite identity generally needs to be used by default for any agent/flow executed in CI
- We need to move towards using Top-level-groups on .com also for foundational flows to limit the potential for token theft and cross-top-level group access.
- Foundational flows are enabled by default for an org or individual project.
- Foundational flows should otherwise work as much as possible as any custom flow
Suggested first iteration
Suggestion based on &19478 being implemented right now.
- Synchronize foundational flows to the catalog to be able to enable them (syncing taken care of by #580313 (closed))
- Re-use existing
flow executionsetting - Add additional Foundational Flows setting
- When the flow is interacted with:
- Add the flow and service account to all projects that the setting is activated on.
- Create default triggers for the foundational flows.
- Remove the current setting/button that is used for instance wide onboarding of composite-identity.
This would generally keep similar behavior to what we have now, while also integrating with the catalog.
Further Links
Edited by Sebastian Rehm