Show all triggers for a configured flow
What does this MR do and why?
This is the frontend half of a stacked change. It targets the backend
branch of !249630 (merged) (which adds the flowTriggers field), so review it after
that MR.
When viewing an enabled flow, the Triggers section linked a flow to only
one trigger even when several were configured, so the page did not tell the
full story. This MR switches the flow and agent queries and components to
the new flowTriggers list and renders one token group and edit link per
trigger.
It also:
- Reads the service account from the first trigger (
flowTriggers[0]?.user) where the singular field was used before. The service account belongs to the consumer, so this is equivalent. Ordering is deterministic (id) from the backend, so[0]is stable. - Applies
@gl_introduced(version: "19.3.0")to theflowTriggersselection so older backends strip it during a rolling deploy (Self-Managed safety).
This MR does not remove the deprecated singular flowTrigger field. It
just stops the frontend from selecting it. Removing a non-experiment field
must follow the GraphQL deprecation window, so it will be a separate MR
after flowTriggers has shipped. See the discussion with @GitLabDuo below.
References
Backend MR (this branch targets it): !249630 (merged)
Supersedes the original combined MR !249605 (closed).
Screenshots or screen recordings
| Before | After |
|---|---|
![]() |
![]() |
How to set up and validate locally
- Enable the Duo Agent Platform and open a project's flows page at
/<namespace>/<project>/-/automate/flows. - Configure a flow, then add a second trigger for the same flow.
- Open the flow. Before, only one trigger appears in the Triggers section. After, every configured trigger appears, each with its own Edit link.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist.

