You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by gi...@apache.org on 2026/09/21 18:28:51 UTC
(airflow) branch dependabot/npm_and_yarn/airflow-core/src/airflow/ui/typescript-ea6c4be8e8 updated (f47f6b4cc9e -> 4ee8a7e4e09)
This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch dependabot/npm_and_yarn/airflow-core/src/airflow/ui/typescript-ea6c4be8e8
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard f47f6b4cc9e Bump the typescript group across 1 directory with 4 updates
add 257fe6e8511 UI: Show xcom before task state store in storage tabs (#73313)
add 1e72a331931 Bump the auth-ui-package-updates group across 1 directory with 11 updates (#73340)
add 9dcd6a0a2ee Hide unreadable assets in the asset expression served by next_run_assets (#72864)
add a6ae1b1f169 Fix impersonation_chain and poll_sleep ignored by deferrable Beam Dataflow pipelines (#72146)
add cd1f0e66277 Keep date-only range ends inclusive (#72860)
add c0cc98d00f9 Bump the github-actions-updates group with 5 updates (#73345)
add edededd02dc Contain remote log upload paths within base_log_folder (#72162)
add e386b821844 Fix typos, grammar, and broken references across the docs (#73146)
add 656902875d5 Make EdgeExecutor respect [core] parallelism (#72048)
add 4ceb1fff01e Preserve SageMaker job lifecycle states in trigger events (#71653)
add dd9ad598d4b Fix broken class xrefs in standard provider docs (#73360)
add 8cdb183d09e TS SDK: embed the entrypoint source in the Dag bundle (#73127)
add bd65f7998b1 TS SDK: add withArgNames for explicit argument renames (#73191)
add 99c9012db77 Go SDK: introduce the `airflow` package with `airflow.Context` (#73277)
add 3c19778c2ec Allow DataSourceConfig to represent a plain database table (#73273)
add 2a47d8c3347 Fix LLMBranchOperator sending branch options in a different order on each worker (#73366)
add f2112c85667 Add Cortex Agent management methods to SnowflakeCortexAgentHook (#70101)
add 42164201d42 Make Google deprecation date parsing locale independent (#69405)
add 985e5007dc1 Add environments and trigger named parameters to Databricks operators (#72505)
add 1050685b721 Add connection-driven provider failover for common.ai LLM calls (#72156)
add 224d34121c8 Fix wrong session type in state-store custom-backend doc example (#73361)
add f8d6f40fe95 Fix duplicate Dataproc job submission after a triggerer restart (#72685)
add 274035646e1 Fix unformatted Kubernetes pod trigger error messages (#73034)
add 47d28272bbc Demote ADC credential log from info to debug (#73199)
add 7da73c89cb0 Make the constraints check follow the cooldown rules the constraints use (#73316)
add 45bad9f54dd Use async DB session for Execution API task-instance heartbeat (#67800)
add 61db43fba9a Assert the panic value in TestNewContextRejectsNilArgs (#73372)
add f546f7f0702 Clarify when code comments preserve useful context (#73359)
add 23c8d820870 Add GCS support to the DataFusion object storage layer (#73370)
add 6ede6646097 Add SnowflakeNotebookOperator for executing Snowflake Notebooks (#63470)
add 407485ef8cb Escape values interpolated into Google Drive q= queries (#72166)
add 056806e8412 Keep object store credentials out of the task log in Teradata transfers (#72176)
add 559330b276a TS SDK: add setVariable and deleteVariable to the task client (#73357)
add 9ed42b0da2c Add missing Korean translations (#73115)
add 1dc7efe27ab Add a decision guide for choosing between common.ai toolsets (#72936)
add 82f45f42261 Fix Test connection rejecting a connection that has no port (#73298)
add 905bc89f6e4 Keep myself focussed temporarily on AI integrations (#73404)
add 56d5432c1d5 Go SDK: require airflow.Context first and stop injecting by type (#73394)
add ed72629410a Add branch_descriptions to LLMBranchOperator so the model reads what each branch means (#73367)
add 2f846065252 Fix exception messages rendering as a tuple instead of the value (#73296)
add c5d7f60fffe Fix EMR Serverless delete operator skipping deletion when deferrable (#73323)
add 79991cd4db0 Fix id_to_job_info memory leak in the AWS Batch executor (#72186)
add 0a41e28ec2a Preserve OpenSearch Serverless hook configuration when deferring (#72472)
add fcdbf2d5b38 Log when a Snowpark container job returns no logs (#73011)
add aa4aeef0a14 Reject a DataSourceConfig with no uri or format in DataFusionEngine (#73287)
add 471b82e12f7 Fix DataFusion storage-type error message on Python 3.11+ (#73413)
add 71a1f29213e Fix dataflow_config service_account for Beam Python and Go pipelines (#73236)
add a675418bfaa Fix Google IdP credentials failing when project id cannot be resolved (#72799)
add bda84d19fa3 Document that clear_on_success also removes the KPO pod identity (#71749)
add af1c66d7426 Fix Teradata compute cluster trigger swallowing task cancellation (#72695)
add e75094dbafc Resolve GCSFileTransformOperator destination fallbacks after rendering (#70488)
add 259ed8698fa Avoid parsing templated DateTimeSensorAsync targets at Dag parse time (#72659)
add a7132cce963 Log the HTTP response in HttpToGCSOperator when log_response is set (#72952)
add 5d3cf0b49f1 Add tests for Hive plugin registration (#71970)
add 9ccb991e6ea Preserve DELETE request bodies in HttpAsyncHook (#72720)
add 37b96609ed7 Skip Dag params with no value when forwarding them to Databricks (#71782)
add 25b192e043d Document proxy setup for Google provider using PySocks (#71941)
add 10b07b4519b Fix deferrable Kubernetes 401s with a default exec-based kubeconfig (#72300)
add 1a9091e4c5f contain gemini batch-job results file within results_folder (#71832)
add 134b7332319 Add support for TypeSafe Jev classifier models (#73363)
add 834b6af975f Add a decision policy so an LLM operator asks a person when the model is unsure (#73368)
add 1f7396d9a39 Require explicit task_id on TypeScript mixed-lang task handlers (#73325)
add 51876b066a0 Add a Modal backend for the sandbox toolset (#72910)
add f9697edc24b Fix Snowflake SQL API OAuth for client_credentials and azure_conn_id (#73162)
add 01fc0c5ffff Keep the task instance in dag callbacks when its Dag version is missing (#72721)
add bee48965b3a Validate Snowflake account and region before building the SQL API URL (#72174)
add ae4343cad45 Reject empty allowed_tables in SQLToolset instead of allowing all tables (#73381)
add bb5fc37da0e Fix branch not skipping mapped tasks with custom XCom backend (#68954)
add a4e96624b3e Add `OpenAIAgentSessionOperator` for OpenAI Managed Agents (#73447)
add 9100ca8a4e5 Reject allowed_tables=None in SQLToolset so only omitting it allows every table (#73452)
add f90a678357c Fix FAB migration failing on MySQL under the pymysql driver (#73220)
add 2c98ac79d93 Return 403 when Keycloak UMA ticket grant returns invalid_grant (#73234)
add a69e03860fa Bump the edge-ui-package-updates group across 1 directory with 12 updates (#73342)
add 2f5d44acbb1 Add deferrable mode to SFTPOperator (#72336)
add ee5eefcb9fd Fix KubernetesPodOperator discarding successful XCom when sidecar kill fails (#72068)
add cd8ca1a9dd1 Mark variable-read-write supported in the Go SDK capability manifest (#73421)
add 422376268cb Build deferred AWS hooks from the operator's own settings (#72171)
add 39c9a5d6650 Run the scheduled CI upgrade check on v3-3-test (#73318)
add b7a50ec7f02 Skip --explain-why for Python 3.10 in the deps summary job (#73449)
add 124e0858b59 Memoize visible-items build in useLogGroups to fix scroll perf (#73252)
add 9bc37c174d9 Prevent cleartext credential storage in Git Dag bundles (#64105)
add 814ce91f73b Add a deferrable batch execution mode to common.ai (#72938)
add f2b8997f859 Remove stale comment citing Beam as suspended provider in example Dag tests (#73351)
add 9e689545c94 Let LLMRetryPolicy run on a classifier model with author-defined categories (#73450)
add 41434c2f3fd Stop Dependabot from raising provider PRs on v3-3-test (#73474)
add 4ee8a7e4e09 Bump the typescript 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 (f47f6b4cc9e)
\
N -- N -- N refs/heads/dependabot/npm_and_yarn/airflow-core/src/airflow/ui/typescript-ea6c4be8e8 (4ee8a7e4e09)
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/CODEOWNERS | 16 +-
.github/dependabot.yml | 52 +-
.github/instructions/code-review.instructions.md | 8 +-
.github/workflows/airflow-e2e-tests.yml | 2 +-
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/ci-amd.yml | 2 +-
.github/workflows/ci-arm.yml | 2 +-
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/codeql-analysis.yml | 8 +-
.github/workflows/finalize-tests.yml | 6 +-
.../java-sdk-dependabot-verification-metadata.yml | 2 +-
.github/workflows/java-sdk-dependency-security.yml | 2 +-
.github/workflows/java-sdk-release-verify.yml | 4 +-
.github/workflows/k8s-tests.yml | 2 +-
.github/workflows/notify-uv-lock-conflicts.yml | 2 +-
.github/workflows/registry-tests.yml | 2 +-
...n.yml => scheduled-upgrade-check-v3-3-test.yml} | 12 +-
.../scheduled-verify-release-calendar.yml | 2 +-
.rat-excludes | 3 +
AGENTS.md | 9 +-
.../cluster-policies.rst | 4 +-
.../administration-and-deployment/dag-bundles.rst | 6 +-
.../dag-serialization.rst | 4 +-
.../dagfile-processing.rst | 10 +-
.../administration-and-deployment/kubernetes.rst | 4 +-
.../administration-and-deployment/listeners.rst | 4 +-
.../logging-monitoring/check-health.rst | 2 +-
.../logging-monitoring/errors.rst | 2 +-
.../modules_management.rst | 2 +-
.../priority-weight.rst | 2 +-
.../production-deployment.rst | 10 +-
.../administration-and-deployment/scheduler.rst | 6 +-
.../task-and-asset-state-store.rst | 8 +-
.../docs/authoring-and-scheduling/assets.rst | 16 +-
.../docs/authoring-and-scheduling/connections.rst | 2 +-
.../docs/authoring-and-scheduling/cron.rst | 2 +-
.../docs/authoring-and-scheduling/deferring.rst | 2 +-
.../dynamic-task-mapping.rst | 8 +-
.../language-sdks/typescript.rst | 42 +
.../docs/authoring-and-scheduling/serializers.rst | 4 +-
.../docs/authoring-and-scheduling/timetable.rst | 8 +-
airflow-core/docs/best-practices.rst | 6 +-
airflow-core/docs/core-concepts/backfill.rst | 2 +-
airflow-core/docs/core-concepts/dag-run.rst | 2 +-
airflow-core/docs/core-concepts/dags.rst | 4 +-
airflow-core/docs/core-concepts/debug.rst | 2 +-
airflow-core/docs/core-concepts/params.rst | 7 +-
airflow-core/docs/core-concepts/sensors.rst | 2 +-
.../docs/core-concepts/task-state-store.rst | 2 +-
airflow-core/docs/core-concepts/taskflow.rst | 4 +-
airflow-core/docs/core-concepts/xcoms.rst | 2 +-
airflow-core/docs/extra-packages-ref.rst | 2 +-
airflow-core/docs/faq.rst | 10 +-
airflow-core/docs/howto/connection.rst | 2 +-
airflow-core/docs/howto/custom-operator.rst | 2 +-
airflow-core/docs/howto/custom-view-plugin.rst | 2 +-
airflow-core/docs/howto/define-extra-link.rst | 2 +-
airflow-core/docs/howto/docker-compose/index.rst | 4 +-
airflow-core/docs/howto/export-more-env-vars.rst | 2 +-
airflow-core/docs/howto/memory-profiling.rst | 2 +-
airflow-core/docs/howto/run-behind-proxy.rst | 2 +-
airflow-core/docs/howto/set-config.rst | 2 +-
airflow-core/docs/howto/set-up-database.rst | 4 +-
airflow-core/docs/howto/setup-and-teardown.rst | 4 +-
airflow-core/docs/howto/sla-to-deadlines.rst | 2 +-
airflow-core/docs/howto/timetable.rst | 6 +-
airflow-core/docs/installation/dependencies.rst | 14 +-
airflow-core/docs/installation/index.rst | 4 +-
.../docs/installation/installing-from-sources.rst | 10 +-
airflow-core/docs/installation/upgrading.rst | 2 +-
.../docs/installation/upgrading_to_airflow3.rst | 2 +-
airflow-core/docs/public-airflow-interface.rst | 7 +-
airflow-core/docs/security/audit_logs.rst | 14 +-
airflow-core/docs/security/kerberos.rst | 4 +-
airflow-core/docs/security/security_model.rst | 8 +-
airflow-core/docs/security/sql.rst | 2 +-
.../vulnerabilities-in-3rd-party-dependencies.rst | 2 +-
airflow-core/docs/start.rst | 2 +-
airflow-core/docs/templates-ref.rst | 10 +-
airflow-core/docs/tutorial/fundamentals.rst | 2 +-
airflow-core/docs/tutorial/hitl.rst | 4 +-
airflow-core/docs/ui.rst | 4 +-
airflow-core/newsfragments/68954.bugfix.rst | 1 +
.../auth/managers/simple/ui/package.json | 22 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 520 ++++-----
.../airflow/api_fastapi/common/asset_expression.py | 62 ++
.../src/airflow/api_fastapi/common/db/common.py | 2 +-
.../api_fastapi/core_api/datamodels/common.py | 9 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 23 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 23 +-
.../core_api/routes/public/connections.py | 6 +-
.../api_fastapi/core_api/routes/ui/assets.py | 12 +-
.../execution_api/routes/task_instances.py | 32 +-
.../src/airflow/config_templates/config.yml | 7 +-
.../src/airflow/jobs/scheduler_job_runner.py | 1 +
airflow-core/src/airflow/models/dagrun.py | 100 +-
airflow-core/src/airflow/settings.py | 34 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 29 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 9 +-
.../airflow/ui/public/i18n/locales/ko/browse.json | 16 +
.../airflow/ui/public/i18n/locales/ko/common.json | 5 +
.../ui/public/i18n/locales/ko/components.json | 4 +
.../airflow/ui/public/i18n/locales/ko/dags.json | 18 +
.../FilterBar/filters/DateRangeFilter.test.tsx | 27 +
.../src/airflow/ui/src/hooks/useDateRangeFilter.ts | 10 +-
.../src/airflow/ui/src/layouts/StorageLayout.tsx | 2 +-
.../pages/TaskInstance/Logs/useLogGroups.test.tsx | 20 +
.../src/pages/TaskInstance/Logs/useLogGroups.tsx | 102 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 4 +-
airflow-core/src/airflow/ui/src/router.tsx | 2 +-
.../tests/unit/always/test_example_dags.py | 2 -
.../tests/unit/always/test_project_structure.py | 1 -
.../api_fastapi/common/test_asset_expression.py | 73 ++
.../api_fastapi/core_api/datamodels/test_common.py | 14 +-
.../core_api/routes/public/test_connections.py | 31 +
.../api_fastapi/core_api/routes/ui/test_assets.py | 48 +-
.../versions/head/test_task_instances.py | 71 +-
airflow-core/tests/unit/core/test_settings.py | 57 +-
airflow-core/tests/unit/models/test_dag.py | 8 +-
airflow-core/tests/unit/models/test_dagrun.py | 148 ++-
.../deps/test_not_previously_skipped_dep.py | 67 +-
airflow-ctl/docs/cli-and-env-variables-ref.rst | 2 +-
airflow-ctl/docs/howto/index.rst | 4 +-
airflow-ctl/docs/installation/index.rst | 2 +-
.../docs/installation/installing-from-sources.rst | 14 +-
airflow-ctl/docs/installation/prerequisites.rst | 5 +-
.../src/airflowctl/api/datamodels/generated.py | 9 +-
.../ts_sdk_tests/test_ts_sdk_dag.py | 63 +-
chart/docs/extending-the-chart.rst | 2 +-
chart/docs/manage-dag-files.rst | 2 +-
chart/docs/parameters-ref.rst | 2 +-
chart/docs/production-guide.rst | 12 +-
chart/docs/setting-resources-for-containers.rst | 2 +-
.../utils/constraints_version_check.py | 75 +-
dev/breeze/tests/test_constraints_version_check.py | 73 +-
dev/skill-evals/last-eval-hash.txt | 2 +-
docs/spelling_wordlist.txt | 6 +
generated/known_airflow_exceptions.txt | 2 +-
go-sdk/README.md | 2 +-
go-sdk/airflow/context.go | 117 ++
go-sdk/airflow/context_test.go | 179 ++++
go-sdk/airflow/doc.go | 41 +
go-sdk/bundle/bundlev1/registry.go | 17 +-
go-sdk/bundle/bundlev1/registry_test.go | 31 +-
go-sdk/bundle/bundlev1/task_test.go | 214 +---
go-sdk/capabilities.yaml | 4 +-
.../bundle/concurrentxcom/concurrentxcom.go | 15 +-
.../bundle/concurrentxcom/concurrentxcom_test.go | 11 +-
go-sdk/example/bundle/main.go | 48 +-
go-sdk/example/bundle/main_test.go | 31 +-
.../bundle/taskflowbinding/taskflowbinding.go | 61 +-
.../bundle/taskflowbinding/taskflowbinding_test.go | 56 +-
.../example/bundle/variablewrite/variablewrite.go | 12 +-
go-sdk/pkg/binding/binding.go | 133 +--
go-sdk/pkg/binding/binding_test.go | 382 ++++---
go-sdk/pkg/execution/integration_test.go | 117 +-
go-sdk/pkg/execution/task_runner.go | 11 +-
go-sdk/pkg/sdkcontext/keys.go | 20 +-
go-sdk/sdk/context.go | 49 +-
go-sdk/sdk/doc.go | 20 +-
go-sdk/sdk/sdk.go | 4 +-
kubernetes-tests/lang_sdk/go_example/main.go | 13 +-
providers/amazon/docs/changelog.rst | 9 +
.../providers/amazon/aws/executors/batch/utils.py | 1 +
.../providers/amazon/aws/log/s3_task_handler.py | 9 +
.../providers/amazon/aws/operators/bedrock.py | 21 +
.../providers/amazon/aws/operators/comprehend.py | 6 +
.../airflow/providers/amazon/aws/operators/dms.py | 21 +
.../airflow/providers/amazon/aws/operators/ecs.py | 9 +-
.../airflow/providers/amazon/aws/operators/eks.py | 18 +
.../airflow/providers/amazon/aws/operators/emr.py | 58 +-
.../airflow/providers/amazon/aws/operators/glue.py | 6 +
.../airflow/providers/amazon/aws/operators/mwaa.py | 3 +
.../amazon/aws/operators/neptune_analytics.py | 40 +-
.../airflow/providers/amazon/aws/operators/rds.py | 8 +
.../providers/amazon/aws/sensors/bedrock.py | 15 +
.../providers/amazon/aws/sensors/comprehend.py | 6 +
.../airflow/providers/amazon/aws/sensors/emr.py | 12 +
.../airflow/providers/amazon/aws/sensors/glue.py | 6 +
.../airflow/providers/amazon/aws/sensors/mwaa.py | 6 +
.../amazon/aws/sensors/opensearch_serverless.py | 3 +
.../airflow/providers/amazon/aws/sensors/ssm.py | 3 +
.../airflow/providers/amazon/aws/triggers/base.py | 60 +-
.../providers/amazon/aws/triggers/bedrock.py | 139 ++-
.../providers/amazon/aws/triggers/comprehend.py | 37 +-
.../airflow/providers/amazon/aws/triggers/dms.py | 118 ++-
.../airflow/providers/amazon/aws/triggers/ecs.py | 31 +-
.../airflow/providers/amazon/aws/triggers/eks.py | 84 +-
.../airflow/providers/amazon/aws/triggers/emr.py | 180 +++-
.../airflow/providers/amazon/aws/triggers/glue.py | 52 +-
.../amazon/aws/triggers/opensearch_serverless.py | 18 +-
.../airflow/providers/amazon/aws/triggers/rds.py | 45 +-
.../providers/amazon/aws/triggers/sagemaker.py | 36 +
.../unit/amazon/aws/executors/batch/test_utils.py | 4 +-
.../unit/amazon/aws/log/test_s3_task_handler.py | 23 +
.../tests/unit/amazon/aws/operators/test_ecs.py | 37 +-
.../amazon/aws/operators/test_emr_serverless.py | 62 +-
.../tests/unit/amazon/aws/operators/test_mwaa.py | 31 +
.../amazon/aws/operators/test_neptune_analytics.py | 256 +++++
.../tests/unit/amazon/aws/sensors/test_mwaa.py | 59 +-
.../aws/sensors/test_opensearch_serverless.py | 20 +-
.../tests/unit/amazon/aws/sensors/test_ssm.py | 27 +
.../amazon/aws/test_deferred_hook_configuration.py | 286 +++++
.../tests/unit/amazon/aws/triggers/test_base.py | 36 +-
.../aws/triggers/test_opensearch_serverless.py | 77 +-
.../unit/amazon/aws/triggers/test_sagemaker.py | 114 ++
.../providers/apache/beam/operators/beam.py | 11 +-
.../tests/unit/apache/beam/operators/test_beam.py | 49 +-
.../tests/unit/apache/hive/plugins}/__init__.py | 0
.../unit/apache/hive/plugins/test_hive.py} | 11 +-
providers/cncf/kubernetes/docs/operators.rst | 17 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 63 +-
.../providers/cncf/kubernetes/operators/job.py | 6 +-
.../providers/cncf/kubernetes/operators/pod.py | 12 +-
.../providers/cncf/kubernetes/triggers/pod.py | 21 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 24 +-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 101 ++
.../unit/cncf/kubernetes/operators/test_job.py | 47 +-
.../unit/cncf/kubernetes/triggers/test_pod.py | 40 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 41 +
providers/common/ai/README.rst | 6 +-
providers/common/ai/docs/changelog.rst | 48 +
providers/common/ai/docs/choosing_a_toolset.rst | 611 +++++++++++
providers/common/ai/docs/classifier_models.rst | 192 ++++
.../common/ai/docs/connections/pydantic_ai.rst | 20 +
.../ai/docs/connections/pydantic_ai_azure.rst | 24 +-
.../ai/docs/connections/pydantic_ai_bedrock.rst | 14 +
.../ai/docs/connections/pydantic_ai_vertex.rst | 24 +-
providers/common/ai/docs/examples.rst | 26 +-
providers/common/ai/docs/index.rst | 45 +-
providers/common/ai/docs/operators/agent.rst | 16 +-
providers/common/ai/docs/operators/index.rst | 9 +
providers/common/ai/docs/operators/llm.rst | 50 +-
providers/common/ai/docs/operators/llm_batch.rst | 316 ++++++
providers/common/ai/docs/operators/llm_branch.rst | 194 +++-
.../common/ai/docs/operators/llm_file_analysis.rst | 3 +
.../ai/docs/operators/llm_schema_compare.rst | 19 +-
providers/common/ai/docs/operators/llm_sql.rst | 4 +-
providers/common/ai/docs/provider_fallback.rst | 231 ++++
providers/common/ai/docs/retry_policies.rst | 348 ++++--
providers/common/ai/docs/sandbox.rst | 821 ++++++++++++++
providers/common/ai/docs/toolsets.rst | 342 +-----
providers/common/ai/provider.yaml | 48 +
providers/common/ai/pyproject.toml | 25 +-
.../airflow/providers/common/ai/batch}/__init__.py | 18 +-
.../airflow/providers/common/ai/batch/anthropic.py | 381 +++++++
.../src/airflow/providers/common/ai/batch/base.py | 358 +++++++
.../airflow/providers/common/ai/batch/dispatch.py | 162 +++
.../airflow/providers/common/ai/batch/openai.py | 455 ++++++++
.../providers/common/ai/batch/output_schema.py | 220 ++++
.../airflow/providers/common/ai/batch/polling.py | 160 +++
.../airflow/providers/common/ai/batch/results.py | 379 +++++++
.../src/airflow/providers/common/ai/batch/state.py | 339 ++++++
.../airflow/providers/common/ai/decorators/llm.py | 2 +-
.../providers/common/ai/decorators/llm_batch.py | 145 +++
.../providers/common/ai/decorators/llm_branch.py | 2 +-
.../ai/example_dags/example_classifier_model.py | 134 +++
.../common/ai/example_dags/example_llm_batch.py | 194 ++++
.../common/ai/example_dags/example_llm_branch.py | 94 +-
.../common/ai/example_dags/example_llm_fallback.py | 101 ++
.../ai/example_dags/example_llm_retry_policy.py | 94 +-
.../ai/example_dags/example_llm_schema_compare.py | 7 +-
.../ai/example_dags/example_sandbox_toolset.py | 282 +++++
.../src/airflow/providers/common/ai/exceptions.py | 107 ++
.../providers/common/ai/get_provider_info.py | 39 +-
.../providers/common/ai/hooks/pydantic_ai.py | 403 ++++++-
.../airflow/providers/common/ai/mixins/approval.py | 23 +-
.../airflow/providers/common/ai/operators/agent.py | 11 +
.../airflow/providers/common/ai/operators/llm.py | 180 +++-
.../providers/common/ai/operators/llm_batch.py | 791 ++++++++++++++
.../providers/common/ai/operators/llm_branch.py | 195 +++-
.../common/ai/operators/llm_file_analysis.py | 12 +-
.../common/ai/operators/llm_schema_compare.py | 22 +-
.../providers/common/ai/operators/llm_sql.py | 22 +-
.../providers/common/ai/policies/decision.py | 110 ++
.../airflow/providers/common/ai/policies/retry.py | 328 ++++--
.../providers/common/ai/sandbox/__init__.py | 14 +
.../airflow/providers/common/ai/sandbox/base.py | 21 +-
.../airflow/providers/common/ai/sandbox/modal.py | 868 +++++++++++++++
.../src/airflow/providers/common/ai/sandbox/sbx.py | 19 +-
.../providers/common/ai/toolsets/sandbox.py | 52 +-
.../airflow/providers/common/ai/toolsets/sql.py | 34 +-
.../providers/common/ai/triggers/llm_batch.py | 182 ++++
.../airflow/providers/common/ai/utils/decision.py | 349 ++++++
.../common/ai/example_sandbox_toolset_modal.py | 258 +++++
.../ai/tests/unit/common/ai/batch}/__init__.py | 0
.../tests/unit/common/ai/batch/test_anthropic.py | 383 +++++++
.../ai/tests/unit/common/ai/batch/test_base.py | 180 ++++
.../ai/tests/unit/common/ai/batch/test_dispatch.py | 156 +++
.../ai/tests/unit/common/ai/batch/test_openai.py | 524 +++++++++
.../unit/common/ai/batch/test_output_schema.py | 225 ++++
.../ai/tests/unit/common/ai/batch/test_polling.py | 124 +++
.../ai/tests/unit/common/ai/batch/test_results.py | 574 ++++++++++
.../ai/tests/unit/common/ai/batch/test_state.py | 282 +++++
.../ai/tests/unit/common/ai/decorators/test_llm.py | 19 +
.../unit/common/ai/decorators/test_llm_batch.py | 162 +++
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 897 +++++++++++++++-
.../tests/unit/common/ai/operators/test_agent.py | 47 +-
.../ai/tests/unit/common/ai/operators/test_llm.py | 377 ++++++-
.../unit/common/ai/operators/test_llm_batch.py | 856 +++++++++++++++
.../unit/common/ai/operators/test_llm_branch.py | 771 +++++++++++++-
.../common/ai/operators/test_llm_file_analysis.py | 1 +
.../tests/unit/common/ai/operators/test_llm_sql.py | 31 +
.../tests/unit/common/ai/policies/test_decision.py | 90 ++
.../ai/tests/unit/common/ai/policies/test_retry.py | 859 +++++++++++----
.../ai/tests/unit/common/ai/sandbox/fake_modal.py | 322 ++++++
.../ai/tests/unit/common/ai/sandbox/test_base.py | 17 +
.../ai/tests/unit/common/ai/sandbox/test_modal.py | 1120 ++++++++++++++++++++
.../tests/unit/common/ai/toolsets/test_sandbox.py | 107 ++
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 10 +
.../unit/common/ai/triggers/test_llm_batch.py | 311 ++++++
.../ai/tests/unit/common/ai/utils/test_decision.py | 311 ++++++
.../ai/tests/unit/common/ai/utils/test_logging.py | 29 +
providers/common/io/docs/xcom_backend.rst | 2 +-
providers/common/sql/docs/operators.rst | 23 +-
.../sql/src/airflow/providers/common/sql/config.py | 19 +-
.../providers/common/sql/datafusion/engine.py | 27 +
.../sql/datafusion/object_storage_provider.py | 61 +-
.../common/sql/example_dags/example_analytics.py | 13 +
.../unit/common/sql/datafusion/test_engine.py | 93 +-
.../common/sql/datafusion/test_format_handlers.py | 2 +-
.../sql/datafusion/test_object_storage_provider.py | 91 ++
.../sql/tests/unit/common/sql/test_config.py | 29 +
.../databricks/docs/operators/jobs_create.rst | 5 +-
providers/databricks/docs/operators/run_now.rst | 5 +-
providers/databricks/docs/operators/submit_run.rst | 4 +
.../providers/databricks/operators/databricks.py | 54 +-
.../unit/databricks/operators/test_databricks.py | 196 ++++
providers/edge3/docs/changelog.rst | 6 +
.../providers/edge3/executors/edge_executor.py | 104 +-
.../src/airflow/providers/edge3/models/edge_job.py | 31 +-
.../src/airflow/providers/edge3/models/types.py | 19 +
.../providers/edge3/plugins/www/package.json | 24 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 823 +++++++-------
.../unit/edge3/executors/test_edge_executor.py | 218 +++-
.../edge3/tests/unit/edge3/models/test_edge_job.py | 29 +-
.../0001_3_5_0_fix_fab_db_inconsistencies.py | 70 +-
.../tests/unit/fab/auth_manager/models/test_db.py | 102 ++
providers/git/docs/changelog.rst | 11 +
providers/git/docs/connections/git.rst | 12 +-
.../git/src/airflow/providers/git/bundles/git.py | 55 +
.../git/src/airflow/providers/git/hooks/git.py | 186 ++--
providers/git/tests/unit/git/bundles/test_git.py | 225 +++-
providers/git/tests/unit/git/hooks/test_git.py | 317 +++++-
providers/google/docs/connections/gcp.rst | 86 ++
.../providers/google/cloud/log/gcs_task_handler.py | 9 +
.../providers/google/cloud/operators/gcs.py | 10 +-
.../providers/google/cloud/operators/gen_ai.py | 29 +-
.../google/cloud/transfers/http_to_gcs.py | 2 +
.../providers/google/cloud/triggers/dataproc.py | 70 +-
.../google/cloud/utils/credentials_provider.py | 7 +-
.../airflow/providers/google/common/deprecated.py | 29 +-
.../airflow/providers/google/suite/hooks/drive.py | 21 +-
.../unit/google/cloud/log/test_gcs_task_handler.py | 23 +
.../tests/unit/google/cloud/operators/test_gcs.py | 55 +
.../unit/google/cloud/operators/test_gen_ai.py | 162 +++
.../google/cloud/transfers/test_http_to_gcs.py | 22 +
.../unit/google/cloud/triggers/test_dataproc.py | 230 ++++
.../cloud/utils/test_credentials_provider.py | 17 +-
.../tests/unit/google/common/test_deprecated.py | 60 +-
.../tests/unit/google/suite/hooks/test_drive.py | 70 +-
.../http/src/airflow/providers/http/hooks/http.py | 2 +-
providers/http/tests/unit/http/hooks/test_http.py | 24 +
.../keycloak/auth_manager/keycloak_auth_manager.py | 8 +
.../auth_manager/test_keycloak_auth_manager.py | 20 +
.../microsoft/azure/log/wasb_task_handler.py | 9 +
.../microsoft/azure/log/test_wasb_task_handler.py | 28 +
providers/openai/docs/operators/openai.rst | 73 ++
providers/openai/provider.yaml | 2 +
.../src/airflow/providers/openai/exceptions.py | 4 +
.../airflow/providers/openai/get_provider_info.py | 16 +-
.../src/airflow/providers/openai/hooks/openai.py | 67 ++
.../airflow/providers/openai/operators/agent.py | 179 ++++
.../src/airflow/providers/openai/triggers/agent.py | 89 ++
.../tests/system/openai/example_openai_agent.py} | 54 +-
.../openai/tests/unit/openai/hooks/test_openai.py | 9 +
.../tests/unit/openai/operators/test_agent.py | 334 ++++++
.../tests/unit/openai/triggers/test_agent.py | 77 ++
providers/sftp/README.rst | 1 -
providers/sftp/docs/index.rst | 1 -
providers/sftp/pyproject.toml | 1 -
.../sftp/src/airflow/providers/sftp/exceptions.py | 4 +
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 722 ++++++++++---
.../src/airflow/providers/sftp/operators/sftp.py | 222 ++--
.../src/airflow/providers/sftp/triggers/sftp.py | 143 ++-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 466 +++++++-
.../sftp/tests/unit/sftp/operators/test_sftp.py | 211 +++-
.../sftp/tests/unit/sftp/triggers/test_sftp.py | 26 +-
providers/snowflake/docs/operators/snowflake.rst | 38 +-
.../airflow/providers/snowflake/hooks/snowflake.py | 32 +-
.../snowflake/hooks/snowflake_cortex_agent.py | 189 +++-
.../providers/snowflake/hooks/snowflake_sql_api.py | 14 +-
.../providers/snowflake/operators/snowflake.py | 66 +-
.../snowflake/operators/snowpark_containers.py | 1 +
.../system/snowflake/example_snowflake_notebook.py | 75 ++
.../tests/unit/snowflake/hooks/test_snowflake.py | 77 ++
.../snowflake/hooks/test_snowflake_cortex_agent.py | 250 ++++-
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 31 +-
.../unit/snowflake/operators/test_snowflake.py | 334 ++++++
.../operators/test_snowpark_containers.py | 7 +-
providers/standard/docs/sensors/datetime.rst | 2 +-
.../providers/standard/operators/trigger_dagrun.py | 2 +-
.../providers/standard/sensors/date_time.py | 11 +
.../providers/standard/sensors/filesystem.py | 2 +-
.../unit/standard/operators/test_trigger_dagrun.py | 4 +-
.../tests/unit/standard/sensors/test_date_time.py | 12 +
.../tests/unit/standard/sensors/test_filesystem.py | 14 +-
.../teradata/transfers/azure_blob_to_teradata.py | 14 +
.../providers/teradata/transfers/s3_to_teradata.py | 15 +
.../teradata/triggers/teradata_compute_cluster.py | 2 -
.../airflow/providers/teradata/utils/constants.py | 1 -
.../transfers/test_azure_blob_to_teradata.py | 48 +
.../unit/teradata/transfers/test_s3_to_teradata.py | 83 ++
.../triggers/test_teradata_compute_cluster.py | 16 +
pyproject.toml | 8 +
.../ci/prek/validate_operators_init_exemptions.txt | 1 -
task-sdk/docs/deferred-vs-async-operators.rst | 2 +-
task-sdk/docs/examples.rst | 2 +-
task-sdk/docs/executable-bundle-spec.rst | 1 +
task-sdk/docs/ts-bundle-spec.rst | 79 +-
.../sdk/coordinators/node/_bundle_reader.py | 99 +-
.../src/airflow/sdk/execution_time/task_runner.py | 9 +
.../coordinators/node/_bundle_test_utils.py | 23 +-
.../coordinators/node/test_bundle_reader.py | 143 ++-
ts-sdk/.prettierignore | 3 +
ts-sdk/README.md | 45 +-
ts-sdk/adr/0001-mixed-lang-dag-interface.md | 8 +-
ts-sdk/adr/0002-native-dag-interface.md | 3 +-
ts-sdk/api-docs/dag-authoring-api.ts | 3 +-
ts-sdk/capabilities.yaml | 5 +-
ts-sdk/docs/index.md | 3 +
ts-sdk/example/README.md | 5 +-
ts-sdk/example/dags/typescript_example.py | 5 +
ts-sdk/example/dags/typescript_taskflow_example.py | 15 +-
ts-sdk/example/src/main.ts | 20 +-
ts-sdk/example/src/taskflow.ts | 30 +-
ts-sdk/src/cli/bundle-encoder.ts | 72 +-
ts-sdk/src/cli/pack.ts | 25 +-
ts-sdk/src/cli/validate.ts | 6 +-
ts-sdk/src/coordinator/arg-binding.ts | 18 +-
ts-sdk/src/coordinator/client.ts | 66 +-
ts-sdk/src/coordinator/manifest.ts | 17 +-
ts-sdk/src/coordinator/protocol.ts | 2 +
ts-sdk/src/coordinator/runtime.ts | 2 +
ts-sdk/src/index.ts | 2 +
ts-sdk/src/sdk/arg-names.ts | 112 ++
ts-sdk/src/sdk/client.ts | 18 +
ts-sdk/tests/cli/fixtures/bundle-v1.min.mjs | 18 +
ts-sdk/tests/cli/fixtures/bundle-v1.mjs | 24 -
ts-sdk/tests/cli/pack.test.ts | 155 ++-
ts-sdk/tests/cli/validate.test.ts | 4 +-
ts-sdk/tests/coordinator/arg-binding.test.ts | 85 +-
ts-sdk/tests/coordinator/client.test.ts | 64 ++
ts-sdk/tests/coordinator/integration.test.ts | 33 +
ts-sdk/tests/coordinator/runtime-manifest.test.ts | 14 +-
ts-sdk/tests/public-api.test.ts | 34 +
ts-sdk/tests/sdk/arg-names.test.ts | 112 ++
uv.lock | 387 ++++---
458 files changed, 32106 insertions(+), 3836 deletions(-)
copy .github/workflows/{scheduled-upgrade-check-main.yml => scheduled-upgrade-check-v3-3-test.yml} (81%)
create mode 100644 airflow-core/newsfragments/68954.bugfix.rst
create mode 100644 airflow-core/src/airflow/api_fastapi/common/asset_expression.py
create mode 100644 airflow-core/tests/unit/api_fastapi/common/test_asset_expression.py
create mode 100644 go-sdk/airflow/context.go
create mode 100644 go-sdk/airflow/context_test.go
create mode 100644 go-sdk/airflow/doc.go
create mode 100644 providers/amazon/tests/unit/amazon/aws/test_deferred_hook_configuration.py
copy {airflow-core/src/airflow/_shared => providers/apache/hive/tests/unit/apache/hive/plugins}/__init__.py (100%)
copy providers/apache/hive/{src/airflow/providers/apache/hive/plugins/hive.py => tests/unit/apache/hive/plugins/test_hive.py} (78%)
create mode 100644 providers/common/ai/docs/choosing_a_toolset.rst
create mode 100644 providers/common/ai/docs/classifier_models.rst
create mode 100644 providers/common/ai/docs/operators/llm_batch.rst
create mode 100644 providers/common/ai/docs/provider_fallback.rst
create mode 100644 providers/common/ai/docs/sandbox.rst
copy providers/{informatica/src/airflow/providers/informatica/extractors => common/ai/src/airflow/providers/common/ai/batch}/__init__.py (62%)
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/anthropic.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/base.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/dispatch.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/openai.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/output_schema.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/polling.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/results.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/batch/state.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/decorators/llm_batch.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_classifier_model.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llm_batch.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llm_fallback.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_sandbox_toolset.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/operators/llm_batch.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/policies/decision.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/sandbox/modal.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/triggers/llm_batch.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/utils/decision.py
create mode 100644 providers/common/ai/tests/system/common/ai/example_sandbox_toolset_modal.py
copy {airflow-core/src/airflow/_shared => providers/common/ai/tests/unit/common/ai/batch}/__init__.py (100%)
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_anthropic.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_base.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_dispatch.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_openai.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_output_schema.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_polling.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_results.py
create mode 100644 providers/common/ai/tests/unit/common/ai/batch/test_state.py
create mode 100644 providers/common/ai/tests/unit/common/ai/decorators/test_llm_batch.py
create mode 100644 providers/common/ai/tests/unit/common/ai/operators/test_llm_batch.py
create mode 100644 providers/common/ai/tests/unit/common/ai/policies/test_decision.py
create mode 100644 providers/common/ai/tests/unit/common/ai/sandbox/fake_modal.py
create mode 100644 providers/common/ai/tests/unit/common/ai/sandbox/test_modal.py
create mode 100644 providers/common/ai/tests/unit/common/ai/triggers/test_llm_batch.py
create mode 100644 providers/common/ai/tests/unit/common/ai/utils/test_decision.py
create mode 100644 providers/openai/src/airflow/providers/openai/operators/agent.py
create mode 100644 providers/openai/src/airflow/providers/openai/triggers/agent.py
copy providers/{openlineage/tests/system/openlineage/example_openlineage_docs_file_dag.py => openai/tests/system/openai/example_openai_agent.py} (56%)
create mode 100644 providers/openai/tests/unit/openai/operators/test_agent.py
create mode 100644 providers/openai/tests/unit/openai/triggers/test_agent.py
create mode 100644 providers/snowflake/tests/system/snowflake/example_snowflake_notebook.py
create mode 100644 ts-sdk/src/sdk/arg-names.ts
create mode 100644 ts-sdk/tests/cli/fixtures/bundle-v1.min.mjs
delete mode 100644 ts-sdk/tests/cli/fixtures/bundle-v1.mjs
create mode 100644 ts-sdk/tests/sdk/arg-names.test.ts