This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-0-test by this push:
new 377160cfb30 Rename operation IDs for task instance endpoints to
include map index… (#49608)
377160cfb30 is described below
commit 377160cfb30f20f2a65abfc46d55caaeee4a51c9
Author: Abhishek <[email protected]>
AuthorDate: Thu Apr 24 17:42:59 2025 +0530
Rename operation IDs for task instance endpoints to include map index…
(#49608)
* Rename operation IDs for task instance endpoints to include map index for
openapi spec validator
* refactor: Update TaskInstanceService methods and types to use map index
for dependencies
* Add OpenAPI validation to FastAPI spec generation script
* refactor: streamline OpenAPI validation process by removing redundant
exit checks
(cherry picked from commit 1cd86146eecf93128ca354d7c88f8ad2c1212a20)
---
.pre-commit-config.yaml | 2 +-
.../core_api/openapi/v1-rest-api-generated.yaml | 6 ++--
.../core_api/routes/public/task_instances.py | 6 ++++
.../src/airflow/ui/openapi-gen/queries/common.ts | 42 +++++++++++-----------
.../ui/openapi-gen/queries/ensureQueryData.ts | 13 +++----
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 13 +++----
.../src/airflow/ui/openapi-gen/queries/queries.ts | 39 +++++++++++---------
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 21 ++++++-----
.../ui/openapi-gen/requests/services.gen.ts | 42 +++++++++++-----------
.../airflow/ui/openapi-gen/requests/types.gen.ts | 30 ++++++++--------
.../in_container/run_update_fastapi_api_spec.py | 18 ++++++++++
11 files changed, 134 insertions(+), 98 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 1fc3e81f2ad..42a4675dab1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1313,7 +1313,7 @@ repos:
pass_filenames: false
files:
^airflow-core/src/airflow/api_fastapi/.*\.py$|^airflow-core/src/airflow/api_fastapi/auth/managers/simple/.*\.py$|^providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/.*\.py$
exclude: ^airflow-core/src/airflow/api_fastapi/execution_api/.*
- additional_dependencies: ['rich>=12.4.4']
+ additional_dependencies: ['rich>=12.4.4',
'openapi-spec-validator>=0.7.1']
- id: ts-compile-format-lint-ui
name: Compile / format / lint UI
description: TS types generation / ESLint / Prettier new UI files
diff --git
a/airflow-core/src/airflow/api_fastapi/core_api/openapi/v1-rest-api-generated.yaml
b/airflow-core/src/airflow/api_fastapi/core_api/openapi/v1-rest-api-generated.yaml
index b14b51fe415..b596b3f9fab 100644
---
a/airflow-core/src/airflow/api_fastapi/core_api/openapi/v1-rest-api-generated.yaml
+++
b/airflow-core/src/airflow/api_fastapi/core_api/openapi/v1-rest-api-generated.yaml
@@ -4781,7 +4781,7 @@ paths:
- Task Instance
summary: Get Task Instance Dependencies
description: Get dependencies blocking task from getting scheduled.
- operationId: get_task_instance_dependencies
+ operationId: get_task_instance_dependencies_by_map_index
security:
- OAuth2PasswordBearer: []
parameters:
@@ -5106,7 +5106,7 @@ paths:
- Task Instance
summary: Patch Task Instance
description: Update a task instance.
- operationId: patch_task_instance
+ operationId: patch_task_instance_by_map_index
security:
- OAuth2PasswordBearer: []
parameters:
@@ -5701,7 +5701,7 @@ paths:
- Task Instance
summary: Patch Task Instance Dry Run
description: Update a task instance dry_run mode.
- operationId: patch_task_instance_dry_run
+ operationId: patch_task_instance_dry_run_by_map_index
security:
- OAuth2PasswordBearer: []
parameters:
diff --git
a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/task_instances.py
b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/task_instances.py
index 4a39921eedd..715c15ed4e1 100644
---
a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/task_instances.py
+++
b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/task_instances.py
@@ -221,11 +221,13 @@ def get_mapped_task_instances(
task_instances_prefix + "/{task_id}/dependencies",
responses=create_openapi_http_exception_doc([status.HTTP_404_NOT_FOUND]),
dependencies=[Depends(requires_access_dag(method="GET",
access_entity=DagAccessEntity.TASK_INSTANCE))],
+ operation_id="get_task_instance_dependencies",
)
@task_instances_router.get(
task_instances_prefix + "/{task_id}/{map_index}/dependencies",
responses=create_openapi_http_exception_doc([status.HTTP_404_NOT_FOUND]),
dependencies=[Depends(requires_access_dag(method="GET",
access_entity=DagAccessEntity.TASK_INSTANCE))],
+ operation_id="get_task_instance_dependencies_by_map_index",
)
def get_task_instance_dependencies(
dag_id: str,
@@ -775,6 +777,7 @@ def _patch_ti_validate_request(
[status.HTTP_404_NOT_FOUND, status.HTTP_400_BAD_REQUEST],
),
dependencies=[Depends(requires_access_dag(method="PUT",
access_entity=DagAccessEntity.TASK_INSTANCE))],
+ operation_id="patch_task_instance_dry_run",
)
@task_instances_router.patch(
task_instances_prefix + "/{task_id}/{map_index}/dry_run",
@@ -782,6 +785,7 @@ def _patch_ti_validate_request(
[status.HTTP_404_NOT_FOUND, status.HTTP_400_BAD_REQUEST],
),
dependencies=[Depends(requires_access_dag(method="PUT",
access_entity=DagAccessEntity.TASK_INSTANCE))],
+ operation_id="patch_task_instance_dry_run_by_map_index",
)
def patch_task_instance_dry_run(
dag_id: str,
@@ -843,6 +847,7 @@ def patch_task_instance_dry_run(
Depends(action_logging()),
Depends(requires_access_dag(method="PUT",
access_entity=DagAccessEntity.TASK_INSTANCE)),
],
+ operation_id="patch_task_instance",
)
@task_instances_router.patch(
task_instances_prefix + "/{task_id}/{map_index}",
@@ -853,6 +858,7 @@ def patch_task_instance_dry_run(
Depends(action_logging()),
Depends(requires_access_dag(method="PUT",
access_entity=DagAccessEntity.TASK_INSTANCE)),
],
+ operation_id="patch_task_instance_by_map_index",
)
def patch_task_instance(
dag_id: str,
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
b/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
index a59e98c888b..b623f927865 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
@@ -921,16 +921,16 @@ export const
UseTaskInstanceServiceGetMappedTaskInstancesKeyFn = (
},
]),
];
-export type TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse =
Awaited<
- ReturnType<typeof TaskInstanceService.getTaskInstanceDependencies>
+export type
TaskInstanceServiceGetTaskInstanceDependenciesByMapIndexDefaultResponse =
Awaited<
+ ReturnType<typeof TaskInstanceService.getTaskInstanceDependenciesByMapIndex>
>;
-export type TaskInstanceServiceGetTaskInstanceDependenciesQueryResult<
- TData = TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse,
+export type
TaskInstanceServiceGetTaskInstanceDependenciesByMapIndexQueryResult<
+ TData =
TaskInstanceServiceGetTaskInstanceDependenciesByMapIndexDefaultResponse,
TError = unknown,
> = UseQueryResult<TData, TError>;
-export const useTaskInstanceServiceGetTaskInstanceDependenciesKey =
- "TaskInstanceServiceGetTaskInstanceDependencies";
-export const UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn = (
+export const useTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKey =
+ "TaskInstanceServiceGetTaskInstanceDependenciesByMapIndex";
+export const UseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKeyFn
= (
{
dagId,
dagRunId,
@@ -944,19 +944,19 @@ export const
UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn = (
},
queryKey?: Array<unknown>,
) => [
- useTaskInstanceServiceGetTaskInstanceDependenciesKey,
+ useTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKey,
...(queryKey ?? [{ dagId, dagRunId, mapIndex, taskId }]),
];
-export type TaskInstanceServiceGetTaskInstanceDependencies1DefaultResponse =
Awaited<
- ReturnType<typeof TaskInstanceService.getTaskInstanceDependencies1>
+export type TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse =
Awaited<
+ ReturnType<typeof TaskInstanceService.getTaskInstanceDependencies>
>;
-export type TaskInstanceServiceGetTaskInstanceDependencies1QueryResult<
- TData = TaskInstanceServiceGetTaskInstanceDependencies1DefaultResponse,
+export type TaskInstanceServiceGetTaskInstanceDependenciesQueryResult<
+ TData = TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse,
TError = unknown,
> = UseQueryResult<TData, TError>;
-export const useTaskInstanceServiceGetTaskInstanceDependencies1Key =
- "TaskInstanceServiceGetTaskInstanceDependencies1";
-export const UseTaskInstanceServiceGetTaskInstanceDependencies1KeyFn = (
+export const useTaskInstanceServiceGetTaskInstanceDependenciesKey =
+ "TaskInstanceServiceGetTaskInstanceDependencies";
+export const UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn = (
{
dagId,
dagRunId,
@@ -970,7 +970,7 @@ export const
UseTaskInstanceServiceGetTaskInstanceDependencies1KeyFn = (
},
queryKey?: Array<unknown>,
) => [
- useTaskInstanceServiceGetTaskInstanceDependencies1Key,
+ useTaskInstanceServiceGetTaskInstanceDependenciesKey,
...(queryKey ?? [{ dagId, dagRunId, mapIndex, taskId }]),
];
export type TaskInstanceServiceGetTaskInstanceTriesDefaultResponse = Awaited<
@@ -1872,15 +1872,15 @@ export type DagServicePatchDagMutationResult =
Awaited<ReturnType<typeof DagServ
export type TaskInstanceServicePatchTaskInstanceMutationResult = Awaited<
ReturnType<typeof TaskInstanceService.patchTaskInstance>
>;
-export type TaskInstanceServicePatchTaskInstance1MutationResult = Awaited<
- ReturnType<typeof TaskInstanceService.patchTaskInstance1>
+export type TaskInstanceServicePatchTaskInstanceByMapIndexMutationResult =
Awaited<
+ ReturnType<typeof TaskInstanceService.patchTaskInstanceByMapIndex>
+>;
+export type TaskInstanceServicePatchTaskInstanceDryRunByMapIndexMutationResult
= Awaited<
+ ReturnType<typeof TaskInstanceService.patchTaskInstanceDryRunByMapIndex>
>;
export type TaskInstanceServicePatchTaskInstanceDryRunMutationResult = Awaited<
ReturnType<typeof TaskInstanceService.patchTaskInstanceDryRun>
>;
-export type TaskInstanceServicePatchTaskInstanceDryRun1MutationResult =
Awaited<
- ReturnType<typeof TaskInstanceService.patchTaskInstanceDryRun1>
->;
export type PoolServicePatchPoolMutationResult = Awaited<ReturnType<typeof
PoolService.patchPool>>;
export type PoolServiceBulkPoolsMutationResult = Awaited<ReturnType<typeof
PoolService.bulkPools>>;
export type XcomServiceUpdateXcomEntryMutationResult = Awaited<
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
b/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
index c97c8ac5c66..fa4c7e0a31d 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/ensureQueryData.ts
@@ -1263,7 +1263,7 @@ export const
ensureUseTaskInstanceServiceGetMappedTaskInstancesData = (
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const ensureUseTaskInstanceServiceGetTaskInstanceDependenciesData = (
+export const
ensureUseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexData = (
queryClient: QueryClient,
{
dagId,
@@ -1278,13 +1278,14 @@ export const
ensureUseTaskInstanceServiceGetTaskInstanceDependenciesData = (
},
) =>
queryClient.ensureQueryData({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn({
+ queryKey:
Common.UseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKeyFn({
dagId,
dagRunId,
mapIndex,
taskId,
}),
- queryFn: () => TaskInstanceService.getTaskInstanceDependencies({ dagId,
dagRunId, mapIndex, taskId }),
+ queryFn: () =>
+ TaskInstanceService.getTaskInstanceDependenciesByMapIndex({ dagId,
dagRunId, mapIndex, taskId }),
});
/**
* Get Task Instance Dependencies
@@ -1297,7 +1298,7 @@ export const
ensureUseTaskInstanceServiceGetTaskInstanceDependenciesData = (
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const ensureUseTaskInstanceServiceGetTaskInstanceDependencies1Data = (
+export const ensureUseTaskInstanceServiceGetTaskInstanceDependenciesData = (
queryClient: QueryClient,
{
dagId,
@@ -1312,13 +1313,13 @@ export const
ensureUseTaskInstanceServiceGetTaskInstanceDependencies1Data = (
},
) =>
queryClient.ensureQueryData({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependencies1KeyFn({
+ queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn({
dagId,
dagRunId,
mapIndex,
taskId,
}),
- queryFn: () => TaskInstanceService.getTaskInstanceDependencies1({ dagId,
dagRunId, mapIndex, taskId }),
+ queryFn: () => TaskInstanceService.getTaskInstanceDependencies({ dagId,
dagRunId, mapIndex, taskId }),
});
/**
* Get Task Instance Tries
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
b/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
index c9f715befa4..191e76bc274 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
@@ -1263,7 +1263,7 @@ export const
prefetchUseTaskInstanceServiceGetMappedTaskInstances = (
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const prefetchUseTaskInstanceServiceGetTaskInstanceDependencies = (
+export const
prefetchUseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndex = (
queryClient: QueryClient,
{
dagId,
@@ -1278,13 +1278,14 @@ export const
prefetchUseTaskInstanceServiceGetTaskInstanceDependencies = (
},
) =>
queryClient.prefetchQuery({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn({
+ queryKey:
Common.UseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKeyFn({
dagId,
dagRunId,
mapIndex,
taskId,
}),
- queryFn: () => TaskInstanceService.getTaskInstanceDependencies({ dagId,
dagRunId, mapIndex, taskId }),
+ queryFn: () =>
+ TaskInstanceService.getTaskInstanceDependenciesByMapIndex({ dagId,
dagRunId, mapIndex, taskId }),
});
/**
* Get Task Instance Dependencies
@@ -1297,7 +1298,7 @@ export const
prefetchUseTaskInstanceServiceGetTaskInstanceDependencies = (
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const prefetchUseTaskInstanceServiceGetTaskInstanceDependencies1 = (
+export const prefetchUseTaskInstanceServiceGetTaskInstanceDependencies = (
queryClient: QueryClient,
{
dagId,
@@ -1312,13 +1313,13 @@ export const
prefetchUseTaskInstanceServiceGetTaskInstanceDependencies1 = (
},
) =>
queryClient.prefetchQuery({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependencies1KeyFn({
+ queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn({
dagId,
dagRunId,
mapIndex,
taskId,
}),
- queryFn: () => TaskInstanceService.getTaskInstanceDependencies1({ dagId,
dagRunId, mapIndex, taskId }),
+ queryFn: () => TaskInstanceService.getTaskInstanceDependencies({ dagId,
dagRunId, mapIndex, taskId }),
});
/**
* Get Task Instance Tries
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
b/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
index 92d6b15d7d8..e1b770b8e7d 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
@@ -1530,8 +1530,8 @@ export const useTaskInstanceServiceGetMappedTaskInstances
= <
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServiceGetTaskInstanceDependencies = <
- TData = Common.TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse,
+export const useTaskInstanceServiceGetTaskInstanceDependenciesByMapIndex = <
+ TData =
Common.TaskInstanceServiceGetTaskInstanceDependenciesByMapIndexDefaultResponse,
TError = unknown,
TQueryKey extends Array<unknown> = unknown[],
>(
@@ -1550,12 +1550,17 @@ export const
useTaskInstanceServiceGetTaskInstanceDependencies = <
options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">,
) =>
useQuery<TData, TError>({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn(
+ queryKey:
Common.UseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKeyFn(
{ dagId, dagRunId, mapIndex, taskId },
queryKey,
),
queryFn: () =>
- TaskInstanceService.getTaskInstanceDependencies({ dagId, dagRunId,
mapIndex, taskId }) as TData,
+ TaskInstanceService.getTaskInstanceDependenciesByMapIndex({
+ dagId,
+ dagRunId,
+ mapIndex,
+ taskId,
+ }) as TData,
...options,
});
/**
@@ -1569,8 +1574,8 @@ export const
useTaskInstanceServiceGetTaskInstanceDependencies = <
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServiceGetTaskInstanceDependencies1 = <
- TData =
Common.TaskInstanceServiceGetTaskInstanceDependencies1DefaultResponse,
+export const useTaskInstanceServiceGetTaskInstanceDependencies = <
+ TData = Common.TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse,
TError = unknown,
TQueryKey extends Array<unknown> = unknown[],
>(
@@ -1589,12 +1594,12 @@ export const
useTaskInstanceServiceGetTaskInstanceDependencies1 = <
options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">,
) =>
useQuery<TData, TError>({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependencies1KeyFn(
+ queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn(
{ dagId, dagRunId, mapIndex, taskId },
queryKey,
),
queryFn: () =>
- TaskInstanceService.getTaskInstanceDependencies1({ dagId, dagRunId,
mapIndex, taskId }) as TData,
+ TaskInstanceService.getTaskInstanceDependencies({ dagId, dagRunId,
mapIndex, taskId }) as TData,
...options,
});
/**
@@ -4063,8 +4068,8 @@ export const useTaskInstanceServicePatchTaskInstance = <
* @returns TaskInstanceCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServicePatchTaskInstance1 = <
- TData = Common.TaskInstanceServicePatchTaskInstance1MutationResult,
+export const useTaskInstanceServicePatchTaskInstanceByMapIndex = <
+ TData = Common.TaskInstanceServicePatchTaskInstanceByMapIndexMutationResult,
TError = unknown,
TContext = unknown,
>(
@@ -4099,7 +4104,7 @@ export const useTaskInstanceServicePatchTaskInstance1 = <
TContext
>({
mutationFn: ({ dagId, dagRunId, mapIndex, requestBody, taskId, updateMask
}) =>
- TaskInstanceService.patchTaskInstance1({
+ TaskInstanceService.patchTaskInstanceByMapIndex({
dagId,
dagRunId,
mapIndex,
@@ -4122,8 +4127,8 @@ export const useTaskInstanceServicePatchTaskInstance1 = <
* @returns TaskInstanceCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServicePatchTaskInstanceDryRun = <
- TData = Common.TaskInstanceServicePatchTaskInstanceDryRunMutationResult,
+export const useTaskInstanceServicePatchTaskInstanceDryRunByMapIndex = <
+ TData =
Common.TaskInstanceServicePatchTaskInstanceDryRunByMapIndexMutationResult,
TError = unknown,
TContext = unknown,
>(
@@ -4158,7 +4163,7 @@ export const
useTaskInstanceServicePatchTaskInstanceDryRun = <
TContext
>({
mutationFn: ({ dagId, dagRunId, mapIndex, requestBody, taskId, updateMask
}) =>
- TaskInstanceService.patchTaskInstanceDryRun({
+ TaskInstanceService.patchTaskInstanceDryRunByMapIndex({
dagId,
dagRunId,
mapIndex,
@@ -4181,8 +4186,8 @@ export const
useTaskInstanceServicePatchTaskInstanceDryRun = <
* @returns TaskInstanceCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServicePatchTaskInstanceDryRun1 = <
- TData = Common.TaskInstanceServicePatchTaskInstanceDryRun1MutationResult,
+export const useTaskInstanceServicePatchTaskInstanceDryRun = <
+ TData = Common.TaskInstanceServicePatchTaskInstanceDryRunMutationResult,
TError = unknown,
TContext = unknown,
>(
@@ -4217,7 +4222,7 @@ export const
useTaskInstanceServicePatchTaskInstanceDryRun1 = <
TContext
>({
mutationFn: ({ dagId, dagRunId, mapIndex, requestBody, taskId, updateMask
}) =>
- TaskInstanceService.patchTaskInstanceDryRun1({
+ TaskInstanceService.patchTaskInstanceDryRun({
dagId,
dagRunId,
mapIndex,
diff --git a/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
b/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
index 00cd46c9d0e..405a2093211 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
@@ -1507,8 +1507,8 @@ export const
useTaskInstanceServiceGetMappedTaskInstancesSuspense = <
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServiceGetTaskInstanceDependenciesSuspense = <
- TData = Common.TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse,
+export const
useTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexSuspense = <
+ TData =
Common.TaskInstanceServiceGetTaskInstanceDependenciesByMapIndexDefaultResponse,
TError = unknown,
TQueryKey extends Array<unknown> = unknown[],
>(
@@ -1527,12 +1527,17 @@ export const
useTaskInstanceServiceGetTaskInstanceDependenciesSuspense = <
options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">,
) =>
useSuspenseQuery<TData, TError>({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn(
+ queryKey:
Common.UseTaskInstanceServiceGetTaskInstanceDependenciesByMapIndexKeyFn(
{ dagId, dagRunId, mapIndex, taskId },
queryKey,
),
queryFn: () =>
- TaskInstanceService.getTaskInstanceDependencies({ dagId, dagRunId,
mapIndex, taskId }) as TData,
+ TaskInstanceService.getTaskInstanceDependenciesByMapIndex({
+ dagId,
+ dagRunId,
+ mapIndex,
+ taskId,
+ }) as TData,
...options,
});
/**
@@ -1546,8 +1551,8 @@ export const
useTaskInstanceServiceGetTaskInstanceDependenciesSuspense = <
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
-export const useTaskInstanceServiceGetTaskInstanceDependencies1Suspense = <
- TData =
Common.TaskInstanceServiceGetTaskInstanceDependencies1DefaultResponse,
+export const useTaskInstanceServiceGetTaskInstanceDependenciesSuspense = <
+ TData = Common.TaskInstanceServiceGetTaskInstanceDependenciesDefaultResponse,
TError = unknown,
TQueryKey extends Array<unknown> = unknown[],
>(
@@ -1566,12 +1571,12 @@ export const
useTaskInstanceServiceGetTaskInstanceDependencies1Suspense = <
options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">,
) =>
useSuspenseQuery<TData, TError>({
- queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependencies1KeyFn(
+ queryKey: Common.UseTaskInstanceServiceGetTaskInstanceDependenciesKeyFn(
{ dagId, dagRunId, mapIndex, taskId },
queryKey,
),
queryFn: () =>
- TaskInstanceService.getTaskInstanceDependencies1({ dagId, dagRunId,
mapIndex, taskId }) as TData,
+ TaskInstanceService.getTaskInstanceDependencies({ dagId, dagRunId,
mapIndex, taskId }) as TData,
...options,
});
/**
diff --git a/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
b/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
index c4c6b7bb544..711c91093d8 100644
--- a/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
+++ b/airflow-core/src/airflow/ui/openapi-gen/requests/services.gen.ts
@@ -118,18 +118,18 @@ import type {
PatchTaskInstanceResponse,
GetMappedTaskInstancesData,
GetMappedTaskInstancesResponse,
+ GetTaskInstanceDependenciesByMapIndexData,
+ GetTaskInstanceDependenciesByMapIndexResponse,
GetTaskInstanceDependenciesData,
GetTaskInstanceDependenciesResponse,
- GetTaskInstanceDependencies1Data,
- GetTaskInstanceDependencies1Response,
GetTaskInstanceTriesData,
GetTaskInstanceTriesResponse,
GetMappedTaskInstanceTriesData,
GetMappedTaskInstanceTriesResponse,
GetMappedTaskInstanceData,
GetMappedTaskInstanceResponse,
- PatchTaskInstance1Data,
- PatchTaskInstance1Response,
+ PatchTaskInstanceByMapIndexData,
+ PatchTaskInstanceByMapIndexResponse,
GetTaskInstancesData,
GetTaskInstancesResponse,
GetTaskInstancesBatchData,
@@ -140,10 +140,10 @@ import type {
GetMappedTaskInstanceTryDetailsResponse,
PostClearTaskInstancesData,
PostClearTaskInstancesResponse,
+ PatchTaskInstanceDryRunByMapIndexData,
+ PatchTaskInstanceDryRunByMapIndexResponse,
PatchTaskInstanceDryRunData,
PatchTaskInstanceDryRunResponse,
- PatchTaskInstanceDryRun1Data,
- PatchTaskInstanceDryRun1Response,
GetLogData,
GetLogResponse,
GetImportErrorData,
@@ -2030,9 +2030,9 @@ export class TaskInstanceService {
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
- public static getTaskInstanceDependencies(
- data: GetTaskInstanceDependenciesData,
- ): CancelablePromise<GetTaskInstanceDependenciesResponse> {
+ public static getTaskInstanceDependenciesByMapIndex(
+ data: GetTaskInstanceDependenciesByMapIndexData,
+ ): CancelablePromise<GetTaskInstanceDependenciesByMapIndexResponse> {
return __request(OpenAPI, {
method: "GET",
url:
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/dependencies",
@@ -2062,9 +2062,9 @@ export class TaskInstanceService {
* @returns TaskDependencyCollectionResponse Successful Response
* @throws ApiError
*/
- public static getTaskInstanceDependencies1(
- data: GetTaskInstanceDependencies1Data,
- ): CancelablePromise<GetTaskInstanceDependencies1Response> {
+ public static getTaskInstanceDependencies(
+ data: GetTaskInstanceDependenciesData,
+ ): CancelablePromise<GetTaskInstanceDependenciesResponse> {
return __request(OpenAPI, {
method: "GET",
url:
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/dependencies",
@@ -2195,9 +2195,9 @@ export class TaskInstanceService {
* @returns TaskInstanceCollectionResponse Successful Response
* @throws ApiError
*/
- public static patchTaskInstance1(
- data: PatchTaskInstance1Data,
- ): CancelablePromise<PatchTaskInstance1Response> {
+ public static patchTaskInstanceByMapIndex(
+ data: PatchTaskInstanceByMapIndexData,
+ ): CancelablePromise<PatchTaskInstanceByMapIndexResponse> {
return __request(OpenAPI, {
method: "PATCH",
url:
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}",
@@ -2440,9 +2440,9 @@ export class TaskInstanceService {
* @returns TaskInstanceCollectionResponse Successful Response
* @throws ApiError
*/
- public static patchTaskInstanceDryRun(
- data: PatchTaskInstanceDryRunData,
- ): CancelablePromise<PatchTaskInstanceDryRunResponse> {
+ public static patchTaskInstanceDryRunByMapIndex(
+ data: PatchTaskInstanceDryRunByMapIndexData,
+ ): CancelablePromise<PatchTaskInstanceDryRunByMapIndexResponse> {
return __request(OpenAPI, {
method: "PATCH",
url:
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/dry_run",
@@ -2480,9 +2480,9 @@ export class TaskInstanceService {
* @returns TaskInstanceCollectionResponse Successful Response
* @throws ApiError
*/
- public static patchTaskInstanceDryRun1(
- data: PatchTaskInstanceDryRun1Data,
- ): CancelablePromise<PatchTaskInstanceDryRun1Response> {
+ public static patchTaskInstanceDryRun(
+ data: PatchTaskInstanceDryRunData,
+ ): CancelablePromise<PatchTaskInstanceDryRunResponse> {
return __request(OpenAPI, {
method: "PATCH",
url:
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/dry_run",
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 6348899d0f9..ba8bbb28d2d 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
@@ -2236,23 +2236,23 @@ export type GetMappedTaskInstancesData = {
export type GetMappedTaskInstancesResponse = TaskInstanceCollectionResponse;
-export type GetTaskInstanceDependenciesData = {
+export type GetTaskInstanceDependenciesByMapIndexData = {
dagId: string;
dagRunId: string;
mapIndex: number;
taskId: string;
};
-export type GetTaskInstanceDependenciesResponse =
TaskDependencyCollectionResponse;
+export type GetTaskInstanceDependenciesByMapIndexResponse =
TaskDependencyCollectionResponse;
-export type GetTaskInstanceDependencies1Data = {
+export type GetTaskInstanceDependenciesData = {
dagId: string;
dagRunId: string;
mapIndex?: number;
taskId: string;
};
-export type GetTaskInstanceDependencies1Response =
TaskDependencyCollectionResponse;
+export type GetTaskInstanceDependenciesResponse =
TaskDependencyCollectionResponse;
export type GetTaskInstanceTriesData = {
dagId: string;
@@ -2281,7 +2281,7 @@ export type GetMappedTaskInstanceData = {
export type GetMappedTaskInstanceResponse = TaskInstanceResponse;
-export type PatchTaskInstance1Data = {
+export type PatchTaskInstanceByMapIndexData = {
dagId: string;
dagRunId: string;
mapIndex: number | null;
@@ -2290,7 +2290,7 @@ export type PatchTaskInstance1Data = {
updateMask?: Array<string> | null;
};
-export type PatchTaskInstance1Response = TaskInstanceCollectionResponse;
+export type PatchTaskInstanceByMapIndexResponse =
TaskInstanceCollectionResponse;
export type GetTaskInstancesData = {
dagId: string;
@@ -2356,7 +2356,7 @@ export type PostClearTaskInstancesData = {
export type PostClearTaskInstancesResponse = TaskInstanceCollectionResponse;
-export type PatchTaskInstanceDryRunData = {
+export type PatchTaskInstanceDryRunByMapIndexData = {
dagId: string;
dagRunId: string;
mapIndex: number | null;
@@ -2365,9 +2365,9 @@ export type PatchTaskInstanceDryRunData = {
updateMask?: Array<string> | null;
};
-export type PatchTaskInstanceDryRunResponse = TaskInstanceCollectionResponse;
+export type PatchTaskInstanceDryRunByMapIndexResponse =
TaskInstanceCollectionResponse;
-export type PatchTaskInstanceDryRun1Data = {
+export type PatchTaskInstanceDryRunData = {
dagId: string;
dagRunId: string;
mapIndex?: number | null;
@@ -2376,7 +2376,7 @@ export type PatchTaskInstanceDryRun1Data = {
updateMask?: Array<string> | null;
};
-export type PatchTaskInstanceDryRun1Response = TaskInstanceCollectionResponse;
+export type PatchTaskInstanceDryRunResponse = TaskInstanceCollectionResponse;
export type GetLogData = {
accept?: "application/json" | "text/plain" | "*/*";
@@ -4258,7 +4258,7 @@ export type $OpenApiTs = {
};
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/dependencies":
{
get: {
- req: GetTaskInstanceDependenciesData;
+ req: GetTaskInstanceDependenciesByMapIndexData;
res: {
/**
* Successful Response
@@ -4285,7 +4285,7 @@ export type $OpenApiTs = {
};
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/dependencies":
{
get: {
- req: GetTaskInstanceDependencies1Data;
+ req: GetTaskInstanceDependenciesData;
res: {
/**
* Successful Response
@@ -4391,7 +4391,7 @@ export type $OpenApiTs = {
};
};
patch: {
- req: PatchTaskInstance1Data;
+ req: PatchTaskInstanceByMapIndexData;
res: {
/**
* Successful Response
@@ -4561,7 +4561,7 @@ export type $OpenApiTs = {
};
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/{map_index}/dry_run":
{
patch: {
- req: PatchTaskInstanceDryRunData;
+ req: PatchTaskInstanceDryRunByMapIndexData;
res: {
/**
* Successful Response
@@ -4592,7 +4592,7 @@ export type $OpenApiTs = {
};
"/api/v2/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/dry_run": {
patch: {
- req: PatchTaskInstanceDryRun1Data;
+ req: PatchTaskInstanceDryRunData;
res: {
/**
* Successful Response
diff --git a/scripts/in_container/run_update_fastapi_api_spec.py
b/scripts/in_container/run_update_fastapi_api_spec.py
index 8e4b18fc0ed..1dd692280c4 100755
--- a/scripts/in_container/run_update_fastapi_api_spec.py
+++ b/scripts/in_container/run_update_fastapi_api_spec.py
@@ -17,12 +17,14 @@
# under the License.
from __future__ import annotations
+import sys
from pathlib import Path
from typing import TYPE_CHECKING
import yaml
from fastapi.openapi.utils import get_openapi
from fastapi.routing import APIRoute
+from openapi_spec_validator import validate_spec
from airflow.api_fastapi.app import AUTH_MANAGER_FASTAPI_APP_PREFIX, create_app
from airflow.api_fastapi.auth.managers.simple import __file__ as
SIMPLE_AUTH_MANAGER_PATH
@@ -73,9 +75,23 @@ def generate_file(app: FastAPI, file_path: Path, prefix: str
= "", only_ui: bool
)
+def validate_openapi_file(file_path: Path) -> bool:
+ with file_path.open() as f:
+ openapi_schema = yaml.safe_load(f)
+ try:
+ validate_spec(openapi_schema)
+ except Exception as e:
+ print(f"[ERROR] OpenAPI validation failed for {file_path}: {e}",
file=sys.stderr)
+ sys.exit(1)
+ return True
+
+
# Generate main application openapi spec
generate_file(app=create_app(), file_path=OPENAPI_SPEC_FILE)
+validate_openapi_file(OPENAPI_SPEC_FILE)
+
generate_file(app=create_app(), file_path=OPENAPI_UI_SPEC_FILE, only_ui=True)
+validate_openapi_file(OPENAPI_UI_SPEC_FILE)
# Generate simple auth manager openapi spec
simple_auth_manager_app = SimpleAuthManager().get_fastapi_app()
@@ -85,8 +101,10 @@ if simple_auth_manager_app:
file_path=SIMPLE_AUTH_MANAGER_OPENAPI_SPEC_FILE,
prefix=AUTH_MANAGER_FASTAPI_APP_PREFIX,
)
+ validate_openapi_file(SIMPLE_AUTH_MANAGER_OPENAPI_SPEC_FILE)
# Generate FAB auth manager openapi spec
fab_auth_manager_app = FabAuthManager().get_fastapi_app()
if fab_auth_manager_app:
generate_file(app=fab_auth_manager_app,
file_path=FAB_AUTH_MANAGER_OPENAPI_SPEC_FILE)
+ validate_openapi_file(FAB_AUTH_MANAGER_OPENAPI_SPEC_FILE)