This is an automated email from the ASF dual-hosted git repository.

kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 3dbed17b0ef AIP-72 Add default api version for Execution API (#48548)
3dbed17b0ef is described below

commit 3dbed17b0ef52b3a46483219feb4b311251990eb
Author: Kalyan R <[email protected]>
AuthorDate: Mon Mar 31 17:33:34 2025 +0530

    AIP-72 Add default api version for Execution API (#48548)
    
    closes #48021
---
 airflow-core/pyproject.toml                                        | 2 +-
 airflow-core/src/airflow/api_fastapi/execution_api/app.py          | 1 +
 airflow-core/tests/unit/api_fastapi/execution_api/conftest.py      | 4 +---
 airflow-core/tests/unit/api_fastapi/execution_api/test_app.py      | 7 +++++++
 .../execution_api/versions/v2025_03_19/test_task_instances.py      | 1 +
 5 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/airflow-core/pyproject.toml b/airflow-core/pyproject.toml
index 105f3bbfdd7..c11e69ae046 100644
--- a/airflow-core/pyproject.toml
+++ b/airflow-core/pyproject.toml
@@ -69,7 +69,7 @@ dependencies = [
     "argcomplete>=1.10",
     "asgiref>=2.3.0",
     "attrs>=22.1.0, !=25.2.0",
-    "cadwyn>=5.1.3",
+    "cadwyn>=5.2.1",
     "colorlog>=6.8.2",
     "cron-descriptor>=1.2.24",
     "croniter>=2.0.2",
diff --git a/airflow-core/src/airflow/api_fastapi/execution_api/app.py 
b/airflow-core/src/airflow/api_fastapi/execution_api/app.py
index 8e73cfd08c4..d2fe78198b5 100644
--- a/airflow-core/src/airflow/api_fastapi/execution_api/app.py
+++ b/airflow-core/src/airflow/api_fastapi/execution_api/app.py
@@ -132,6 +132,7 @@ def create_task_execution_api_app() -> FastAPI:
         description="The private Airflow Task Execution API.",
         lifespan=lifespan,
         api_version_parameter_name="Airflow-API-Version",
+        api_version_default_value=bundle.versions[0].value,
         versions=bundle,
     )
 
diff --git a/airflow-core/tests/unit/api_fastapi/execution_api/conftest.py 
b/airflow-core/tests/unit/api_fastapi/execution_api/conftest.py
index 14ea02263f9..25dd84f92c4 100644
--- a/airflow-core/tests/unit/api_fastapi/execution_api/conftest.py
+++ b/airflow-core/tests/unit/api_fastapi/execution_api/conftest.py
@@ -31,9 +31,7 @@ def client(request: pytest.FixtureRequest):
     app = cached_app(apps="execution")
 
     # By specifying a "far-future" date, this will make the tests always run 
against the latest version
-    with TestClient(
-        app, headers={"Authorization": "Bearer fake", "Airflow-API-Version": 
"9999-12-31"}
-    ) as client:
+    with TestClient(app, headers={"Authorization": "Bearer fake"}) as client:
         auth = AsyncMock(spec=JWTValidator)
         auth.avalidated_claims.return_value = {"sub": 
"edb09971-4e0e-4221-ad3f-800852d38085"}
 
diff --git a/airflow-core/tests/unit/api_fastapi/execution_api/test_app.py 
b/airflow-core/tests/unit/api_fastapi/execution_api/test_app.py
index 1baa9487ce6..76a8269c2c1 100644
--- a/airflow-core/tests/unit/api_fastapi/execution_api/test_app.py
+++ b/airflow-core/tests/unit/api_fastapi/execution_api/test_app.py
@@ -19,6 +19,7 @@ from __future__ import annotations
 import pytest
 
 from airflow.api_fastapi.execution_api.datamodels.taskinstance import 
TaskInstance
+from airflow.api_fastapi.execution_api.versions import bundle
 
 pytestmark = pytest.mark.db_test
 
@@ -34,3 +35,9 @@ def test_custom_openapi_includes_extra_schemas(client):
     schema = openapi_schema["components"]["schemas"]["TaskInstance"]
 
     assert schema == TaskInstance.model_json_schema()
+
+
+def test_access_api_contract(client):
+    response = client.get("/execution/docs")
+    assert response.status_code == 200
+    assert response.headers["airflow-api-version"] == bundle.versions[0].value
diff --git 
a/airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_19/test_task_instances.py
 
b/airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_19/test_task_instances.py
index 9ac6880ba04..a57bdb32638 100644
--- 
a/airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_19/test_task_instances.py
+++ 
b/airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_19/test_task_instances.py
@@ -69,5 +69,6 @@ class TestTIUpdateState:
             },
         )
         assert response.status_code == expected_status_code
+        assert response.headers["airflow-api-version"] == "2025-03-19"
 
         session.expire_all()

Reply via email to