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
Original file line number Diff line number Diff line change
Expand Up @@ -1223,6 +1223,32 @@ paths:
title: Triggering User Prefix
description: Case-sensitive, index-friendly prefix match. See "Filtering with
pattern parameters".
- name: run_id_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: "Case-insensitive substring match (SQL `ILIKE`). Slower than\
\ `run_id_prefix_pattern` on large tables \u2014 see \"Filtering with\
\ pattern parameters\"."
title: Run Id Pattern
description: "Case-insensitive substring match (SQL `ILIKE`). Slower than\
\ `run_id_prefix_pattern` on large tables \u2014 see \"Filtering with pattern\
\ parameters\"."
- name: run_id_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering
with pattern parameters".
title: Run Id Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with
pattern parameters".
responses:
'200':
description: Successful Response
Expand Down Expand Up @@ -1378,6 +1404,32 @@ paths:
title: Triggering User Prefix
description: Case-sensitive, index-friendly prefix match. See "Filtering with
pattern parameters".
- name: run_id_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: "Case-insensitive substring match (SQL `ILIKE`). Slower than\
\ `run_id_prefix_pattern` on large tables \u2014 see \"Filtering with\
\ pattern parameters\"."
title: Run Id Pattern
description: "Case-insensitive substring match (SQL `ILIKE`). Slower than\
\ `run_id_prefix_pattern` on large tables \u2014 see \"Filtering with pattern\
\ parameters\"."
- name: run_id_prefix_pattern
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Case-sensitive, index-friendly prefix match. See "Filtering
with pattern parameters".
title: Run Id Prefix Pattern
description: Case-sensitive, index-friendly prefix match. See "Filtering with
pattern parameters".
responses:
'200':
description: Successful Response
Expand Down
34 changes: 32 additions & 2 deletions airflow-core/src/airflow/api_fastapi/core_api/routes/ui/grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,11 @@
QueryOffset,
RangeFilter,
SortParam,
_PrefixSearchParam,
_SearchParam,
datetime_range_filter_factory,
prefix_search_param_factory,
search_param_factory,
)
from airflow.api_fastapi.common.router import AirflowRouter
from airflow.api_fastapi.core_api.datamodels.ui.common import (
Expand Down Expand Up @@ -144,6 +148,11 @@ def get_dag_structure(
state: QueryDagRunStateFilter,
triggering_user: QueryDagRunTriggeringUserSearch,
triggering_user_prefix: QueryDagRunTriggeringUserPrefixSearch,
run_id_pattern: Annotated[_SearchParam, Depends(search_param_factory(DagRun.run_id, "run_id_pattern"))],
run_id_prefix_pattern: Annotated[
_PrefixSearchParam,
Depends(prefix_search_param_factory(DagRun.run_id, "run_id_prefix_pattern")),
],
include_upstream: QueryIncludeUpstream = False,
include_downstream: QueryIncludeDownstream = False,
depth: int | None = None,
Expand Down Expand Up @@ -177,7 +186,15 @@ def get_dag_structure(
statement=base_query,
order_by=order_by,
offset=offset,
filters=[run_after, run_type, state, triggering_user, triggering_user_prefix],
filters=[
run_after,
run_type,
state,
triggering_user,
triggering_user_prefix,
run_id_pattern,
run_id_prefix_pattern,
],
limit=limit,
)
run_ids = list(session.scalars(dag_runs_select_filter))
Expand Down Expand Up @@ -282,6 +299,11 @@ def get_grid_runs(
state: QueryDagRunStateFilter,
triggering_user: QueryDagRunTriggeringUserSearch,
triggering_user_prefix: QueryDagRunTriggeringUserPrefixSearch,
run_id_pattern: Annotated[_SearchParam, Depends(search_param_factory(DagRun.run_id, "run_id_pattern"))],
run_id_prefix_pattern: Annotated[
_PrefixSearchParam,
Depends(prefix_search_param_factory(DagRun.run_id, "run_id_prefix_pattern")),
],
) -> list[GridRunsResponse]:
"""Get info about a run for the grid."""
# Retrieve, sort the previous Dag Runs
Expand Down Expand Up @@ -324,7 +346,15 @@ def get_grid_runs(
statement=base_query,
order_by=order_by,
offset=offset,
filters=[run_after, run_type, state, triggering_user, triggering_user_prefix],
filters=[
run_after,
run_type,
state,
triggering_user,
triggering_user_prefix,
run_id_pattern,
run_id_prefix_pattern,
],
limit=limit,
return_total_entries=False,
)
Expand Down
12 changes: 8 additions & 4 deletions airflow-core/src/airflow/ui/openapi-gen/queries/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -975,7 +975,7 @@ export const UseStructureServiceStructureDataKeyFn = ({ dagId, depth, externalDe
export type GridServiceGetDagStructureDefaultResponse = Awaited<ReturnType<typeof GridService.getDagStructure>>;
export type GridServiceGetDagStructureQueryResult<TData = GridServiceGetDagStructureDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>;
export const useGridServiceGetDagStructureKey = "GridServiceGetDagStructure";
export const UseGridServiceGetDagStructureKeyFn = ({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }: {
export const UseGridServiceGetDagStructureKeyFn = ({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }: {
dagId: string;
depth?: number;
includeDownstream?: boolean;
Expand All @@ -988,15 +988,17 @@ export const UseGridServiceGetDagStructureKeyFn = ({ dagId, depth, includeDownst
runAfterGte?: string;
runAfterLt?: string;
runAfterLte?: string;
runIdPattern?: string;
runIdPrefixPattern?: string;
runType?: string[];
state?: string[];
triggeringUser?: string;
triggeringUserPrefix?: string;
}, queryKey?: Array<unknown>) => [useGridServiceGetDagStructureKey, ...(queryKey ?? [{ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }])];
}, queryKey?: Array<unknown>) => [useGridServiceGetDagStructureKey, ...(queryKey ?? [{ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }])];
export type GridServiceGetGridRunsDefaultResponse = Awaited<ReturnType<typeof GridService.getGridRuns>>;
export type GridServiceGetGridRunsQueryResult<TData = GridServiceGetGridRunsDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>;
export const useGridServiceGetGridRunsKey = "GridServiceGetGridRuns";
export const UseGridServiceGetGridRunsKeyFn = ({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }: {
export const UseGridServiceGetGridRunsKeyFn = ({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }: {
dagId: string;
limit?: number;
offset?: number;
Expand All @@ -1005,11 +1007,13 @@ export const UseGridServiceGetGridRunsKeyFn = ({ dagId, limit, offset, orderBy,
runAfterGte?: string;
runAfterLt?: string;
runAfterLte?: string;
runIdPattern?: string;
runIdPrefixPattern?: string;
runType?: string[];
state?: string[];
triggeringUser?: string;
triggeringUserPrefix?: string;
}, queryKey?: Array<unknown>) => [useGridServiceGetGridRunsKey, ...(queryKey ?? [{ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }])];
}, queryKey?: Array<unknown>) => [useGridServiceGetGridRunsKey, ...(queryKey ?? [{ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }])];
export type GridServiceGetGridTiSummariesStreamDefaultResponse = Awaited<ReturnType<typeof GridService.getGridTiSummariesStream>>;
export type GridServiceGetGridTiSummariesStreamQueryResult<TData = GridServiceGetGridTiSummariesStreamDefaultResponse, TError = unknown> = UseQueryResult<TData, TError>;
export const useGridServiceGetGridTiSummariesStreamKey = "GridServiceGetGridTiSummariesStream";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1890,10 +1890,12 @@ export const ensureUseStructureServiceStructureDataData = (queryClient: QueryCli
* @param data.state
* @param data.triggeringUser Case-insensitive substring match (SQL `ILIKE`). Slower than `triggering_user` on large tables — see "Filtering with pattern parameters".
* @param data.triggeringUserPrefix Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @param data.runIdPattern Case-insensitive substring match (SQL `ILIKE`). Slower than `run_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
* @param data.runIdPrefixPattern Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @returns GridNodeResponse Successful Response
* @throws ApiError
*/
export const ensureUseGridServiceGetDagStructureData = (queryClient: QueryClient, { dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }: {
export const ensureUseGridServiceGetDagStructureData = (queryClient: QueryClient, { dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }: {
dagId: string;
depth?: number;
includeDownstream?: boolean;
Expand All @@ -1906,11 +1908,13 @@ export const ensureUseGridServiceGetDagStructureData = (queryClient: QueryClient
runAfterGte?: string;
runAfterLt?: string;
runAfterLte?: string;
runIdPattern?: string;
runIdPrefixPattern?: string;
runType?: string[];
state?: string[];
triggeringUser?: string;
triggeringUserPrefix?: string;
}) => queryClient.ensureQueryData({ queryKey: Common.UseGridServiceGetDagStructureKeyFn({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getDagStructure({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }) });
}) => queryClient.ensureQueryData({ queryKey: Common.UseGridServiceGetDagStructureKeyFn({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getDagStructure({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }) });
/**
* Get Grid Runs
* Get info about a run for the grid.
Expand All @@ -1927,10 +1931,12 @@ export const ensureUseGridServiceGetDagStructureData = (queryClient: QueryClient
* @param data.state
* @param data.triggeringUser Case-insensitive substring match (SQL `ILIKE`). Slower than `triggering_user` on large tables — see "Filtering with pattern parameters".
* @param data.triggeringUserPrefix Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @param data.runIdPattern Case-insensitive substring match (SQL `ILIKE`). Slower than `run_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
* @param data.runIdPrefixPattern Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @returns GridRunsResponse Successful Response
* @throws ApiError
*/
export const ensureUseGridServiceGetGridRunsData = (queryClient: QueryClient, { dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }: {
export const ensureUseGridServiceGetGridRunsData = (queryClient: QueryClient, { dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }: {
dagId: string;
limit?: number;
offset?: number;
Expand All @@ -1939,11 +1945,13 @@ export const ensureUseGridServiceGetGridRunsData = (queryClient: QueryClient, {
runAfterGte?: string;
runAfterLt?: string;
runAfterLte?: string;
runIdPattern?: string;
runIdPrefixPattern?: string;
runType?: string[];
state?: string[];
triggeringUser?: string;
triggeringUserPrefix?: string;
}) => queryClient.ensureQueryData({ queryKey: Common.UseGridServiceGetGridRunsKeyFn({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getGridRuns({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }) });
}) => queryClient.ensureQueryData({ queryKey: Common.UseGridServiceGetGridRunsKeyFn({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getGridRuns({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }) });
/**
* Get Grid Ti Summaries Stream
* Stream TI summaries for multiple Dag runs as NDJSON (one JSON line per run).
Expand Down
16 changes: 12 additions & 4 deletions airflow-core/src/airflow/ui/openapi-gen/queries/prefetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1890,10 +1890,12 @@ export const prefetchUseStructureServiceStructureData = (queryClient: QueryClien
* @param data.state
* @param data.triggeringUser Case-insensitive substring match (SQL `ILIKE`). Slower than `triggering_user` on large tables — see "Filtering with pattern parameters".
* @param data.triggeringUserPrefix Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @param data.runIdPattern Case-insensitive substring match (SQL `ILIKE`). Slower than `run_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
* @param data.runIdPrefixPattern Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @returns GridNodeResponse Successful Response
* @throws ApiError
*/
export const prefetchUseGridServiceGetDagStructure = (queryClient: QueryClient, { dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }: {
export const prefetchUseGridServiceGetDagStructure = (queryClient: QueryClient, { dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }: {
dagId: string;
depth?: number;
includeDownstream?: boolean;
Expand All @@ -1906,11 +1908,13 @@ export const prefetchUseGridServiceGetDagStructure = (queryClient: QueryClient,
runAfterGte?: string;
runAfterLt?: string;
runAfterLte?: string;
runIdPattern?: string;
runIdPrefixPattern?: string;
runType?: string[];
state?: string[];
triggeringUser?: string;
triggeringUserPrefix?: string;
}) => queryClient.prefetchQuery({ queryKey: Common.UseGridServiceGetDagStructureKeyFn({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getDagStructure({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }) });
}) => queryClient.prefetchQuery({ queryKey: Common.UseGridServiceGetDagStructureKeyFn({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getDagStructure({ dagId, depth, includeDownstream, includeUpstream, limit, offset, orderBy, root, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }) });
/**
* Get Grid Runs
* Get info about a run for the grid.
Expand All @@ -1927,10 +1931,12 @@ export const prefetchUseGridServiceGetDagStructure = (queryClient: QueryClient,
* @param data.state
* @param data.triggeringUser Case-insensitive substring match (SQL `ILIKE`). Slower than `triggering_user` on large tables — see "Filtering with pattern parameters".
* @param data.triggeringUserPrefix Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @param data.runIdPattern Case-insensitive substring match (SQL `ILIKE`). Slower than `run_id_prefix_pattern` on large tables — see "Filtering with pattern parameters".
* @param data.runIdPrefixPattern Case-sensitive, index-friendly prefix match. See "Filtering with pattern parameters".
* @returns GridRunsResponse Successful Response
* @throws ApiError
*/
export const prefetchUseGridServiceGetGridRuns = (queryClient: QueryClient, { dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }: {
export const prefetchUseGridServiceGetGridRuns = (queryClient: QueryClient, { dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }: {
dagId: string;
limit?: number;
offset?: number;
Expand All @@ -1939,11 +1945,13 @@ export const prefetchUseGridServiceGetGridRuns = (queryClient: QueryClient, { da
runAfterGte?: string;
runAfterLt?: string;
runAfterLte?: string;
runIdPattern?: string;
runIdPrefixPattern?: string;
runType?: string[];
state?: string[];
triggeringUser?: string;
triggeringUserPrefix?: string;
}) => queryClient.prefetchQuery({ queryKey: Common.UseGridServiceGetGridRunsKeyFn({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getGridRuns({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runType, state, triggeringUser, triggeringUserPrefix }) });
}) => queryClient.prefetchQuery({ queryKey: Common.UseGridServiceGetGridRunsKeyFn({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }), queryFn: () => GridService.getGridRuns({ dagId, limit, offset, orderBy, runAfterGt, runAfterGte, runAfterLt, runAfterLte, runIdPattern, runIdPrefixPattern, runType, state, triggeringUser, triggeringUserPrefix }) });
/**
* Get Grid Ti Summaries Stream
* Stream TI summaries for multiple Dag runs as NDJSON (one JSON line per run).
Expand Down
Loading
Loading