Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions airflow-core/src/airflow/api_fastapi/common/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -853,3 +853,23 @@ def _optional_boolean(value: bool | None) -> bool | None:
)
),
]
QueryHITLDetailDagIdFilter = Annotated[
FilterParam[str | None],
Depends(
filter_param_factory(
TaskInstance.dag_id,
str | None,
filter_name="dag_id",
)
),
]
QueryHITLDetailTaskIdFilter = Annotated[
FilterParam[str | None],
Depends(
filter_param_factory(
TaskInstance.task_id,
str | None,
filter_name="task_id",
)
),
]
Original file line number Diff line number Diff line change
Expand Up @@ -7614,6 +7614,14 @@ paths:
default:
- ti_id
title: Order By
- name: dag_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Dag Id
- name: dag_id_pattern
in: query
required: false
Expand All @@ -7632,6 +7640,14 @@ paths:
schema:
type: string
title: Dag Run Id
- name: task_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Task Id
- name: task_id_pattern
in: query
required: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
from airflow.api_fastapi.common.db.common import SessionDep, paginated_select
from airflow.api_fastapi.common.parameters import (
QueryHITLDetailBodySearch,
QueryHITLDetailDagIdFilter,
QueryHITLDetailDagIdPatternSearch,
QueryHITLDetailDagRunIdFilter,
QueryHITLDetailResponseReceivedFilter,
QueryHITLDetailSubjectSearch,
QueryHITLDetailTaskIdFilter,
QueryHITLDetailTaskIdPatternSearch,
QueryHITLDetailUserIdFilter,
QueryLimit,
Expand Down Expand Up @@ -301,9 +303,11 @@ def get_hitl_details(
session: SessionDep,
# ti related filter
readable_ti_filter: ReadableTIFilterDep,
dag_id: QueryHITLDetailDagIdFilter,
dag_id_pattern: QueryHITLDetailDagIdPatternSearch,
dag_run_id: QueryHITLDetailDagRunIdFilter,
task_id: QueryHITLDetailTaskIdPatternSearch,
task_id: QueryHITLDetailTaskIdFilter,
task_id_pattern: QueryHITLDetailTaskIdPatternSearch,
ti_state: QueryTIStateFilter,
# hitl detail related filter
response_received: QueryHITLDetailResponseReceivedFilter,
Expand All @@ -322,9 +326,11 @@ def get_hitl_details(
filters=[
# ti related filter
readable_ti_filter,
dag_id,
dag_id_pattern,
dag_run_id,
task_id,
task_id_pattern,
ti_state,
# hitl detail related filter
response_received,
Expand Down
6 changes: 4 additions & 2 deletions airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -651,8 +651,9 @@ export const UseHumanInTheLoopServiceGetMappedTiHitlDetailKeyFn = ({ dagId, dagR
export type HumanInTheLoopServiceGetHitlDetailsDefaultResponse = Awaited<ReturnType<typeof HumanInTheLoopService.getHitlDetails>>;
export type HumanInTheLoopServiceGetHitlDetailsQueryResult<TData = HumanInTheLoopServiceGetHitlDetailsDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>;
export const useHumanInTheLoopServiceGetHitlDetailsKey = "HumanInTheLoopServiceGetHitlDetails";
export const UseHumanInTheLoopServiceGetHitlDetailsKeyFn = ({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }: {
export const UseHumanInTheLoopServiceGetHitlDetailsKeyFn = ({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }: {
bodySearch?: string;
dagId?: string;
dagIdPattern?: string;
dagRunId?: string;
limit?: number;
Expand All @@ -661,9 +662,10 @@ export const UseHumanInTheLoopServiceGetHitlDetailsKeyFn = ({ bodySearch, dagIdP
responseReceived?: boolean;
state?: string[];
subjectSearch?: string;
taskId?: string;
taskIdPattern?: string;
userId?: string[];
} = {}, queryKey?: Array<unknown>) => [useHumanInTheLoopServiceGetHitlDetailsKey, ...(queryKey ?? [{ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }])];
} = {}, queryKey?: Array<unknown>) => [useHumanInTheLoopServiceGetHitlDetailsKey, ...(queryKey ?? [{ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }])];
export type MonitorServiceGetHealthDefaultResponse = Awaited<ReturnType<typeof MonitorService.getHealth>>;
export type MonitorServiceGetHealthQueryResult<TData = MonitorServiceGetHealthDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>;
export const useMonitorServiceGetHealthKey = "MonitorServiceGetHealth";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1231,8 +1231,10 @@ export const ensureUseHumanInTheLoopServiceGetMappedTiHitlDetailData = (queryCli
* @param data.limit
* @param data.offset
* @param data.orderBy
* @param data.dagId
* @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.dagRunId
* @param data.taskId
* @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.state
* @param data.responseReceived
Expand All @@ -1242,8 +1244,9 @@ export const ensureUseHumanInTheLoopServiceGetMappedTiHitlDetailData = (queryCli
* @returns HITLDetailCollection Successful Response
* @throws ApiError
*/
export const ensureUseHumanInTheLoopServiceGetHitlDetailsData = (queryClient: QueryClient, { bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }: {
export const ensureUseHumanInTheLoopServiceGetHitlDetailsData = (queryClient: QueryClient, { bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }: {
bodySearch?: string;
dagId?: string;
dagIdPattern?: string;
dagRunId?: string;
limit?: number;
Expand All @@ -1252,9 +1255,10 @@ export const ensureUseHumanInTheLoopServiceGetHitlDetailsData = (queryClient: Qu
responseReceived?: boolean;
state?: string[];
subjectSearch?: string;
taskId?: string;
taskIdPattern?: string;
userId?: string[];
} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }) });
} = {}) => queryClient.ensureQueryData({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }) });
/**
* Get Health
* @returns HealthInfoResponse Successful Response
Expand Down
8 changes: 6 additions & 2 deletions airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1231,8 +1231,10 @@ export const prefetchUseHumanInTheLoopServiceGetMappedTiHitlDetail = (queryClien
* @param data.limit
* @param data.offset
* @param data.orderBy
* @param data.dagId
* @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.dagRunId
* @param data.taskId
* @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.state
* @param data.responseReceived
Expand All @@ -1242,8 +1244,9 @@ export const prefetchUseHumanInTheLoopServiceGetMappedTiHitlDetail = (queryClien
* @returns HITLDetailCollection Successful Response
* @throws ApiError
*/
export const prefetchUseHumanInTheLoopServiceGetHitlDetails = (queryClient: QueryClient, { bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }: {
export const prefetchUseHumanInTheLoopServiceGetHitlDetails = (queryClient: QueryClient, { bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }: {
bodySearch?: string;
dagId?: string;
dagIdPattern?: string;
dagRunId?: string;
limit?: number;
Expand All @@ -1252,9 +1255,10 @@ export const prefetchUseHumanInTheLoopServiceGetHitlDetails = (queryClient: Quer
responseReceived?: boolean;
state?: string[];
subjectSearch?: string;
taskId?: string;
taskIdPattern?: string;
userId?: string[];
} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }) });
} = {}) => queryClient.prefetchQuery({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }) });
/**
* Get Health
* @returns HealthInfoResponse Successful Response
Expand Down
8 changes: 6 additions & 2 deletions airflow-core/src/airflow/ui/openapi-gen/queries/queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1231,8 +1231,10 @@ export const useHumanInTheLoopServiceGetMappedTiHitlDetail = <TData = Common.Hum
* @param data.limit
* @param data.offset
* @param data.orderBy
* @param data.dagId
* @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.dagRunId
* @param data.taskId
* @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.state
* @param data.responseReceived
Expand All @@ -1242,8 +1244,9 @@ export const useHumanInTheLoopServiceGetMappedTiHitlDetail = <TData = Common.Hum
* @returns HITLDetailCollection Successful Response
* @throws ApiError
*/
export const useHumanInTheLoopServiceGetHitlDetails = <TData = Common.HumanInTheLoopServiceGetHitlDetailsDefaultResponse, TError = unknown, TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }: {
export const useHumanInTheLoopServiceGetHitlDetails = <TData = Common.HumanInTheLoopServiceGetHitlDetailsDefaultResponse, TError = unknown, TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }: {
bodySearch?: string;
dagId?: string;
dagIdPattern?: string;
dagRunId?: string;
limit?: number;
Expand All @@ -1252,9 +1255,10 @@ export const useHumanInTheLoopServiceGetHitlDetails = <TData = Common.HumanInThe
responseReceived?: boolean;
state?: string[];
subjectSearch?: string;
taskId?: string;
taskIdPattern?: string;
userId?: string[];
} = {}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">) => useQuery<TData, TError>({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }, queryKey), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }) as TData, ...options });
} = {}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">) => useQuery<TData, TError>({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }, queryKey), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }) as TData, ...options });
/**
* Get Health
* @returns HealthInfoResponse Successful Response
Expand Down
8 changes: 6 additions & 2 deletions airflow-core/src/airflow/ui/openapi-gen/queries/suspense.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1231,8 +1231,10 @@ export const useHumanInTheLoopServiceGetMappedTiHitlDetailSuspense = <TData = Co
* @param data.limit
* @param data.offset
* @param data.orderBy
* @param data.dagId
* @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.dagRunId
* @param data.taskId
* @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.state
* @param data.responseReceived
Expand All @@ -1242,8 +1244,9 @@ export const useHumanInTheLoopServiceGetMappedTiHitlDetailSuspense = <TData = Co
* @returns HITLDetailCollection Successful Response
* @throws ApiError
*/
export const useHumanInTheLoopServiceGetHitlDetailsSuspense = <TData = Common.HumanInTheLoopServiceGetHitlDetailsDefaultResponse, TError = unknown, TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }: {
export const useHumanInTheLoopServiceGetHitlDetailsSuspense = <TData = Common.HumanInTheLoopServiceGetHitlDetailsDefaultResponse, TError = unknown, TQueryKey extends Array<unknown> = unknown[]>({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }: {
bodySearch?: string;
dagId?: string;
dagIdPattern?: string;
dagRunId?: string;
limit?: number;
Expand All @@ -1252,9 +1255,10 @@ export const useHumanInTheLoopServiceGetHitlDetailsSuspense = <TData = Common.Hu
responseReceived?: boolean;
state?: string[];
subjectSearch?: string;
taskId?: string;
taskIdPattern?: string;
userId?: string[];
} = {}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">) => useSuspenseQuery<TData, TError>({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }, queryKey), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskIdPattern, userId }) as TData, ...options });
} = {}, queryKey?: TQueryKey, options?: Omit<UseQueryOptions<TData, TError>, "queryKey" | "queryFn">) => useSuspenseQuery<TData, TError>({ queryKey: Common.UseHumanInTheLoopServiceGetHitlDetailsKeyFn({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }, queryKey), queryFn: () => HumanInTheLoopService.getHitlDetails({ bodySearch, dagId, dagIdPattern, dagRunId, limit, offset, orderBy, responseReceived, state, subjectSearch, taskId, taskIdPattern, userId }) as TData, ...options });
/**
* Get Health
* @returns HealthInfoResponse Successful Response
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3524,8 +3524,10 @@ export class HumanInTheLoopService {
* @param data.limit
* @param data.offset
* @param data.orderBy
* @param data.dagId
* @param data.dagIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.dagRunId
* @param data.taskId
* @param data.taskIdPattern SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
* @param data.state
* @param data.responseReceived
Expand All @@ -3543,8 +3545,10 @@ export class HumanInTheLoopService {
limit: data.limit,
offset: data.offset,
order_by: data.orderBy,
dag_id: data.dagId,
dag_id_pattern: data.dagIdPattern,
dag_run_id: data.dagRunId,
task_id: data.taskId,
task_id_pattern: data.taskIdPattern,
state: data.state,
response_received: data.responseReceived,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2953,6 +2953,7 @@ export type GetHitlDetailsData = {
* SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
*/
bodySearch?: string | null;
dagId?: string | null;
/**
* SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
*/
Expand All @@ -2967,6 +2968,7 @@ export type GetHitlDetailsData = {
* SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
*/
subjectSearch?: string | null;
taskId?: string | null;
/**
* SQL LIKE expression — use `%` / `_` wildcards (e.g. `%customer_%`). Regular expressions are **not** supported.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,9 @@ def test_should_respond_200_with_existing_response(
# ti related filter
({"dag_id_pattern": "hitl_dag"}, 5),
({"dag_id_pattern": "other_Dag_"}, 3),
({"dag_id": "hitl_dag_0"}, 1),
({"dag_run_id": "hitl_run_0"}, 1),
({"task_id": "hitl_task_0"}, 1),
({"task_id_pattern": "another_hitl"}, 3),
({"state": "running"}, 5),
({"state": "success"}, 3),
Expand All @@ -499,9 +501,11 @@ def test_should_respond_200_with_existing_response(
({"user_id": ["test"]}, 3),
],
ids=[
"dag_id_hitl_dag",
"dag_id_other_dag",
"dag_id_pattern_hitl_dag",
"dag_id_pattern_other_dag",
"dag_id",
"dag_run_id",
"task_id_pattern",
"task_id",
"ti_state_running",
"ti_state_success",
Expand Down
Loading