Bulk Pause / Unpause Airflow DAGs from the UI
A custom React-based Airflow 3.1 plugin that lets platform and data teams pause or unpause dozens of DAGs directly from the UI, instead of clicking them one by one or dropping to the CLI.
is_paused for many DAGs at once, with clear success and error feedback.High-level architecture
The plugin lives entirely inside Airflow: a React frontend mounted into the webserver, calling the official REST API to update DAG states in bulk.
The user selects multiple DAGs or a prefix from a custom React view in the Airflow webserver.
- Mounted as an Airflow UI plugin panel
- Uses familiar Airflow layout style with an extra “bulk control” view
- Accepts name prefix and tag filters to target DAG groups
- Uses Airflow 3.1 REST API endpoints for DAG state
- Builds query params from prefix and tags
- Returns number of DAGs affected and per-DAG results
- Updates
is_pausedstate in the metadata DB - Scheduler reacts: paused DAGs stop scheduling runs
- UI refreshes to show the new state instantly
Demo: bulk pause / unpause request
This demo mimics the actual plugin form: choose an action, enter a name prefix and tags, and get back a JSON response summarising which DAGs would be affected. In the real deployment, the request hits a FastAPI layer in front of Airflow's REST API.
Pause / Unpause DAGs (demo)
UX: how a user actually uses it
The goal was to feel like a natural extension of the standard Airflow UI — no new concepts, just better controls for the same DAG list.
From the DAGs page, the user opens the custom plugin tab (e.g. “Bulk DAG Control”), which shows a familiar layout with filters and bulk actions.
They specify a name prefix like marketing_ and tags such as analytics, web to target a subset of DAGs.
Clicking “pause” or “unpause” sends a single API request. The response returns a structured list of DAG IDs and status so the user knows exactly what changed.
The plugin refreshes from the REST API and shows the new pause state for each DAG, so the user can visually confirm the change.
Tech stack
This plugin turns a common operational pain — pausing lots of DAGs at once — into a straightforward UI gesture. It's a good example of treating Airflow not just as a scheduler, but as a platform with ergonomic tooling.
Explore the Airflow UI plugins in air-labs