Skip to content

Commit 8cf5298

Browse files
committed
Fix Airflow Python client generation for 3.0.0 (#50704)
It was using the old OpenAPI generated schema. https://github.com/apache/airflow-client-python (cherry picked from commit 9bc8cb0)
1 parent cfde13a commit 8cf5298

10 files changed

+171
-5998
lines changed

.pre-commit-config.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,7 +583,6 @@ repos:
583583
pass_filenames: true
584584
exclude: >
585585
(?x)
586-
^clients/python/openapi_v1.yaml$|
587586
^airflow-core/src/airflow/ui/openapi-gen/|
588587
^airflow-core/src/airflow/cli/commands/local_commands/fastapi_api_command\.py$|
589588
^airflow-core/src/airflow/config_templates/|

clients/python/CHANGELOG.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,58 @@
1717
under the License.
1818
-->
1919

20+
# v3.0.0
21+
22+
This is the first release of the **Airflow 3.0.0** Python client. It introduces compatibility with the new [Airflow 3.0 REST API](https://airflow.apache.org/docs/apache-airflow/3.0.0/stable-rest-api-ref.html), and includes several **breaking changes** and behavior updates.
23+
24+
Below is a list of important changes. Refer to individual endpoint documentation for full details.
25+
26+
- API v1 (`/api/v1`) has been dropped and replaced with API v2(`/api/v2`).
27+
28+
- **422 Validation Errors (instead of 400)**
29+
30+
The API now returns `422 Unprocessable Entity` for validation errors (e.g. bad payload, path params, or query params), instead of `400 Bad Request`.
31+
32+
- **Partial response support removed (`fields` parameter)**
33+
34+
Endpoints like `GET /dags` no longer support the `fields` query param for partial responses. Full objects are returned by default. This feature may return in a future 3.x release.
35+
36+
- Passing list in query parameters switched from ``form, non exploded`` to ``form, exploded`` i.e before ``?my_list=item1,item2`` now ``?my_list=item1&my_list=item2``
37+
38+
- **`execution_date` has been removed**
39+
40+
The previously deprecated `execution_date` parameter and fields are now fully removed. Use `logical_date` instead.
41+
42+
- **Datetime format updated to RFC3339-compliant**
43+
44+
Datetimes returned are now in [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) format (e.g. `2024-10-01T13:00:00Z`). Both `Z` and `+00:00` forms are accepted in inputs.
45+
→ This change comes from FastAPI & Pydantic v2 behavior.
46+
[More info](https://github.com/fastapi/fastapi/discussions/7693#discussioncomment-5143311)
47+
48+
- PATCH on ``DagRun`` and ``TaskInstance`` are more generic and allow in addition to update the resource state and the note content.
49+
50+
Therefore, the two legacy dedicated endpoints to update a ``DagRun`` note and ``TaskInstance`` note have been removed.
51+
52+
Same for the set task instance state, it is now handled by the broader PATCH on task instances.
53+
54+
- ``assets/queuedEvent`` endpoints have moved to ``assets/queuedEvents`` for consistency.
55+
56+
- **`dag_parsing` returns 409 for duplicates**
57+
58+
If a `DagPriorityParsingRequest` already exists, `POST /dag_parsing` now returns `409 Conflict` instead of `201 Created`.
59+
60+
- **Default value change in `clearTaskInstances`**
61+
62+
The `reset_dag_runs` field now defaults to `true` instead of `false`.
63+
64+
- **Pool name is no longer editable**
65+
66+
`PATCH /pools/{pool_name}` can no longer be used to rename a pool. Pool names are immutable via the API.
67+
68+
- **`logical_date` is now a required nullable field**
69+
70+
When triggering a DAG run (`POST /dags/{dag_id}/dagRuns`), `logical_date` is now required but can explicitly be set to `null`.
71+
2072
# v2.10.0
2173

2274
## Major changes:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy