This is an automated email from the ASF dual-hosted git repository.
dependabot[bot] pushed a change to branch
dependabot/npm_and_yarn/ts-sdk/ts-sdk-package-updates-01ff965b5f
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard f51dd41ada8 Bump the ts-sdk-package-updates group in /ts-sdk with 3
updates
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 04e285b1eac Cancel the agent run when a common.ai LLM or agent task is
killed (#73495)
add 7c47cc44383 Validate GCP storage transfer job body after template
rendering (#70529)
add 21b83f4fae4 Reject invalid Go SDK task handler registrations up front
(#73549)
add 8b4e4df8056 Keep the URL scheme out of path masking in airflow info
--anonymize (#73599)
add 88c53eddf01 Fix stale and duplicated content in the `common.ai`
provider docs (#73567)
add 8a8bd529a9d Add durable/deferrable filters to the Airflow Registry
(#70298)
add f10a3de1136 Add a guide to developing and testing Common AI tasks
locally (#73602)
add 05f8dc12a34 Document sandbox enforcement, teardown and cost-limit
scope for agents (#73589)
add 63d5d50b034 Rewrite the `common.sql` connections guide and fix the
dialect extra name (#73605)
add 38168313b24 Fix prefix handling in Amazon transfer operators (#73269)
add 1f03df992c0 Support multi-column sort in the Dags list table (#72558)
add af6b5858657 Keep Grid scroll position when opening a task. (#73123)
add 88083575d88 Widen revoked_token.jti to store external-issuer token
identifiers (#73562)
add 7fa8dd47394 Keep message queue provider doc markers out of class
docstrings (#73588)
add 43f0cfd4830 Document that Go SDK registration closes at Serve (#73614)
add b23ce7e9f5f Identity-only DAG discovery and byte-importing (#73118)
add ecfa20322b8 [main] Upgrade important CI environment (#73308)
add a83394c6280 UI: Add a default preference for expanded task groups
(#73429)
add 9fd0d72bedb Share subprocess request dispatch without changing message
support (#73290)
add f77f7e4a09e Make the BQ hook importable when google libs are mocked
during doc builds (#73615)
add 32df1795022 Stop flit from downloading and verifying trove classifiers
on every provider (#73612)
add 724c022bf3f Refactor _executable_task_instances_to_queued to make
logic more readable (#66878)
add 958737c6128 Rename Google Stackdriver task log handler to Cloud
Logging (#73575)
add 7a9de0307f9 UI: Add toggle to show or hide log levels in task logs
(#72363)
add 172a3e6b8cb Revert "[main] Upgrade important CI environment (#73308)"
(#73621)
add b171e3eddc1 Drop duplicate build_raw copy from
CloudBuildCreateBuildOperator (#73592)
add 150d0a9b666 UI: Keep Dag version indicator below sticky task names in
grid (#73572)
add 675d3e31675 Cap azure-ai-projects below 2.5 so the CI image passes pip
check (#73627)
add 938a9d1f06f Add reparse button to the Dag import errors modal (#72896)
add 5c7f0a42ac4 Add fab-oauth meta-package extra (#73565)
add df584691052 Fix Amazon system tests creating connections on Airflow 2
(#73571)
add 5d559174c34 UI: Fix raw translation key showing as a Backfills column
header (#72836)
add 3eec18d5bc3 Clear all task instances in a task group, not just the
first page (#73547)
add 607ae04d0bc Document favorite_dag's 409 and return a readable conflict
message (#73411)
add 0de9f3f2b57 Fix typo in customize-ui theme screencap filenames (#73632)
add b131c8a1c49 Bump eslint from 10.10.0 to 10.11.0 in FAB provider
(#73630)
add 2e4a4b21e02 Invalidate cached Microsoft Graph request adapter on 403
Forbidden (#73601)
add 7dfa25664a2 Fix SFTPHookAsync letting a connection's known_hosts extra
override an explicit constructor path (#73593)
add e2372bbf0aa Read the legacy extra__google_cloud_platform__ prefix for
GCS credentials (#73613)
add 06377eb38e5 Add serialized Dag version diff engine (#69864)
add 9290c2662cf Add missing tests for sftp exceptions (#72456)
add 0def1f305bf Keep pooled SFTP connection on application-level SFTP
errors (#73288)
add b6acedbab23 Add SRV DNS record support to HTTP Operator (#70960)
add 61340ea9a73 Separate task outcomes from report delivery in TaskSDK
Supervisor (#73249)
add 39a4fc1587d Swap more blue->brand colors (#73637)
add ffa19c31a67 UI: Fix copied SQL from Rendered Templates breaking at
every token (#73633)
add 5ddea25c9c6 Link calendar cell to filter dagruns by the respective
start_date and state. (#73611)
add ababf5cea5b Fix Breeze ownership fix-up chowning all sources under
rootless Docker (#73606)
add 389b4e1751f Allow templated connection IDs in agent toolsets (#73578)
add eebf253b72c Skip `on_kill()` for triggers reassigned to another
triggerer (#73454)
add 74d1a3b0bb3 Stop docs builds from importing example Dags to highlight
them (#73604)
add cfcca0dba46 Export StoreScope from airflow.sdk as public interface
(#73600)
add ea1f4723e4f TS SDK: generate Dag and task options from the
serialization schema (#73436)
add 55415ab9bbe Bump the ts-sdk-package-updates group across 1 directory
with 3 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 (f51dd41ada8)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/ts-sdk/ts-sdk-package-updates-01ff965b5f
(55415ab9bbe)
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/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/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 +-
.pre-commit-config.yaml | 17 +-
.../task-and-asset-state-store.rst | 2 +-
.../authoring-and-scheduling/language-sdks/go.rst | 196 +-
.../language-sdks/typescript.rst | 50 +-
airflow-core/docs/core-concepts/tasks.rst | 36 +-
airflow-core/docs/extra-packages-ref.rst | 2 +
airflow-core/docs/howto/custom-operator.rst | 34 +
airflow-core/docs/howto/customize-ui.rst | 4 +-
...g => example_theme_configuration_dark_mode.png} | Bin
... => example_theme_configuration_light_mode.png} | Bin
airflow-core/docs/migrations-ref.rst | 5 +-
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/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/72896.significant.rst | 16 +
airflow-core/newsfragments/73294.significant.rst | 14 +
airflow-core/newsfragments/73328.significant.rst | 6 +
.../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 +
.../core_api/datamodels/import_error.py | 11 +-
.../core_api/datamodels/task_instances.py | 8 +
.../api_fastapi/core_api/datamodels/xcom.py | 41 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 295 +-
.../api_fastapi/core_api/routes/public/assets.py | 14 +-
.../core_api/routes/public/dag_bundles.py | 254 +-
.../api_fastapi/core_api/routes/public/dags.py | 15 +-
.../core_api/routes/public/task_instances.py | 9 +
.../src/airflow/api_fastapi/core_api/security.py | 29 +-
.../core_api/services/public/task_instances.py | 18 +-
.../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 | 7 +-
.../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 -
.../src/airflow/dag_processing/processor.py | 121 +-
.../airflow/example_dags/example_retry_policy.py | 21 +-
airflow-core/src/airflow/exceptions.py | 2 +-
.../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 | 305 +-
.../src/airflow/jobs/triggerer_job_runner.py | 84 +-
.../versions/0135_3_4_0_widen_revoked_token_jti.py | 54 +
airflow-core/src/airflow/models/dag_version.py | 161 +-
airflow-core/src/airflow/models/revoked_token.py | 2 +-
airflow-core/src/airflow/models/taskinstance.py | 12 +-
airflow-core/src/airflow/models/trigger.py | 9 +
.../src/airflow/serialization/dag_version_diff.py | 1281 +++++++
airflow-core/src/airflow/serialization/decoders.py | 5 +-
.../airflow/serialization/serialized_objects.py | 36 +-
.../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 | 186 +-
.../ui/openapi-gen/requests/services.gen.ts | 71 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 148 +-
.../airflow/ui/public/i18n/locales/en/browse.json | 18 +-
.../airflow/ui/public/i18n/locales/en/common.json | 12 +
.../ui/public/i18n/locales/en/components.json | 1 +
.../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 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 28 +-
.../ClearTaskInstanceConfirmationDialog.tsx | 4 +-
.../airflow/ui/src/components/DagBundleVersion.tsx | 63 +
.../ui/src/components/DagDeactivatedBanner.tsx | 2 +-
.../Dag => components}/DagImportErrorModal.tsx | 0
.../ui/src/components/DataTable/DataTable.test.tsx | 33 +
.../ui/src/components/DataTable/DataTable.tsx | 4 +
.../ui/src/components/DataTable/TableList.test.tsx | 67 +
.../ui/src/components/DataTable/TableList.tsx | 43 +-
.../src/components/DataTable/searchParams.test.ts | 39 +
.../ui/src/components/DataTable/searchParams.ts | 19 +-
.../ui/src/components/FilterBar/FilterPill.tsx | 4 +-
.../FilterBar/filters/DateRangeFilter.tsx | 6 +-
.../src/airflow/ui/src/components/HeaderCard.tsx | 2 +-
.../airflow/ui/src/components/ImportErrorCount.tsx | 29 +-
.../ui/src/components/renderStructuredLog.test.tsx | 33 +
.../ui/src/components/renderStructuredLog.tsx | 4 +-
.../src/airflow/ui/src/constants/localStorage.ts | 2 +
.../ui/src/context/groups/GroupsProvider.test.tsx | 112 +
.../ui/src/context/groups/GroupsProvider.tsx | 8 +-
.../ui/src/context/keyboardShortcuts/shortcuts.ts | 5 +
.../src/airflow/ui/src/hooks/useUserSettings.ts | 4 +
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 2 +-
.../ui/src/layouts/Details/Grid/Grid.test.tsx | 96 +
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 26 +-
.../layouts/Details/Grid/GridPaginationButtons.tsx | 2 +-
.../Details/Grid/useGridScrollRestore.test.ts | 201 ++
.../layouts/Details/Grid/useGridScrollRestore.ts | 87 +
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 2 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 2 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 19 +-
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 4 +
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 4 +
.../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/DagsList/DagsList.test.tsx | 23 +
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 10 +-
.../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 | 23 +-
.../ui/src/pages/Dashboard/Health/healthStatus.ts | 41 +
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 1 +
.../pages/Dashboard/Stats/DagImportErrorsModal.tsx | 69 +-
.../ui/src/pages/Settings/Settings.test.tsx | 18 +-
.../src/airflow/ui/src/pages/Settings/Settings.tsx | 14 +
.../ui/src/pages/TaskInstance/Logs/Logs.tsx | 17 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 9 +
.../ui/src/pages/TaskInstance/Logs/utils.test.ts | 13 +
.../ui/src/pages/TaskInstance/Logs/utils.ts | 3 +
.../pages/TaskInstance/RenderedTemplates.test.tsx | 84 +
.../src/pages/TaskInstance/RenderedTemplates.tsx | 17 +-
.../ui/src/queries/useDagBundleRefetchInterval.ts | 38 +
.../src/airflow/ui/src/queries/useLogs.test.ts | 12 +
.../src/airflow/ui/src/queries/useLogs.tsx | 19 +-
airflow-core/src/airflow/ui/src/router.tsx | 5 +
.../airflow/ui/tests/e2e/specs/task-logs.spec.ts | 6 +
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/db_cleanup.py | 45 +-
.../tests/unit/always/test_project_structure.py | 44 +-
.../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_dag_parsing.py | 83 +-
.../core_api/routes/public/test_dags.py | 13 +
.../core_api/routes/public/test_hitl.py | 86 +
.../core_api/routes/public/test_import_error.py | 22 +-
.../core_api/routes/public/test_task_instances.py | 98 +-
.../core_api/routes/public/test_xcom.py | 2 +-
.../unit/api_fastapi/core_api/test_security.py | 62 +
.../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 | 45 +
.../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/dag_processing/test_processor.py | 65 +-
.../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 | 326 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 266 +-
airflow-core/tests/unit/models/test_dag_version.py | 424 ++-
.../tests/unit/models/test_revoked_token.py | 11 +
airflow-core/tests/unit/models/test_trigger.py | 17 +
.../unit/serialization/test_dag_serialization.py | 27 +
.../unit/serialization/test_dag_version_diff.py | 3552 ++++++++++++++++++++
.../unit/serialization/test_serialized_objects.py | 11 +-
.../test_ts_sdk_serialization_version.py | 53 +
airflow-core/tests/unit/utils/test_db_cleanup.py | 248 +-
airflow-core/tests/unit/utils/test_strings.py | 17 +-
.../src/airflowctl/api/datamodels/generated.py | 112 +
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 | 3 +
.../airflow_ctl/ctl/commands/test_task_command.py | 12 +
contributing-docs/05_pull_requests.rst | 25 +
contributing-docs/testing/k8s_tests.rst | 671 ++--
.../src/airflow_breeze/params/shell_params.py | 11 +
.../prepare_providers/provider_distributions.py | 1 +
.../prepare_providers/provider_documentation.py | 8 +-
.../airflow_breeze/utils/docker_command_utils.py | 7 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 1 +
dev/breeze/tests/test_docker_command_utils.py | 28 +
dev/breeze/tests/test_provider_distributions.py | 32 +
dev/breeze/tests/test_provider_documentation.py | 10 +
dev/breeze/tests/test_shell_params.py | 27 +-
dev/breeze/uv.lock | 56 +-
dev/registry/extract_parameters.py | 342 +-
dev/registry/registry_contract_models.py | 1 +
dev/registry/tests/test_extract_parameters.py | 557 ++-
.../tests/test_registry_contract_models.py | 17 +-
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 +-
devel-common/src/sphinx_exts/exampleinclude.py | 12 +-
.../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 +
docs/spelling_wordlist.txt | 1 +
generated/known_airflow_exceptions.txt | 1 -
generated/known_sdk_imports_in_core.txt | 2 +-
go-sdk/README.md | 117 +-
go-sdk/adr/0001-bundle-packing-options.md | 4 +-
.../adr/0007-mixed-lang-task-handler-interface.md | 12 +-
go-sdk/airflow/bundle.go | 140 +
go-sdk/airflow/bundle_test.go | 215 ++
go-sdk/airflow/context.go | 5 +
go-sdk/airflow/contexttest_test.go | 62 +
go-sdk/airflow/serve.go | 155 +
go-sdk/airflow/serve_test.go | 265 ++
go-sdk/airflow/task_handler.go | 63 +
go-sdk/airflow/task_handler_test.go | 254 ++
.../testdata/foreignitem/main.go} | 20 +-
go-sdk/bundle/bundlev1/bundlev1server/server.go | 152 -
.../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 -
.../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 | 31 +-
.../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 +-
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 | 16 +
providers/amazon/docs/message-queues/index.rst | 22 +-
.../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 ++
.../airflow/providers/amazon/aws/operators/eks.py | 2 +-
.../airflow/providers/amazon/aws/operators/emr.py | 1 +
.../airflow/providers/amazon/aws/operators/s3.py | 4 +-
.../src/airflow/providers/amazon/aws/queues/sqs.py | 26 +-
.../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 | 44 +-
.../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 | 45 +-
.../providers/amazon/aws/transfers/s3_to_sftp.py | 45 +-
.../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 | 32 +-
.../providers/amazon/aws/transfers/sql_to_s3.py | 1 +
.../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 +-
.../amazon/aws/example_google_api_youtube_to_s3.py | 10 +-
.../tests/system/amazon/aws/example_http_to_s3.py | 14 +-
.../tests/system/amazon/aws/example_s3_to_sql.py | 10 +-
.../tests/system/amazon/aws/example_sql_to_s3.py | 10 +-
.../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 | 8 +-
.../tests/unit/amazon/aws/operators/test_eks.py | 6 +
.../amazon/aws/test_deferred_hook_configuration.py | 3 -
.../unit/amazon/aws/transfers/test_ftp_to_s3.py | 105 +-
.../unit/amazon/aws/transfers/test_mongo_to_s3.py | 2 +
.../unit/amazon/aws/transfers/test_s3_to_ftp.py | 51 +
.../unit/amazon/aws/transfers/test_s3_to_sftp.py | 55 +
.../unit/amazon/aws/transfers/test_sftp_to_s3.py | 34 +
.../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 +-
.../apache/kafka/docs/message-queues/index.rst | 23 +-
.../airflow/providers/apache/kafka/queues/kafka.py | 27 +-
.../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 | 2 +
.../cncf/kubernetes/operators/resource.py | 2 +-
.../cncf/kubernetes/sensors/spark_kubernetes.py | 2 +-
.../providers/cncf/kubernetes/version_compat.py | 2 +
.../executors/test_kubernetes_executor.py | 87 +-
.../executors/test_local_kubernetes_executor.py | 19 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 4 +-
.../providers/cohere/operators/embedding.py | 5 +-
.../airflow/providers/cohere/operators/rerank.py | 2 +-
providers/common/ai/AGENTS.md | 2 +-
providers/common/ai/README.rst | 2 +-
providers/common/ai/docs/agent_security.rst | 267 ++
providers/common/ai/docs/approval_gates.rst | 118 +
providers/common/ai/docs/changelog.rst | 42 +-
providers/common/ai/docs/choosing_a_toolset.rst | 611 ----
providers/common/ai/docs/classifier_models.rst | 34 +-
providers/common/ai/docs/code_mode.rst | 87 +
providers/common/ai/docs/concepts.rst | 136 +
providers/common/ai/docs/connections/langchain.rst | 25 +-
.../common/ai/docs/connections/llamaindex.rst | 54 +-
providers/common/ai/docs/connections/mcp.rst | 93 +-
.../common/ai/docs/connections/pydantic_ai.rst | 56 +-
.../ai/docs/connections/pydantic_ai_azure.rst | 33 +-
.../ai/docs/connections/pydantic_ai_bedrock.rst | 35 +-
.../ai/docs/connections/pydantic_ai_vertex.rst | 51 +-
providers/common/ai/docs/durable_execution.rst | 159 +
providers/common/ai/docs/end_to_end_pipelines.rst | 176 -
providers/common/ai/docs/examples.rst | 93 +-
providers/common/ai/docs/features.rst | 54 +
providers/common/ai/docs/guardrails.rst | 60 +
providers/common/ai/docs/hitl_review.rst | 84 +-
providers/common/ai/docs/hooks/index.rst | 62 -
providers/common/ai/docs/hooks/langchain.rst | 39 +-
providers/common/ai/docs/hooks/llamaindex.rst | 13 +-
providers/common/ai/docs/hooks/mcp.rst | 41 +-
providers/common/ai/docs/hooks/pydantic_ai.rst | 29 +-
providers/common/ai/docs/index.rst | 177 +-
providers/common/ai/docs/installation.rst | 87 +
providers/common/ai/docs/local_development.rst | 154 +
providers/common/ai/docs/message_history.rst | 60 +
providers/common/ai/docs/model_providers.rst | 148 +
providers/common/ai/docs/observability.rst | 2 +-
providers/common/ai/docs/operations.rst | 45 +
providers/common/ai/docs/operators/agent.rst | 410 +--
.../common/ai/docs/operators/document_loader.rst | 62 +-
providers/common/ai/docs/operators/index.rst | 69 +-
.../ai/docs/operators/llamaindex_embedding.rst | 4 +-
.../ai/docs/operators/llamaindex_retrieval.rst | 4 +-
providers/common/ai/docs/operators/llm.rst | 190 +-
providers/common/ai/docs/operators/llm_batch.rst | 6 +-
providers/common/ai/docs/operators/llm_branch.rst | 36 +-
.../common/ai/docs/operators/llm_file_analysis.rst | 8 +-
.../ai/docs/operators/llm_schema_compare.rst | 29 +-
providers/common/ai/docs/operators/llm_sql.rst | 8 +-
providers/common/ai/docs/provider_fallback.rst | 13 +-
providers/common/ai/docs/quickstart.rst | 123 +-
providers/common/ai/docs/rag_pipelines.rst | 45 +
.../__init__.py => common/ai/docs/redirects.txt} | 7 +
providers/common/ai/docs/retry_policies.rst | 345 +-
providers/common/ai/docs/sandbox.rst | 821 -----
providers/common/ai/docs/sandbox/backends.rst | 270 ++
providers/common/ai/docs/sandbox/configuration.rst | 339 ++
providers/common/ai/docs/sandbox/index.rst | 534 +++
providers/common/ai/docs/self_hosted_models.rst | 3 +-
providers/common/ai/docs/structured_output.rst | 67 +
providers/common/ai/docs/toolsets.rst | 1145 -------
providers/common/ai/docs/toolsets/datafusion.rst | 166 +
providers/common/ai/docs/toolsets/hook.rst | 137 +
providers/common/ai/docs/toolsets/index.rst | 285 ++
providers/common/ai/docs/toolsets/langchain.rst | 81 +
.../docs/toolsets/logging.rst} | 26 +-
.../common/ai/docs/toolsets/managed_agent.rst | 291 ++
providers/common/ai/docs/toolsets/mcp.rst | 252 ++
providers/common/ai/docs/toolsets/skills.rst | 169 +
providers/common/ai/docs/toolsets/sql.rst | 315 ++
providers/common/ai/docs/troubleshooting.rst | 167 +
.../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 | 20 +-
providers/common/ai/pyproject.toml | 44 +-
.../common/ai/example_dags/example_agent_spec.yaml | 2 +-
.../ai/example_dags/example_langchain_10k.py | 2 +-
.../ai/example_dags/example_langchain_hook.py | 6 +-
.../example_dags/example_langchain_tool_agent.py | 2 +-
.../example_langchain_toolset_bridge.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 | 4 +-
.../common/ai/example_dags/example_llm_fallback.py | 4 +-
.../ai/example_dags/example_llm_retry_policy.py | 43 +-
.../ai/example_dags/example_llm_schema_compare.py | 10 +-
.../ai/example_dags/example_llm_survey_analysis.py | 4 +-
.../common/ai/example_dags/example_quickstart.py | 25 +-
.../providers/common/ai/get_provider_info.py | 20 +-
.../airflow/providers/common/ai/hooks/langchain.py | 19 +-
.../providers/common/ai/hooks/llamaindex.py | 6 +-
.../providers/common/ai/hooks/pydantic_ai.py | 20 +-
.../providers/common/ai/mixins/cancellable_run.py | 70 +
.../airflow/providers/common/ai/operators/agent.py | 175 +-
.../common/ai/operators/document_loader.py | 52 +-
.../airflow/providers/common/ai/operators/llm.py | 15 +-
.../providers/common/ai/operators/llm_branch.py | 2 +-
.../common/ai/operators/llm_file_analysis.py | 7 +-
.../common/ai/operators/llm_schema_compare.py | 2 +-
.../providers/common/ai/operators/llm_sql.py | 4 +-
.../airflow/providers/common/ai/policies/retry.py | 501 ++-
.../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 +
.../airflow/providers/common/ai/toolsets/hook.py | 41 +-
.../airflow/providers/common/ai/toolsets/mcp.py | 9 +-
.../providers/common/ai/toolsets/sandbox.py | 31 +-
.../airflow/providers/common/ai/toolsets/sql.py | 10 +-
.../airflow/providers/common/ai/utils/toolsets.py | 64 +
.../common/ai/example_sandbox_toolset_modal.py | 71 +-
.../tests/unit/common/ai/decorators/test_agent.py | 17 +-
.../ai/tests/unit/common/ai/decorators/test_llm.py | 12 +-
.../unit/common/ai/decorators/test_llm_branch.py | 8 +-
.../common/ai/decorators/test_llm_file_analysis.py | 10 +-
.../unit/common/ai/decorators/test_llm_sql.py | 8 +-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 77 +-
.../unit/common/ai/mixins/test_cancellable_run.py | 100 +
.../tests/unit/common/ai/operators/test_agent.py | 391 ++-
.../common/ai/operators/test_document_loader.py | 67 +
.../ai/tests/unit/common/ai/operators/test_llm.py | 33 +-
.../unit/common/ai/operators/test_llm_branch.py | 6 +-
.../common/ai/operators/test_llm_file_analysis.py | 40 +-
.../common/ai/operators/test_llm_schema_compare.py | 5 +-
.../tests/unit/common/ai/operators/test_llm_sql.py | 6 +-
.../ai/tests/unit/common/ai/policies/test_retry.py | 590 +++-
.../ai/tests/unit/common/ai/sandbox/test_modal.py | 183 +
.../ai/tests/unit/common/ai/sandbox/test_sbx.py | 8 +
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 55 +
.../tests/unit/common/ai/toolsets/test_sandbox.py | 90 +-
.../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 +-
.../providers/common/io/state_store/backend.py | 4 +-
providers/common/sql/docs/connections.rst | 152 +-
providers/common/sql/docs/dialects.rst | 8 +-
.../providers/common/sql/datafusion/engine.py | 14 +-
.../airflow/providers/common/sql/sensors/sql.py | 2 +-
.../unit/common/sql/datafusion/test_engine.py | 22 +
.../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/executors/edge_executor.py | 9 +-
.../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/3rd-party-licenses/LICENSES-ui.txt | 8 +-
.../fab/auth_manager/security_manager/override.py | 9 +-
.../providers/fab/auth_manager/views/user.py | 20 +
.../fab/src/airflow/providers/fab/www/package.json | 18 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 1200 ++++---
.../appbuilder/general/model/user_edit.html | 29 +
.../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 +-
.../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
.../logging/{stackdriver.rst => cloud_logging.rst} | 37 +-
providers/google/docs/message-queues/index.rst | 24 +-
.../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 | 2 +
providers/google/provider.yaml | 24 +-
.../airflow/providers/google/ads/operators/ads.py | 2 +
.../providers/google/ads/transfers/ads_to_gcs.py | 2 +
.../providers/google/cloud/hooks/bigquery.py | 6 +-
.../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 +-
...sk_handler.py => cloud_logging_task_handler.py} | 38 +-
.../google/cloud/log/stackdriver_task_handler.py | 579 +---
.../providers/google/cloud/operators/bigquery.py | 4 +
.../providers/google/cloud/operators/bigtable.py | 6 +
.../google/cloud/operators/cloud_build.py | 12 +-
.../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 | 19 +-
.../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 | 27 +-
.../airflow/providers/google/get_provider_info.py | 26 +-
.../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 +
...ndler.py => test_cloud_logging_task_handler.py} | 290 +-
.../cloud/log/test_stackdriver_task_handler.py | 890 +----
.../google/cloud/operators/test_cloud_build.py | 22 +
...est_stackdriver.py => test_cloud_monitoring.py} | 175 +-
.../test_cloud_storage_transfer_service.py | 27 +-
.../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 +-
providers/http/docs/connections/http.rst | 26 +-
providers/http/docs/index.rst | 17 +
providers/http/provider.yaml | 11 +-
providers/http/pyproject.toml | 7 +
.../http/src/airflow/providers/http/exceptions.py | 4 +
.../airflow/providers/http/get_provider_info.py | 8 +-
.../http/src/airflow/providers/http/hooks/http.py | 201 +-
.../src/airflow/providers/http/operators/http.py | 1 +
.../src/airflow/providers/http/sensors/http.py | 2 +-
providers/http/tests/unit/http/hooks/test_http.py | 409 ++-
providers/ibm/mq/docs/message-queues.rst | 17 +-
.../mq/src/airflow/providers/ibm/mq/queues/mq.py | 21 +-
.../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} | 15 +-
.../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 +
.../unit/keycloak/auth_manager/routes/conftest.py | 2 +-
.../microsoft/azure/docs/message-queues/index.rst | 24 +-
.../providers/microsoft/azure/hooks/msgraph.py | 4 +-
.../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/queues/asb.py | 28 +-
.../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/hooks/test_msgraph.py | 39 +-
.../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 +-
.../airflow/providers/openai/operators/openai.py | 15 +-
.../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 +
providers/redis/docs/message-queues.rst | 19 +-
.../src/airflow/providers/redis/queues/redis.py | 23 +-
.../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 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 6 +-
.../src/airflow/providers/sftp/operators/sftp.py | 2 +-
.../sftp/src/airflow/providers/sftp/pools/sftp.py | 32 +-
.../src/airflow/providers/sftp/sensors/sftp.py | 1 +
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 28 +
providers/sftp/tests/unit/sftp/pools/test_sftp.py | 76 +-
providers/sftp/tests/unit/sftp/test_exceptions.py | 82 +
.../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/decorators/snowpark.py | 2 +
.../snowflake/operators/snowflake_cortex_agent.py | 1 +
.../providers/snowflake/operators/snowpark.py | 2 +
.../snowflake/transfers/copy_into_snowflake.py | 5 +-
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 8 +-
.../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 | 29 +-
registry/src/css/main.css | 40 +-
registry/src/css/tokens.css | 2 +
registry/src/js/provider-detail.js | 24 +-
registry/src/provider-version.njk | 31 +-
.../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/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 | 6 -
.../in_container/install_airflow_and_providers.py | 2 +-
scripts/in_container/run_fix_ownership.py | 2 +-
.../in_container/run_provider_yaml_files_check.py | 2 +
scripts/in_container/run_template_fields_check.py | 56 +-
.../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 +-
.../src/airflow_shared/configuration/parser.py | 16 +-
.../src/airflow_shared/module_loading/__init__.py | 1 +
.../src/airflow_shared/module_loading/dag_file.py | 89 +-
.../tests/module_loading/test_dag_file.py | 101 +
task-sdk/docs/api.rst | 2 +
task-sdk/docs/index.rst | 1 +
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/request_handlers.py | 6 +-
.../airflow/sdk/execution_time/schema/schema.json | 17 +-
.../src/airflow/sdk/execution_time/supervisor.py | 975 ++++--
.../src/airflow/sdk/execution_time/task_runner.py | 6 +-
task-sdk/src/airflow/sdk/importers/__init__.py | 6 +-
task-sdk/src/airflow/sdk/importers/base.py | 144 +-
.../src/airflow/sdk/importers/python_importer.py | 204 +-
task-sdk/src/airflow/sdk/importers/zip_importer.py | 192 +-
task-sdk/src/airflow/sdk/plugins_manager.py | 13 +
.../src/airflow/sdk/serde/serializers/datetime.py | 2 +-
task-sdk/src/airflow/sdk/state.py | 1 +
.../tests/task_sdk/definitions/test_deadline.py | 148 +-
.../task_sdk/definitions/test_retry_policy.py | 224 ++
.../execution_time/_request_registration_types.py | 41 +
.../tests/task_sdk/execution_time/test_context.py | 74 +
.../task_sdk/execution_time/test_supervisor.py | 458 ++-
.../task_sdk/execution_time/test_task_runner.py | 33 +
.../task_sdk/importers/test_python_importer.py | 193 +-
task-sdk/tests/task_sdk/importers/test_registry.py | 65 +-
.../tests/task_sdk/importers/test_zip_importer.py | 181 +-
task-sdk/tests/task_sdk/serde/test_serializers.py | 12 +
ts-sdk/.pre-commit-config.yaml | 12 +
ts-sdk/adr/0002-native-dag-interface.md | 32 +-
ts-sdk/package.json | 3 +-
ts-sdk/pnpm-lock.yaml | 16 +-
.../schema.json => ts-sdk/schema/dag-schema.json | 0
...ck_supervisor_schema.py => check_dag_schema.py} | 12 +-
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/sync_dag_schema.py | 65 +
ts-sdk/scripts/ci/prek/ts_sdk_lint.py | 1 -
ts-sdk/scripts/ci/prek/verify_ts_sdk_package.py | 1 -
ts-sdk/scripts/generate-dag-schema.mjs | 512 +++
ts-sdk/src/coordinator/manifest.ts | 7 +-
ts-sdk/src/coordinator/runtime.ts | 12 +-
ts-sdk/src/generated/dag-schema-fields.ts | 215 ++
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 | 558 ++-
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 | 127 +-
ts-sdk/tests/scripts/generate-dag-schema.test.ts | 419 +++
ts-sdk/tests/sdk/bundle.test.ts | 82 +-
ts-sdk/tests/sdk/dag.test.ts | 486 ++-
ts-sdk/tests/sdk/task-handler.test.ts | 64 +-
ts-sdk/tsconfig.json | 7 +-
uv.lock | 76 +-
915 files changed, 41130 insertions(+), 14845 deletions(-)
rename
airflow-core/docs/img/change-theme/{exmaple_theme_configuration_dark_mode.png
=> example_theme_configuration_dark_mode.png} (100%)
rename
airflow-core/docs/img/change-theme/{exmaple_theme_configuration_light_mode.png
=> example_theme_configuration_light_mode.png} (100%)
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/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/72896.significant.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/migrations/versions/0135_3_4_0_widen_revoked_token_jti.py
create mode 100644 airflow-core/src/airflow/serialization/dag_version_diff.py
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%)
create mode 100644
airflow-core/src/airflow/ui/src/components/DataTable/TableList.test.tsx
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/context/groups/GroupsProvider.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/Grid/Grid.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/Grid/useGridScrollRestore.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/Grid/useGridScrollRestore.ts
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/noisy-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/pages/TaskInstance/RenderedTemplates.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useDagBundleRefetchInterval.ts
create mode 100644
airflow-core/tests/unit/serialization/test_dag_version_diff.py
create mode 100644
airflow-core/tests/unit/serialization/test_ts_sdk_serialization_version.py
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
create mode 100644 go-sdk/airflow/serve.go
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.go
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 (82%)
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/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/local_development.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/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
copy providers/common/{sql/docs/connections.rst =>
ai/docs/toolsets/logging.rst} (50%)
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
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/mixins/cancellable_run.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/toolsets.py
create mode 100644
providers/common/ai/tests/unit/common/ai/mixins/test_cancellable_run.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
rename providers/google/docs/logging/{stackdriver.rst => cloud_logging.rst}
(73%)
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/log/{stackdriver_task_handler.py
=> cloud_logging_task_handler.py} (94%)
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/log/{test_stackdriver_task_handler.py
=> test_cloud_logging_task_handler.py} (75%)
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/{http/src/airflow/providers/http/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/sftp/tests/unit/sftp/test_exceptions.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%)
create mode 100644
task-sdk/tests/task_sdk/execution_time/_request_registration_types.py
copy airflow-core/src/airflow/serialization/schema.json =>
ts-sdk/schema/dag-schema.json (100%)
copy ts-sdk/scripts/ci/prek/{check_supervisor_schema.py =>
check_dag_schema.py} (86%)
create mode 100755 ts-sdk/scripts/ci/prek/sync_dag_schema.py
create mode 100644 ts-sdk/scripts/generate-dag-schema.mjs
create mode 100644 ts-sdk/src/generated/dag-schema-fields.ts
create mode 100644 ts-sdk/tests/scripts/generate-dag-schema.test.ts