diff --git a/airflow-core/src/airflow/api_fastapi/core_api/datamodels/dags.py b/airflow-core/src/airflow/api_fastapi/core_api/datamodels/dags.py index 9b06657220e83..572b62b4818ce 100644 --- a/airflow-core/src/airflow/api_fastapi/core_api/datamodels/dags.py +++ b/airflow-core/src/airflow/api_fastapi/core_api/datamodels/dags.py @@ -35,7 +35,6 @@ from airflow.api_fastapi.core_api.base import BaseModel, StrictBaseModel from airflow.api_fastapi.core_api.datamodels.dag_tags import DagTagResponse from airflow.api_fastapi.core_api.datamodels.dag_versions import DagVersionResponse -from airflow.api_fastapi.core_api.datamodels.deadline import DeadlineAlertResponse from airflow.configuration import conf from airflow.models.dag_version import DagVersion @@ -68,7 +67,6 @@ class DAGResponse(BaseModel): relative_fileloc: str | None fileloc: str description: str | None - deadline: list[DeadlineAlertResponse] | None timetable_summary: str | None timetable_description: str | None tags: list[DagTagResponse] diff --git a/airflow-core/src/airflow/api_fastapi/core_api/datamodels/deadline.py b/airflow-core/src/airflow/api_fastapi/core_api/datamodels/deadline.py deleted file mode 100644 index 704c218208e4f..0000000000000 --- a/airflow-core/src/airflow/api_fastapi/core_api/datamodels/deadline.py +++ /dev/null @@ -1,30 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -from __future__ import annotations - -from datetime import timedelta - -from airflow.api_fastapi.core_api.base import BaseModel - - -class DeadlineAlertResponse(BaseModel): - """Deadline alert serializer for responses.""" - - reference: str - interval: timedelta - callback: str - callback_kwargs: dict | None = None diff --git a/airflow-core/src/airflow/api_fastapi/core_api/openapi/_private_ui.yaml b/airflow-core/src/airflow/api_fastapi/core_api/openapi/_private_ui.yaml index 450cdc3036e28..56830be4ac56a 100644 --- a/airflow-core/src/airflow/api_fastapi/core_api/openapi/_private_ui.yaml +++ b/airflow-core/src/airflow/api_fastapi/core_api/openapi/_private_ui.yaml @@ -1352,13 +1352,6 @@ components: - type: string - type: 'null' title: Description - deadline: - anyOf: - - items: - $ref: '#/components/schemas/DeadlineAlertResponse' - type: array - - type: 'null' - title: Deadline timetable_summary: anyOf: - type: string @@ -1449,7 +1442,6 @@ components: - relative_fileloc - fileloc - description - - deadline - timetable_summary - timetable_description - tags @@ -1589,31 +1581,6 @@ components: - queued_dag_count title: DashboardDagStatsResponse description: Dashboard DAG Stats serializer for responses. - DeadlineAlertResponse: - properties: - reference: - type: string - title: Reference - interval: - type: string - format: duration - title: Interval - callback: - type: string - title: Callback - callback_kwargs: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Callback Kwargs - type: object - required: - - reference - - interval - - callback - title: DeadlineAlertResponse - description: Deadline alert serializer for responses. EdgeResponse: properties: source_id: diff --git a/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml b/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml index f2fb07734e9e4..e2eae09e5c6f8 100644 --- a/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml +++ b/airflow-core/src/airflow/api_fastapi/core_api/openapi/v2-rest-api-generated.yaml @@ -8670,13 +8670,6 @@ components: - type: string - type: 'null' title: Description - deadline: - anyOf: - - items: - $ref: '#/components/schemas/DeadlineAlertResponse' - type: array - - type: 'null' - title: Deadline timetable_summary: anyOf: - type: string @@ -8844,7 +8837,6 @@ components: - relative_fileloc - fileloc - description - - deadline - timetable_summary - timetable_description - tags @@ -8936,13 +8928,6 @@ components: - type: string - type: 'null' title: Description - deadline: - anyOf: - - items: - $ref: '#/components/schemas/DeadlineAlertResponse' - type: array - - type: 'null' - title: Deadline timetable_summary: anyOf: - type: string @@ -9022,7 +9007,6 @@ components: - relative_fileloc - fileloc - description - - deadline - timetable_summary - timetable_description - tags @@ -9641,31 +9625,6 @@ components: This is the set of allowable values for the ``warning_type`` field in the DagWarning model.' - DeadlineAlertResponse: - properties: - reference: - type: string - title: Reference - interval: - type: string - format: duration - title: Interval - callback: - type: string - title: Callback - callback_kwargs: - anyOf: - - additionalProperties: true - type: object - - type: 'null' - title: Callback Kwargs - type: object - required: - - reference - - interval - - callback - title: DeadlineAlertResponse - description: Deadline alert serializer for responses. DryRunBackfillCollectionResponse: properties: backfills: diff --git a/airflow-core/src/airflow/cli/commands/dag_command.py b/airflow-core/src/airflow/cli/commands/dag_command.py index 4553b5c57c2de..f23c52321f9a9 100644 --- a/airflow-core/src/airflow/cli/commands/dag_command.py +++ b/airflow-core/src/airflow/cli/commands/dag_command.py @@ -259,7 +259,6 @@ def _get_dagbag_dag_details(dag: DAG) -> dict: "next_dagrun_data_interval_end": None, "next_dagrun_logical_date": None, "next_dagrun_run_after": None, - "deadline": None, } diff --git a/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts b/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts index a26e0d4960182..a91264eb077a7 100644 --- a/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts +++ b/airflow-core/src/airflow/ui/openapi-gen/requests/schemas.gen.ts @@ -1643,20 +1643,6 @@ export const $DAGDetailsResponse = { ], title: 'Description' }, - deadline: { - anyOf: [ - { - items: { - '$ref': '#/components/schemas/DeadlineAlertResponse' - }, - type: 'array' - }, - { - type: 'null' - } - ], - title: 'Deadline' - }, timetable_summary: { anyOf: [ { @@ -1947,7 +1933,7 @@ export const $DAGDetailsResponse = { } }, type: 'object', - required: ['dag_id', 'dag_display_name', 'is_paused', 'is_stale', 'last_parsed_time', 'last_expired', 'bundle_name', 'bundle_version', 'relative_fileloc', 'fileloc', 'description', 'deadline', 'timetable_summary', 'timetable_description', 'tags', 'max_active_tasks', 'max_active_runs', 'max_consecutive_failed_dag_runs', 'has_task_concurrency_limits', 'has_import_errors', 'next_dagrun_logical_date', 'next_dagrun_data_interval_start', 'next_dagrun_data_interval_end', 'next_dagrun_run_after', 'owners', 'catchup', 'dag_run_timeout', 'asset_expression', 'doc_md', 'start_date', 'end_date', 'is_paused_upon_creation', 'params', 'render_template_as_native_obj', 'template_search_path', 'timezone', 'last_parsed', 'default_args', 'file_token', 'concurrency', 'latest_dag_version'], + required: ['dag_id', 'dag_display_name', 'is_paused', 'is_stale', 'last_parsed_time', 'last_expired', 'bundle_name', 'bundle_version', 'relative_fileloc', 'fileloc', 'description', 'timetable_summary', 'timetable_description', 'tags', 'max_active_tasks', 'max_active_runs', 'max_consecutive_failed_dag_runs', 'has_task_concurrency_limits', 'has_import_errors', 'next_dagrun_logical_date', 'next_dagrun_data_interval_start', 'next_dagrun_data_interval_end', 'next_dagrun_run_after', 'owners', 'catchup', 'dag_run_timeout', 'asset_expression', 'doc_md', 'start_date', 'end_date', 'is_paused_upon_creation', 'params', 'render_template_as_native_obj', 'template_search_path', 'timezone', 'last_parsed', 'default_args', 'file_token', 'concurrency', 'latest_dag_version'], title: 'DAGDetailsResponse', description: 'Specific serializer for DAG Details responses.' } as const; @@ -2056,20 +2042,6 @@ export const $DAGResponse = { ], title: 'Description' }, - deadline: { - anyOf: [ - { - items: { - '$ref': '#/components/schemas/DeadlineAlertResponse' - }, - type: 'array' - }, - { - type: 'null' - } - ], - title: 'Deadline' - }, timetable_summary: { anyOf: [ { @@ -2189,7 +2161,7 @@ export const $DAGResponse = { } }, type: 'object', - required: ['dag_id', 'dag_display_name', 'is_paused', 'is_stale', 'last_parsed_time', 'last_expired', 'bundle_name', 'bundle_version', 'relative_fileloc', 'fileloc', 'description', 'deadline', 'timetable_summary', 'timetable_description', 'tags', 'max_active_tasks', 'max_active_runs', 'max_consecutive_failed_dag_runs', 'has_task_concurrency_limits', 'has_import_errors', 'next_dagrun_logical_date', 'next_dagrun_data_interval_start', 'next_dagrun_data_interval_end', 'next_dagrun_run_after', 'owners', 'file_token'], + required: ['dag_id', 'dag_display_name', 'is_paused', 'is_stale', 'last_parsed_time', 'last_expired', 'bundle_name', 'bundle_version', 'relative_fileloc', 'fileloc', 'description', 'timetable_summary', 'timetable_description', 'tags', 'max_active_tasks', 'max_active_runs', 'max_consecutive_failed_dag_runs', 'has_task_concurrency_limits', 'has_import_errors', 'next_dagrun_logical_date', 'next_dagrun_data_interval_start', 'next_dagrun_data_interval_end', 'next_dagrun_run_after', 'owners', 'file_token'], title: 'DAGResponse', description: 'DAG serializer for responses.' } as const; @@ -3050,40 +3022,6 @@ This is the set of allowable values for the \`\`warning_type\`\` field in the DagWarning model.` } as const; -export const $DeadlineAlertResponse = { - properties: { - reference: { - type: 'string', - title: 'Reference' - }, - interval: { - type: 'string', - format: 'duration', - title: 'Interval' - }, - callback: { - type: 'string', - title: 'Callback' - }, - callback_kwargs: { - anyOf: [ - { - additionalProperties: true, - type: 'object' - }, - { - type: 'null' - } - ], - title: 'Callback Kwargs' - } - }, - type: 'object', - required: ['reference', 'interval', 'callback'], - title: 'DeadlineAlertResponse', - description: 'Deadline alert serializer for responses.' -} as const; - export const $DryRunBackfillCollectionResponse = { properties: { backfills: { @@ -6668,20 +6606,6 @@ export const $DAGWithLatestDagRunsResponse = { ], title: 'Description' }, - deadline: { - anyOf: [ - { - items: { - '$ref': '#/components/schemas/DeadlineAlertResponse' - }, - type: 'array' - }, - { - type: 'null' - } - ], - title: 'Deadline' - }, timetable_summary: { anyOf: [ { @@ -6820,7 +6744,7 @@ export const $DAGWithLatestDagRunsResponse = { } }, type: 'object', - required: ['dag_id', 'dag_display_name', 'is_paused', 'is_stale', 'last_parsed_time', 'last_expired', 'bundle_name', 'bundle_version', 'relative_fileloc', 'fileloc', 'description', 'deadline', 'timetable_summary', 'timetable_description', 'tags', 'max_active_tasks', 'max_active_runs', 'max_consecutive_failed_dag_runs', 'has_task_concurrency_limits', 'has_import_errors', 'next_dagrun_logical_date', 'next_dagrun_data_interval_start', 'next_dagrun_data_interval_end', 'next_dagrun_run_after', 'owners', 'asset_expression', 'latest_dag_runs', 'file_token'], + required: ['dag_id', 'dag_display_name', 'is_paused', 'is_stale', 'last_parsed_time', 'last_expired', 'bundle_name', 'bundle_version', 'relative_fileloc', 'fileloc', 'description', 'timetable_summary', 'timetable_description', 'tags', 'max_active_tasks', 'max_active_runs', 'max_consecutive_failed_dag_runs', 'has_task_concurrency_limits', 'has_import_errors', 'next_dagrun_logical_date', 'next_dagrun_data_interval_start', 'next_dagrun_data_interval_end', 'next_dagrun_run_after', 'owners', 'asset_expression', 'latest_dag_runs', 'file_token'], title: 'DAGWithLatestDagRunsResponse', description: 'DAG with latest dag runs response serializer.' } as const; diff --git a/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts b/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts index 17e7de16780f7..bed4042914349 100644 --- a/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts +++ b/airflow-core/src/airflow/ui/openapi-gen/requests/types.gen.ts @@ -496,7 +496,6 @@ export type DAGDetailsResponse = { relative_fileloc: string | null; fileloc: string; description: string | null; - deadline: Array | null; timetable_summary: string | null; timetable_description: string | null; tags: Array; @@ -568,7 +567,6 @@ export type DAGResponse = { relative_fileloc: string | null; fileloc: string; description: string | null; - deadline: Array | null; timetable_summary: string | null; timetable_description: string | null; tags: Array; @@ -812,18 +810,6 @@ export type DagVersionResponse = { */ export type DagWarningType = 'asset conflict' | 'non-existent pool'; -/** - * Deadline alert serializer for responses. - */ -export type DeadlineAlertResponse = { - reference: string; - interval: string; - callback: string; - callback_kwargs?: { - [key: string]: unknown; -} | null; -}; - /** * Backfill collection serializer for responses in dry-run mode. */ @@ -1732,7 +1718,6 @@ export type DAGWithLatestDagRunsResponse = { relative_fileloc: string | null; fileloc: string; description: string | null; - deadline: Array | null; timetable_summary: string | null; timetable_description: string | null; tags: Array; diff --git a/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.test.tsx b/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.test.tsx index c5ed905568f95..376aeb7b461e1 100644 --- a/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.test.tsx +++ b/airflow-core/src/airflow/ui/src/pages/DagsList/DagCard.test.tsx @@ -34,7 +34,6 @@ const mockDag = { bundle_version: "1", dag_display_name: "nested_groups", dag_id: "nested_groups", - deadline: null, description: null, file_token: "Ii9maWxlcy9kYWdzL25lc3RlZF90YXNrX2dyb3Vwcy5weSI.G3EkdxmDUDQsVb7AIZww1TSGlFE", fileloc: "/files/dags/nested_task_groups.py", diff --git a/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_dags.py b/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_dags.py index ed0e9c147ea31..84dbf60c2256d 100644 --- a/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_dags.py +++ b/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_dags.py @@ -549,7 +549,6 @@ def test_dag_details( }, "description": None, "doc_md": "details", - "deadline": None, "end_date": None, "fileloc": __file__, "file_token": file_token, @@ -638,7 +637,6 @@ def test_get_dag(self, test_client, query_params, dag_id, expected_status_code, "is_stale": False, "owners": ["airflow"], "timetable_summary": None, - "deadline": None, "tags": [], "has_task_concurrency_limits": True, "next_dagrun_data_interval_start": None, diff --git a/airflow-ctl/src/airflowctl/api/datamodels/generated.py b/airflow-ctl/src/airflowctl/api/datamodels/generated.py index 1fecf1b6b3a4e..0fe1d48ae4026 100644 --- a/airflow-ctl/src/airflowctl/api/datamodels/generated.py +++ b/airflow-ctl/src/airflowctl/api/datamodels/generated.py @@ -468,17 +468,6 @@ class DagWarningType(str, Enum): NON_EXISTENT_POOL = "non-existent pool" -class DeadlineAlertResponse(BaseModel): - """ - Deadline alert serializer for responses. - """ - - reference: Annotated[str, Field(title="Reference")] - interval: Annotated[timedelta, Field(title="Interval")] - callback: Annotated[str, Field(title="Callback")] - callback_kwargs: Annotated[dict[str, Any] | None, Field(title="Callback Kwargs")] = None - - class DryRunBackfillResponse(BaseModel): """ Backfill serializer for responses in dry-run mode. @@ -1258,7 +1247,6 @@ class DAGDetailsResponse(BaseModel): relative_fileloc: Annotated[str | None, Field(title="Relative Fileloc")] = None fileloc: Annotated[str, Field(title="Fileloc")] description: Annotated[str | None, Field(title="Description")] = None - deadline: Annotated[list[DeadlineAlertResponse] | None, Field(title="Deadline")] = None timetable_summary: Annotated[str | None, Field(title="Timetable Summary")] = None timetable_description: Annotated[str | None, Field(title="Timetable Description")] = None tags: Annotated[list[DagTagResponse], Field(title="Tags")] @@ -1315,7 +1303,6 @@ class DAGResponse(BaseModel): relative_fileloc: Annotated[str | None, Field(title="Relative Fileloc")] = None fileloc: Annotated[str, Field(title="Fileloc")] description: Annotated[str | None, Field(title="Description")] = None - deadline: Annotated[list[DeadlineAlertResponse] | None, Field(title="Deadline")] = None timetable_summary: Annotated[str | None, Field(title="Timetable Summary")] = None timetable_description: Annotated[str | None, Field(title="Timetable Description")] = None tags: Annotated[list[DagTagResponse], Field(title="Tags")]