This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 730d6c4c4ea [main] CI: Upgrade important CI environment
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 4b488e2bb01 Unify executor workload queues (#63491)
add 970851e2262 Remove real sleeps from slow provider unit tests (#73478)
add 6eee97f2747 Remove unused DagParsingStat (#72462)
add fc996cf6347 Add tests for string utility edge cases (#72251)
add 268ad8b156a Stop running duplicate virtualenv operator tests (#73500)
add d339d71a4bc Bump the auth-ui-package-updates group across 1 directory
with 4 updates (#73486)
add afd6915a8ef Bump eslint-plugin-unicorn (#73490)
add 8cd3039c126 Drop stale OpenSearch Serverless entries from deferred
hook configuration test (#73502)
add 0def984b047 Fix bulk endpoints returning 500 for a malformed action
entry (#73453)
add 9ecb9929de9 Constrain the Teradata compute-cluster example Dag's
user-settable Params (#72714)
add 3b29a4c3b3d Record TaskInstanceHistory when a task fails from a
non-running state (#67372)
add df145d145e3 Add Reset Password button to Edit User view (#70243)
add 3a944127dd8 Add a Dag bundle detail page listing the files in the
bundle (#73009)
add 65d4e7dd6a5 Stop core DB test jobs timing out when migration tests run
(#73231)
add 57dc7a20077 Fix k8s tests doc formatting (#71913)
add aa625048a7a Speed up breeze integration startup by shortening the
healthcheck interval (#73320)
add df4b1290bda Rename Google Stackdriver operators and hook to Cloud
Monitoring (#73354)
add b1c534f2acf Make test_trigger_lifecycle deterministic instead of
timing-based (#73397)
add 0ca6a088bfa Bump the github-actions-updates group across 1 directory
with 4 updates (#73513)
add 89e7490b780 Add deferrable mode to InfluxDB 3 Operator (#71976)
add e7427b8fe01 Align zh-CN Provider terminology and plural conventions
(#73369)
add 50523cd7b0c Add AthenaSparkOperator (#72081)
add 6b1436e3c4d Bump the uv-dependency-updates group across 1 directory
with 6 updates (#73485)
add ad40139ca3b Fixing spec error in dag bundle api tests (#73515)
add 24b65d1733b Add ClassifierRetryPolicy and keep LLMRetryPolicy as the
text-model policy it was (#73501)
add 7fe09dc57ce Add ChainRetryPolicy to compose retry policies in order
(#73508)
add 3eabbb59586 Replace retired gemini-2.0-flash example model in
common.ai Vertex docs (#73516)
add 83b30710faf Go SDK: replace BundleProvider with airflow.Bundle and
TaskHandler (#73426)
add ddfc357e83d Use `os.posix_spawn` instead of fork+exec in the task-sdk
supervisor (#73503)
add 90107b5081a Reorganize `common.ai` provider docs into topic-based
navigation (#73523)
add 4aeb647a51a Fix `common.ai` Anthropic models failing against anthropic
1.x in the CI image (#73511)
add b8be9e54bee Speed up documentation build and spellcheck in CI (#73477)
add 306cab626ea Rename the common.ai retry policies page to cover both
policies (#73526)
add ea03b2921c3 Make Pub/Sub return_immediately configurable, deprecate
its default (#73504)
add b65c145dcb3 Skip prek cache re-upload on cache hit and drop skill-eval
envs from CI cache (#73527)
add 018169c5489 Reject durable replay and HITL review when an agent holds
a SandboxToolset (#73529)
add c6e19e63a75 Fix supervisor schema snapshot so go model generation
works (#73531)
add 2111287e087 Allow keeping PostgresHook SQLAlchemy engines on psycopg2
(#72000)
add 55b8e9a47b9 Add an address-layer egress allowlist for hosted sandboxes
(#73534)
add 1e87d0f02fd Speed up the templated-fields static check by parsing each
base class once (#73540)
add f2ef828d522 Skip Gradle in the Java SDK schema sync hook when the
schema is already in sync (#73539)
add af3ba4c3a72 Add use-case pages to the common.ai provider docs (#73542)
add 81c2eab5595 Update Go SDK docs for the airflow.Bundle authoring
surface (#73528)
add 002e4d0866d Nest the `common.ai` docs sidebar and lead with features
and providers (#73548)
add 3e5b235f572 UI: Show every scheduler, triggerer, and Dag processor in
Health (#73355)
add 6036de15b5b API: Fix prefix pattern search returning rows without the
prefix (#73520)
add 0f657a61387 Bump the fab-ui-package-updates group across 1 directory
with 5 updates (#73467)
add b5f3d7933e5 Fix square corner on fully filled dashboard History bars
(#73543)
add d05971eacf9 Fix grid pagination buttons hidden off the right edge
(#73541)
add 9fbec0321e5 Require a request body on the asset materialize endpoint
(#73328)
add 883b5cc6c05 Log the success message when a deferred EKS cluster
deletion completes (#73455)
add b30cd9b61be Allow template-field copies into StartTriggerArgs in
operator __init__ (#73040)
add 21b1dfc373a Template every connection id accepted by provider
operators (#73286)
add 890c20b6ecb Fix Cloud Monitoring list operators with explicit output
formats (#73434)
add 41480acd26d Mask the SQLite database path in airflow info --anonymize
(#73179)
add ab2677888ce Lead the common.ai docs with a runnable quick start and a
verifiable result (#73556)
add 9a1273c52b8 Normalize BigQuery DTS sensor expected statuses after
rendering (#70528)
add b9172bf1003 Stop breeze rewriting uv.lock when forcing lowest
dependencies (#73305)
add 568aef293bf Stop UI and ts-sdk lint hooks from rewriting the global
pnpm config (#73538)
add 63b615b2525 Scope plugin macros to their team in multi-team mode
(#73224)
add 22f01cd066a Add ChainRetryPolicy to common.compat for Airflow 3.3
(#73553)
add 36b09ee2ee8 Bump the fab-ui-package-updates group across 1 directory
with 6 updates (#73566)
add b68ea7890b9 Fix airflow db clean IntegrityError when a dag_version is
referenced by a task_instance (#66350)
add 6a5aab82614 Fix example_dms Dag parsing on Airflow 2 (#73563)
add b5547c4babc Fix airflow plugins and dags pause printing prose with
--output json (#73270)
add 6f7e635d3d9 Include task_reschedule in task_instance dependent tables
for db clean (#71990)
add b9e46d64ee5 Add type-checking guards to DeadlineAlert init (#73294)
add 5aee0fb4ad5 Fix timedelta serde to accept int payloads (#72326)
add d8f8270a39d Keep sync-perm going when a Dag has bad access_control
(#71798)
add 1e1fcd22406 Reject serde-reserved keys in HITL params_input (#71054)
add 69b72e39c05 Multi-Team: Add teams inspect CLI command to display team
resources (#72036)
add 6e48e0fb2ba Deduplicate the Dag run lookup in airflowctl dag and task
commands (#70904)
add 23340ff97e2 Reject stale provider test exemptions (#71985)
add f0e82be3163 Add json line support for DocumentLoaderOperator (#72246)
add cc842490b31 Fix airflow db check reporting one fewer retry than it
will make (#72708)
add d4d68b5ceee Fix breeze ignoring --providers-constraints-mode (#73171)
add 8303d28ce93 Run migration tests once per backend instead of in every
core test shard (#73185)
add f60d8ea1936 Fix wrong PR links shown while classifying provider
changes (#73206)
add 6ae7be58a13 Reject non-string prompts in LLMFileAnalysisOperator
before reading files (#71734)
add 150ae660a1e Warn when connections/variables list output may be
incomplete (#72484)
add f081ffb0f38 CLI: Add --limit flag to airflow dags list-runs (#71729)
add 6ae2133176d Add dry-run mode to teams sync (#72494)
add 90972c41dfe Prevent KubernetesExecutor from launching stale workloads
(#69762)
add b6538c32c8b TS SDK: declare task dependencies by calling tasks (#73435)
add 9287e0c1d47 Move CloudComposerExternalTaskSensor task-id wrapping out
of __init__ (#73103)
add e5eda218ef4 Validate Cloud Function deploy body after template
rendering (#70531)
add 954d21908c0 [main] CI: Upgrade important CI environment
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 (730d6c4c4ea)
\
N -- N -- N refs/heads/ci-upgrade-main (954d21908c0)
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:
.../skills/airflow-translations/locales/zh-CN.md | 17 +-
.github/actions/install-prek/action.yml | 30 +-
.../actions/prepare_breeze_and_image/action.yml | 18 +-
.github/dependabot.yml | 52 +-
.github/workflows/ci-amd.yml | 1 +
.github/workflows/ci-arm.yml | 1 +
.github/workflows/ci-image-checks.yml | 5 +-
.github/workflows/codeql-analysis.yml | 6 +-
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/publish-docs-to-s3.yml | 2 +-
.github/workflows/registry-backfill.yml | 4 +-
.github/workflows/registry-build.yml | 2 +-
.github/workflows/run-unit-tests.yml | 9 +-
.../scheduled-upgrade-check-v3-3-test.yml | 40 +-
.pre-commit-config.yaml | 9 +-
Dockerfile | 2 +-
Dockerfile.ci | 2 +-
.../authoring-and-scheduling/language-sdks/go.rst | 191 ++-
.../language-sdks/typescript.rst | 49 +-
airflow-core/docs/core-concepts/tasks.rst | 36 +-
airflow-core/docs/howto/custom-operator.rst | 34 +
airflow-core/docs/security/api_permissions_ref.rst | 8 +
airflow-core/docs/tutorial/hitl.rst | 6 +
airflow-core/newsfragments/63491.significant.rst | 60 +
airflow-core/newsfragments/66350.bugfix.rst | 1 +
airflow-core/newsfragments/67372.bugfix.rst | 1 +
airflow-core/newsfragments/68954.bugfix.rst | 1 +
airflow-core/newsfragments/71729.improvement.rst | 1 +
airflow-core/newsfragments/71990.bugfix.rst | 1 +
airflow-core/newsfragments/72036.feature.rst | 1 +
airflow-core/newsfragments/72494.feature.rst | 1 +
airflow-core/newsfragments/73294.significant.rst | 14 +
airflow-core/newsfragments/73328.significant.rst | 6 +
airflow-core/pyproject.toml | 2 +-
.../auth/managers/simple/ui/package.json | 10 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 296 ++---
.../api_fastapi/common/parameters/search.py | 44 +-
.../api_fastapi/core_api/datamodels/common.py | 69 +-
.../api_fastapi/core_api/datamodels/dag_bundles.py | 38 +
.../api_fastapi/core_api/datamodels/hitl.py | 16 +
.../api_fastapi/core_api/datamodels/xcom.py | 41 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 274 ++++-
.../api_fastapi/core_api/routes/public/assets.py | 14 +-
.../core_api/routes/public/dag_bundles.py | 254 +++-
.../execution_api/datamodels/taskinstance.py | 11 +
.../execution_api/routes/task_instances.py | 1 +
.../api_fastapi/execution_api/versions/__init__.py | 8 +-
.../execution_api/versions/v2026_10_30.py | 13 +
airflow-core/src/airflow/cli/cli_config.py | 23 +-
.../src/airflow/cli/commands/connection_command.py | 5 +
.../src/airflow/cli/commands/dag_command.py | 9 +-
.../src/airflow/cli/commands/db_command.py | 2 +-
.../src/airflow/cli/commands/info_command.py | 5 +-
.../src/airflow/cli/commands/plugins_command.py | 5 +-
.../src/airflow/cli/commands/team_command.py | 94 +-
.../src/airflow/cli/commands/variable_command.py | 11 +-
airflow-core/src/airflow/cli/utils.py | 40 +
airflow-core/src/airflow/dag_processing/manager.py | 7 -
.../airflow/example_dags/example_retry_policy.py | 21 +-
.../src/airflow/executors/base_executor.py | 312 +++--
.../src/airflow/executors/local_executor.py | 16 +-
.../src/airflow/executors/workloads/__init__.py | 4 +-
.../src/airflow/executors/workloads/base.py | 41 +
.../src/airflow/executors/workloads/callback.py | 4 +-
.../airflow/executors/workloads/connection_test.py | 4 +-
.../src/airflow/executors/workloads/task.py | 9 +-
.../src/airflow/executors/workloads/types.py | 8 +-
.../src/airflow/jobs/scheduler_job_runner.py | 7 +-
airflow-core/src/airflow/models/dagrun.py | 100 +-
airflow-core/src/airflow/models/taskinstance.py | 12 +-
airflow-core/src/airflow/serialization/decoders.py | 5 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 14 +
.../ui/openapi-gen/queries/ensureQueryData.ts | 40 +
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 40 +
.../src/airflow/ui/openapi-gen/queries/queries.ts | 44 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 40 +
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 166 +++
.../ui/openapi-gen/requests/services.gen.ts | 70 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 136 ++-
.../airflow/ui/public/i18n/locales/en/browse.json | 18 +-
.../airflow/ui/public/i18n/locales/en/common.json | 2 +
.../ui/public/i18n/locales/en/dashboard.json | 17 +-
.../ui/public/i18n/locales/zh-CN/admin.json | 2 +-
.../ui/public/i18n/locales/zh-CN/common.json | 6 +-
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 6 +-
.../ui/public/i18n/locales/zh-CN/dashboard.json | 6 +-
.../airflow/ui/src/components/DagBundleVersion.tsx | 63 +
.../ui/src/components/DagDeactivatedBanner.tsx | 2 +-
.../Dag => components}/DagImportErrorModal.tsx | 0
.../src/airflow/ui/src/components/HeaderCard.tsx | 2 +-
.../airflow/ui/src/components/ImportErrorCount.tsx | 29 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 11 +-
.../layouts/Details/Grid/GridPaginationButtons.tsx | 2 +-
.../airflow/ui/src/pages/DagBundle/BundleFiles.tsx | 144 +++
.../airflow/ui/src/pages/DagBundle/DagBundle.tsx | 62 +
.../ui/src/pages/DagBundle/FileImportError.tsx | 78 ++
.../src/airflow/ui/src/pages/DagBundle/Header.tsx | 84 ++
.../src/airflow/ui/src/pages/DagBundle/index.tsx | 11 +-
.../airflow/ui/src/pages/DagBundles/DagBundles.tsx | 87 +-
.../ui/src/pages/Dashboard/Health/Health.test.tsx | 360 ++++++
.../ui/src/pages/Dashboard/Health/Health.tsx | 41 +-
.../ui/src/pages/Dashboard/Health/HealthBadge.tsx | 107 +-
.../src/pages/Dashboard/Health/HealthInstances.tsx | 89 ++
.../pages/Dashboard/Health/HealthStateBadge.tsx | 28 +-
.../ui/src/pages/Dashboard/Health/healthStatus.ts | 41 +
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 1 +
.../pages/TaskInstance/Logs/useLogGroups.test.tsx | 20 +
.../src/pages/TaskInstance/Logs/useLogGroups.tsx | 102 +-
.../ui/src/queries/useDagBundleRefetchInterval.ts | 38 +
airflow-core/src/airflow/ui/src/router.tsx | 5 +
airflow-core/src/airflow/utils/db_cleanup.py | 45 +-
.../tests/unit/always/test_example_dags.py | 2 -
.../tests/unit/always/test_project_structure.py | 43 +-
.../unit/api_fastapi/common/test_parameters.py | 80 +-
.../api_fastapi/core_api/datamodels/test_common.py | 50 +-
.../core_api/routes/public/test_assets.py | 41 +-
.../core_api/routes/public/test_dag_bundles.py | 309 ++++-
.../core_api/routes/public/test_hitl.py | 86 ++
.../core_api/routes/public/test_xcom.py | 2 +-
.../versions/head/test_task_instances.py | 43 +
.../versions/v2025_04_28/test_task_instances.py | 2 +
.../unit/cli/commands/test_connection_command.py | 32 +-
.../tests/unit/cli/commands/test_dag_command.py | 52 +
.../tests/unit/cli/commands/test_db_command.py | 13 +
.../tests/unit/cli/commands/test_info_command.py | 8 +
.../unit/cli/commands/test_plugins_command.py | 14 +-
.../tests/unit/cli/commands/test_team_command.py | 236 ++++
.../unit/cli/commands/test_variable_command.py | 27 +-
airflow-core/tests/unit/cli/test_utils.py | 61 +-
.../tests/unit/executors/test_base_executor.py | 441 ++++++-
.../tests/unit/executors/test_local_executor.py | 17 +-
.../tests/unit/executors/test_workloads.py | 54 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 104 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 115 +-
airflow-core/tests/unit/models/test_dag.py | 8 +-
airflow-core/tests/unit/models/test_dagrun.py | 148 ++-
.../unit/serialization/test_serialized_objects.py | 11 +-
.../deps/test_not_previously_skipped_dep.py | 67 +-
airflow-core/tests/unit/utils/test_db_cleanup.py | 248 +++-
airflow-core/tests/unit/utils/test_strings.py | 17 +-
airflow-ctl-tests/pyproject.toml | 2 +-
airflow-ctl/pyproject.toml | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 98 ++
airflow-ctl/src/airflowctl/api/operations.py | 2 +-
.../src/airflowctl/ctl/commands/dag_command.py | 53 +-
.../src/airflowctl/ctl/commands/task_command.py | 44 +-
airflow-ctl/src/airflowctl/ctl/utils/dag_run.py | 100 ++
.../tests/airflow_ctl/api/test_operations.py | 2 +
.../airflow_ctl/ctl/commands/test_task_command.py | 12 +
airflow-e2e-tests/pyproject.toml | 2 +-
chart/pyproject.toml | 2 +-
clients/python/pyproject.toml | 2 +-
contributing-docs/05_pull_requests.rst | 25 +
contributing-docs/testing/k8s_tests.rst | 671 +++++-----
dev/breeze/doc/ci/02_images.md | 2 +-
.../commands/release_management_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../src/airflow_breeze/params/shell_params.py | 11 +
.../prepare_providers/provider_documentation.py | 8 +-
.../airflow_breeze/utils/docker_command_utils.py | 5 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 1 +
dev/breeze/tests/test_provider_documentation.py | 10 +
dev/breeze/tests/test_shell_params.py | 27 +-
dev/breeze/uv.lock | 110 +-
dev/mypy/pyproject.toml | 2 +-
dev/pyproject.toml | 2 +-
dev/registry/pyproject.toml | 2 +-
devel-common/src/docs/build_docs.py | 99 +-
devel-common/src/docs/provider_conf.py | 7 +-
.../src/sphinx_exts/airflow_intersphinx.py | 67 +-
.../src/sphinx_exts/docs_build/docs_builder.py | 197 ++-
.../src/sphinx_exts/provider_yaml_utils.py | 42 +-
.../src/tests_common/test_utils/mock_executor.py | 15 +-
.../src/tests_common/test_utils/mock_plugins.py | 1 +
.../docs_build/test_build_docs_scheduling.py | 41 +
.../sphinx_exts/docs_build/test_docs_builder.py | 131 +-
.../unit/sphinx_exts/test_airflow_intersphinx.py | 113 ++
docker-stack-docs/pyproject.toml | 2 +-
docker-tests/pyproject.toml | 2 +-
generated/known_airflow_exceptions.txt | 1 -
go-sdk/README.md | 115 +-
go-sdk/adr/0001-bundle-packing-options.md | 4 +-
.../adr/0007-mixed-lang-task-handler-interface.md | 12 +-
go-sdk/airflow/bundle.go | 130 ++
go-sdk/airflow/bundle_test.go | 182 +++
go-sdk/airflow/context.go | 5 +
go-sdk/airflow/contexttest_test.go | 62 +
.../bundlev1server/server.go => airflow/serve.go} | 138 +--
go-sdk/airflow/serve_test.go | 265 ++++
go-sdk/airflow/task_handler.go | 63 +
go-sdk/airflow/task_handler_test.go | 249 ++++
.../testdata/foreignitem/main.go} | 20 +-
.../bundle/bundlev1/bundlev1server/server_test.go | 46 -
go-sdk/bundle/bundlev1/registry.go | 204 ----
go-sdk/bundle/bundlev1/registry_test.go | 168 ---
go-sdk/bundle/bundlev1/schemas.go | 46 -
go-sdk/capabilities.yaml | 4 +-
.../cmd/airflow-go-pack/pack_integration_test.go | 4 +-
.../bundle/concurrentxcom/concurrentxcom.go | 2 +-
go-sdk/example/bundle/main.go | 82 +-
.../bundlev1server => internal/bundle}/doc.go | 9 +-
.../{bundle/bundlev1 => internal/bundle}/task.go | 22 +-
.../bundlev1 => internal/bundle}/task_test.go | 28 +-
go-sdk/internal/contexttest/contexttest.go | 60 +
go-sdk/pkg/binding/binding.go | 8 +-
go-sdk/pkg/binding/binding_test.go | 165 ++-
go-sdk/pkg/binding/task_context.go | 68 ++
go-sdk/pkg/binding/task_context_test.go | 56 +
go-sdk/pkg/execution/genmodels/defaults.gen.go | 85 +-
go-sdk/pkg/execution/genmodels/models.gen.go | 203 +--
go-sdk/pkg/execution/integration_test.go | 236 ++--
go-sdk/pkg/execution/metadata.go | 56 +-
go-sdk/pkg/execution/server.go | 27 +-
go-sdk/pkg/execution/task_runner.go | 8 +-
kubernetes-tests/lang_sdk/go_example/main.go | 24 +-
kubernetes-tests/pyproject.toml | 2 +-
providers-summary-docs/pyproject.toml | 2 +-
providers/.pre-commit-config.yaml | 9 +
.../airflow/providers/airbyte/operators/airbyte.py | 5 +-
.../airflow/providers/airbyte/sensors/airbyte.py | 5 +-
.../providers/alibaba/cloud/operators/oss.py | 13 +
.../providers/alibaba/cloud/sensors/oss_key.py | 2 +-
providers/amazon/docs/changelog.rst | 9 +
.../amazon/docs/operators/athena/athena_spark.rst | 59 +
providers/amazon/provider.yaml | 2 +
.../aws/executors/aws_lambda/lambda_executor.py | 46 +-
.../amazon/aws/executors/batch/batch_executor.py | 69 +-
.../amazon/aws/executors/ecs/ecs_executor.py | 46 +-
.../airflow/providers/amazon/aws/hooks/athena.py | 174 +++
.../providers/amazon/aws/notifications/chime.py | 6 +-
.../providers/amazon/aws/operators/athena_spark.py | 204 ++++
.../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 | 20 +-
.../airflow/providers/amazon/aws/operators/emr.py | 40 +
.../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 +
.../airflow/providers/amazon/aws/operators/s3.py | 4 +-
.../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 +
.../airflow/providers/amazon/aws/sensors/ssm.py | 3 +
.../amazon/aws/transfers/azure_blob_to_s3.py | 2 +
.../providers/amazon/aws/transfers/exasol_to_s3.py | 10 +-
.../providers/amazon/aws/transfers/ftp_to_s3.py | 10 +-
.../providers/amazon/aws/transfers/gcs_to_s3.py | 2 +
.../amazon/aws/transfers/glacier_to_gcs.py | 8 +-
.../amazon/aws/transfers/google_api_to_s3.py | 1 +
.../amazon/aws/transfers/hive_to_dynamodb.py | 6 +-
.../providers/amazon/aws/transfers/http_to_s3.py | 10 +-
.../amazon/aws/transfers/imap_attachment_to_s3.py | 8 +-
.../providers/amazon/aws/transfers/local_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/mongo_to_s3.py | 9 +-
.../amazon/aws/transfers/s3_to_dynamodb.py | 1 +
.../providers/amazon/aws/transfers/s3_to_ftp.py | 10 +-
.../providers/amazon/aws/transfers/s3_to_sftp.py | 10 +-
.../providers/amazon/aws/transfers/s3_to_sql.py | 1 +
.../amazon/aws/transfers/salesforce_to_s3.py | 8 +-
.../providers/amazon/aws/transfers/sftp_to_s3.py | 10 +-
.../providers/amazon/aws/transfers/sql_to_s3.py | 1 +
.../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 +-
.../airflow/providers/amazon/aws/triggers/rds.py | 45 +-
.../providers/amazon/aws/waiters/athena.json | 56 +
.../airflow/providers/amazon/get_provider_info.py | 6 +-
.../src/airflow/providers/amazon/version_compat.py | 2 +
.../system/amazon/aws/example_athena_spark.py | 121 ++
.../amazon/tests/system/amazon/aws/example_dms.py | 5 +-
.../executors/aws_lambda/test_lambda_executor.py | 29 +-
.../aws/executors/batch/test_batch_executor.py | 32 +-
.../amazon/aws/executors/ecs/test_ecs_executor.py | 20 +-
.../tests/unit/amazon/aws/hooks/test_athena.py | 225 ++++
.../unit/amazon/aws/hooks/test_batch_client.py | 7 +-
.../unit/amazon/aws/hooks/test_batch_waiters.py | 7 +-
.../tests/unit/amazon/aws/hooks/test_glue.py | 5 +-
.../unit/amazon/aws/operators/test_athena_spark.py | 293 +++++
.../tests/unit/amazon/aws/operators/test_ec2.py | 6 +
.../tests/unit/amazon/aws/operators/test_ecs.py | 45 +-
.../tests/unit/amazon/aws/operators/test_eks.py | 6 +
.../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 +-
.../tests/unit/amazon/aws/sensors/test_ssm.py | 27 +
.../amazon/aws/test_deferred_hook_configuration.py | 283 +++++
.../unit/amazon/aws/transfers/test_mongo_to_s3.py | 2 +
.../tests/unit/amazon/aws/triggers/test_base.py | 36 +-
.../airflow/providers/anthropic/operators/agent.py | 2 +-
.../airflow/providers/anthropic/operators/batch.py | 2 +-
.../airflow/providers/anthropic/sensors/batch.py | 5 +-
.../providers/apache/beam/operators/beam.py | 5 +
.../providers/apache/cassandra/sensors/record.py | 2 +-
.../providers/apache/cassandra/sensors/table.py | 5 +-
.../apache/druid/transfers/hive_to_druid.py | 8 +-
.../apache/flink/operators/flink_kubernetes.py | 2 +-
.../providers/apache/hdfs/sensors/web_hdfs.py | 7 +-
.../providers/apache/hive/operators/hive_stats.py | 10 +-
.../apache/hive/sensors/hive_partition.py | 1 +
.../apache/hive/transfers/hive_to_mysql.py | 9 +-
.../apache/hive/transfers/hive_to_samba.py | 2 +-
.../apache/hive/transfers/mssql_to_hive.py | 2 +-
.../apache/hive/transfers/mysql_to_hive.py | 2 +-
.../providers/apache/hive/transfers/s3_to_hive.py | 2 +-
.../apache/hive/transfers/vertica_to_hive.py | 2 +-
.../providers/apache/kylin/operators/kylin_cube.py | 1 +
.../airflow/providers/apache/pig/operators/pig.py | 2 +-
.../unit/apache/spark/hooks/test_spark_submit.py | 2 +-
.../apache/tinkerpop/operators/gremlin.py | 6 +-
.../providers/apprise/notifications/apprise.py | 4 +-
.../providers/arangodb/operators/arangodb.py | 7 +-
.../airflow/providers/arangodb/sensors/arangodb.py | 5 +-
.../providers/asana/operators/asana_tasks.py | 9 +
.../providers/atlassian/jira/notifications/jira.py | 10 +-
.../providers/atlassian/jira/operators/jira.py | 5 +-
.../providers/atlassian/jira/sensors/jira.py | 7 +-
.../providers/celery/executors/celery_executor.py | 34 +-
.../celery/executors/celery_kubernetes_executor.py | 5 +-
.../src/airflow/providers/celery/version_compat.py | 2 +
.../integration/celery/test_celery_executor.py | 2 +-
.../unit/celery/executors/test_celery_executor.py | 8 +-
.../kubernetes/executors/kubernetes_executor.py | 142 ++-
.../executors/local_kubernetes_executor.py | 13 +-
.../providers/cncf/kubernetes/operators/job.py | 8 +-
.../providers/cncf/kubernetes/operators/pod.py | 12 +-
.../cncf/kubernetes/operators/resource.py | 2 +-
.../cncf/kubernetes/sensors/spark_kubernetes.py | 2 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 24 +-
.../providers/cncf/kubernetes/version_compat.py | 2 +
.../executors/test_kubernetes_executor.py | 87 +-
.../executors/test_local_kubernetes_executor.py | 19 +-
.../unit/cncf/kubernetes/operators/test_job.py | 47 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 45 +-
.../providers/cohere/operators/embedding.py | 5 +-
.../airflow/providers/cohere/operators/rerank.py | 2 +-
providers/common/ai/README.rst | 6 +-
providers/common/ai/docs/agent_security.rst | 267 ++++
providers/common/ai/docs/approval_gates.rst | 118 ++
providers/common/ai/docs/changelog.rst | 29 +
providers/common/ai/docs/choosing_a_toolset.rst | 610 ----------
providers/common/ai/docs/classifier_models.rst | 60 +-
providers/common/ai/docs/code_mode.rst | 87 ++
providers/common/ai/docs/concepts.rst | 136 +++
providers/common/ai/docs/connections/langchain.rst | 2 +-
.../common/ai/docs/connections/llamaindex.rst | 4 +-
providers/common/ai/docs/connections/mcp.rst | 2 +-
.../common/ai/docs/connections/pydantic_ai.rst | 31 +-
.../ai/docs/connections/pydantic_ai_azure.rst | 4 +-
.../ai/docs/connections/pydantic_ai_bedrock.rst | 4 +-
.../ai/docs/connections/pydantic_ai_vertex.rst | 12 +-
providers/common/ai/docs/durable_execution.rst | 159 +++
providers/common/ai/docs/end_to_end_pipelines.rst | 176 ---
providers/common/ai/docs/examples.rst | 107 +-
providers/common/ai/docs/features.rst | 54 +
providers/common/ai/docs/guardrails.rst | 62 +
providers/common/ai/docs/hitl_review.rst | 38 +-
providers/common/ai/docs/hooks/index.rst | 62 -
providers/common/ai/docs/hooks/langchain.rst | 11 +-
providers/common/ai/docs/hooks/llamaindex.rst | 4 +-
providers/common/ai/docs/hooks/mcp.rst | 2 +-
providers/common/ai/docs/hooks/pydantic_ai.rst | 14 +-
providers/common/ai/docs/index.rst | 179 +--
providers/common/ai/docs/installation.rst | 87 ++
providers/common/ai/docs/message_history.rst | 60 +
providers/common/ai/docs/model_providers.rst | 148 +++
providers/common/ai/docs/operations.rst | 45 +
providers/common/ai/docs/operators/agent.rst | 347 +-----
.../common/ai/docs/operators/document_loader.rst | 39 +-
providers/common/ai/docs/operators/index.rst | 62 +-
.../ai/docs/operators/llamaindex_embedding.rst | 4 +-
.../ai/docs/operators/llamaindex_retrieval.rst | 4 +-
providers/common/ai/docs/operators/llm.rst | 151 +--
providers/common/ai/docs/operators/llm_batch.rst | 318 +++++
providers/common/ai/docs/operators/llm_branch.rst | 13 +-
.../common/ai/docs/operators/llm_file_analysis.rst | 4 +-
.../ai/docs/operators/llm_schema_compare.rst | 4 +-
providers/common/ai/docs/operators/llm_sql.rst | 4 +-
providers/common/ai/docs/quickstart.rst | 119 +-
providers/common/ai/docs/rag_pipelines.rst | 45 +
.../__init__.py => common/ai/docs/redirects.txt} | 7 +
providers/common/ai/docs/retry_policies.rst | 470 +++++--
providers/common/ai/docs/sandbox.rst | 821 -------------
providers/common/ai/docs/sandbox/backends.rst | 270 ++++
providers/common/ai/docs/sandbox/configuration.rst | 324 +++++
providers/common/ai/docs/sandbox/index.rst | 428 +++++++
providers/common/ai/docs/structured_output.rst | 68 ++
providers/common/ai/docs/toolsets.rst | 1142 -----------------
providers/common/ai/docs/toolsets/datafusion.rst | 166 +++
providers/common/ai/docs/toolsets/hook.rst | 98 ++
providers/common/ai/docs/toolsets/index.rst | 285 +++++
providers/common/ai/docs/toolsets/langchain.rst | 81 ++
providers/common/ai/docs/toolsets/logging.rst | 36 +
.../common/ai/docs/toolsets/managed_agent.rst | 291 +++++
providers/common/ai/docs/toolsets/mcp.rst | 167 +++
providers/common/ai/docs/toolsets/skills.rst | 169 +++
providers/common/ai/docs/toolsets/sql.rst | 225 ++++
providers/common/ai/docs/troubleshooting.rst | 143 +++
.../ai/docs/use_cases/ask_questions_over_pdfs.rst | 104 ++
.../ai/docs/use_cases/classify_reviews_in_bulk.rst | 89 ++
.../ai/docs/use_cases/compare_10k_filings.rst | 118 ++
.../ai/docs/use_cases/explain_revenue_anomaly.rst | 78 ++
.../docs/use_cases/gate_loads_on_schema_drift.rst | 76 ++
providers/common/ai/docs/use_cases/index.rst | 123 ++
.../docs/use_cases/monthly_report_from_a_csv.rst | 103 ++
.../docs/use_cases/research_agent_with_review.rst | 88 ++
.../ai/docs/use_cases/route_pipeline_failures.rst | 88 ++
.../ai/docs/use_cases/triage_support_tickets.rst | 72 ++
.../ai/docs/use_cases/weekly_status_report.rst | 120 ++
providers/common/ai/provider.yaml | 13 +-
providers/common/ai/pyproject.toml | 47 +-
.../airflow/providers/common/ai/batch/__init__.py | 27 +-
.../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 ++++++
.../providers/common/ai/decorators/llm_batch.py | 145 +++
.../ai/example_dags/example_langchain_10k.py | 2 +-
.../ai/example_dags/example_llamaindex_10k.py | 2 +-
.../example_dags/example_llm_analysis_pipeline.py | 4 +-
.../common/ai/example_dags/example_llm_batch.py | 194 +++
.../ai/example_dags/example_llm_retry_policy.py | 115 +-
.../ai/example_dags/example_llm_survey_analysis.py | 4 +-
.../common/ai/example_dags/example_quickstart.py | 25 +-
.../src/airflow/providers/common/ai/exceptions.py | 97 ++
.../providers/common/ai/get_provider_info.py | 16 +-
.../providers/common/ai/hooks/pydantic_ai.py | 8 +-
.../airflow/providers/common/ai/operators/agent.py | 53 +-
.../common/ai/operators/document_loader.py | 52 +-
.../airflow/providers/common/ai/operators/llm.py | 7 +-
.../providers/common/ai/operators/llm_batch.py | 791 ++++++++++++
.../providers/common/ai/operators/llm_branch.py | 55 +-
.../common/ai/operators/llm_file_analysis.py | 5 +
.../airflow/providers/common/ai/policies/retry.py | 563 ++++++++-
.../airflow/providers/common/ai/sandbox/base.py | 21 +-
.../airflow/providers/common/ai/sandbox/modal.py | 142 ++-
.../src/airflow/providers/common/ai/sandbox/sbx.py | 8 +
.../providers/common/ai/toolsets/sandbox.py | 31 +-
.../airflow/providers/common/ai/toolsets/sql.py | 34 +-
.../providers/common/ai/triggers/llm_batch.py | 182 +++
.../airflow/providers/common/ai/utils/decision.py | 80 +-
.../airflow/providers/common/ai/utils/toolsets.py | 64 +
.../common/ai/example_sandbox_toolset_modal.py | 71 +-
.../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 +++++
.../unit/common/ai/decorators/test_llm_batch.py | 162 +++
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 75 +-
.../tests/unit/common/ai/operators/test_agent.py | 105 ++
.../common/ai/operators/test_document_loader.py | 67 +
.../ai/tests/unit/common/ai/operators/test_llm.py | 25 +
.../unit/common/ai/operators/test_llm_batch.py | 856 +++++++++++++
.../unit/common/ai/operators/test_llm_branch.py | 6 +-
.../common/ai/operators/test_llm_file_analysis.py | 34 +
.../ai/tests/unit/common/ai/policies/test_retry.py | 1287 ++++++++++++++++----
.../ai/tests/unit/common/ai/sandbox/test_modal.py | 183 +++
.../ai/tests/unit/common/ai/sandbox/test_sbx.py | 8 +
.../tests/unit/common/ai/toolsets/test_sandbox.py | 90 +-
.../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 | 63 +-
.../ai/tests/unit/common/ai/utils/test_toolsets.py | 66 +
providers/common/compat/provider.yaml | 5 +
.../providers/common/compat/_retry_policy.py | 127 ++
.../src/airflow/providers/common/compat/sdk.py | 30 +-
.../tests/unit/common/compat/test__retry_policy.py | 320 +++++
.../providers/common/io/operators/file_transfer.py | 2 +-
.../airflow/providers/common/sql/sensors/sql.py | 2 +-
.../providers/databricks/operators/databricks.py | 3 +
.../airflow/providers/datadog/sensors/datadog.py | 4 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 2 +
.../cloud/tests/unit/dbt/cloud/hooks/test_dbt.py | 3 +
.../providers/dingding/operators/dingding.py | 5 +-
.../airflow/providers/docker/operators/docker.py | 1 +
providers/edge3/pyproject.toml | 2 +-
.../providers/edge3/executors/edge_executor.py | 9 +-
.../providers/edge3/plugins/www/package.json | 24 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 823 +++++++------
.../src/airflow/providers/edge3/version_compat.py | 2 +
.../unit/edge3/executors/test_edge_executor.py | 2 +-
.../airflow/providers/exasol/operators/exasol.py | 2 +-
providers/fab/docs/auth-manager/access-control.rst | 8 +
providers/fab/pyproject.toml | 2 +-
.../providers/3rd-party-licenses/LICENSES-ui.txt | 8 +-
.../fab/auth_manager/security_manager/override.py | 9 +-
.../providers/fab/auth_manager/views/user.py | 20 +
.../0001_3_5_0_fix_fab_db_inconsistencies.py | 70 +-
.../fab/src/airflow/providers/fab/www/package.json | 16 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 1174 +++++++++---------
.../appbuilder/general/model/user_edit.html | 29 +
.../tests/unit/fab/auth_manager/models/test_db.py | 102 ++
.../tests/unit/fab/auth_manager/test_security.py | 23 +
.../fab/www/views/test_views_custom_user_views.py | 74 +-
.../ftp/src/airflow/providers/ftp/operators/ftp.py | 2 +-
.../ftp/src/airflow/providers/ftp/sensors/ftp.py | 5 +-
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 ++++-
.../airflow/providers/github/operators/github.py | 7 +-
.../src/airflow/providers/github/sensors/github.py | 9 +-
providers/google/docs/changelog.rst | 14 +
.../docs/integration-logos/Cloud-Monitoring.png | Bin 0 -> 3058 bytes
.../integration-logos/Google-Cloud-Stackdriver.png | Bin 8275 -> 0 bytes
.../docs/operators/cloud/cloud_monitoring.rst | 234 ++++
providers/google/docs/operators/cloud/pubsub.rst | 7 +
.../google/docs/operators/cloud/stackdriver.rst | 227 ----
providers/google/docs/redirects.txt | 1 +
providers/google/provider.yaml | 20 +-
.../airflow/providers/google/ads/operators/ads.py | 2 +
.../providers/google/ads/transfers/ads_to_gcs.py | 2 +
.../hooks/{stackdriver.py => cloud_monitoring.py} | 48 +-
.../providers/google/cloud/hooks/stackdriver.py | 578 +--------
.../links/{stackdriver.py => cloud_monitoring.py} | 20 +-
.../providers/google/cloud/links/stackdriver.py | 54 +-
.../providers/google/cloud/operators/bigquery.py | 4 +
.../providers/google/cloud/operators/bigtable.py | 6 +
.../google/cloud/operators/cloud_composer.py | 8 +
.../{stackdriver.py => cloud_monitoring.py} | 182 +--
.../providers/google/cloud/operators/cloud_sql.py | 2 +
.../operators/cloud_storage_transfer_service.py | 1 +
.../providers/google/cloud/operators/compute.py | 2 +
.../providers/google/cloud/operators/dataflow.py | 9 +-
.../providers/google/cloud/operators/dataform.py | 33 +-
.../providers/google/cloud/operators/datafusion.py | 17 +-
.../providers/google/cloud/operators/dataplex.py | 51 +-
.../providers/google/cloud/operators/dataprep.py | 18 +-
.../google/cloud/operators/dataproc_metastore.py | 10 +
.../providers/google/cloud/operators/datastore.py | 10 +
.../providers/google/cloud/operators/functions.py | 20 +-
.../providers/google/cloud/operators/gen_ai.py | 71 +-
.../google/cloud/operators/kubernetes_engine.py | 25 +-
.../providers/google/cloud/operators/looker.py | 3 +
.../providers/google/cloud/operators/pubsub.py | 44 +-
.../google/cloud/operators/stackdriver.py | 964 ++-------------
.../google/cloud/operators/vertex_ai/auto_ml.py | 30 +-
.../operators/vertex_ai/batch_prediction_job.py | 15 +-
.../google/cloud/operators/vertex_ai/custom_job.py | 31 +-
.../google/cloud/operators/vertex_ai/dataset.py | 44 +-
.../cloud/operators/vertex_ai/endpoint_service.py | 46 +-
.../operators/vertex_ai/experiment_service.py | 6 +
.../cloud/operators/vertex_ai/feature_store.py | 8 +
.../cloud/operators/vertex_ai/generative_model.py | 1 +
.../vertex_ai/hyperparameter_tuning_job.py | 18 +-
.../cloud/operators/vertex_ai/model_service.py | 51 +-
.../cloud/operators/vertex_ai/pipeline_job.py | 4 +
.../providers/google/cloud/operators/workflows.py | 18 +-
.../providers/google/cloud/sensors/bigquery.py | 4 +
.../providers/google/cloud/sensors/bigquery_dts.py | 23 +-
.../providers/google/cloud/sensors/bigtable.py | 1 +
.../google/cloud/sensors/cloud_composer.py | 91 +-
.../providers/google/cloud/sensors/cloud_sql.py | 1 +
.../providers/google/cloud/sensors/dataflow.py | 20 +-
.../providers/google/cloud/sensors/dataform.py | 10 +-
.../providers/google/cloud/sensors/datafusion.py | 5 +-
.../providers/google/cloud/sensors/dataplex.py | 6 +-
.../providers/google/cloud/sensors/dataprep.py | 5 +-
.../providers/google/cloud/sensors/dataproc.py | 4 +-
.../google/cloud/sensors/dataproc_metastore.py | 1 +
.../airflow/providers/google/cloud/sensors/gcs.py | 4 +
.../providers/google/cloud/sensors/looker.py | 2 +-
.../providers/google/cloud/sensors/pubsub.py | 34 +-
.../cloud/sensors/vertex_ai/feature_store.py | 2 +-
.../providers/google/cloud/sensors/workflows.py | 2 +-
.../google/cloud/transfers/adls_to_gcs.py | 2 +
.../google/cloud/transfers/azure_blob_to_gcs.py | 2 +
.../cloud/transfers/azure_fileshare_to_gcs.py | 2 +
.../google/cloud/transfers/bigquery_to_bigquery.py | 1 +
.../google/cloud/transfers/bigquery_to_gcs.py | 1 +
.../google/cloud/transfers/bigquery_to_mssql.py | 1 +
.../google/cloud/transfers/bigquery_to_mysql.py | 7 +-
.../google/cloud/transfers/bigquery_to_postgres.py | 3 +
.../google/cloud/transfers/bigquery_to_sql.py | 1 +
.../google/cloud/transfers/calendar_to_gcs.py | 1 +
.../google/cloud/transfers/cassandra_to_gcs.py | 2 +
.../google/cloud/transfers/facebook_ads_to_gcs.py | 1 +
.../google/cloud/transfers/gcs_to_bigquery.py | 1 +
.../providers/google/cloud/transfers/gcs_to_gcs.py | 1 +
.../google/cloud/transfers/gcs_to_local.py | 1 +
.../google/cloud/transfers/gcs_to_sftp.py | 2 +
.../google/cloud/transfers/gdrive_to_gcs.py | 1 +
.../google/cloud/transfers/gdrive_to_local.py | 1 +
.../google/cloud/transfers/local_to_gcs.py | 1 +
.../google/cloud/transfers/mongo_to_gcs.py | 2 +
.../google/cloud/transfers/mssql_to_gcs.py | 2 +
.../google/cloud/transfers/mysql_to_gcs.py | 3 +
.../google/cloud/transfers/oracle_to_gcs.py | 3 +
.../google/cloud/transfers/postgres_to_gcs.py | 3 +
.../google/cloud/transfers/presto_to_gcs.py | 3 +
.../providers/google/cloud/transfers/s3_to_gcs.py | 2 +
.../google/cloud/transfers/salesforce_to_gcs.py | 2 +
.../google/cloud/transfers/sftp_to_gcs.py | 2 +
.../google/cloud/transfers/sheets_to_gcs.py | 1 +
.../providers/google/cloud/transfers/sql_to_gcs.py | 1 +
.../google/cloud/transfers/trino_to_gcs.py | 2 +
.../providers/google/cloud/triggers/pubsub.py | 24 +-
.../src/airflow/providers/google/common/consts.py | 8 +
.../google/event_scheduling/events/pubsub.py | 1 +
.../airflow/providers/google/get_provider_info.py | 22 +-
.../providers/google/leveldb/operators/leveldb.py | 3 +
.../marketing_platform/operators/bid_manager.py | 4 +
.../operators/campaign_manager.py | 2 +
.../marketing_platform/operators/display_video.py | 2 +
.../marketing_platform/sensors/bid_manager.py | 1 +
.../marketing_platform/sensors/campaign_manager.py | 1 +
.../marketing_platform/sensors/display_video.py | 1 +
.../providers/google/suite/operators/sheets.py | 1 +
.../providers/google/suite/sensors/drive.py | 1 +
.../google/suite/transfers/gcs_to_gdrive.py | 1 +
.../google/suite/transfers/gcs_to_sheets.py | 1 +
.../google/suite/transfers/local_to_drive.py | 1 +
.../google/suite/transfers/sql_to_sheets.py | 2 +
.../google/cloud/cloud_monitoring}/__init__.py | 0
.../example_cloud_monitoring.py} | 99 +-
.../system/google/cloud/pubsub/example_pubsub.py | 5 +
.../cloud/pubsub/example_pubsub_deferrable.py | 1 +
.../example_event_schedule_pubsub.py | 1 +
...est_stackdriver.py => test_cloud_monitoring.py} | 110 +-
.../tests/unit/google/cloud/hooks/test_dataprep.py | 4 +-
.../unit/google/cloud/hooks/test_stackdriver.py | 426 +------
.../google/cloud/links/test_cloud_monitoring.py | 27 +-
.../unit/google/cloud/links/test_stackdriver.py | 51 +
...est_stackdriver.py => test_cloud_monitoring.py} | 175 ++-
.../unit/google/cloud/operators/test_functions.py | 121 +-
.../unit/google/cloud/operators/test_pubsub.py | 47 +-
.../google/cloud/operators/test_stackdriver.py | 329 ++---
.../unit/google/cloud/sensors/test_bigquery_dts.py | 34 +
.../google/cloud/sensors/test_cloud_composer.py | 202 +++
.../tests/unit/google/cloud/sensors/test_pubsub.py | 45 +-
.../unit/google/cloud/triggers/test_pubsub.py | 66 +
.../src/airflow/providers/grpc/operators/grpc.py | 2 +-
.../src/airflow/providers/http/operators/http.py | 1 +
.../src/airflow/providers/http/sensors/http.py | 2 +-
.../providers/imap/sensors/imap_attachment.py | 2 +-
providers/influxdb/README.rst | 13 +-
providers/influxdb/docs/index.rst | 13 +-
providers/influxdb/docs/operators/index.rst | 22 +
providers/influxdb/provider.yaml | 5 +
providers/influxdb/pyproject.toml | 7 +-
.../providers/influxdb/get_provider_info.py | 6 +
.../airflow/providers/influxdb/hooks/influxdb3.py | 34 +-
.../providers/influxdb/operators/influxdb.py | 5 +-
.../providers/influxdb/operators/influxdb3.py | 44 +-
.../providers/influxdb/triggers}/__init__.py | 0
.../providers/influxdb/triggers/influxdb3.py | 78 ++
.../src/airflow/providers/influxdb/utils.py} | 13 +-
.../tests/system/influxdb/example_influxdb3.py | 11 +-
.../tests/unit/influxdb/hooks/test_influxdb3.py | 50 +-
.../unit/influxdb/operators/test_influxdb3.py | 79 +-
.../tests/unit/influxdb/test_utils.py} | 26 +-
.../tests/unit/influxdb/triggers}/__init__.py | 0
.../tests/unit/influxdb/triggers/test_influxdb3.py | 81 ++
.../keycloak/auth_manager/keycloak_auth_manager.py | 8 +
.../unit/keycloak/auth_manager/routes/conftest.py | 2 +-
.../auth_manager/test_keycloak_auth_manager.py | 20 +
.../microsoft/azure/notifications/msgraph.py | 1 +
.../providers/microsoft/azure/operators/adls.py | 12 +-
.../providers/microsoft/azure/operators/adx.py | 2 +-
.../providers/microsoft/azure/operators/asb.py | 38 +-
.../providers/microsoft/azure/operators/batch.py | 1 +
.../providers/microsoft/azure/operators/compute.py | 2 +-
.../azure/operators/container_instances.py | 10 +-
.../providers/microsoft/azure/operators/cosmos.py | 2 +-
.../microsoft/azure/operators/wasb_delete_blob.py | 2 +-
.../providers/microsoft/azure/sensors/compute.py | 2 +-
.../providers/microsoft/azure/sensors/cosmos.py | 7 +-
.../providers/microsoft/azure/sensors/wasb.py | 4 +-
.../microsoft/azure/transfers/gcs_to_wasb.py | 2 +
.../microsoft/azure/transfers/local_to_adls.py | 2 +-
.../microsoft/azure/transfers/local_to_wasb.py | 2 +-
.../azure/transfers/oracle_to_azure_data_lake.py | 8 +-
.../microsoft/azure/transfers/s3_to_wasb.py | 2 +
.../microsoft/azure/transfers/sftp_to_wasb.py | 8 +-
.../unit/microsoft/azure/triggers/test_powerbi.py | 6 +-
.../unit/microsoft/azure/triggers/test_wasb.py | 2 +-
.../providers/microsoft/winrm/operators/winrm.py | 1 +
.../src/airflow/providers/mongo/sensors/mongo.py | 2 +-
.../providers/mysql/transfers/presto_to_mysql.py | 8 +-
.../providers/mysql/transfers/s3_to_mysql.py | 2 +
.../providers/mysql/transfers/trino_to_mysql.py | 8 +-
.../providers/mysql/transfers/vertica_to_mysql.py | 9 +-
.../src/airflow/providers/neo4j/operators/neo4j.py | 2 +-
.../src/airflow/providers/neo4j/sensors/neo4j.py | 2 +-
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 +++
.../airflow/providers/openai/operators/openai.py | 15 +-
.../src/airflow/providers/openai/triggers/agent.py | 89 ++
.../tests/system/openai/example_openai_agent.py | 56 +
.../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/opensearch/operators/opensearch.py | 6 +-
.../providers/opsgenie/notifications/opsgenie.py | 5 +-
.../providers/opsgenie/operators/opsgenie.py | 17 +-
.../airflow/providers/oracle/operators/oracle.py | 1 +
.../providers/oracle/transfers/oracle_to_oracle.py | 7 +-
.../providers/pagerduty/notifications/pagerduty.py | 1 +
.../providers/pinecone/operators/pinecone.py | 6 +-
providers/postgres/docs/connections/postgres.rst | 9 +
.../airflow/providers/postgres/hooks/postgres.py | 30 +-
.../tests/unit/postgres/hooks/test_postgres.py | 87 ++
.../providers/presto/transfers/gcs_to_presto.py | 2 +
.../airflow/providers/qdrant/operators/qdrant.py | 1 +
.../airflow/providers/salesforce/operators/bulk.py | 2 +-
.../salesforce/operators/salesforce_apex_rest.py | 3 +
.../tests/unit/salesforce/operators/test_bulk.py | 7 +-
.../providers/samba/transfers/gcs_to_samba.py | 2 +
.../segment/operators/segment_track_event.py | 2 +-
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 | 224 ++--
.../src/airflow/providers/sftp/sensors/sftp.py | 1 +
.../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 +-
.../airflow/providers/slack/notifications/slack.py | 2 +-
.../src/airflow/providers/slack/operators/slack.py | 14 +-
.../providers/slack/operators/slack_webhook.py | 1 +
.../providers/slack/transfers/base_sql_to_slack.py | 4 +-
.../providers/slack/transfers/sql_to_slack.py | 2 +
.../slack/transfers/sql_to_slack_webhook.py | 2 +-
.../unit/slack/operators/test_slack_webhook.py | 1 +
.../airflow/providers/smtp/notifications/smtp.py | 1 +
providers/snowflake/docs/operators/snowflake.rst | 2 +-
.../providers/snowflake/decorators/snowpark.py | 2 +
.../airflow/providers/snowflake/hooks/snowflake.py | 32 +-
.../snowflake/hooks/snowflake_cortex_agent.py | 5 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 14 +-
.../providers/snowflake/operators/snowflake.py | 5 +-
.../snowflake/operators/snowflake_cortex_agent.py | 1 +
.../providers/snowflake/operators/snowpark.py | 2 +
.../snowflake/transfers/copy_into_snowflake.py | 5 +-
.../tests/unit/snowflake/hooks/test_snowflake.py | 77 ++
.../snowflake/hooks/test_snowflake_cortex_agent.py | 13 +
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 39 +-
.../operators/test_snowflake_cortex_agent.py | 1 +
.../ssh/src/airflow/providers/ssh/operators/ssh.py | 2 +-
.../providers/ssh/operators/ssh_remote_job.py | 8 +-
.../providers/standard/sensors/filesystem.py | 5 +-
.../tests/unit/standard/operators/test_python.py | 380 +++---
.../airflow/providers/tableau/operators/tableau.py | 1 +
.../airflow/providers/tableau/sensors/tableau.py | 5 +-
.../airflow/providers/teradata/operators/bteq.py | 6 +-
.../providers/teradata/operators/teradata.py | 2 +
.../airflow/providers/teradata/operators/tpt.py | 6 +-
.../teradata/transfers/azure_blob_to_teradata.py | 7 +-
.../providers/teradata/transfers/s3_to_teradata.py | 2 +-
.../teradata/transfers/teradata_to_teradata.py | 2 +
.../teradata/example_teradata_compute_cluster.py | 50 +-
.../tests/unit/teradata/operators/test_bteq.py | 2 +-
.../providers/trino/transfers/gcs_to_trino.py | 2 +
.../providers/weaviate/operators/weaviate.py | 10 +-
.../airflow/providers/yandex/operators/dataproc.py | 5 +-
.../src/airflow/providers/yandex/operators/yq.py | 5 +-
pyproject.toml | 15 +-
.../ci/docker-compose/integration-cassandra.yml | 1 +
scripts/ci/docker-compose/integration-celery.yml | 1 +
.../docker-compose/integration-elasticsearch.yml | 1 +
scripts/ci/docker-compose/integration-kerberos.yml | 1 +
scripts/ci/docker-compose/integration-keycloak.yml | 1 +
.../ci/docker-compose/integration-localstack.yml | 1 +
scripts/ci/docker-compose/integration-mongo.yml | 1 +
.../ci/docker-compose/integration-openlineage.yml | 1 +
.../ci/docker-compose/integration-opensearch.yml | 1 +
scripts/ci/docker-compose/integration-pinot.yml | 1 +
scripts/ci/docker-compose/integration-redis.yml | 2 +
scripts/ci/docker-compose/integration-trino.yml | 1 +
scripts/ci/docker-compose/local.yml | 3 -
.../{integration-pinot.yml => mount-uv-lock.yml} | 28 +-
scripts/ci/prek/check_conn_id_templated.py | 247 ++++
scripts/ci/prek/check_extra_packages_ref.py | 2 +-
scripts/ci/prek/dump_supervisor_schemas.py | 12 +
scripts/ci/prek/sync_java_sdk_supervisor_schema.py | 80 ++
scripts/ci/prek/ts_compile_lint_common_ai.py | 1 -
scripts/ci/prek/ts_compile_lint_edge.py | 1 -
.../prek/ts_compile_lint_simple_auth_manager_ui.py | 1 -
scripts/ci/prek/ts_compile_lint_ui.py | 1 -
scripts/ci/prek/validate_operators_init.py | 84 +-
.../ci/prek/validate_operators_init_exemptions.txt | 4 -
.../in_container/install_airflow_and_providers.py | 2 +-
.../in_container/run_provider_yaml_files_check.py | 2 +
scripts/in_container/run_template_fields_check.py | 56 +-
scripts/pyproject.toml | 2 +-
.../tests/ci/prek/test_check_conn_id_templated.py | 243 ++++
.../tests/ci/prek/test_validate_operators_init.py | 136 +++
.../test_install_airflow_and_providers.py | 26 +-
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 2 +-
.../src/airflow_shared/configuration/parser.py | 16 +-
shared/dagnode/pyproject.toml | 2 +-
shared/listeners/pyproject.toml | 2 +-
shared/logging/pyproject.toml | 2 +-
shared/module_loading/pyproject.toml | 2 +-
shared/observability/pyproject.toml | 2 +-
shared/plugins_manager/pyproject.toml | 2 +-
shared/providers_discovery/pyproject.toml | 2 +-
shared/secrets_backend/pyproject.toml | 2 +-
shared/secrets_masker/pyproject.toml | 2 +-
shared/serialization/pyproject.toml | 2 +-
shared/state/pyproject.toml | 2 +-
shared/template_rendering/pyproject.toml | 2 +-
shared/timezones/pyproject.toml | 2 +-
task-sdk-integration-tests/pyproject.toml | 2 +-
task-sdk/docs/api.rst | 2 +
task-sdk/docs/index.rst | 1 +
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 3 +
task-sdk/src/airflow/sdk/__init__.pyi | 2 +
.../src/airflow/sdk/api/datamodels/_generated.py | 1 +
task-sdk/src/airflow/sdk/definitions/callback.py | 6 +
task-sdk/src/airflow/sdk/definitions/deadline.py | 38 +-
.../src/airflow/sdk/definitions/retry_policy.py | 91 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 21 +
.../airflow/sdk/execution_time/schema/schema.json | 17 +-
.../src/airflow/sdk/execution_time/supervisor.py | 179 +--
.../src/airflow/sdk/execution_time/task_runner.py | 15 +-
task-sdk/src/airflow/sdk/plugins_manager.py | 13 +
.../src/airflow/sdk/serde/serializers/datetime.py | 2 +-
.../tests/task_sdk/definitions/test_deadline.py | 148 ++-
.../task_sdk/definitions/test_retry_policy.py | 224 ++++
.../tests/task_sdk/execution_time/test_context.py | 74 ++
.../task_sdk/execution_time/test_supervisor.py | 121 ++
.../task_sdk/execution_time/test_task_runner.py | 33 +
task-sdk/tests/task_sdk/serde/test_serializers.py | 12 +
ts-sdk/adr/0002-native-dag-interface.md | 32 +-
ts-sdk/scripts/ci/prek/check_supervisor_schema.py | 1 -
ts-sdk/scripts/ci/prek/compile_ts_sdk.py | 1 -
ts-sdk/scripts/ci/prek/ts_sdk_lint.py | 1 -
ts-sdk/scripts/ci/prek/verify_ts_sdk_package.py | 1 -
ts-sdk/src/coordinator/manifest.ts | 7 +-
ts-sdk/src/coordinator/runtime.ts | 12 +-
ts-sdk/src/generated/supervisor.ts | 32 +-
ts-sdk/src/index.ts | 11 +-
ts-sdk/src/sdk/bundle.ts | 195 ++-
ts-sdk/src/sdk/dag.ts | 437 +++++--
ts-sdk/tests/cli/fixtures/entry.ts | 2 +-
ts-sdk/tests/cli/fixtures/noisy-entry.ts | 2 +-
ts-sdk/tests/cli/pack.test.ts | 10 +-
ts-sdk/tests/coordinator/integration.test.ts | 43 +-
ts-sdk/tests/coordinator/runtime-manifest.test.ts | 4 +-
ts-sdk/tests/public-api.test.ts | 89 +-
ts-sdk/tests/sdk/bundle.test.ts | 82 +-
ts-sdk/tests/sdk/dag.test.ts | 366 +++++-
ts-sdk/tests/sdk/task-handler.test.ts | 64 +-
uv.lock | 1102 +++++++++--------
874 files changed, 41089 insertions(+), 13056 deletions(-)
copy scripts/ci/docker-compose/integration-pinot.yml =>
.github/workflows/scheduled-upgrade-check-v3-3-test.yml (61%)
create mode 100644 airflow-core/newsfragments/63491.significant.rst
create mode 100644 airflow-core/newsfragments/66350.bugfix.rst
create mode 100644 airflow-core/newsfragments/67372.bugfix.rst
create mode 100644 airflow-core/newsfragments/68954.bugfix.rst
create mode 100644 airflow-core/newsfragments/71729.improvement.rst
create mode 100644 airflow-core/newsfragments/71990.bugfix.rst
create mode 100644 airflow-core/newsfragments/72036.feature.rst
create mode 100644 airflow-core/newsfragments/72494.feature.rst
create mode 100644 airflow-core/newsfragments/73294.significant.rst
create mode 100644 airflow-core/newsfragments/73328.significant.rst
create mode 100644
airflow-core/src/airflow/ui/src/components/DagBundleVersion.tsx
rename airflow-core/src/airflow/ui/src/{pages/Dag =>
components}/DagImportErrorModal.tsx (100%)
copy ts-sdk/tests/cli/fixtures/noisy-entry.ts =>
airflow-core/src/airflow/ui/src/components/ImportErrorCount.tsx (57%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagBundle/BundleFiles.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagBundle/DagBundle.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagBundle/FileImportError.tsx
create mode 100644 airflow-core/src/airflow/ui/src/pages/DagBundle/Header.tsx
copy ts-sdk/tests/cli/fixtures/noisy-entry.ts =>
airflow-core/src/airflow/ui/src/pages/DagBundle/index.tsx (76%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Health/Health.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Health/HealthInstances.tsx
copy ts-sdk/tests/cli/fixtures/entry.ts =>
airflow-core/src/airflow/ui/src/pages/Dashboard/Health/HealthStateBadge.tsx
(55%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dashboard/Health/healthStatus.ts
create mode 100644
airflow-core/src/airflow/ui/src/queries/useDagBundleRefetchInterval.ts
create mode 100644 airflow-ctl/src/airflowctl/ctl/utils/dag_run.py
create mode 100644
devel-common/tests/unit/sphinx_exts/docs_build/test_build_docs_scheduling.py
create mode 100644
devel-common/tests/unit/sphinx_exts/test_airflow_intersphinx.py
create mode 100644 go-sdk/airflow/bundle.go
create mode 100644 go-sdk/airflow/bundle_test.go
create mode 100644 go-sdk/airflow/contexttest_test.go
rename go-sdk/{bundle/bundlev1/bundlev1server/server.go => airflow/serve.go}
(53%)
create mode 100644 go-sdk/airflow/serve_test.go
create mode 100644 go-sdk/airflow/task_handler.go
create mode 100644 go-sdk/airflow/task_handler_test.go
rename go-sdk/{bundle/bundlev1/doc.go => airflow/testdata/foreignitem/main.go}
(59%)
delete mode 100644 go-sdk/bundle/bundlev1/bundlev1server/server_test.go
delete mode 100644 go-sdk/bundle/bundlev1/registry.go
delete mode 100644 go-sdk/bundle/bundlev1/registry_test.go
delete mode 100644 go-sdk/bundle/bundlev1/schemas.go
rename go-sdk/{bundle/bundlev1/bundlev1server => internal/bundle}/doc.go (75%)
rename go-sdk/{bundle/bundlev1 => internal/bundle}/task.go (87%)
rename go-sdk/{bundle/bundlev1 => internal/bundle}/task_test.go (86%)
create mode 100644 go-sdk/internal/contexttest/contexttest.go
create mode 100644 go-sdk/pkg/binding/task_context.go
create mode 100644 go-sdk/pkg/binding/task_context_test.go
create mode 100644 providers/amazon/docs/operators/athena/athena_spark.rst
create mode 100644
providers/amazon/src/airflow/providers/amazon/aws/operators/athena_spark.py
create mode 100644
providers/amazon/tests/system/amazon/aws/example_athena_spark.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/operators/test_athena_spark.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/test_deferred_hook_configuration.py
create mode 100644 providers/common/ai/docs/agent_security.rst
create mode 100644 providers/common/ai/docs/approval_gates.rst
delete mode 100644 providers/common/ai/docs/choosing_a_toolset.rst
create mode 100644 providers/common/ai/docs/code_mode.rst
create mode 100644 providers/common/ai/docs/concepts.rst
create mode 100644 providers/common/ai/docs/durable_execution.rst
delete mode 100644 providers/common/ai/docs/end_to_end_pipelines.rst
create mode 100644 providers/common/ai/docs/features.rst
create mode 100644 providers/common/ai/docs/guardrails.rst
delete mode 100644 providers/common/ai/docs/hooks/index.rst
create mode 100644 providers/common/ai/docs/installation.rst
create mode 100644 providers/common/ai/docs/message_history.rst
create mode 100644 providers/common/ai/docs/model_providers.rst
create mode 100644 providers/common/ai/docs/operations.rst
create mode 100644 providers/common/ai/docs/operators/llm_batch.rst
create mode 100644 providers/common/ai/docs/rag_pipelines.rst
rename providers/{google/tests/system/google/cloud/stackdriver/__init__.py =>
common/ai/docs/redirects.txt} (77%)
delete mode 100644 providers/common/ai/docs/sandbox.rst
create mode 100644 providers/common/ai/docs/sandbox/backends.rst
create mode 100644 providers/common/ai/docs/sandbox/configuration.rst
create mode 100644 providers/common/ai/docs/sandbox/index.rst
create mode 100644 providers/common/ai/docs/structured_output.rst
delete mode 100644 providers/common/ai/docs/toolsets.rst
create mode 100644 providers/common/ai/docs/toolsets/datafusion.rst
create mode 100644 providers/common/ai/docs/toolsets/hook.rst
create mode 100644 providers/common/ai/docs/toolsets/index.rst
create mode 100644 providers/common/ai/docs/toolsets/langchain.rst
create mode 100644 providers/common/ai/docs/toolsets/logging.rst
create mode 100644 providers/common/ai/docs/toolsets/managed_agent.rst
create mode 100644 providers/common/ai/docs/toolsets/mcp.rst
create mode 100644 providers/common/ai/docs/toolsets/skills.rst
create mode 100644 providers/common/ai/docs/toolsets/sql.rst
create mode 100644 providers/common/ai/docs/troubleshooting.rst
create mode 100644
providers/common/ai/docs/use_cases/ask_questions_over_pdfs.rst
create mode 100644
providers/common/ai/docs/use_cases/classify_reviews_in_bulk.rst
create mode 100644 providers/common/ai/docs/use_cases/compare_10k_filings.rst
create mode 100644
providers/common/ai/docs/use_cases/explain_revenue_anomaly.rst
create mode 100644
providers/common/ai/docs/use_cases/gate_loads_on_schema_drift.rst
create mode 100644 providers/common/ai/docs/use_cases/index.rst
create mode 100644
providers/common/ai/docs/use_cases/monthly_report_from_a_csv.rst
create mode 100644
providers/common/ai/docs/use_cases/research_agent_with_review.rst
create mode 100644
providers/common/ai/docs/use_cases/route_pipeline_failures.rst
create mode 100644
providers/common/ai/docs/use_cases/triage_support_tickets.rst
create mode 100644 providers/common/ai/docs/use_cases/weekly_status_report.rst
copy airflow-core/tests/unit/utils/test_strings.py =>
providers/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_llm_batch.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/triggers/llm_batch.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/toolsets.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/triggers/test_llm_batch.py
create mode 100644
providers/common/ai/tests/unit/common/ai/utils/test_toolsets.py
create mode 100644
providers/common/compat/src/airflow/providers/common/compat/_retry_policy.py
create mode 100644
providers/common/compat/tests/unit/common/compat/test__retry_policy.py
create mode 100644
providers/fab/src/airflow/providers/fab/www/templates/appbuilder/general/model/user_edit.html
create mode 100644 providers/google/docs/integration-logos/Cloud-Monitoring.png
delete mode 100644
providers/google/docs/integration-logos/Google-Cloud-Stackdriver.png
create mode 100644 providers/google/docs/operators/cloud/cloud_monitoring.rst
delete mode 100644 providers/google/docs/operators/cloud/stackdriver.rst
copy providers/google/src/airflow/providers/google/cloud/hooks/{stackdriver.py
=> cloud_monitoring.py} (94%)
copy providers/google/src/airflow/providers/google/cloud/links/{stackdriver.py
=> cloud_monitoring.py} (60%)
copy
providers/google/src/airflow/providers/google/cloud/operators/{stackdriver.py
=> cloud_monitoring.py} (86%)
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/cloud_monitoring}/__init__.py (100%)
rename
providers/google/tests/system/google/cloud/{stackdriver/example_stackdriver.py
=> cloud_monitoring/example_cloud_monitoring.py} (66%)
copy providers/google/tests/unit/google/cloud/hooks/{test_stackdriver.py =>
test_cloud_monitoring.py} (81%)
copy airflow-core/tests/unit/utils/test_strings.py =>
providers/google/tests/unit/google/cloud/links/test_cloud_monitoring.py (55%)
create mode 100644
providers/google/tests/unit/google/cloud/links/test_stackdriver.py
copy providers/google/tests/unit/google/cloud/operators/{test_stackdriver.py
=> test_cloud_monitoring.py} (54%)
copy {airflow-core/src/airflow/_shared =>
providers/influxdb/src/airflow/providers/influxdb/triggers}/__init__.py (100%)
create mode 100644
providers/influxdb/src/airflow/providers/influxdb/triggers/influxdb3.py
copy providers/{sftp/src/airflow/providers/sftp/exceptions.py =>
influxdb/src/airflow/providers/influxdb/utils.py} (67%)
copy
providers/{common/ai/src/airflow/providers/common/ai/example_dags/example_quickstart.py
=> influxdb/tests/unit/influxdb/test_utils.py} (60%)
copy {airflow-core/src/airflow/_shared =>
providers/influxdb/tests/unit/influxdb/triggers}/__init__.py (100%)
create mode 100644
providers/influxdb/tests/unit/influxdb/triggers/test_influxdb3.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
create mode 100644 providers/openai/tests/system/openai/example_openai_agent.py
create mode 100644 providers/openai/tests/unit/openai/operators/test_agent.py
create mode 100644 providers/openai/tests/unit/openai/triggers/test_agent.py
copy scripts/ci/docker-compose/{integration-pinot.yml => mount-uv-lock.yml}
(62%)
create mode 100755 scripts/ci/prek/check_conn_id_templated.py
create mode 100755 scripts/ci/prek/sync_java_sdk_supervisor_schema.py
create mode 100644 scripts/tests/ci/prek/test_check_conn_id_templated.py
copy airflow-core/tests/unit/utils/test_strings.py =>
scripts/tests/in_container/test_install_airflow_and_providers.py (56%)