- Fix: 404 queued asset events from API server logs (#62934)
- Fix executor slots showing negative infinity (#61140)
- Fix Pool API slots validation (#61071)
- Add
run_afteralias toXComResponsefor backward compatibility (#61443)
- Update refresh token flow (#55506)
- Patch pools should have an optional description (#58066)(#59728)
- Add task group ID filtering support to task instance query #59511
- Fix backfill run_on_latest_version defaulting to False instead of True #59328
- Update refresh token flow #58649
- Patch pools should have an optional description #58169
- Add query limit protection to prevent excessive database queries in DAG runs list endpoints (#57450)
- Change
extrafield type todict[str, JsonValue]for Asset, AssetAlias, and AssetEvent models (#57352) - Add
task_display_namealias field to EventLogResponse for better task identification (#55160) - Add
is_favoritefield to DAGs list API to support user-specific DAG favorites (#56341)
- Enhance API documentation for sorting functionality (#56617)
- Improve API documentation for the
order_byquery parameter (#55988) - Remove deprecated
dagReportsAPI endpoint (#56609)
- Fix logout functionality in airflow-core to properly handle session termination (#57990)
- Fix API endpoint for clearing task instances to properly support mapped task instances with specific map indexes (#56346)
- Add
map_indexfilter to TaskInstance API queries (#55614) - Add
has_import_errorsfilter to Core API GET /dags endpoint (#54563) - Add
dag_versionfilter to get_dag_runs endpoint (#54882) - Implement pattern search for event log endpoint (#55114)
- Add asset-based filtering support to DAG API endpoint (#54263)
- Add Greater Than and Less Than range filters to DagRuns and Task Instance list (#54302)
- Add
try_numberas filter to task instances (#54695) - Add filters to Browse XComs endpoint (#54049)
- Add Filtering by DAG Bundle Name and Version to API routes (#54004)
- Add search filter for DAG runs by triggering user name (#53652)
- Enable multi sorting (AIP-84) (#53408)
- Add
run_on_latest_versionsupport for backfill and clear operations (#52177) - Add
run_id_patternsearch for Dag Run API (#52437) - Add tracking of triggering user to Dag runs (#51738)
- Expose DAG parsing duration in the API (#54752)
- Add Human-in-the-Loop (HITL) endpoints for approval workflows (#52868, #53373, #53376, #53885, #53923, #54308, #54310, #54723, #54773, #55019, #55463, #55525, #55535, #55603, #55776)
- Add endpoint to watch dag run until finish (#51920)
- Add TI bulk actions endpoint (#50443)
- Add Keycloak Refresh Token Endpoint (#51657)
- Mark
DagDetailsResponse.concurrencyas deprecated (#55150)
- Fix dag import error modal pagination (#55719)
- Add
owner_linksfield to DAGDetailsResponse (#50557) - Allow non-string valid JSON values in Variable import (#49844)
- Add
bundle_versionto DagRun response (#49726) - Use
NonNegativeIntforbackfill_id(#49691) - Rename operation IDs for task instance endpoints to include map indexes (#49608)
- Remove filtering by last dag run state in patch dags endpoint (#51176)
- Make
dag_runnullable in Details page (#50719)
- Fix OpenAPI schema for
get_logAPI (#50547) - Fix bulk action annotation (#50852)
- Fix
patch_task_instanceendpoint (#50550)
This is the first release of the Airflow 3.0.0 Python client. It introduces compatibility with the new Airflow 3.0 REST API, and includes several breaking changes and behavior updates.
Below is a list of important changes. Refer to individual endpoint documentation for full details.
-
API v1 (
/api/v1) has been dropped and replaced with API v2(/api/v2). -
422 Validation Errors (instead of 400)
The API now returns
422 Unprocessable Entityfor validation errors (e.g. bad payload, path params, or query params), instead of400 Bad Request. -
Partial response support removed (
fieldsparameter)Endpoints like
GET /dagsno longer support thefieldsquery param for partial responses. Full objects are returned by default. This feature may return in a future 3.x release. -
Passing list in query parameters switched from
form, non explodedtoform, explodedi.e before?my_list=item1,item2now?my_list=item1&my_list=item2 -
execution_datehas been removedThe previously deprecated
execution_dateparameter and fields are now fully removed. Uselogical_dateinstead. -
Datetime format updated to RFC3339-compliant
Datetimes returned are now in RFC3339 format (e.g.
2024-10-01T13:00:00Z). BothZand+00:00forms are accepted in inputs. → This change comes from FastAPI & Pydantic v2 behavior. More info -
PATCH on
DagRunandTaskInstanceare more generic and allow in addition to update the resource state and the note content.Therefore, the two legacy dedicated endpoints to update a
DagRunnote andTaskInstancenote have been removed.Same for the set task instance state, it is now handled by the broader PATCH on task instances.
-
assets/queuedEventendpoints have moved toassets/queuedEventsfor consistency. -
dag_parsingreturns 409 for duplicatesIf a
DagPriorityParsingRequestalready exists,POST /dag_parsingnow returns409 Conflictinstead of201 Created. -
Default value change in
clearTaskInstancesThe
reset_dag_runsfield now defaults totrueinstead offalse. -
Pool name is no longer editable
PATCH /pools/{pool_name}can no longer be used to rename a pool. Pool names are immutable via the API. -
logical_dateis now a required nullable fieldWhen triggering a DAG run (
POST /dags/{dag_id}/dagRuns),logical_dateis now required but can explicitly be set tonull.
- Add dag_stats rest api endpoint (#41017)
- AIP-64: Add task instance history list endpoint (#40988)
- Change DAG Audit log tab to Event Log (#40967)
- AIP-64: Add REST API endpoints for TI try level details (#40441)
- Make XCom display as react json (#40640)
- Replace usages of task context logger with the log table (#40867)
- Fix tasks API endpoint when DAG doesn't have
start_date(#40878) - Add try_number to log table (#40739)
- Add executor field to the task instance API (#40034)
- Add task documentation to details tab in grid view. (#39899)
- Add max_consecutive_failed_dag_runs in API spec (#39830)
- Add task failed dependencies to details page. (#38449)
- Add dag re-parsing request endpoint (#39138)
- Reorder OpenAPI Spec tags alphabetically (#38717)
- Add max_consecutive_failed_dag_runs in API spec (#39830)
- Allow users to write dag_id and task_id in their national characters, added display name for dag / task (v2) (#38446)
- Add dataset_expression to grid dag details (#38121)
- Adding run_id column to log table (#37731)
- Show custom instance names for a mapped task in UI (#36797)
- Add excluded/included events to get_event_logs api (#37641)
- Filter Datasets by associated dag_ids (GET /datasets) (#37512)
- Add data_interval_start and data_interval_end in dagrun create API endpoint (#36630)
- Return the specified field when get dag/dagRun (#36641)
- Add post endpoint for dataset events (#37570)
- Add "queuedEvent" endpoint to get/delete DatasetDagRunQueue (#37176)
- Allow filtering event logs by attributes (#34417)
- Add extra fields to plugins endpoint (#34913)
- Let auth managers provide their own API endpoints (#34349)
- Enable pools to consider deferred tasks (#32709)
- Add dag_run_ids and task_ids filter for the batch task instance API endpoint (#32705)
- Add DagModel attributes before dumping DagDetailSchema for get_dag_details API endpoint (#34947)
- Add TriggerRule missing value in rest API (#35194)
- Fix wrong plugin schema (#34858)
- Make dry run optional for patch task instance (#34568)
- OpenAPI Spec fix nullable alongside $ref (#32887)
- Clarify new_state in OpenAPI spec (#34056)
- NA
- NA
Apache Airflow API version: 2.7.2
- NA
- Fix: make dry run optional for patch task instance (#34568)
- NA
Apache Airflow API version: 2.7.0
- Enable pools to consider deferred tasks (#32709)
- add dag_run_ids and task_ids filter for the batch task instance API endpoint (#32705)
- Add xcom map_index as a filter to xcom endpoint (#32453)
- Updates health check endpoint to include dag_processor status. (#32382)
- Add TriggererStatus to OpenAPI spec (#31579)
- OpenAPI Spec fix nullable alongside $ref (#32887)
- Fix incorrect default on readonly property in our API (#32510)
- Fix broken links in openapi/v1.yaml (#31619)
- Update Dag trigger API and command docs (#32696)
- NA
Apache Airflow API version: 2.6.2
- Add TriggererStatus to OpenAPI spec (#31579)
- Fixing broken links in openapi/v1.yaml (#31619)
- NA
Apache Airflow API version: 2.6.1
- NA
- Fix Pool schema OpenAPI spec (#30973)
- NA
Apache Airflow API version: 2.6.0
- Minimum Python version is 3.7
- DAGRun dag_id parameter is properly validated as read-only and setting it might result in an error:
"
dag_idis a read-only attribute" This might break some workflows that used examples from the documentation.
- Move read only property in order to fix Dagrun API docs (#30149)
- Fix clear dag run openapi spec responses by adding additional return type (#29600)
- Fix Rest API update user output (#29409)
- Add a param for get_dags endpoint to list only unpaused dags (#28713)
- Expose updated_at filter for dag run and task instance endpoints (#28636)
- NA
Apache Airflow API version: 2.5.1
- NA
- Fix authentication issues by regenerating the client with proper security schemas
- NA
Apache Airflow API version: 2.5.x
- NA
- NA
- GET /datasets/events | Get dataset events
- GET /datasets | Get datasets
- GET /datasets/{id} | Get a dataset
- POST /dags/{dag_id}/dagRuns/{dag_run_id}/clear | Clear a dagrun endpoint
- GET /dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents | Get dataset events for a DAG run
Apache Airflow API version: 2.3.x
- NA
- NA
- PATCH /dags | Update DAGs
- GET /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index} | Get a mapped task instance
- GET /dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/listMapped | List mapped task instances
Apache Airflow API version: 2.2.x
- Client code is generated using OpenApi's 5.3.0 generator CLI
- NA
- POST /connections/test | Test a connection
- DELETE /dags/{dag_id} | Delete a DAG
- PATCH /dags/{dag_id}/dagRuns/{dag_run_id} | Modify a DAG run
- DELETE /users/{username} | Delete a user
- PATCH /users/{username} | Update a user
- POST /users | Create a user
Apache Airflow API version: 2.1.x
- Client code is generated using OpenApi's 5.1.1 generator CLI
- Fixed the iteration issue on array items caused by unsupported class 'object'. Issue #15
- Permissions
- Plugins
- Providers
- Roles
- Users
Apache Airflow API version: 2.0.x
Initial version of the Python client.