|
17 | 17 | under the License.
|
18 | 18 | -->
|
19 | 19 |
|
| 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 | + |
20 | 72 | # v2.10.0
|
21 | 73 |
|
22 | 74 | ## Major changes:
|
|
0 commit comments