seanghaeli opened a new pull request, #76567: URL: https://github.com/apache/airflow/pull/76567
Building on #76260, which added the `/triggers` API endpoint. Airflow 3 has no page for triggers, and an asset's watchers only show a name and trigger id, so a failing watcher stays invisible unless you go looking. This PR adds a Triggers page and shows a failing trigger where users already look. - A Triggers page under Browse lists every trigger the user can see, of every kind, with its status, owner, triggerer, failures and last error, and can be filtered by kind, status and triggerer. The menu entry follows the Dags permission, like Dag runs and task instances. - Each trigger has its own page with Details and Owner tabs. A watcher's page lists the Dags scheduled on its assets, and the list shows how many Dags each watcher affects. - A failing watcher shows on its asset's watchers button, as a badge on the page of each Dag scheduled on it, and in a Failing Triggers card on the dashboard. - Hovering a status explains it, and a recovered trigger still shows when it last failed. - A task instance's triggerer info and a Dag run's Callbacks tab link to their trigger. Several of these came from user feedback on a preview, one commit each. API changes: each watcher in `GET /triggers` gains `scheduled_dag_ids`, and `GET /triggers` takes a `scheduled_dag_id` filter for the Dag page badge. Both only include Dags the caller can read. The UI deadlines response gains `callback_trigger_id` for the Callbacks tab link. A Logs tab on the trigger page comes with the logs endpoint PR (#76560). How to review: `pages/Triggers/` and `pages/Trigger/` first, then the feedback commits one by one. About 1,300 lines of source; the rest is tests, generated code and translations. Demo from Breeze, with a healthy, a failing and a recovered watcher, deferred tasks, a deadline callback and an orphaned trigger: _(video and screenshot of the Triggers list to be attached)_ --- ##### Was generative AI tooling used to co-author this PR? <!-- If generative AI tooling has been used in the process of authoring this PR, please change below checkbox to `[X]` followed by the name of the tool, uncomment the "Generated-by". --> - [X] Yes (please specify the tool below) Generated-by: Claude Code (Opus 5.5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
