This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/npm_and_yarn/providers/fab/src/airflow/providers/fab/www/fab-ui-package-updates-f26018eb09
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit cced2eea722 Bump the fab-ui-package-updates group across 1 directory
with 4 updates
add 5d70b49e9ea UI: Label the Dag bundle file table as Parsed Files and
say what it lists (#76462)
add 240e6eed65c Parametrize GCS-to-GCS wildcard and retention tests.
(#76094)
add d07cb5f727d Fix airflowctl backfill create-dry-run printing one
all-null row (#76224)
add 7b00cf0835a Add GET /triggers to list every trigger of every kind and
its status (#76260)
add 596dd41485c Stop airflowctl sending an old token to a new API URL
(#76287)
add 6920d2c25f4 Escape Rich markup in airflowctl variable and pool
commands (#76419)
add 6f2de5abe97 add stephen-bracken to fork-ci-gate (#76316)
add 0ae09c32182 Install apt-utils matching the image's apt on hardened
images (#76484)
add b2f327748b8 Restore default ELK node placement in Graph view (#76488)
add 1b792598b6d Support native asset partitions in watcher events (#74852)
add 953d7ff3d6a Hide "View error" on bundle files the user cannot read
(#76479)
add 6858cb6c3a2 Refresh expired AWS credentials in AwsDuckDBHook (#76086)
add f05c32e10e1 Lower severity of handled XCom misses (#73198)
add 94018444cdf Ship the Dag bundle permission in Airflow 3.4.1 (#76474)
add 9391e6a7a48 Remove machine-global pnpm config causing .pnpm-store dir
to be created in places (#76498)
add c52946c9c9c Clarify Dag bundle permission upgrade notes (#76499)
add a1be2c1ce30 Fix Google Cloud connection IdP extra request parameters
being ignored (#76161)
add 494f65e0f68 Fix async engine datetimes being shifted on non-UTC MySQL
servers (#76505)
add 8ee215945aa Apply timeout_seconds and connection proxies to dbt Cloud
sync requests (#74684)
add 0d5f53297a0 Add unit tests for Dataproc, GKE and Translate provider
links (#75694)
add 7ee853093ec Apply note before state in bulk Dag run update so
listeners see it (#74890)
add 1948af1fedb Add unit tests for PrestoToGCSOperator (#75559)
add 57793d01d9b Import TriggerRule from airflow.sdk in docs examples
(#76522)
add 776e9d2e78a Cache the dialect on PostgresHook and MsSqlHook (#75656)
add cc786845ad3 Build the ADBC database URI from the connection fields
(#74454)
add 31beac5deea disable external entities in SAML idp response parsing
(#71423)
add 750617c3867 Fix entry-point plugins reported as duplicates on
RHEL/Fedora venvs (#74531)
add f14247a5938 Add a general debugging guide to the troubleshooting doc
(#71457)
add ebe49645e34 Move XCom filter param models into execution API
datamodels (#76536)
add 437f6be3cec Run the durable OpenAI Agents tests in the agent framework
CI job (#76500)
add 7625b59a85e Key LLM batch and durable Strands state on the task loop
iteration (#76201)
add d46d97fa8d5 Note the unparseable-output case in OpenAIResponseOperator
XCom docs (#74519)
add b7ceab0372b Support Workload Identity Federation in Snowflake REST API
authentication (#75810)
add f82542a453a Name the caller's own MCP client and durable setup in
Common AI errors (#76495)
add 8e922e329ab Refactor isinstance dispatching with polymorphism (#74634)
add e3c21b77c97 Update French (fr) UI translations to 100% coverage
(#76460)
add dcbf21690e8 Pass AssetStateStoreAccessors into response_check_path
Callable in HttpEventTrigger (#72287)
add 6cf8ed6c63a UI: Translate the Spanish strings added since the last
pass (#76466)
add b5ab0a15174 UI: Defer React plugin compatibility runtime (#75083)
add b0581660e45 Support fail_on_reject on every LLM approval operator
(#74493)
add 24464f6d728 Keep Dag and deadline list serialization off the API
server event loop (#76525)
add 558ceaa6a0c Bump the fab-ui-package-updates group across 1 directory
with 4 updates
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (cced2eea722)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/providers/fab/src/airflow/providers/fab/www/fab-ui-package-updates-f26018eb09
(558ceaa6a0c)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/fork-ci-gate.toml | 1 +
Dockerfile | 26 +-
Dockerfile.ci | 26 +-
.../logging-monitoring/index.rst | 1 +
.../logging-monitoring/triggers.rst | 122 ++++
.../docs/authoring-and-scheduling/assets.rst | 2 +
.../authoring-and-scheduling/event-scheduling.rst | 13 +
airflow-core/docs/best-practices.rst | 4 +-
airflow-core/docs/faq.rst | 3 +-
airflow-core/docs/security/api_permissions_ref.rst | 8 +
airflow-core/docs/troubleshooting.rst | 129 ++++
airflow-core/newsfragments/76474.significant.rst | 15 +
.../src/airflow/api_fastapi/common/db/assets.py | 5 +-
.../api_fastapi/common/parameters/trigger.py | 133 ++++
.../api_fastapi/core_api/datamodels/assets.py | 5 +-
.../api_fastapi/core_api/datamodels/dag_bundles.py | 6 +
.../api_fastapi/core_api/datamodels/dags.py | 4 +-
.../api_fastapi/core_api/datamodels/trigger.py | 74 +++
.../api_fastapi/core_api/datamodels/ui/deadline.py | 2 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 16 +
.../core_api/openapi/v2-rest-api-generated.yaml | 441 +++++++++++++
.../api_fastapi/core_api/routes/public/__init__.py | 2 +
.../api_fastapi/core_api/routes/public/assets.py | 9 +-
.../core_api/routes/public/dag_bundles.py | 20 +-
.../api_fastapi/core_api/routes/public/dags.py | 7 +-
.../api_fastapi/core_api/routes/public/triggers.py | 285 +++++++++
.../api_fastapi/core_api/routes/ui/deadlines.py | 2 +-
.../src/airflow/api_fastapi/core_api/security.py | 91 ++-
.../core_api/services/public/dag_run.py | 4 +-
.../core_api/services/public/import_errors.py | 76 +++
.../api_fastapi/execution_api/datamodels/xcom.py | 19 +
.../api_fastapi/execution_api/routes/xcoms.py | 22 +-
.../api_fastapi/execution_api/versions/__init__.py | 4 +-
.../execution_api/versions/v2025_08_10.py | 2 +-
.../execution_api/versions/v2026_10_30.py | 12 +
.../versions/v2026_10_30_xcom_params.py | 35 --
airflow-core/src/airflow/models/trigger.py | 131 +++-
airflow-core/src/airflow/settings.py | 1 +
airflow-core/src/airflow/triggers/base.py | 31 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 24 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 48 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 48 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 48 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 48 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 320 +++++++++-
.../ui/openapi-gen/requests/services.gen.ts | 75 ++-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 206 ++++++
.../airflow/ui/public/i18n/locales/ar/browse.json | 13 +-
.../airflow/ui/public/i18n/locales/ca/browse.json | 5 +-
.../airflow/ui/public/i18n/locales/de/browse.json | 5 +-
.../airflow/ui/public/i18n/locales/el/browse.json | 5 +-
.../airflow/ui/public/i18n/locales/en/browse.json | 5 +-
.../airflow/ui/public/i18n/locales/es/browse.json | 1 +
.../airflow/ui/public/i18n/locales/es/common.json | 8 +-
.../ui/public/i18n/locales/es/components.json | 4 +
.../src/airflow/ui/public/i18n/locales/es/dag.json | 4 +-
.../airflow/ui/public/i18n/locales/es/dags.json | 1 +
.../airflow/ui/public/i18n/locales/fr/admin.json | 3 +
.../airflow/ui/public/i18n/locales/fr/browse.json | 9 +-
.../airflow/ui/public/i18n/locales/fr/common.json | 34 +-
.../ui/public/i18n/locales/fr/components.json | 13 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 68 +-
.../airflow/ui/public/i18n/locales/fr/dags.json | 14 +-
.../ui/public/i18n/locales/fr/dashboard.json | 1 +
.../airflow/ui/public/i18n/locales/fr/hitl.json | 1 +
.../airflow/ui/public/i18n/locales/he/browse.json | 7 +-
.../airflow/ui/public/i18n/locales/hi/browse.json | 5 +-
.../airflow/ui/public/i18n/locales/ko/browse.json | 5 +-
.../airflow/ui/public/i18n/locales/pl/browse.json | 9 +-
.../ui/public/i18n/locales/zh-CN/browse.json | 5 +-
.../ui/public/i18n/locales/zh-TW/browse.json | 5 +-
.../ui/src/components/Graph/elkGraphUtils.test.ts | 14 +
.../ui/src/components/Graph/elkGraphUtils.ts | 3 -
airflow-core/src/airflow/ui/src/main.tsx | 19 +-
.../src/airflow/ui/src/mocks/handlers/assets.ts | 2 +-
.../ui/src/pages/DagBundle/BundleFiles.test.tsx | 62 ++
.../airflow/ui/src/pages/DagBundle/BundleFiles.tsx | 20 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 25 +-
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 14 +-
.../src/utils/registerPluginDependencies.test.ts | 59 ++
.../utils/registerPluginDependencies.ts} | 39 +-
.../tests/unit/always/test_project_structure.py | 4 -
.../core_api/routes/public/test_assets.py | 3 +
.../core_api/routes/public/test_dag_bundles.py | 67 ++
.../core_api/routes/public/test_dag_run.py | 75 +++
.../core_api/routes/public/test_dags.py | 18 +
.../core_api/routes/public/test_triggers.py | 688 +++++++++++++++++++++
.../core_api/routes/ui/test_deadlines.py | 12 +
.../versions/head/test_asset_events.py | 49 +-
airflow-core/tests/unit/core/test_settings.py | 44 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 107 ++++
airflow-core/tests/unit/jobs/test_triggerer_job.py | 182 ++++--
airflow-core/tests/unit/models/test_trigger.py | 129 ++++
.../tests/unit/triggers/test_base_trigger.py | 15 +-
.../airflowctl_tests/test_airflowctl_commands.py | 18 +
airflow-ctl/docs/cli-and-env-variables-ref.rst | 1 +
airflow-ctl/docs/howto/index.rst | 1 +
airflow-ctl/src/airflowctl/api/client.py | 29 +-
.../src/airflowctl/api/datamodels/generated.py | 217 +++++--
airflow-ctl/src/airflowctl/api/operations.py | 7 +-
.../src/airflowctl/ctl/commands/auth_command.py | 3 +-
.../src/airflowctl/ctl/commands/pool_command.py | 3 +-
.../airflowctl/ctl/commands/variable_command.py | 9 +-
airflow-ctl/tests/airflow_ctl/api/test_client.py | 86 ++-
.../tests/airflow_ctl/api/test_operations.py | 24 +-
.../airflow_ctl/ctl/commands/test_auth_command.py | 17 +
.../airflow_ctl/ctl/commands/test_pool_command.py | 33 +
.../ctl/commands/test_variable_command.py | 45 ++
docs/spelling_wordlist.txt | 3 +
providers/amazon/docs/index.rst | 2 +-
providers/amazon/docs/operators/duckdb.rst | 11 +-
providers/amazon/pyproject.toml | 4 +-
.../airflow/providers/amazon/aws/hooks/base_aws.py | 6 +-
.../airflow/providers/amazon/aws/hooks/duckdb.py | 9 +-
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 43 ++
.../tests/unit/amazon/aws/hooks/test_duckdb.py | 3 +
providers/apache/arrow/docs/connections/adbc.rst | 22 +-
providers/apache/arrow/provider.yaml | 12 +-
.../providers/apache/arrow/get_provider_info.py | 10 +-
.../airflow/providers/apache/arrow/hooks/adbc.py | 43 +-
.../tests/unit/apache/arrow/hooks/test_adbc.py | 64 ++
providers/common/ai/docs/approval_gates.rst | 12 +-
providers/common/ai/docs/durable_execution.rst | 2 +-
providers/common/ai/docs/frameworks/anthropic.rst | 4 +-
.../common/ai/docs/frameworks/claude_agent_sdk.rst | 4 +-
.../common/ai/docs/frameworks/openai_agents.rst | 7 +-
providers/common/ai/docs/frameworks/strands.rst | 7 +-
providers/common/ai/docs/operators/llm.rst | 8 +-
providers/common/ai/docs/operators/llm_batch.rst | 5 +-
providers/common/ai/docs/operators/llm_branch.rst | 4 +-
providers/common/ai/docs/stability.rst | 6 +-
providers/common/ai/docs/troubleshooting.rst | 2 +-
providers/common/ai/provider.yaml | 7 +-
.../src/airflow/providers/common/ai/batch/state.py | 43 +-
.../airflow/providers/common/ai/durable/storage.py | 3 +-
.../airflow/providers/common/ai/durable/strands.py | 20 +-
.../src/airflow/providers/common/ai/exceptions.py | 10 +
.../providers/common/ai/get_provider_info.py | 2 +-
.../airflow/providers/common/ai/operators/llm.py | 46 +-
.../providers/common/ai/operators/llm_batch.py | 8 +-
.../providers/common/ai/operators/llm_branch.py | 29 +-
.../common/ai/operators/llm_file_analysis.py | 3 +-
.../common/ai/operators/llm_schema_compare.py | 3 +-
.../providers/common/ai/operators/llm_sql.py | 7 +-
.../airflow/providers/common/ai/tools/__init__.py | 28 +-
.../src/airflow/providers/common/ai/tools/adk.py | 8 +-
.../airflow/providers/common/ai/tools/anthropic.py | 14 +-
.../providers/common/ai/tools/claude_agent_sdk.py | 9 +-
.../providers/common/ai/tools/openai_agents.py | 9 +-
.../airflow/providers/common/ai/tools/strands.py | 6 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 14 +-
.../ai/tests/unit/common/ai/batch/test_state.py | 52 ++
.../tests/unit/common/ai/durable/test_storage.py | 9 +-
.../tests/unit/common/ai/durable/test_strands.py | 18 +
.../ai/tests/unit/common/ai/operators/test_llm.py | 87 +++
.../unit/common/ai/operators/test_llm_batch.py | 28 +-
.../unit/common/ai/operators/test_llm_branch.py | 9 +-
.../ai/tests/unit/common/ai/tools/test_adk.py | 6 +
.../tests/unit/common/ai/tools/test_anthropic.py | 13 +-
.../unit/common/ai/tools/test_claude_agent_sdk.py | 10 +
.../unit/common/ai/tools/test_openai_agents.py | 6 +
.../ai/tests/unit/common/ai/tools/test_strands.py | 6 +
.../ai/tests/unit/common/ai/tools/test_tools.py | 43 +-
.../ai/tests/unit/common/ai/toolsets/test_mcp.py | 8 +-
.../src/airflow/providers/dbt/cloud/hooks/dbt.py | 8 +-
.../cloud/tests/unit/dbt/cloud/hooks/test_dbt.py | 13 +
providers/fab/docs/auth-manager/access-control.rst | 8 +
providers/fab/docs/changelog.rst | 4 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 9 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 9 +-
.../unit/fab/auth_manager/test_fab_auth_manager.py | 7 +-
.../google/cloud/utils/credentials_provider.py | 5 +-
.../google/cloud/utils/external_token_supplier.py | 10 +-
.../providers/google/common/hooks/base_google.py | 6 +-
.../tests/unit/google/cloud/links/test_dataproc.py | 199 ++++++
.../google/cloud/links/test_kubernetes_engine.py | 152 +++++
.../unit/google/cloud/links/test_translate.py | 212 +++++++
.../unit/google/cloud/transfers/test_gcs_to_gcs.py | 110 ++--
.../google/cloud/transfers/test_presto_to_gcs.py | 314 ++++++++++
.../cloud/utils/test_credentials_provider.py | 14 +
.../cloud/utils/test_external_token_supplier.py | 50 ++
.../unit/google/common/hooks/test_base_google.py | 23 +
providers/http/docs/triggers.rst | 65 +-
.../src/airflow/providers/http/triggers/http.py | 14 +-
.../http/tests/unit/http/triggers/test_http.py | 79 +++
.../docs/auth-manager/manage/permissions.rst | 2 +-
providers/keycloak/docs/changelog.rst | 7 +-
.../keycloak/auth_manager/cli/commands.py | 5 +
.../keycloak/auth_manager/cli/test_commands.py | 9 +-
.../providers/microsoft/mssql/hooks/mssql.py | 3 +-
.../tests/unit/microsoft/mssql/hooks/test_mssql.py | 22 +
.../airflow/providers/openai/operators/openai.py | 4 +-
.../tests/unit/openai/operators/test_openai.py | 29 +-
.../airflow/providers/postgres/hooks/postgres.py | 3 +-
.../tests/unit/postgres/hooks/test_postgres.py | 16 +
.../docs/connections/pydantic_ai_snowflake.rst | 7 +-
providers/snowflake/docs/connections/snowflake.rst | 27 +
.../snowflake/docs/operators/cortex_agent.rst | 7 +-
.../providers/snowflake/hooks/cortex_agent.py | 11 +-
.../airflow/providers/snowflake/hooks/sql_api.py | 5 +-
.../providers/snowflake/utils/_rest_auth.py | 213 ++++++-
.../unit/snowflake/hooks/test_cortex_agent.py | 23 +-
.../tests/unit/snowflake/hooks/test_sql_api.py | 24 +-
.../tests/unit/snowflake/utils/test__rest_auth.py | 422 ++++++++++++-
.../ci/prek/check_airflowctl_command_coverage.py | 1 -
scripts/ci/prek/extract_permissions.py | 2 +
scripts/ci/prek/fab_permissions_doc.py | 24 +-
scripts/docker/install_os_dependencies.sh | 26 +-
scripts/in_container/run_agent_framework_tests.sh | 9 +-
.../tests/ci/prek/test_compile_provider_assets.py | 1 -
scripts/tests/ci/prek/test_compile_ui_assets.py | 1 -
scripts/tests/ci/prek/test_extract_permissions.py | 33 +
.../src/airflow_shared/module_loading/__init__.py | 23 +-
.../tests/module_loading/test_entry_points.py | 83 ++-
task-sdk/src/airflow/sdk/api/client.py | 4 +-
.../airflow/sdk/importers/yaml_importer/builder.py | 158 ++---
.../airflow/sdk/importers/yaml_importer/models.py | 159 ++++-
task-sdk/tests/task_sdk/api/test_client.py | 50 ++
.../importers/yaml_importer/test_parser.py | 13 +
ts-sdk/scripts/ci/prek/check_dag_schema.py | 1 -
uv.lock | 2 +
221 files changed, 7755 insertions(+), 821 deletions(-)
create mode 100644
airflow-core/docs/administration-and-deployment/logging-monitoring/triggers.rst
create mode 100644 airflow-core/newsfragments/76474.significant.rst
create mode 100644
airflow-core/src/airflow/api_fastapi/common/parameters/trigger.py
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/routes/public/triggers.py
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/services/public/import_errors.py
delete mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2026_10_30_xcom_params.py
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagBundle/BundleFiles.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/utils/registerPluginDependencies.test.ts
copy airflow-core/src/airflow/ui/{rules/jsonc.js =>
src/utils/registerPluginDependencies.ts} (51%)
create mode 100644
airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_triggers.py
create mode 100644
providers/google/tests/unit/google/cloud/links/test_dataproc.py
create mode 100644
providers/google/tests/unit/google/cloud/links/test_kubernetes_engine.py
create mode 100644
providers/google/tests/unit/google/cloud/links/test_translate.py
create mode 100644
providers/google/tests/unit/google/cloud/transfers/test_presto_to_gcs.py