This is an automated email from the ASF dual-hosted git repository.
vikramkoka pushed a change to branch aip99-llamaindex-example
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 614e1814523 Add example DAGs for LlamaIndex RAG pipelines
add d63b5e9c24e fix(keycloak): attach default role policies (#67031)
add ea15bd287aa Bump stylelint (#67148)
add 0a324ba86a8 Add `BedrockCreateEvaluationJobOperator` (#66722)
add 2747837b057 Upgrade icons, spacing, and default component themes
(#66569)
add 3a861426cae UI: Use local Monaco editor module instead of CDN (#66647)
add f9faf65e340 Regenerate Edge worker OpenAPI spec after #67093 env
upgrade (#67188)
add 173c2a1806d Recover stuck TIs when direct terminal-state API call
fails (#66574)
add 41df5a980c8 Add BundleVersion dataclass and version_data persistence
to DagVersion (#66491)
add f5fd3bc4c8f Add eslint-no-duplicate-imports (#67201)
add b81e335fcc4 [helm chart] Go Template Error: Cannot Compare Slice to
nil using eq (#64032)
add b28681f154f Apply requires_access_event_log to GET /eventLogs list
endpoint (#67185)
add 954b3035cc8 Prepare providers release 2026-05-19 (#67137)
add dcdd124431a Add ``Langchain`` hook to ``common-ai`` provider (#67192)
add a1784e880f8 Replace fixed sleep with active IAM trust policy
validation in example_emr_eks (#66736)
add 2017b407666 AGENTS.md: require translating domain-layer exceptions to
`HTTPException` at FastAPI route boundaries (#67221)
add 085459e6f96 AIP-76: Add PartitionAtRuntime authoring API to Task SDK
(#65447)
add 5aeb726b1f9 Sync RuntimeTaskInstanceProtocol with RuntimeTaskInstance
(#67216)
add ec2d56a473d AIP-103: Worker side custom state backend support (#66859)
add f9e4e6efd10 AIP-103: Add Core API endpoints for task state and asset
state (#67041)
add 41ec7a09398 Improve query validation, including for streaming (#67212)
add b2d4d63c64b Bump eslint (via audit fix) (#67220)
add 5ae6bb07cd5 Update French (fr) UI translations to 100% coverage
(#67240)
add 58a60ed2f48 tests: Add new options to test operator (#67195)
add 153623856ef Prevent AlreadyRunningBackfill error caused by invalid
date range request (#66874)
add fe1618f9f32 Fix LangChain hook tests failing when langchain is not
installed (#67237)
add 678d1dd0ce9 Replace `allow_producer_teams` with `access_control` on
Asset (#66954)
add 2970152b190 Fix CallbackKey type for more accurate type checking
(#66973)
add 13e2125a2c3 Add rerun_with_latest_version config hierarchy for
clear/rerun behavior (#63884)
add 3047ad7fa3c Fix autorefresh for deadlines and paused dags (#67249)
add aa3ae537a0d Fix console errors in gantt view (#67255)
add 6b64a621be4 [main] CI: Upgrade important CI environment (#67232)
add eec2f75e556 Add `DocumentLoaderOperator` to `common.ai` provider
(#67120)
add c0bc3d07747 Add chart/v*-stable to protected branches (#67259)
add cb2aaf41ed2 docs(edge3): clarify WorkerQueuesBase.team_name is an
experimental hint, cross-ref workload.rst (#66718)
add 315d1591644 Fix deadlock in ti_update_state caused by FOR UPDATE
locking dag_run (#67246)
add 8f216be1f1a Bump picomatch from 4.0.3 to 4.0.4 in /registry (#67124)
add 8d1ef7d628e Bump brace-expansion from 5.0.5 to 5.0.6 in /registry
(#67125)
add 22c450fbc35 Bump liquidjs from 10.25.5 to 10.27.0 in /registry (#67126)
add 7936ed6ce61 Bump ws from 8.19.0 to 8.20.1 in /registry (#67136)
add b64c302b2e9 Add LlamaIndex operators to common.ai provider (#67121)
add 706c1196484 Add /.github/skills/issue-* to .gitignore (#67275)
add dae49a37f58 AIP-76: Consume task-emitted partition keys on asset
events (#66782)
add f51d9e6ed23 workflows: use task-sdk alias in publish-docs
NON_PROVIDER_TOKENS (#67279)
add dfd9655139e Update spelling wordlist to fix errors in common-ai
provider (#67278)
add b13d796fbf1 Fixing mypy errors in google gen ai provider and tests
(#67276)
add 5bc196f5528 docs: Clarify manual DAG run data interval semantics in
Airflow 3 (#64740)
add 075937c4a9b Refactor and extract shared request handler logic from
supervisor _handle_request methods (#65624)
add 824722219b4 Fix provider executor tests broken in main (#67268)
add 75ca1714f96 fix: Support log level parsing from container output in
`EcsRunTaskOperator` (#67180)
add c91117a89b1 Prevent durable storage tests from leaking hook lineage
(#67252)
add f2af887699a Add ExecuteCallback support to AWS ECS Executor (#63657)
add 4325707b488 Add per-provider pre-extras install hook for native build
prereqs (#67205)
add 9b85d88749e Fix wrong changelog entry for BigQueryInsertJobOperator in
google provider 22.0.0 (#67280)
add ddf1ebc0fe7 fix: EksPodOperator 401 with cross-account AssumeRole via
aws_conn_id (#65335)
add 9288949db28 Add bulk delete Dag Runs (#67095)
add c3bf97d6a21 Fix duplicated logs and memory issue with S3 log handler
(#67144)
add 75a5877470f Add announcement step to PMC onboarding instructions
(#67303)
add ac5ab7da828 fix typo "@tash.bash" -> "@task.bash (#67301)
add a73c6268a3b Fix KubernetesPodTrigger.get_task_state KeyError on mapped
TIs (#67296) (#67297)
add ca05a56f6a1 Fix multiple_outputs no-op on deferrable
KubernetesPodOperator (#67226)
add 9cfd9943d68 Support timezone in SDK temporal partition mappers (#67164)
add 2e9cbc25ebb Add configurable task span detail level for OTel tracing
(#63568)
add 6886e5bd8ad Remove unused isLoggedIn and expectLoginSuccess from UI
e2e page objects (#67267)
add 8199e76a718 Fix EMR Serverless task failure on transient AWS
throttling errors (#67222)
add 93eee4fb31d i18n(ko): Improve Korean Task terminology consistency
(#67234)
add 8388bb8f89e Deprecate implicit REMOTE_TASK_LOG registration in
OpensearchTaskHandler (#67106)
add 9ed5a08fd1f AIP-76: Add example and docs for runtime asset
partitioning (#67307)
add d02b66523f2 Fix SageMaker processing stopped state handling (#67291)
add af5af564ffa Export from_timestamp from Task SDK timezone module
(#67321)
add 11ba5ec753b Breeze: bind api-server dual-stack so http://localhost
works in Chrome/Safari (#67320)
add 8c2fa492bc1 Add `allow_global` option to asset access control (#67251)
add b64ed723421 Refactor Elasticsearch log formatter to use
timezone.from_timestamp (#67245)
add 91843291f54 Refactor Opensearch log formatter to use
timezone.from_timestamp (#66856)
add eca91dc5c2c Restore fail_fast handling when reschedule exceeds MySQL
TIMESTAMP limit (#67353)
add 0920c770c8e Add schema migration to supervisor-child comm (#67235)
add 83d8f400274 UI: Fix Expand/Collapse All on XComs and Audit Log JSON
cells (#67316)
add b1aec757ce1 Revoke JWT on /auth/logout regardless of auth manager
logout URL (#67289)
add b306f13e6d7 Bump the uv-dependency-updates group in /dev/breeze with 2
updates (#67345)
add d0f981c2ffb Deprecate implicit REMOTE_TASK_LOG registration in
ElasticsearchTaskHandler (#67105)
add 113b6fae3f9 UI: Fix /dags/{dag_id}/latest_run returning 500 instead of
400 for dag_id="~" (#67363)
add 40c9edf4563 Bump the github-actions-updates group with 2 updates
(#67351)
add 477b1482e7e Add prek hook enforcing the "example" tag on example DAGs
(#67354)
add 901a5a3c283 Add some more clarifications on edge roles (#67379)
add f13f0c17d48 Update providers metadata 2026-05-23 (#67377)
add 336a1199a1c Increment version of airflowctl for RC (#67295)
add 16ad4794f5a Add dags next execution command #66172 (#66188)
add ea7481d7d59 UI: Show DAG name in browser tab title (#67169)
add 428c5d285ac Update apache-steward snapshot to b19ac36 and drop local
SPDX header (#67412)
add f60dffae9fe [Hashicorp] Enable ADC for Vault GCP authentication
(#53801)
add b0921fe6657 Fix flaky AzureDataFactory operator test by mocking time
(#67427)
add 62845dd743b Cleanup older/outddated uv cooldown exception (#67383)
add 8af561806b9 Remove dead auth code from Airflow2 times in Edge (#67374)
add 325f3774ba6 Accept Sequence[UserContent] in common.ai TaskFlow
decorators (#67389)
add dd8c60e487f Bump @playwright/test to 1.60 to fix UI e2e install hang
on Node 24+ (#67398)
add 2def8027d7c Correctly pre-allocate `external_exeuctor_id` with
multiple executors. (#67388)
add f3f7e909b08 [main] CI: Upgrade important CI environment (#67313)
add 41ec00966de Fix Akeyless JWT connection credential is not redacted
(#67443)
add 518eadfc397 Require starlette>=1.0.1 for Host header parsing fix
(#67326)
add bf3c3515895 Share one poll loop across sibling event triggers (#66584)
add 0a506b18b9d Docs: refresh JWT and security model for v3.2 with mermaid
diagrams (#67435)
add 4b998b419c2 PR triage: drop failing job names from violations bullets
(#67322)
add 6acd3d213c4 Add author-primary review-nudge/reviewer-ping triage
templates (#67428)
add 6ecae6853e6 CI: fix milestone-tag-assistant race when labels change
post-merge (#67337)
add 68629ffd9fc UI: Load Monaco workers via a same-origin Blob shim
(#67352)
add 7ea8362c55d Fix broken tests due to pymysql 1.2.0 incompat with
aiomysql (#67467)
add 469545c1b9c Openlineage: Read HTTP API key auth from Airflow
connection (#66342)
add b59126d7c90 Simplifing authoring of task and asset states by allowing
JSON types (#67418)
add 93a078a20de Return raw import-error stacktrace when file has no
registered Dag (#67465)
add 29510e45cd3 fix localhost access regression in dual-stack API server
startup (#67370)
add 349de0187b6 Fix deferrable execution_timeout handling in
DbtCloudRunJobOperator (#67360)
add 57e8a7a6a19 Fix deferrable execution_timeout handling in
AirbyteTriggerSyncOperator (#67382)
add c6d6e007913 feat(cli): add `airflow dags clear` for partition-range
reprocessing (#66004)
add f72e4c41718 Add `team_name` column to trigger table for multi-team
triggerer support (#67305)
add 5f3e3a2a5c0 Prepare providers release 2026-05-25 (#67482)
add 1247d91b3dc Fix smus_notebook system test: assume DataZone environment
role via aws_conn_id (#66976)
add 2ff1d5ce9e8 Add example DAGs for AIP-103 task state and asset state
(#67376)
add f79b94a1e5b Bump the auth-ui-package-updates group across 1 directory
with 14 updates (#67486)
add 40da90b8151 Fix flaky OTel integration tests by bounding scheduler
shutdown wait (#67455)
add eda68555842 Slim .apache-steward-overrides/ to project-specific values
(#67488)
add 6e9757b54d0 Cap pymysql<1.2 in PyPI constraints generation (#67491)
add 11f348694fc Fix SimpleAuthManager redirect to next URL after login
(#67483)
add 32e70008911 Fix bulk CREATE+OVERWRITE team-context authz bypass
(#67493)
add 742ce6a8f67 Remove exclusion of yanked version dependencies from
providers (#66857)
add ed26436f2a1 Unify jwt_audience config key for signer and validator
(#67494)
add aa3b7d4f59a Redact secret-looking query parameters in HTTP access log
(#67498)
add 53b5b42f8f0 Escape LIKE wildcards in non-search filter parameters
(#67496)
add 4a61b84c1c0 Strip CR/LF from user-supplied logical_date before stdlib
logging (#67500)
add 3716d52623d [main] CI: Upgrade important CI environment (#67463)
add b12f5ad66f5 fix the miss redact (#67495)
add 10e5ee47f42 Add --team-name CLI argument to triggerer for multi-team
deployments (#67254)
add 0a2f1810aa3 Propogate `verify` and `botocore_config` in batch triggers
(#67508)
add 896c0318a76 Remove unused methods from e2e test page objects (#67516)
add 0120ba7fd5b API: Return 400 instead of 500 from materialize_asset for
invalid validation input (#67445)
add 585d7aa8e51 Add prek hook to enforce HTTPException is imported from
fastapi (#67367)
add 7acd9cb5350 Add session-level query tags to Databricks SQL operators
(#66895)
add 3d5c762aeca Forward Airflow Dag params to Databricks job parameters in
CreateJobs/SubmitRun/RunNow (#66613)
add 597891128e9 Fix Callback.handle_event crash on OTel metrics with dict
tag values (#67527)
add 939043f0a3b Remove stray character in build docs error (#67536)
add 1d5150eef00 Add incremental refresh support to `TableauOperator`
(#67340)
add e31cca1258d Fix N+1 query in bulk task instance delete endpoint
(#67304)
add eff567c7e60 UI: Rewrite modulepreload hrefs to the api-server static
path (#67548)
add 021606f0837 UI: Fix Monaco workers crashing in production mode (#67546)
add b1cd583b0d9 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#67512)
add eacbd697c71 Fix Celery worker liveness probe hostname lookup (#67471)
add 3d4b61104b4 UI: Use react-query native error state for bulk action
hooks (#67284)
add 99a07b600ba UI: Use Taiwanese Mandarin terms in zh-TW locale (#67544)
add 32b11b1fdd1 Cleanup redundant RedshiftHook TODO comment for cluster
snapshot creation (#67485)
add 3e2962a0e42 Correct README.rst common compat version reference
inconsistency (#67554)
add 66a1a643154 Fix callback state not updating from executor events due
to UUID type mismatch (#67542)
add a128d6930ef Create documentation about adding `access_control` to
`Asset` object (#66949)
add dfdcf02ba6a Add multi-team query filtering to triggerer trigger
assignment (#67517)
add 5c7be57d8bb Fix smus_notebook system test failure in deferrable CI
rotation (#67568)
add b951a65c269 Add `OpenSearchServerlessCreateCollectionOperator` (#66549)
add 0cf0d63a8cd Fix triggerer KEDA database connection rendering (#67538)
add 5f82cefd266 Add compat layer for import errors caused by
AirflowSecretsBackendAccessDenied (#67560)
add 1a1c145bc0a Add airflowctl 0.1.5 release notes (#67562)
add 65a9d8d6aa1 i18n(ko): add missing translation for Rendered Map Index
(#67540)
add d6dee49db22 Rework StackdriverTaskHandler for the structlog era #65191
(#65198)
add e56da19202c Restore Monaco find widget in Dag Code view (#67391)
add 964870ee704 add error as context["exception"] in
InProcessTestSupervisor (#64568)
add 40a10b46add fix oudated img links in `dags.rst` (#67357)
add 9f5ee0f24a2 Remove Kaxil from codeowners for CI files (#67577)
add 129d03ed7a9 Go-SDK: Add coordinator-mode protocol primitives and SDK
surface hooks (#67315)
add 9aac9639dd2 Add new terms to spelling wordlist: newsfragments and
pyyaml (#67584)
add 44f7ee740db Add community escalation process doc with private@ appeal
channel (#67557)
add 27295a30d0f Disable otel collector by default (#67575)
add cb31b654e32 Add OpenLineage support to JdbcHook (#67457)
add 4ed546b1473 Recreate Supervisor Schema with Pydantic mechanism (#67596)
add 07859aaf32f feat(cli): add `partitions clear` to reset DagRun
partition fields (#66520)
add 6be0310f33e Replaced manual response descriptions with
create_openapi_http_exception_doc for Task Instance routes. This ensures
consistent OpenAPI documentation across the Execution API and removes redundant
hardcoded strings. (#62624)
add a2d5fa9c436 [main] CI: Upgrade important CI environment (#67593)
add 4eab62d40b7 Fix example_mwaa_serverless system test race condition
with stop_workflow_run (#67578)
add 5b126842b9a Fix GET /pools list endpoint incorrectly documenting 404
in OpenAPI spec (#67570)
add 647017278b6 Fix GET /auth/login missing 400 in OpenAPI spec and use
status constant (#67571)
add cd431eedcd0 Make session parameter in dag_clear CLI keyword only
(#67582)
add d9e5446aaac Avoid logging Execution API bearer credentials (#67059)
new d9bf77ae676 Add SEC 10-K financial analysis example DAG for LlamaIndex
new 0711408d47d Merge branch 'aip99-llamaindex-example' of
https://github.com/apache/airflow into aip99-llamaindex-example
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../pr-management-triage-comment-templates.md | 212 +-
.apache-steward-overrides/user.md | 59 -
.asf.yaml | 1 +
.github/CODEOWNERS | 2 +-
.github/skills/setup-steward/SKILL.md | 5 +-
.github/skills/setup-steward/adopt.md | 235 +-
.github/skills/setup-steward/conventions.md | 155 +-
.github/skills/setup-steward/overrides.md | 3 -
.github/skills/setup-steward/unadopt.md | 31 +-
.github/skills/setup-steward/upgrade.md | 122 +-
.github/skills/setup-steward/verify.md | 24 +-
.github/skills/setup-steward/worktree-init.md | 26 +-
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/codeql-analysis.yml | 6 +-
.github/workflows/publish-docs-to-s3.yml | 2 +-
.github/workflows/registry-backfill.yml | 2 +-
.github/workflows/registry-build.yml | 2 +-
.github/workflows/test-providers.yml | 4 +
.github/workflows/ui-e2e-tests.yml | 2 +-
.gitignore | 7 +
.pre-commit-config.yaml | 29 +-
AGENTS.md | 1 +
CODE_OF_CONDUCT.md | 6 +
COMMITTERS.rst | 3 +-
COMMUNITY_ESCALATION.md | 146 +
Dockerfile | 9 +-
Dockerfile.ci | 35 +-
README.md | 17 +
airflow-core/.pre-commit-config.yaml | 11 +
.../3rd-party-licenses/LICENSE-monaco-editor.txt | 21 +
airflow-core/LICENSE | 1 +
airflow-core/NOTICE | 8 +
.../administration-and-deployment/dag-bundles.rst | 105 +
.../docs/authoring-and-scheduling/assets.rst | 112 +-
.../authoring-and-scheduling/event-scheduling.rst | 140 +
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/dag-run.rst | 18 +
airflow-core/docs/core-concepts/dags.rst | 14 +-
airflow-core/docs/core-concepts/multi-team.rst | 56 +-
.../docs/installation/upgrading_to_airflow3.rst | 48 +-
airflow-core/docs/migrations-ref.rst | 8 +-
.../docs/security/jwt_token_authentication.rst | 135 +-
airflow-core/docs/security/security_model.rst | 192 +
airflow-core/newsfragments/63884.significant.rst | 34 +
airflow-core/newsfragments/66584.feature.rst | 1 +
airflow-core/newsfragments/67164.significant.rst | 34 +
airflow-core/newsfragments/67494.significant.rst | 43 +
airflow-core/pyproject.toml | 8 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 36 +-
.../auth/managers/simple/routes/login.py | 6 +-
.../auth/managers/simple/ui/package.json | 28 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1096 ++---
.../airflow/api_fastapi/common/http_access_log.py | 28 +-
.../src/airflow/api_fastapi/common/parameters.py | 42 +-
.../datamodels/asset_state.py | 24 +-
.../api_fastapi/core_api/datamodels/backfills.py | 8 +-
.../api_fastapi/core_api/datamodels/dag_run.py | 22 +-
.../api_fastapi/core_api/datamodels/dags.py | 1 +
.../core_api/datamodels/task_instances.py | 9 +-
.../datamodels/task_state.py | 24 +-
.../api_fastapi/core_api/datamodels/ui/config.py | 1 +
.../api_fastapi/core_api/datamodels/variables.py | 2 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 5 +
.../api_fastapi/core_api/openapi/exceptions.py | 23 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 1162 ++++-
.../api_fastapi/core_api/routes/public/__init__.py | 4 +
.../core_api/routes/public/asset_state.py | 163 +
.../api_fastapi/core_api/routes/public/assets.py | 34 +-
.../api_fastapi/core_api/routes/public/auth.py | 15 +-
.../core_api/routes/public/backfills.py | 13 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 33 +-
.../core_api/routes/public/event_logs.py | 4 +-
.../core_api/routes/public/import_error.py | 26 +-
.../api_fastapi/core_api/routes/public/pools.py | 1 -
.../core_api/routes/public/task_instances.py | 9 +-
.../core_api/routes/public/task_state.py | 210 +
.../api_fastapi/core_api/routes/ui/config.py | 7 +
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 3 +-
.../src/airflow/api_fastapi/core_api/security.py | 93 +-
.../api_fastapi/core_api/services/public/common.py | 26 +
.../core_api/services/public/dag_run.py | 115 +-
.../core_api/services/public/task_instances.py | 23 +-
.../execution_api/datamodels/asset_state.py | 17 +-
.../execution_api/datamodels/task_state.py | 16 +-
.../execution_api/routes/asset_state.py | 9 +-
.../execution_api/routes/task_instances.py | 123 +-
.../api_fastapi/execution_api/routes/task_state.py | 5 +-
.../airflow/api_fastapi/execution_api/security.py | 6 +-
.../execution_api/versions/v2026_06_16.py | 2 +-
.../src/airflow/api_fastapi/logging/decorators.py | 17 +-
airflow-core/src/airflow/assets/manager.py | 10 +-
airflow-core/src/airflow/cli/cli_config.py | 135 +-
.../src/airflow/cli/commands/backfill_command.py | 13 +-
.../src/airflow/cli/commands/dag_command.py | 84 +-
.../src/airflow/cli/commands/partition_command.py | 171 +
.../src/airflow/cli/commands/triggerer_command.py | 28 +-
.../src/airflow/config_templates/config.yml | 35 +
.../src/airflow/dag_processing/bundles/base.py | 57 +-
.../src/airflow/dag_processing/collection.py | 18 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 4 +-
airflow-core/src/airflow/dag_processing/manager.py | 20 +-
.../src/airflow/dag_processing/processor.py | 98 +-
.../airflow/example_dags/example_asset_alias.py | 8 +-
.../example_asset_alias_with_no_taskflow.py | 8 +-
.../example_dags/example_asset_allow_teams.py | 28 +-
.../example_dags/example_asset_decorator.py | 2 +-
.../example_dags/example_asset_partition.py | 65 +-
.../airflow/example_dags/example_asset_state.py | 98 +
.../example_dags/example_asset_with_watchers.py | 45 +-
.../src/airflow/example_dags/example_assets.py | 17 +-
.../airflow/example_dags/example_branch_labels.py | 1 +
.../example_dags/example_dynamic_task_mapping.py | 6 +-
...amic_task_mapping_with_no_taskflow_operators.py | 1 +
.../example_dags/example_inlet_event_extra.py | 4 +-
.../example_dags/example_kubernetes_executor.py | 2 +-
.../example_latest_only_with_trigger.py | 2 +-
.../example_local_kubernetes_executor.py | 2 +-
.../example_dags/example_outlet_event_extra.py | 6 +-
.../airflow/example_dags/example_simplest_dag.py | 2 +-
.../src/airflow/example_dags/example_task_state.py | 90 +
.../src/airflow/executors/base_executor.py | 12 +-
.../src/airflow/executors/workloads/callback.py | 6 +-
.../src/airflow/executors/workloads/types.py | 8 +-
.../src/airflow/jobs/scheduler_job_runner.py | 18 +-
.../src/airflow/jobs/triggerer_job_runner.py | 145 +-
...rol_columns_to_dag_schedule_asset_reference.py} | 10 +-
... 0115_3_3_0_add_version_data_to_dag_version.py} | 31 +-
...> 0116_3_3_0_add_team_name_to_trigger_table.py} | 35 +-
airflow-core/src/airflow/models/asset.py | 3 +
airflow-core/src/airflow/models/backfill.py | 21 +-
airflow-core/src/airflow/models/callback.py | 26 +-
airflow-core/src/airflow/models/connection.py | 15 +-
airflow-core/src/airflow/models/dag_version.py | 6 +
airflow-core/src/airflow/models/dagrun.py | 25 +-
airflow-core/src/airflow/models/serialized_dag.py | 4 +
airflow-core/src/airflow/models/taskinstance.py | 116 +-
airflow-core/src/airflow/models/trigger.py | 39 +-
airflow-core/src/airflow/models/variable.py | 15 +-
airflow-core/src/airflow/serialization/decoders.py | 2 +-
.../airflow/serialization/definitions/assets.py | 2 +-
.../src/airflow/serialization/definitions/dag.py | 2 +
airflow-core/src/airflow/serialization/encoders.py | 24 +-
airflow-core/src/airflow/serialization/schema.json | 3 +-
.../airflow/serialization/serialized_objects.py | 1 +
airflow-core/src/airflow/timetables/base.py | 7 +
airflow-core/src/airflow/timetables/simple.py | 16 +
airflow-core/src/airflow/triggers/base.py | 122 +-
airflow-core/src/airflow/triggers/shared_stream.py | 387 ++
.../src/airflow/ui/openapi-gen/queries/common.ts | 61 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 96 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 96 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 275 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 96 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 353 +-
.../ui/openapi-gen/requests/services.gen.ts | 419 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 572 ++-
airflow-core/src/airflow/ui/package.json | 3 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 76 +-
.../airflow/ui/public/i18n/locales/fr/admin.json | 21 +-
.../airflow/ui/public/i18n/locales/fr/assets.json | 8 +-
.../airflow/ui/public/i18n/locales/fr/browse.json | 26 +-
.../airflow/ui/public/i18n/locales/fr/common.json | 90 +-
.../ui/public/i18n/locales/fr/components.json | 34 +-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 92 +-
.../airflow/ui/public/i18n/locales/fr/dags.json | 13 +-
.../ui/public/i18n/locales/fr/dashboard.json | 3 +-
.../airflow/ui/public/i18n/locales/fr/hitl.json | 4 +
.../airflow/ui/public/i18n/locales/ko/admin.json | 2 +-
.../airflow/ui/public/i18n/locales/ko/assets.json | 4 +-
.../airflow/ui/public/i18n/locales/ko/common.json | 21 +-
.../ui/public/i18n/locales/ko/components.json | 16 +-
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 40 +-
.../airflow/ui/public/i18n/locales/ko/dags.json | 20 +-
.../airflow/ui/public/i18n/locales/ko/hitl.json | 2 +-
.../airflow/ui/public/i18n/locales/ko/tasks.json | 2 +-
.../ui/public/i18n/locales/zh-TW/admin.json | 2 +-
.../ui/public/i18n/locales/zh-TW/browse.json | 2 +-
.../ui/public/i18n/locales/zh-TW/common.json | 7 +-
.../ui/public/i18n/locales/zh-TW/components.json | 4 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 18 +-
airflow-core/src/airflow/ui/rules/core.js | 18 +
.../src/airflow/ui/src/components/ActionErrors.tsx | 46 +
.../ui/src/components/AdvancedSearchToggle.tsx | 5 +-
.../ui/src/components/AssetProgressCell.tsx | 2 +-
.../ui/src/components/Assets/AssetEvents.tsx | 13 +-
.../ui/src/components/Assets/TriggeredRuns.tsx | 2 +-
.../ui/src/components/AttrSelectFilterMulti.tsx | 6 +-
.../ui/src/components/Clear/Run/ClearRunButton.tsx | 24 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 10 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 45 +-
.../Clear/TaskInstance/ClearTaskInstanceButton.tsx | 43 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 42 +-
.../Clear/useRerunWithLatestVersion.test.tsx | 154 +
.../components/Clear/useRerunWithLatestVersion.ts | 55 +
.../ui/src/components/ConfirmationModal.tsx | 1 -
.../airflow/ui/src/components/DAGWarningsModal.tsx | 8 +-
.../src/components/DagActions/DeleteDagButton.tsx | 22 +-
.../components/DagActions/FavoriteDagButton.tsx | 25 +-
.../src/components/DagActions/ParseDagButton.tsx | 18 +-
.../src/components/DagActions/RunBackfillForm.tsx | 37 +-
.../ui/src/components/DataTable/DataTable.tsx | 8 +-
.../src/components/DataTable/FilterMenuButton.tsx | 12 +-
.../ui/src/components/DataTable/useRowSelection.ts | 14 +
.../src/components/DataTable/useTableUrlState.ts | 3 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 20 +-
.../ui/src/components/EditableMarkdownButton.tsx | 13 +-
.../ui/src/components/ExpandCollapseButtons.tsx | 14 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 2 +-
.../src/components/FilterBar/filters/DateInput.tsx | 4 +-
.../ui/src/components/FlexibleForm/FieldBool.tsx | 1 -
.../ui/src/components/Graph/DownloadButton.tsx | 9 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 2 -
.../airflow/ui/src/components/GraphTaskFilters.tsx | 20 +-
.../src/airflow/ui/src/components/JsonEditor.tsx | 2 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 2 -
.../src/components/MarkAs/Run/MarkRunAsButton.tsx | 42 +-
.../src/components/MarkAs/Run/MarkRunAsDialog.tsx | 7 +-
.../MarkAs/TaskGroup/MarkTaskGroupAsButton.tsx | 40 +-
.../MarkAs/TaskGroup/MarkTaskGroupAsDialog.tsx | 3 +-
.../TaskInstance/MarkTaskInstanceAsButton.tsx | 39 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 3 +-
.../src/airflow/ui/src/components/MarkAs/utils.ts | 4 +-
.../src/components/MonacoEditor/configureMonaco.ts | 97 +
.../{ui/ResetButton.tsx => MonacoEditor/index.tsx} | 42 +-
.../Menu.tsx => MonacoEditor/useMonacoReady.ts} | 27 +-
.../ui/src/components/QuickFilterButton.tsx | 1 -
.../airflow/ui/src/components/ReactMarkdown.tsx | 2 +-
.../ui/src/components/RenderedJsonField.tsx | 24 +-
.../src/airflow/ui/src/components/RunTypeIcon.tsx | 3 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 3 +-
.../src/components/SearchDags/SearchDagsButton.tsx | 8 +-
.../airflow/ui/src/components/TaskTrySelect.tsx | 2 -
.../src/airflow/ui/src/components/TogglePause.tsx | 2 -
.../src/components/TriggerDag/TriggerDAGButton.tsx | 11 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 9 +-
.../src/components/TriggerDag/TriggerDAGModal.tsx | 2 +-
.../ui/src/components/ui/ButtonGroupToggle.tsx | 6 +-
.../src/airflow/ui/src/components/ui/Clipboard.tsx | 8 +-
.../{Pagination/PrevTrigger.tsx => IconButton.tsx} | 32 +-
.../airflow/ui/src/components/ui/LazyClipboard.tsx | 3 +-
.../src/airflow/ui/src/components/ui/Menu/Menu.tsx | 4 +
.../components/ui/Menu/{Menu.tsx => MenuRoot.tsx} | 26 +-
.../ui/Menu/{Menu.tsx => MenuTrigger.tsx} | 31 +-
.../src/components/ui/Pagination/NextTrigger.tsx | 3 +-
.../src/components/ui/Pagination/PrevTrigger.tsx | 3 +-
.../airflow/ui/src/components/ui/ResetButton.tsx | 2 +-
.../ui/src/components/ui/SegmentedControl.tsx | 1 -
.../src/airflow/ui/src/components/ui/index.ts | 1 +
.../src/airflow/ui/src/layouts/BaseLayout.tsx | 5 -
.../ui/src/layouts/Details/DetailsLayout.tsx | 104 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 2 +-
.../layouts/Details/Grid/GridPaginationButtons.tsx | 11 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 11 +-
.../ui/src/layouts/Details/TaskStreamFilter.tsx | 28 +-
.../airflow/ui/src/layouts/Nav/LanguageModal.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/PluginMenus.tsx | 2 +-
.../airflow/ui/src/layouts/Nav/TimezoneModal.tsx | 2 +-
.../ui/src/layouts/Nav/TokenGenerationModal.tsx | 2 +-
airflow-core/src/airflow/ui/src/main.tsx | 3 +-
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 3 +-
.../ui/src/pages/Asset/AssetPanelButtons.tsx | 15 +-
.../ui/src/pages/Asset/CreateAssetEvent.tsx | 19 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 9 +-
.../ui/src/pages/AssetsList/DependencyPopover.tsx | 2 +-
.../src/pages/Connections/AddConnectionButton.tsx | 8 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 1 -
.../ui/src/pages/Connections/Connections.tsx | 2 -
.../pages/Connections/DeleteConnectionButton.tsx | 26 +-
.../pages/Connections/DeleteConnectionsButton.tsx | 3 +-
.../src/pages/Connections/EditConnectionButton.tsx | 22 +-
.../src/pages/Connections/TestConnectionButton.tsx | 30 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 11 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 5 +-
.../ui/src/pages/Dag/Code/CodeDiffViewer.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 6 +-
.../src/airflow/ui/src/pages/Dag/DagNotFound.tsx | 2 -
.../src/pages/Dag/Overview/AllDeadlinesModal.tsx | 2 +-
.../ui/src/pages/Dag/Overview/DagDeadlines.tsx | 8 +-
.../ui/src/pages/Dag/Overview/FailedLogs.tsx | 1 -
.../ui/src/pages/Dag/Overview/TaskLogPreview.tsx | 2 +-
.../Dag/Tasks/TaskFilters/AttrSelectFilter.tsx | 2 +-
.../BulkDeleteDagRunsButton.tsx} | 97 +-
.../ui/src/pages/{ => DagRuns}/DagRuns.test.tsx | 0
.../airflow/ui/src/pages/{ => DagRuns}/DagRuns.tsx | 81 +-
.../ui/src/pages/{ => DagRuns}/DagRunsFilters.tsx | 0
.../ui/src/pages/{ => DagRuns}/DeleteRunButton.tsx | 22 +-
.../MarkAs/utils.ts => pages/DagRuns/index.ts} | 4 +-
.../ui/src/pages/DagsList/AssetSchedule.tsx | 4 +-
.../pages/DagsList/DagsFilters/FavoriteFilter.tsx | 32 +-
.../DagsList/DagsFilters/RequiredActionFilter.tsx | 2 -
.../src/pages/DagsList/PartitionScheduleModal.tsx | 2 +-
.../pages/Dashboard/FavoriteDags/FavoriteDags.tsx | 4 +-
.../pages/Dashboard/Stats/DAGImportErrorsModal.tsx | 2 +-
.../Dashboard/Stats/PluginImportErrorsModal.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Error.tsx | 2 -
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 1 -
airflow-core/src/airflow/ui/src/pages/Jobs.tsx | 3 +-
.../airflow/ui/src/pages/Pools/AddPoolButton.tsx | 8 +-
.../ui/src/pages/Pools/DeletePoolButton.tsx | 18 +-
.../airflow/ui/src/pages/Pools/EditPoolButton.tsx | 20 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 8 +-
.../airflow/ui/src/pages/Run/DeadlineStatus.tsx | 2 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 2 +-
.../ui/src/pages/TaskInstance/ExtraLinks.tsx | 2 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 3 +-
.../src/pages/TaskInstance/Logs/LogSearchInput.tsx | 6 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 2 +-
.../src/pages/TaskInstance/Logs/ScrollToButton.tsx | 35 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 31 +-
.../TaskInstances/BulkClearTaskInstancesButton.tsx | 5 +-
.../BulkDeleteTaskInstancesButton.tsx | 16 +-
.../BulkMarkTaskInstancesAsButton.tsx | 35 +-
.../TaskInstances/DeleteTaskInstanceButton.tsx | 26 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 13 +-
.../src/pages/Variables/DeleteVariablesButton.tsx | 3 +-
.../src/pages/Variables/ImportVariablesButton.tsx | 4 +-
.../ui/src/pages/Variables/ImportVariablesForm.tsx | 2 +-
.../Variables/ManageVariable/AddVariableButton.tsx | 8 +-
.../ManageVariable/DeleteVariableButton.tsx | 26 +-
.../ManageVariable/EditVariableButton.tsx | 21 +-
.../Variables/ManageVariable/VariableForm.tsx | 6 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 2 -
.../airflow/ui/src/pages/XCom/AddXComButton.tsx | 2 +-
.../airflow/ui/src/pages/XCom/DeleteXComButton.tsx | 14 +-
.../airflow/ui/src/pages/XCom/EditXComButton.tsx | 5 +-
.../airflow/ui/src/queries/gridViewQueryKeys.ts | 10 +
.../ui/src/queries/useBulkClearTaskInstances.ts | 17 +-
.../airflow/ui/src/queries/useBulkDeleteDagRuns.ts | 102 +
.../airflow/ui/src/queries/useBulkTaskInstances.ts | 82 +-
.../src/airflow/ui/src/queries/useClearRun.ts | 3 +-
.../ui/src/queries/useClearTaskInstances.ts | 3 +-
.../airflow/ui/src/queries/useCreateBackfill.ts | 1 +
.../src/airflow/ui/src/queries/useDeadlines.ts | 2 +-
.../src/airflow/ui/src/queries/useDeleteDag.ts | 3 +-
.../src/airflow/ui/src/queries/useDeleteDagRun.ts | 9 +-
.../ui/src/queries/useDeleteTaskInstance.ts | 12 +-
.../airflow/ui/src/queries/useGridTISummaries.ts | 42 +
.../src/airflow/ui/src/queries/usePatchDagRun.ts | 9 +-
.../airflow/ui/src/queries/usePatchTaskGroup.ts | 3 +-
.../airflow/ui/src/queries/usePatchTaskInstance.ts | 3 +-
.../ui/src/queries/useRefreshOnNewDagRuns.ts | 8 +-
.../airflow/ui/src/queries/useUpdateHITLDetail.ts | 10 +-
airflow-core/src/airflow/ui/src/theme.ts | 42 +-
airflow-core/src/airflow/ui/src/utils/TrimText.tsx | 2 +-
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
.../ResetButton.tsx => utils/useDocumentTitle.ts} | 33 +-
airflow-core/src/airflow/ui/src/vite-env.d.ts | 5 +
.../src/airflow/ui/tests/e2e/global-setup.ts | 2 +-
.../airflow/ui/tests/e2e/pages/AssetListPage.ts | 5 -
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 5 -
.../src/airflow/ui/tests/e2e/pages/BasePage.ts | 10 -
.../src/airflow/ui/tests/e2e/pages/DagCodePage.ts | 2 +-
.../airflow/ui/tests/e2e/pages/DagRunsTabPage.ts | 51 -
.../src/airflow/ui/tests/e2e/pages/LoginPage.ts | 11 -
.../ui/tests/e2e/pages/RequiredActionsPage.ts | 11 -
.../src/airflow/ui/tests/e2e/pages/VariablePage.ts | 12 -
airflow-core/src/airflow/ui/vite.config.ts | 21 +-
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/tests/integration/otel/test_otel.py | 112 +-
.../auth/managers/simple/routes/test_login.py | 22 +
.../auth/managers/test_base_auth_manager.py | 71 +
.../api_fastapi/common/test_http_access_log.py | 56 +-
.../unit/api_fastapi/common/test_parameters.py | 65 +
.../core_api/routes/public/test_asset_state.py | 255 +
.../core_api/routes/public/test_assets.py | 13 +
.../core_api/routes/public/test_auth.py | 24 +
.../core_api/routes/public/test_dag_run.py | 355 +-
.../core_api/routes/public/test_dags.py | 2 +
.../core_api/routes/public/test_import_error.py | 72 +-
.../core_api/routes/public/test_task_instances.py | 40 +
.../core_api/routes/public/test_task_state.py | 293 ++
.../core_api/routes/public/test_variables.py | 47 +-
.../api_fastapi/core_api/routes/ui/test_config.py | 1 +
.../api_fastapi/core_api/routes/ui/test_dags.py | 7 +
.../unit/api_fastapi/core_api/test_security.py | 93 +-
.../api_fastapi/execution_api/test_security.py | 42 +
.../versions/head/test_asset_state.py | 51 +-
.../versions/head/test_task_instances.py | 55 +
.../execution_api/versions/head/test_task_state.py | 47 +-
.../unit/api_fastapi/logging}/__init__.py | 0
.../unit/api_fastapi/logging/test_decorators.py | 45 +
airflow-core/tests/unit/assets/test_manager.py | 57 +-
.../unit/cli/commands/test_backfill_command.py | 3 +
.../tests/unit/cli/commands/test_dag_command.py | 308 +-
.../unit/cli/commands/test_partition_command.py | 968 ++++
.../unit/cli/commands/test_triggerer_command.py | 51 +-
.../tests/unit/dag_processing/bundles/test_base.py | 29 +
.../tests/unit/dag_processing/test_collection.py | 21 +-
.../tests/unit/dag_processing/test_manager.py | 66 +
.../tests/unit/dag_processing/test_processor.py | 1 +
.../tests/unit/executors/test_base_executor.py | 25 +-
.../tests/unit/executors/test_local_executor.py | 2 +-
.../tests/unit/executors/test_workloads.py | 52 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 38 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 131 +
airflow-core/tests/unit/models/test_backfill.py | 18 +
airflow-core/tests/unit/models/test_callback.py | 42 +-
airflow-core/tests/unit/models/test_dag_version.py | 38 +
airflow-core/tests/unit/models/test_dagrun.py | 20 +
.../tests/unit/models/test_taskinstance.py | 187 +-
airflow-core/tests/unit/models/test_trigger.py | 249 +
.../tests/unit/partition_mappers/test_temporal.py | 136 +-
.../unit/serialization/test_dag_serialization.py | 23 +
.../unit/serialization/test_serialized_objects.py | 134 +-
.../tests/unit/triggers/test_base_trigger.py | 96 +-
.../tests/unit/triggers/test_shared_stream.py | 685 +++
airflow-ctl-tests/pyproject.toml | 2 +-
.../airflowctl_tests/test_airflowctl_commands.py | 1 +
airflow-ctl/RELEASE_NOTES.rst | 56 +-
airflow-ctl/docs/images/command_hashes.txt | 2 +-
airflow-ctl/docs/images/output_dags.svg | 126 +-
airflow-ctl/pyproject.toml | 2 +-
airflow-ctl/src/airflowctl/__init__.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 171 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 9 +
.../src/airflowctl/ctl/commands/dag_command.py | 31 +
.../airflow_ctl/ctl/commands/test_dag_command.py | 72 +
airflow-e2e-tests/pyproject.toml | 2 +-
chart/pyproject.toml | 2 +-
chart/templates/_helpers.yaml | 7 +-
.../secrets/metadata-connection-secret.yaml | 7 +-
chart/templates/workers/worker-deployment.yaml | 2 +-
.../helm_tests/airflow_aux/test_airflow_common.py | 12 -
.../airflow_aux/test_basic_helm_chart.py | 9 +-
.../helm_tests/airflow_core/test_triggerer.py | 100 +-
chart/tests/helm_tests/airflow_core/test_worker.py | 1 +
.../helm_tests/airflow_core/test_worker_sets.py | 16 +
.../otel_collector/test_labels_deployment.py | 5 -
.../otel_collector/test_labels_networkpolicy.py | 4 -
.../otel_collector/test_labels_service.py | 4 -
.../otel_collector/test_labels_serviceaccount.py | 4 -
.../otel_collector/test_otel_collector.py | 284 +-
chart/tests/helm_tests/security/test_rbac.py | 16 +-
chart/values.schema.json | 2 +-
chart/values.yaml | 2 +-
clients/python/pyproject.toml | 2 +-
contributing-docs/02_how_to_communicate.rst | 5 +
contributing-docs/05_pull_requests.rst | 33 +-
contributing-docs/12_provider_distributions.rst | 72 +-
contributing-docs/15_node_environment_setup.rst | 54 +
contributing-docs/README.rst | 8 +
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/pyproject.toml | 2 +-
.../src/airflow_breeze/commands/ci_commands.py | 34 +
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 4 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
dev/breeze/tests/test_selective_checks.py | 4 +-
dev/breeze/tests/test_set_milestone.py | 147 +
dev/breeze/uv.lock | 230 +-
dev/mypy/pyproject.toml | 2 +-
dev/pyproject.toml | 2 +-
dev/registry/derive_wave_providers.py | 2 +-
dev/registry/pyproject.toml | 2 +-
devel-common/pyproject.toml | 3 +-
devel-common/src/docs/build_docs.py | 2 +-
devel-common/src/docs/utils/conf_constants.py | 1 +
docker-stack-docs/pyproject.toml | 2 +-
docker-tests/pyproject.toml | 2 +-
docs/spelling_wordlist.txt | 8 +
generated/provider_metadata.json | 176 +
go-sdk/bundle/bundlev1/task.go | 7 +-
go-sdk/go.mod | 2 +
go-sdk/go.sum | 4 +
go-sdk/pkg/execution/frames.go | 286 ++
go-sdk/pkg/execution/frames_test.go | 258 +
go-sdk/pkg/execution/messages.go | 412 ++
go-sdk/pkg/execution/messages_test.go | 375 ++
go-sdk/pkg/sdkcontext/keys.go | 8 +
go-sdk/sdk/client.go | 15 +-
go-sdk/sdk/connection.go | 6 +-
go-sdk/sdk/sdk.go | 16 +
kubernetes-tests/pyproject.toml | 2 +-
.../test_kubernetes_pod_operator.py | 16 +-
providers-summary-docs/pyproject.toml | 2 +-
providers/.last_release_date.txt | 2 +-
providers/airbyte/README.rst | 6 +-
providers/airbyte/docs/changelog.rst | 19 +
providers/airbyte/docs/index.rst | 6 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 6 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
.../airflow/providers/airbyte/operators/airbyte.py | 2 +-
.../tests/unit/airbyte/operators/test_airbyte.py | 55 +
providers/akeyless/provider.yaml | 2 +-
.../providers/akeyless/get_provider_info.py | 2 +-
.../airflow/providers/akeyless/hooks/akeyless.py | 4 +-
.../tests/unit/akeyless/hooks/test_akeyless.py | 15 +
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 13 +
providers/alibaba/docs/index.rst | 6 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
.../{keycloak => amazon}/.pre-commit-config.yaml | 13 +-
providers/amazon/README.rst | 6 +-
providers/amazon/docs/changelog.rst | 49 +
providers/amazon/docs/index.rst | 6 +-
providers/amazon/docs/operators/bedrock.rst | 15 +
.../amazon/docs/operators/opensearchserverless.rst | 18 +
providers/amazon/provider.yaml | 6 +-
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../aws/executors/aws_lambda/lambda_executor.py | 5 +-
.../amazon/aws/executors/batch/batch_executor.py | 5 +-
.../amazon/aws/executors/ecs/ecs_executor.py | 176 +-
.../providers/amazon/aws/executors/ecs/utils.py | 61 +-
.../src/airflow/providers/amazon/aws/hooks/eks.py | 24 +-
.../providers/amazon/aws/hooks/redshift_cluster.py | 1 -
.../providers/amazon/aws/log/s3_task_handler.py | 6 +-
.../providers/amazon/aws/operators/batch.py | 10 +-
.../providers/amazon/aws/operators/bedrock.py | 56 +
.../amazon/aws/operators/opensearch_serverless.py | 101 +
.../providers/amazon/aws/operators/sagemaker.py | 2 +-
.../airflow/providers/amazon/aws/triggers/batch.py | 20 +-
.../airflow/providers/amazon/aws/triggers/ecs.py | 5 +-
.../providers/amazon/aws/utils/task_log_fetcher.py | 48 +-
.../amazon/aws/utils/waiter_with_logging.py | 66 +-
.../airflow/providers/amazon/get_provider_info.py | 4 +
.../amazon/aws/example_bedrock_evaluation.py | 142 +
.../tests/system/amazon/aws/example_emr_eks.py | 73 +-
.../system/amazon/aws/example_mwaa_serverless.py | 35 +-
.../amazon/aws/example_opensearch_serverless.py | 91 +
.../example_sagemaker_unified_studio_notebook.py | 50 +-
.../executors/aws_lambda/test_lambda_executor.py | 10 +-
.../aws/executors/batch/test_batch_executor.py | 19 +-
.../amazon/aws/executors/ecs/test_ecs_executor.py | 283 +-
.../amazon/tests/unit/amazon/aws/hooks/test_eks.py | 35 +
.../unit/amazon/aws/log/test_s3_task_handler.py | 18 +
.../unit/amazon/aws/operators/test_bedrock.py | 62 +
.../aws/operators/test_opensearch_serverless.py | 91 +
.../aws/operators/test_sagemaker_processing.py | 28 +
.../tests/unit/amazon/aws/triggers/test_batch.py | 101 +-
.../unit/amazon/aws/utils/test_task_log_fetcher.py | 124 +-
.../amazon/aws/utils/test_waiter_with_logging.py | 53 +
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 17 +
providers/apache/hdfs/docs/index.rst | 6 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 15 +
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
providers/apache/kafka/README.rst | 6 +-
providers/apache/kafka/docs/changelog.rst | 21 +
providers/apache/kafka/docs/index.rst | 6 +-
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 6 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
providers/apache/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 14 +
providers/apache/livy/docs/index.rst | 6 +-
providers/apache/livy/provider.yaml | 3 +-
providers/apache/livy/pyproject.toml | 6 +-
.../src/airflow/providers/apache/livy/__init__.py | 2 +-
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 13 +
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
providers/celery/README.rst | 8 +-
providers/celery/docs/changelog.rst | 24 +
providers/celery/docs/index.rst | 8 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 8 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
.../unit/celery/executors/test_celery_executor.py | 2 +-
providers/cncf/kubernetes/README.rst | 8 +-
providers/cncf/kubernetes/docs/changelog.rst | 52 +-
providers/cncf/kubernetes/docs/index.rst | 8 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 8 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../providers/cncf/kubernetes/operators/pod.py | 38 +-
.../providers/cncf/kubernetes/triggers/pod.py | 10 +-
.../executors/test_kubernetes_executor.py | 2 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 108 +-
.../unit/cncf/kubernetes/triggers/test_pod.py | 86 +-
providers/common/ai/.pre-commit-config.yaml | 9 +
providers/common/ai/README.rst | 6 +-
providers/common/ai/docs/changelog.rst | 17 +
providers/common/ai/docs/hooks/index.rst | 58 +
providers/common/ai/docs/hooks/langchain.rst | 174 +
providers/common/ai/docs/hooks/llamaindex.rst | 115 +
providers/common/ai/docs/index.rst | 8 +-
providers/common/ai/docs/operators/agent.rst | 28 +
.../common/ai/docs/operators/document_loader.rst | 297 ++
providers/common/ai/docs/operators/index.rst | 15 +-
.../ai/docs/operators/llamaindex_embedding.rst | 119 +
.../ai/docs/operators/llamaindex_retrieval.rst | 109 +
providers/common/ai/docs/operators/llm.rst | 12 +
providers/common/ai/docs/operators/llm_branch.rst | 4 +
.../ai/docs/operators/llm_schema_compare.rst | 4 +
providers/common/ai/docs/operators/llm_sql.rst | 4 +
providers/common/ai/provider.yaml | 89 +-
providers/common/ai/pyproject.toml | 24 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../providers/common/ai/decorators/agent.py | 13 +-
.../airflow/providers/common/ai/decorators/llm.py | 13 +-
.../providers/common/ai/decorators/llm_branch.py | 6 +-
.../common/ai/decorators/llm_file_analysis.py | 5 +
.../common/ai/decorators/llm_schema_compare.py | 6 +-
.../providers/common/ai/decorators/llm_sql.py | 13 +-
.../common/ai/example_dags/example_agent.py | 12 +-
.../ai/example_dags/example_agent_durable.py | 4 +-
.../ai/example_dags/example_document_loader.py | 145 +
.../ai/example_dags/example_langchain_hook.py | 131 +
.../example_dags/example_langchain_tool_agent.py | 542 ++
.../ai/example_dags/example_llamaindex_10k.py | 500 ++
.../ai/example_dags/example_llamaindex_hook.py | 147 +
.../common/ai/example_dags/example_llm.py | 14 +-
.../example_dags/example_llm_analysis_pipeline.py | 2 +-
.../common/ai/example_dags/example_llm_branch.py | 8 +-
.../ai/example_dags/example_llm_classification.py | 2 +-
.../ai/example_dags/example_llm_file_analysis.py | 10 +-
.../ai/example_dags/example_llm_schema_compare.py | 10 +-
.../common/ai/example_dags/example_llm_sql.py | 12 +-
.../ai/example_dags/example_llm_survey_agentic.py | 2 +-
.../ai/example_dags/example_llm_survey_analysis.py | 4 +-
.../common/ai/example_dags/example_mcp.py | 4 +-
.../ai/example_dags/example_pydantic_ai_hook.py | 6 +-
.../providers/common/ai/get_provider_info.py | 75 +
.../airflow/providers/common/ai/hooks/langchain.py | 173 +
.../providers/common/ai/hooks/llamaindex.py | 189 +
.../airflow/providers/common/ai/mixins/approval.py | 9 +
.../airflow/providers/common/ai/operators/agent.py | 8 +
.../common/ai/operators/document_loader.py | 401 ++
.../common/ai/operators/llamaindex_embedding.py | 210 +
.../common/ai/operators/llamaindex_retrieval.py | 199 +
.../airflow/providers/common/ai/operators/llm.py | 8 +
.../providers/common/ai/operators/llm_sql.py | 8 +
.../providers/common/ai/utils/validation.py | 91 +
.../common/ai/tests/unit/common/ai/conftest.py | 12 +
.../tests/unit/common/ai/decorators/test_agent.py | 50 +-
.../ai/tests/unit/common/ai/decorators/test_llm.py | 45 +-
.../unit/common/ai/decorators/test_llm_branch.py | 37 +-
.../ai/decorators/test_llm_schema_compare.py | 35 +-
.../unit/common/ai/decorators/test_llm_sql.py | 45 +-
.../tests/unit/common/ai/hooks/test_langchain.py | 293 ++
.../tests/unit/common/ai/hooks/test_llamaindex.py | 170 +
.../tests/unit/common/ai/mixins/test_approval.py | 5 +
.../tests/unit/common/ai/operators/test_agent.py | 27 +
.../common/ai/operators/test_document_loader.py | 596 +++
.../ai/operators/test_llamaindex_embedding.py | 211 +
.../ai/operators/test_llamaindex_retrieval.py | 238 +
.../ai/tests/unit/common/ai/operators/test_llm.py | 27 +
.../tests/unit/common/ai/operators/test_llm_sql.py | 26 +
.../tests/unit/common/ai/utils/test_validation.py | 129 +
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 13 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
.../providers/common/compat/version_compat.py | 2 +
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 8 +
providers/common/sql/docs/index.rst | 8 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../common/sql/example_dags/example_analytics.py | 2 +-
providers/databricks/README.rst | 6 +-
providers/databricks/docs/changelog.rst | 21 +
providers/databricks/docs/index.rst | 6 +-
.../databricks/docs/operators/jobs_create.rst | 35 +
providers/databricks/docs/operators/run_now.rst | 25 +
providers/databricks/docs/operators/submit_run.rst | 32 +
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/hooks/databricks_sql.py | 64 +-
.../providers/databricks/operators/databricks.py | 58 +
.../databricks/operators/databricks_sql.py | 59 +-
.../databricks/sensors/databricks_partition.py | 2 +-
.../providers/databricks/sensors/databricks_sql.py | 2 +-
.../unit/databricks/hooks/test_databricks_sql.py | 145 +-
.../unit/databricks/operators/test_databricks.py | 174 +
.../databricks/operators/test_databricks_sql.py | 165 +-
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 24 +
providers/dbt/cloud/docs/index.rst | 6 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 6 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 2 +-
.../tests/unit/dbt/cloud/operators/test_dbt.py | 54 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 13 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
providers/edge3/.pre-commit-config.yaml | 9 +
providers/edge3/README.rst | 8 +-
providers/edge3/docs/architecture.rst | 1 +
providers/edge3/docs/changelog.rst | 27 +
providers/edge3/docs/deployment.rst | 9 +-
providers/edge3/docs/edge_executor.rst | 11 +-
providers/edge3/docs/index.rst | 8 +-
providers/edge3/docs/ui_plugin.rst | 3 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 10 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../src/airflow/providers/edge3/cli/definition.py | 8 +-
.../providers/edge3/example_dags/win_notepad.py | 2 +-
.../providers/edge3/example_dags/win_test.py | 2 +-
.../src/airflow/providers/edge3/worker_api/auth.py | 8 -
.../providers/edge3/worker_api/datamodels.py | 33 +-
.../edge3/worker_api/v2-edge-generated.yaml | 25 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 57 +-
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/docs/logging/index.rst | 93 +
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../elasticsearch/log/es_json_formatter.py | 20 +-
.../providers/elasticsearch/log/es_task_handler.py | 25 +
.../providers/elasticsearch/version_compat.py | 8 +-
.../tests/unit/elasticsearch/log/conftest.py | 52 +
providers/fab/.pre-commit-config.yaml | 9 +
providers/fab/README.rst | 9 +-
providers/fab/docs/changelog.rst | 29 +
providers/fab/docs/index.rst | 8 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 13 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 6 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 307 +-
providers/ftp/README.rst | 6 +-
providers/ftp/docs/changelog.rst | 18 +
providers/ftp/docs/index.rst | 6 +-
providers/ftp/provider.yaml | 3 +-
providers/ftp/pyproject.toml | 6 +-
.../ftp/src/airflow/providers/ftp/__init__.py | 2 +-
providers/git/README.rst | 8 +-
providers/git/docs/changelog.rst | 12 +
providers/git/docs/index.rst | 8 +-
providers/git/provider.yaml | 3 +-
providers/git/pyproject.toml | 8 +-
.../git/src/airflow/providers/git/__init__.py | 2 +-
.../git/src/airflow/providers/git/bundles/git.py | 16 +-
providers/git/tests/unit/git/bundles/test_git.py | 77 +-
providers/google/README.rst | 6 +-
providers/google/docs/changelog.rst | 53 +
providers/google/docs/index.rst | 6 +-
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 6 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../google/cloud/log/stackdriver_task_handler.py | 396 +-
.../providers/google/cloud/operators/gen_ai.py | 4 +-
.../gen_ai/example_gen_ai_generative_model.py | 29 +-
.../tests/unit/google/cloud/hooks/test_gen_ai.py | 29 +-
.../cloud/log/test_stackdriver_task_handler.py | 250 +-
.../unit/google/cloud/operators/test_gen_ai.py | 29 +-
.../hashicorp/_internal_client/vault_client.py | 50 +-
.../src/airflow/providers/hashicorp/hooks/vault.py | 8 +-
.../airflow/providers/hashicorp/secrets/vault.py | 2 +-
.../_internal_client/test_vault_client.py | 198 +-
.../tests/unit/hashicorp/hooks/test_vault.py | 28 +-
providers/imap/README.rst | 6 +-
providers/imap/docs/changelog.rst | 14 +
providers/imap/docs/index.rst | 6 +-
providers/imap/provider.yaml | 3 +-
providers/imap/pyproject.toml | 6 +-
.../imap/src/airflow/providers/imap/__init__.py | 2 +-
providers/influxdb/README.rst | 7 +-
providers/influxdb/docs/changelog.rst | 13 +
providers/influxdb/docs/index.rst | 6 +-
providers/influxdb/provider.yaml | 3 +-
providers/influxdb/pyproject.toml | 6 +-
.../src/airflow/providers/influxdb/__init__.py | 2 +-
providers/jdbc/docs/index.rst | 1 +
providers/jdbc/pyproject.toml | 8 +
.../jdbc/src/airflow/providers/jdbc/hooks/jdbc.py | 82 +
providers/jdbc/tests/unit/jdbc/hooks/test_jdbc.py | 152 +
providers/keycloak/.pre-commit-config.yaml | 9 +
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 18 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../keycloak/auth_manager/cli/commands.py | 61 +
.../keycloak/auth_manager/cli/test_commands.py | 108 +-
providers/microsoft/azure/README.rst | 8 +-
providers/microsoft/azure/docs/changelog.rst | 18 +
providers/microsoft/azure/docs/index.rst | 14 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 9 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../microsoft/azure/operators/test_data_factory.py | 20 +-
providers/microsoft/mssql/README.rst | 40 +-
providers/microsoft/mssql/docs/changelog.rst | 14 +
providers/microsoft/mssql/docs/index.rst | 6 +-
providers/microsoft/mssql/provider.yaml | 3 +-
providers/microsoft/mssql/pyproject.toml | 6 +-
.../airflow/providers/microsoft/mssql/__init__.py | 2 +-
providers/mongo/README.rst | 6 +-
providers/mongo/docs/changelog.rst | 15 +
providers/mongo/docs/index.rst | 6 +-
providers/mongo/provider.yaml | 3 +-
providers/mongo/pyproject.toml | 6 +-
.../mongo/src/airflow/providers/mongo/__init__.py | 2 +-
providers/mysql/README.rst | 6 +-
providers/mysql/docs/changelog.rst | 16 +
providers/mysql/docs/index.rst | 7 +-
providers/mysql/provider.yaml | 3 +-
providers/mysql/pyproject.toml | 11 +-
.../mysql/src/airflow/providers/mysql/__init__.py | 2 +-
providers/openlineage/README.rst | 12 +-
providers/openlineage/docs/changelog.rst | 18 +
providers/openlineage/docs/configurations-ref.rst | 37 +-
providers/openlineage/docs/index.rst | 8 +-
providers/openlineage/provider.yaml | 12 +-
providers/openlineage/pyproject.toml | 8 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../src/airflow/providers/openlineage/conf.py | 8 +
.../providers/openlineage/get_provider_info.py | 7 +
.../providers/openlineage/plugins/adapter.py | 31 +-
.../providers/openlineage/token_provider.py | 133 +
.../example_openlineage_base_complex_dag.py | 25 +-
.../example_openlineage_defer_simple_dag.py | 21 +-
.../example_openlineage_mapped_simple_dag.py | 25 +-
.../example_openlineage_short_circuit_dag.py | 29 +-
.../example_openlineage_trigger_dag_deferrable.py | 2 +-
.../openlineage_base_complex_dag__af2.json | 5156 ++++++++++----------
.../openlineage_base_complex_dag__af3.json | 5030 +++++++++----------
.../openlineage_short_circuit_dag.json | 23 +-
.../tests/system/openlineage/operator.py | 239 +-
.../tests/unit/openlineage/plugins/test_adapter.py | 162 +-
.../tests/unit/openlineage/test_token_provider.py | 192 +
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 27 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/docs/logging/index.rst | 36 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/opensearch/log/os_json_formatter.py | 20 +-
.../providers/opensearch/log/os_task_handler.py | 25 +
.../airflow/providers/opensearch/version_compat.py | 2 +
.../tests/unit/opensearch/log/conftest.py | 52 +
providers/oracle/README.rst | 6 +-
providers/oracle/docs/changelog.rst | 13 +
providers/oracle/docs/index.rst | 6 +-
providers/oracle/provider.yaml | 3 +-
providers/oracle/pyproject.toml | 6 +-
.../src/airflow/providers/oracle/__init__.py | 2 +-
.../oracle/example_dags/example_oracle.py | 1 +
providers/pinecone/README.rst | 6 +-
providers/pinecone/docs/changelog.rst | 14 +
providers/pinecone/docs/index.rst | 6 +-
providers/pinecone/provider.yaml | 3 +-
providers/pinecone/pyproject.toml | 6 +-
.../src/airflow/providers/pinecone/__init__.py | 2 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 13 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 6 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
providers/presto/README.rst | 6 +-
providers/presto/docs/changelog.rst | 13 +
providers/presto/docs/index.rst | 6 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 6 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/sftp/README.rst | 6 +-
providers/sftp/docs/changelog.rst | 21 +
providers/sftp/docs/index.rst | 6 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 6 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
providers/smtp/README.rst | 6 +-
providers/smtp/docs/changelog.rst | 15 +
providers/smtp/docs/index.rst | 6 +-
providers/smtp/provider.yaml | 3 +-
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
providers/snowflake/README.rst | 6 +-
providers/snowflake/docs/changelog.rst | 26 +
providers/snowflake/docs/index.rst | 6 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 6 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
providers/ssh/README.rst | 6 +-
providers/ssh/docs/changelog.rst | 14 +
providers/ssh/docs/index.rst | 6 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 18 +
providers/standard/docs/index.rst | 6 +-
providers/standard/docs/operators/bash.rst | 2 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../example_dags/example_bash_decorator.py | 2 +-
.../example_external_task_marker_dag.py | 4 +-
.../standard/example_dags/example_latest_only.py | 2 +-
.../airflow/providers/standard/triggers/file.py | 114 +-
.../tests/unit/standard/triggers/test_file.py | 211 +-
providers/tableau/README.rst | 6 +-
providers/tableau/docs/changelog.rst | 13 +
providers/tableau/docs/index.rst | 8 +-
providers/tableau/provider.yaml | 3 +-
providers/tableau/pyproject.toml | 10 +-
.../src/airflow/providers/tableau/__init__.py | 2 +-
.../airflow/providers/tableau/operators/tableau.py | 31 +-
.../tests/unit/tableau/operators/test_tableau.py | 212 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 13 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
providers/trino/README.rst | 6 +-
providers/trino/docs/changelog.rst | 13 +
providers/trino/docs/index.rst | 6 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 6 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
providers/vertica/README.rst | 6 +-
providers/vertica/docs/changelog.rst | 12 +
providers/vertica/docs/index.rst | 6 +-
providers/vertica/provider.yaml | 3 +-
providers/vertica/pyproject.toml | 6 +-
.../src/airflow/providers/vertica/__init__.py | 2 +-
providers/weaviate/README.rst | 6 +-
providers/weaviate/docs/changelog.rst | 13 +
providers/weaviate/docs/index.rst | 6 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 6 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
providers/zendesk/README.rst | 6 +-
providers/zendesk/docs/changelog.rst | 13 +
providers/zendesk/docs/index.rst | 6 +-
providers/zendesk/provider.yaml | 3 +-
providers/zendesk/pyproject.toml | 6 +-
.../src/airflow/providers/zendesk/__init__.py | 2 +-
pyproject.toml | 23 +-
registry/pnpm-lock.yaml | 34 +-
scripts/ci/docker-compose/integration-otel.yml | 2 +-
scripts/ci/prek/check_example_dag_tags.py | 137 +
.../check_http_exception_import_from_fastapi.py | 133 +
scripts/ci/prek/check_imports_in_providers.py | 2 +-
.../ci/prek/check_supervisor_schemas_versions.py | 205 +
scripts/ci/prek/dump_supervisor_schemas.py | 79 +
.../prek/generate_supervisor_schemas_snapshot.py | 105 +
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/upgrade_important_versions.py | 194 +-
scripts/docker/entrypoint_ci.sh | 38 +
.../docker/install_from_docker_context_files.sh | 7 +-
scripts/in_container/bin/generate_mprocs_config.py | 16 +-
scripts/in_container/bin/run_tmux | 9 +-
.../in_container/install_airflow_and_providers.py | 15 +-
scripts/in_container/run_generate_constraints.py | 7 +
scripts/in_container/run_pre_extras_install.py | 184 +
scripts/pyproject.toml | 2 +-
.../tests/ci/prek/test_check_example_dag_tags.py | 109 +
...est_check_http_exception_import_from_fastapi.py | 91 +
.../ci/prek/test_upgrade_important_versions.py | 119 +
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 2 +-
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 +-
.../observability/traces/__init__.py | 35 +-
.../tests/observability/test_traces.py | 104 +
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 | 6 +-
shared/state/src/airflow_shared/state/__init__.py | 98 +-
shared/state/tests/state/test_state.py | 106 +-
shared/template_rendering/pyproject.toml | 2 +-
shared/timezones/pyproject.toml | 2 +-
task-sdk-integration-tests/pyproject.toml | 2 +-
task-sdk/.pre-commit-config.yaml | 1 +
task-sdk/docs/api.rst | 6 +-
task-sdk/pyproject.toml | 5 +-
task-sdk/src/airflow/sdk/__init__.py | 14 +-
task-sdk/src/airflow/sdk/__init__.pyi | 4 +
task-sdk/src/airflow/sdk/_shared/state | 1 +
task-sdk/src/airflow/sdk/api/client.py | 11 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 56 +-
task-sdk/src/airflow/sdk/bases/timetable.py | 8 +
task-sdk/src/airflow/sdk/configuration.py | 3 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 26 +-
.../sdk/definitions/asset/access_control.py | 26 +-
.../airflow/sdk/definitions/asset/decorators.py | 8 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 7 +
.../sdk/definitions/partition_mappers/temporal.py | 13 +
.../airflow/sdk/definitions/timetables/assets.py | 7 +
task-sdk/src/airflow/sdk/execution_time/comms.py | 6 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 133 +-
.../airflow/sdk/execution_time/request_handlers.py | 186 +
.../airflow/sdk/execution_time/schema/AGENTS.md | 122 +
.../airflow/sdk/execution_time/schema/__init__.py | 128 +
.../airflow/sdk/execution_time/schema/migrator.py | 215 +
.../airflow/sdk/execution_time/schema/schema.json | 4799 ++++++++++++++++++
.../execution_time/schema/versions}/__init__.py | 9 +-
.../src/airflow/sdk/execution_time/supervisor.py | 289 +-
.../src/airflow/sdk/execution_time/task_runner.py | 97 +-
.../src/airflow/sdk/state.py | 9 +-
task-sdk/src/airflow/sdk/timezone.py | 2 +
task-sdk/src/airflow/sdk/types.py | 30 +-
task-sdk/tests/task_sdk/definitions/test_asset.py | 56 +-
.../definitions/test_asset_access_control.py | 66 +
.../task_sdk/definitions/test_asset_decorators.py | 68 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 15 +-
task-sdk/tests/task_sdk/docs/test_public_api.py | 1 +
.../task_sdk/execution_time/schema}/__init__.py | 0
.../execution_time/schema/_mock_version_bundle.py | 189 +
.../execution_time/schema/test_integration.py | 338 ++
.../execution_time/schema/test_migrator.py | 336 ++
.../tests/task_sdk/execution_time/test_context.py | 251 +-
.../task_sdk/execution_time/test_supervisor.py | 184 +-
.../task_sdk/execution_time/test_task_runner.py | 277 +-
uv.lock | 3562 +++++++++-----
1033 files changed, 47917 insertions(+), 11878 deletions(-)
delete mode 100644 .apache-steward-overrides/user.md
create mode 100644 COMMUNITY_ESCALATION.md
create mode 100644 airflow-core/3rd-party-licenses/LICENSE-monaco-editor.txt
create mode 100644 airflow-core/newsfragments/63884.significant.rst
create mode 100644 airflow-core/newsfragments/66584.feature.rst
create mode 100644 airflow-core/newsfragments/67164.significant.rst
create mode 100644 airflow-core/newsfragments/67494.significant.rst
copy airflow-core/src/airflow/api_fastapi/{execution_api =>
core_api}/datamodels/asset_state.py (63%)
copy airflow-core/src/airflow/api_fastapi/{execution_api =>
core_api}/datamodels/task_state.py (64%)
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/routes/public/asset_state.py
create mode 100644
airflow-core/src/airflow/api_fastapi/core_api/routes/public/task_state.py
create mode 100644 airflow-core/src/airflow/cli/commands/partition_command.py
create mode 100644 airflow-core/src/airflow/example_dags/example_asset_state.py
create mode 100644 airflow-core/src/airflow/example_dags/example_task_state.py
copy
airflow-core/src/airflow/migrations/versions/{0114_3_3_0_add_allow_producer_teams_to_dag_schedule_asset_reference.py
=> 0114_3_3_0_add_access_control_columns_to_dag_schedule_asset_reference.py}
(79%)
copy
airflow-core/src/airflow/migrations/versions/{0114_3_3_0_add_allow_producer_teams_to_dag_schedule_asset_reference.py
=> 0115_3_3_0_add_version_data_to_dag_version.py} (55%)
rename
airflow-core/src/airflow/migrations/versions/{0114_3_3_0_add_allow_producer_teams_to_dag_schedule_asset_reference.py
=> 0116_3_3_0_add_team_name_to_trigger_table.py} (50%)
create mode 100644 airflow-core/src/airflow/triggers/shared_stream.py
create mode 100644 airflow-core/src/airflow/ui/src/components/ActionErrors.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/Clear/useRerunWithLatestVersion.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/Clear/useRerunWithLatestVersion.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/MonacoEditor/configureMonaco.ts
copy airflow-core/src/airflow/ui/src/components/{ui/ResetButton.tsx =>
MonacoEditor/index.tsx} (52%)
copy airflow-core/src/airflow/ui/src/components/{ui/Menu/Menu.tsx =>
MonacoEditor/useMonacoReady.ts} (63%)
copy airflow-core/src/airflow/ui/src/components/ui/{Pagination/PrevTrigger.tsx
=> IconButton.tsx} (55%)
copy airflow-core/src/airflow/ui/src/components/ui/Menu/{Menu.tsx =>
MenuRoot.tsx} (55%)
copy airflow-core/src/airflow/ui/src/components/ui/Menu/{Menu.tsx =>
MenuTrigger.tsx} (52%)
copy
airflow-core/src/airflow/ui/src/pages/{TaskInstances/BulkDeleteTaskInstancesButton.tsx
=> DagRuns/BulkDeleteDagRunsButton.tsx} (59%)
rename airflow-core/src/airflow/ui/src/pages/{ => DagRuns}/DagRuns.test.tsx
(100%)
rename airflow-core/src/airflow/ui/src/pages/{ => DagRuns}/DagRuns.tsx (81%)
rename airflow-core/src/airflow/ui/src/pages/{ => DagRuns}/DagRunsFilters.tsx
(100%)
rename airflow-core/src/airflow/ui/src/pages/{ => DagRuns}/DeleteRunButton.tsx
(83%)
copy airflow-core/src/airflow/ui/src/{components/MarkAs/utils.ts =>
pages/DagRuns/index.ts} (84%)
create mode 100644
airflow-core/src/airflow/ui/src/queries/useBulkDeleteDagRuns.ts
copy airflow-core/src/airflow/ui/src/{components/ui/ResetButton.tsx =>
utils/useDocumentTitle.ts} (58%)
create mode 100644
airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_asset_state.py
create mode 100644
airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_task_state.py
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/logging}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/logging/test_decorators.py
create mode 100644
airflow-core/tests/unit/cli/commands/test_partition_command.py
create mode 100644 airflow-core/tests/unit/triggers/test_shared_stream.py
create mode 100644 go-sdk/pkg/execution/frames.go
create mode 100644 go-sdk/pkg/execution/frames_test.go
create mode 100644 go-sdk/pkg/execution/messages.go
create mode 100644 go-sdk/pkg/execution/messages_test.go
copy providers/{keycloak => amazon}/.pre-commit-config.yaml (72%)
create mode 100644
providers/amazon/src/airflow/providers/amazon/aws/operators/opensearch_serverless.py
create mode 100644
providers/amazon/tests/system/amazon/aws/example_bedrock_evaluation.py
create mode 100644
providers/amazon/tests/system/amazon/aws/example_opensearch_serverless.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/operators/test_opensearch_serverless.py
create mode 100644 providers/common/ai/docs/hooks/index.rst
create mode 100644 providers/common/ai/docs/hooks/langchain.rst
create mode 100644 providers/common/ai/docs/hooks/llamaindex.rst
create mode 100644 providers/common/ai/docs/operators/document_loader.rst
create mode 100644 providers/common/ai/docs/operators/llamaindex_embedding.rst
create mode 100644 providers/common/ai/docs/operators/llamaindex_retrieval.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_document_loader.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_langchain_hook.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_langchain_tool_agent.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llamaindex_10k.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llamaindex_hook.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/hooks/langchain.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/hooks/llamaindex.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/operators/document_loader.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/operators/llamaindex_embedding.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/operators/llamaindex_retrieval.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/validation.py
create mode 100644
providers/common/ai/tests/unit/common/ai/hooks/test_langchain.py
create mode 100644
providers/common/ai/tests/unit/common/ai/hooks/test_llamaindex.py
create mode 100644
providers/common/ai/tests/unit/common/ai/operators/test_document_loader.py
create mode 100644
providers/common/ai/tests/unit/common/ai/operators/test_llamaindex_embedding.py
create mode 100644
providers/common/ai/tests/unit/common/ai/operators/test_llamaindex_retrieval.py
create mode 100644
providers/common/ai/tests/unit/common/ai/utils/test_validation.py
create mode 100644
providers/elasticsearch/tests/unit/elasticsearch/log/conftest.py
create mode 100644
providers/openlineage/src/airflow/providers/openlineage/token_provider.py
create mode 100644
providers/openlineage/tests/unit/openlineage/test_token_provider.py
create mode 100644 providers/opensearch/tests/unit/opensearch/log/conftest.py
create mode 100755 scripts/ci/prek/check_example_dag_tags.py
create mode 100755 scripts/ci/prek/check_http_exception_import_from_fastapi.py
create mode 100755 scripts/ci/prek/check_supervisor_schemas_versions.py
create mode 100755 scripts/ci/prek/dump_supervisor_schemas.py
create mode 100755 scripts/ci/prek/generate_supervisor_schemas_snapshot.py
create mode 100644 scripts/in_container/run_pre_extras_install.py
create mode 100644 scripts/tests/ci/prek/test_check_example_dag_tags.py
create mode 100644
scripts/tests/ci/prek/test_check_http_exception_import_from_fastapi.py
create mode 100644 shared/observability/tests/observability/test_traces.py
create mode 120000 task-sdk/src/airflow/sdk/_shared/state
copy
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/task_state.py =>
task-sdk/src/airflow/sdk/definitions/asset/access_control.py (58%)
create mode 100644 task-sdk/src/airflow/sdk/execution_time/schema/AGENTS.md
create mode 100644 task-sdk/src/airflow/sdk/execution_time/schema/__init__.py
create mode 100644 task-sdk/src/airflow/sdk/execution_time/schema/migrator.py
create mode 100644 task-sdk/src/airflow/sdk/execution_time/schema/schema.json
copy {airflow-ctl/src/airflowctl =>
task-sdk/src/airflow/sdk/execution_time/schema/versions}/__init__.py (86%)
copy airflow-ctl/src/airflowctl/__init__.py =>
task-sdk/src/airflow/sdk/state.py (85%)
create mode 100644
task-sdk/tests/task_sdk/definitions/test_asset_access_control.py
copy {airflow-core/src/airflow/_shared =>
task-sdk/tests/task_sdk/execution_time/schema}/__init__.py (100%)
create mode 100644
task-sdk/tests/task_sdk/execution_time/schema/_mock_version_bundle.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/schema/test_integration.py
create mode 100644
task-sdk/tests/task_sdk/execution_time/schema/test_migrator.py