This is an automated email from the ASF dual-hosted git repository.
ash pushed a change to branch log-groups-ux-tweaks
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard d460e47325e Tweak the layout and display of groups in Task Logs
add 2a10ae9c95d Fix docs sigkill mention (#55690)
add 6801bca1ff1 Ensure that filename and lineno of logger calls are
present in the Task Logs (#55581)
add 62fbe0178a1 Add map_index filter to TaskInstance API queries (#55614)
add 90f9c7026a8 fix(docker/entrypoint_prod.sh): prevent the script from
code 2 after db migrate success (#52928)
add 2933257b46f Allow SSM operators and sensors to run in deferrable mode
(#55649)
add 67b0c79ef70 #55020 gantt view is not getting updatedin realtime
(#55130)
add 3e1638250fb Fix task log URL generation with various `base_url`
formats (#55699)
add a9eecaf4730 refactor(hitl): make hitl under task instance (#55603)
add c14c18e5ae9 Front end for hitl endpoint update (#55674)
add b73809a599b Dev: Fix Python 3.13 compatibility in production image
tests (#55700)
add 71fe5b40775 Dev: Fix another Python 3.13 compat for Prod image tests
(#55701)
add 7d7991a2d8b Upgrade prek to fix `invalid option: --no-pager` on CI
failure (#55710)
add b069f1fdbf8 Fix error when retrieving logs of ti not run because of
upstream failures (#55517)
add bfc0f894046 Add HITLDetail.created_at (#55525)
add 86cd11a6289 Add SELinux/AppArmor note for creating airflow.cfg in
Docker-compose stacks (#55662)
add 9ff753d4fb1 Simplify serve_logs IPv4/v6 binding (#55716)
add 32871179895 helm: statsd deployment volume mount without subpath for
live reloading (#54986)
add 4985c71fc22 improve logging in SqsSensorTrigger (#55705)
add 87fc4697f74 Reduce default API server workers to 1 (#55707)
add 8e355843228 Remove no-longer-needed execution interface hacks (#55681)
add 6b93f9fbbcc Improve Airflow 3 import deprecation documentation (#55722)
add 69e646d708e Fix update-breeze-cmd-output static check (#55731)
add 8fed1a288b8 Add newsfragment to call out new features available now
with structlog loggers (#55725)
add 0a02ded3e67 Fix dag import error modal pagination (#55719)
add 8d772e0062b Add hover synchronization between Grid and Gantt chart
(#55611)
add 8e91ac5e59c Add filter for HITL TaskInstances page (#55620)
add 98e2f6aed3e Fix DAG disappearing after callback execution in stale
detection (#55698)
add ec758b7abf1 docs(airflowctl): add authentication details (#55633)
add 5076a569ac9 Remove used newsfragments (#55737)
add 5cdbdc6712b Fix DB downgrade to Airflow 2 when fab tables exists
(#55738)
add 7a018368b1f Bugfix: Fix typo in theme.ts gray.500 color palette
(#55739)
add a7f450901dd Metadata service check handle 429 (#55462)
add 7b35e457be1 Update EOL AWS Redshift cluster node types (#55741)
add eec40ebefeb fix unintended print of dag not found in serialised_dag
table (#54972)
add c4c60621adf Remove deprecated from google provider scheduled for
September 2025 except 30 September 2025. (#55683)
add eabe6b8dd77 [helm] Add missing `airflow.fullname` on kubernetes
objects (#52953)
add 0bd1c828d11 Adding a backcompat warning layer for
airflow.settings.MASK_SECRETS_IN_LOGS (#55712)
add 7fee3e90023 Don't import/load executor if it's not necessary (#55742)
add c76e3dd3361 UI fixes for calendar (#55476)
add 30ccb2b9e52 Add hyperlinks to dag_id column in Dag Runs and Task
Instances pages (#55648)
add b9e6ecb4cab Correctly enable Connection "Save" button when editing
'Extra Fields' (#55558)
add 823e5bcc773 Fix Task header in full screen logs (#55784)
add 9bc58a20e58 Fix redirection to 'next' url raises an unsafe error
(#55704)
add 1576db7baae Add configurable confirm parameter to `S3ToSFTPOperator`
(#55569)
add 1c5aa24ccd6 Add quotas section in lambda executor docs (#55740)
add d18e3dc84e2 Fix(4561) - AWS BatchOperator does not fetch log entries
for deferred jobs (#55703)
add 50829155717 Enable pt011 rule 1 (#55706)
add 3d6f183ed7e Enhance Grid view to support RWD (#55745)
add 1dc6736d584 Respect DOCKER_IMAGE environ var in e2e tests (#55788)
add 8d891bb98f3 Fix circular import when using
``XComObjectStorageBackend`` (#55805)
add 20783d8624b refactor(hitl): remove AirflowException from
HITLTriggerEventError inheritance (#55763)
add 7f9a96aa543 Fix mapIndex type validation error (#55794)
add 64de8dd8717 Fix image name check in e2e tests (#55807)
add 3ee8cd436fe fix(hitl): fix HITL timeout error handling (#55760)
add 4bce72d8f6d Call sys.exit instead of builtin exit in task runner parse
method in case of missing DAG or task. (#55786)
add 3165db4dfe7 refactor: Remove inactive asset check in scheduler (#55714)
add 48237f16bac SLA-to-Deadlines migration guide and minor
Deadlines-related docs updates (#55743)
add 049524fdaa0 Move rtl logic to react (#55808)
add ca9f3f0557b Fix circular import in CNCF Kubernetes provider
version_compat (#55809)
add a30d72c6466 Fix UI stats endpoint (#55733)
add 7c4cd293362 (docs) Update HITL tutorial screenshots (#55798)
add 5c7dcdc46ef Enable pt011 rule 0 (#55659)
add 6ac4d3fce1e Remove `kaxil` from `airflowctl` codeowner (#55814)
add a0c7e9378c3 fix(hitl): HITL ti state sorting (#55779)
add e6de4501384 fix: prevent user facets from overriding OL facets (#55765)
add ed2d35fa1ad feat(hitl): add fail_on_reject to ApprovalOperator (#55255)
add 8be9d8b0556 Temporary fix to Bitnami psql chart licensing issues
(#55820)
add e5083a187ef feat(hitl): add map_index filter to get_hitl_details
endpoint (#55776)
add 14920608844 fix(hitl): fix missing responded_user rename (#55777)
add eb4a8bc03c9 Add GetConnection support to the GoSDk (#55775)
add 28e49e72bf1 Prepare release for Sep 2025 2nd wave of providers (#55688)
add eaf17723c19 Add `team_name` to dag bundle config (#55736)
add 0ec7b0fb66b Respect old logging format if given so logs don't change
unexpectedly. (#55824)
add ba00da49fbf Validate plugins in /plugins API and skip invalid ones
with warnings (#55673)
add 78b8b3c29e7 Alias `task_display_name` for `EventLogResponse` (#55160)
add 6a10bc6bf94 Reducing memory footprint for synchronous `S3KeySensor`
(#55070)
add a0fb6fee024 Bump DAG Serialization version to 3 (#55836)
add a970d080108 Set default html lang and dir (#55839)
add 0cb169f0884 Update the list of nullable properties on
LazyDeserializedDAG (#55833)
add 04dce6c8684 Add delete button for dag runs in more options menu
(#55696)
add c9e1089fcb0 Fix scheduler handling of orphaned tasks from airflow 2
(#55848)
add b0b2621e8bf Fix _get_serdag query in grid ui (#55771)
add a582464766d Optimize DAG serialization by excluding schema default
values (#55849)
add eaa0331fab2 airflowctl: initialize extra for create assets event
(#55744)
add 825d2008eb7 Fix 'All Log Levels' option in TaskLogHeader (#55851)
add f5b1eb437f1 Handle trigger calls to get_connection (#55799)
add 1b88626ac39 Install ``greenback`` in Task SDK (#55855)
add 4a30c7c9ea6 fix: Set triggered_by='ui' for DAG runs triggered from UI
(#54650)
add bc0e262388f (docs) Update Overview screenshots (#55813)
add a69fd9b1a6a Fix filter in gantt and grid view (#55845)
add 77dc1a1b1c9 Bump `uv` to `0.8.18` and `ruff` to `0.13.1` (#55858)
add ac76ceee536 Add __repr__ methods to serialized classes for better
debugging (#55860)
add f535989c058 refresh screenshots for updated UI (#55863)
add 2849e4b078a refresh screenshots for updated UI (#55864)
add e66b237238c (docs) update architecture overview screenshots (#55859)
add afa0329368f Add Dag ID pattern search functionality to Dag Runs and
Task Instances (#55691)
add 4d2172c192d Bump up mypy to 1.18.2 and ruff to 0.13.1 (#55870)
add 889e6249058 Update responsive options handling in PanelButtons (#55868)
add 9bfa389e100 Enable pt011 rule 2 (#55749)
add 3afea1b7615 Update README_RELEASE_PROVIDERS.md (#55873)
add 24a8e9438f8 Fix deprecation warnings for airflow v2 imports (#55881)
add e4ea69c68dc Fall back to stringification for XCom (#55880)
add feba90e3441 Bump black to latest 25.9.0 release (#55890)
add e4bab988442 Override `get_authorized_connections`,
`get_authorized_pools` and `get_authorized_variables` in Fab auth manager
(#55682)
add 7e074f5542a Fix migrations for sqlite (#55883)
add f9400cc40c7 Fix:added none to lastupdated Date if event is not in
queue (#54652)
add 6204490195e Fix (internationalization): Simplified Chinese fills in
gaps and removes extra content, optimizes description (#55564)
add 2d0831e54e7 introduce named asset watchers (#55643)
add a0d5b712172 Enforce at least one global executor is configured (#55816)
add 70f0fada065 (docs) update core concepts dags screenshots (#55865)
add 702785846e4 Complete formatting of error message (#55905)
add aece98b1f05 Fix DAG deserialization failure with non-default
``weight_rule`` (#55906)
add 5fdd5b66d18 Fix formatting issue in Deadline Alerts' docs (#55911)
add 4ee07a9a1cf Fix: Use get instead of hasattr for task_result in
BulkStateFetcher (#52839)
add 8b1fe82da97 update airflow_version in asset_watcher migration to 3.2.0
(#55902)
add 0d3b2639da7 Remove removed rule UP038 (#55887)
add 7a0c18613b2 feat(ui): add DAG run state filter to grid view options
(#55898)
add bff6c9503b2 Change the signature of BaseDBManager downgrade method
(#55907)
add 8167f94bbea Add Kubernetes 1.34 support (#55924)
add 983295862b2 Relax Kubernetes client version support to <34.0.0 (#55932)
add 3dd7a271b2f build(open-api): regnerate open api spec (#55931)
add 90651b3a30d Ignore fenced and line inline code blocks while generating
issue content (#55872)
add 385681d98e2 fix ALLOWED_KUBERNETES_VERSIONS to versions exist on
docker hub (#55934)
add af7a42ae73c Enable PT001 rule to prvoider tests (#55935)
add 766be1c2cef Implement `filter_authorized_connections`,
`filter_authorized_pools` and `filter_authorized_variables` in AWS auth manager
(#55687)
add 166a937d3be Add tests for DBManager upgrade and downgrade (#55940)
add 5c86bf52d23 Fix asset name text overflow in DAGs list view (#55914)
add e0c16714c0b Make Airflow 3 upgrade section visible in sidebar (#55965)
add 4a2c1fa6aaf Don't check db migration needlessly for `airflow celery`
cli commands. (#55878)
add 4b0a33e5797 Verify team existence on Execution loading (#55806)
add 62cccb9a95c Add executor, hostname, and queue columns to TaskInstances
page (#55922)
add fc0f441be80 Fix grid scrollbar overlapping on firefox (#55960)
add 677660ed056 Increase cache epoch to ensure cache on main is evicted
(#55933)
add b3dad0969e1 Fix left navigation and public interface docs in core docs
(#55967)
add 7b562ba381f Use average runtime as deadline reference (#55088)
add 2f76b41778c Fix async connection retrieval in triggerer context
(#55812)
add d83953c536f Updated Dag-Run Screenshots (#55921)
add f9b94829b40 Fix `breeze run` command to respect `--backend` flag
(#55977)
add 049123e8c73 Use ``SecretCache`` for connection and variable access in
task sdk (#55972)
add e6ebf6d9d6e Bump `uv` to `0.8.20` (#55978)
add e95f24f866f Fix pytest collection failure for classes decorated with
context managers (#55915)
add 3ad61d82e68 Fix PoolBar flex values (#55957)
add 32995675d03 Handle Serialized DAG Format from v3 to v2 when
downgrading Airflow (#55975)
add 311277c5d53 Improve get dag grid structure endpoint speed (#55942)
add f932eac81f3 Regenerate the rest API spec to fix CI (#55986)
add 78dc35e250a Expose config option to set different loggers at different
levels. (#55850)
add 99438a74b89 Update mask variable to be more informative (#54897)
add 2703a401a2b Fix static check ruff-format (#55993)
add 3b2242b98b4 Use ``JSONB`` for ``serialized_dag`` data column in
PostgreSQL (#55979)
add ebd1f01149c Docs: refresh UI Guide screenshots for Airflow 3.1.x
(#55876)
add 0b84f7764ac Only send hostname to celery worker if passed in cli
(#55913)
add f3d2752cc48 Fix reset button text in pools dialog (#55991)
add 350b6f7db48 Reduce default columns of Dag Run and Task Instance lists
(#55968)
add 8a6ecc5658e Remove useless Airflow version compatibility checks
(#55852)
add c073714bc23 Fix Gantt misalignment (#55995)
add 77dad76aafb Fix grid small task names (#55997)
add 8725fac36ae fix: add timetable_summary to serialized DAG (#55998)
add 7e2370c977e Allow arguments and parameters when powershell is used in
PsrpOperator (#55976)
add 1b428e65829 Apply correct release date in changelog for providers
(#55970)
add b8e47e90840 Integrate KeycloakAuthManager with airflowctl (#55969)
add d13ec6587eb Update provider release manager guide (#56009)
add cdcb1e535cb Add SSO integration guide for Apache Airflow (#55281)
add 6441467220d fix(ui): Reset pagination on filter change (#55999)
add 6e5dd3a9579 Support google ads v21 in google provider (#56012)
add f91698c4ebe Doc : UI-Guide Remaining Screenshot Updates (#56000)
add 4394b8fdf17 Fix issue where LocalExecutor could start tasks before the
state was commited (#56010)
add c18288fe58c Add some basic metrics related to Deadline Alerts (#55971)
add 17290c67514 AIP-67 - Multi Team: Pass args/kwargs to super in
CeleryExecutor (#56006)
add 2403252e422 Fix celery tests with Python 3.13 after 5.5.3 (#56017)
add e80a6cc74d8 Add Linux Foundation Health Score badge to README (#56018)
add ab48b2b6ef5 Fix `example_bash_decorator` DAG (#56020)
add 8168358aea9 Add test for forced stringification (#55950)
add 8e6f03eb377 Fix Python 3.12+ fork warning in async connection tests
(#56019)
add 68d42613bac Fix static checks in PYPI_README.md (#56031)
add 92fee84c5c9 Enable PT011 rule to prvoider tests (#55980)
add 035e2a44ff0 Add English as a fallback locale in the UI (#56028)
add 60c51dbf417 Bump uv and hatch versions (#56032)
add 12b8e4c5550 Move DagBag to airflow/dag_processing (#55139)
add 26d1627b82c Add beginner friendly quick start guide for first time
contributors (#55930)
add 864b1782697 Tests for message type consistency between various
supervisor and task comms (#55665)
add df6cff5f7a2 Remove newsfragments that are part of 3.1.0 (#56046)
add 757d9ae3fb7 fix: Gracefully handle fastAPI plugins with empty
url_prefix (#55262)
add eb968ef15d3 Adjust OpenLineage utils to be compatible with Airflow
3.1.0 (#56040)
add d3eac27a70a Fix import for SMTP provider (#56053)
add 19a6eb49a81 Remove unused methods on ``SerializedDagModel`` (#56047)
add 54a738a81f1 Bump eslint from 9.35.0 to 9.36.0 in
/providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates
group across 1 directory (#55895)
add 097d0989736 Improve API doc for ordering query param (#55988)
add 3c33ae738aa Add a `@task.stub` to allow tasks in other languages to be
defined in dags (#56055)
add 38ab153a283 Fix
test_schedulable_task_exist_when_rerun_removed_upstream_mapped_task (#56065)
add 6b8e397e9b6 Remove defunct ossrank.com badge (#56033)
add 8f7b16e7f5c Correct version added for new Namespaced log levels
feature (#55990)
add f0ca1c3454a Bump Edge UI packages after dependabot triaging (#56016)
add 2afb30dbfe9 Enable PT011 rule to prvoider tests (#56021)
add a3dcf8c123b Prepare release for Sep 2025 3rd ad-hoc wave of providers
(#56007)
add b113006af61 Prepare openlineage to release (#56090)
add bd60584ceac Separate out Go tasks and Go worker in to separate
processes (#56079)
add 65691943e1a Create multi-team config flag (#56013)
add 7916ab35604 Bump the core-ui-package-updates group across 1 directory
with 17 updates (#56002)
add a4e2586f5dd Remove timezone dependency and update Pydantic model
serialization mode to json (#56071)
add 6f1a20f397e Simplify error handling and include environment to version
command (#56069)
add 08ba7100b50 Add `if_not_exists=True` to FAB migration (#56100)
add 42913b40ec7 Fix apache licenses for Go SDK files (#56104)
add 408a4019662 Bump ruff up to 0.13.2 (#56102)
add e5c7fffe616 Improvements to Go CI pipelines (#56105)
add 18d51b76669 Add Logs HTTP Server to Go SDK worker. (#56101)
add 0b6634e74b6 refactor vertex_ai image training system test and docs
(#56036)
add c23d9dbe321 Chart: Update Default Airflow image to 3.1.0 (#56113)
add 643a1ba2926 Make more disk space available in publish docs workflow
(#56115)
add 3dabbcf79a6 Remove self-reference in best practices documentation
(#56111)
add 134348e1895 Remove placeholder Release Date in changelog and index
files (#56056)
add 27735d911e2 Fix DagBag imports in 3.2+ (#56109)
add 1764e48e5a2 add build-info dependency to summarize-warnings github
action job (#56117)
add 5a236d0593c Update main with Airflow 3.1.0 release details (#56112)
add 1ba57e6ccd7 Add branch protection for `v3-1-stable` (#56122)
add 6f79705b372 Enable backporting label auto-adding (#56121)
add 043e792c5e4 Update `dag_bundle_team.dag_bundle_name` type to match dag
bundle table (#56110)
add eb53d33142d Run providers compat test with Airflow 3.1 & fix compat
(#56118)
add 07ec02e2970 Bump ``PyYAML`` to 6.0.3 (#56119)
add 9cd9c9f9f77 Add back Deprecation warning for sla_miss_callback (#56127)
add d08c2d28e74 Detect interactive terminal to set colored logging +
support override env variables (#56132)
add 0919b62f46a Change translation freeze setting to False (#56116)
add c740af45415 Tweak the layout and display of groups in Task Logs
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 (d460e47325e)
\
N -- N -- N refs/heads/log-groups-ux-tweaks (c740af45415)
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:
.asf.yaml | 5 +
.github/CODEOWNERS | 2 +-
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 2 +-
.github/actions/install-prek/action.yml | 4 +-
.github/boring-cyborg.yml | 34 +-
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/ci-amd.yml | 5 +-
.github/workflows/codeql-analysis.yml | 5 +-
.github/workflows/publish-docs-to-s3.yml | 3 +
.github/workflows/release_dockerhub_image.yml | 2 +-
.pre-commit-config.yaml | 15 +-
.rat-excludes | 5 +
AGENTS.md | 4 +-
Dockerfile | 11 +-
Dockerfile.ci | 6 +-
README.md | 32 +-
RELEASE_NOTES.rst | 517 ++++
.../dag-serialization.rst | 2 +-
airflow-core/docs/best-practices.rst | 6 +-
airflow-core/docs/core-concepts/overview.rst | 2 +-
airflow-core/docs/howto/deadline-alerts.rst | 64 +-
airflow-core/docs/howto/docker-compose/index.rst | 25 +-
airflow-core/docs/howto/index.rst | 1 +
airflow-core/docs/howto/sla-to-deadlines.rst | 89 +
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 174 +-
airflow-core/docs/img/hitl_approve_reject.png | Bin 527119 -> 0 bytes
airflow-core/docs/img/hitl_branch_selected.png | Bin 485113 -> 0 bytes
airflow-core/docs/img/hitl_branch_selection.png | Bin 451478 -> 0 bytes
airflow-core/docs/img/hitl_wait_for_input.png | Bin 493082 -> 0 bytes
.../docs/img/hitl_wait_for_multiple_options.png | Bin 524043 -> 0 bytes
airflow-core/docs/img/hitl_wait_for_option.png | Bin 493109 -> 0 bytes
.../docs/img/ui-dark/admin_connections.png | Bin 150932 -> 211640
bytes
.../docs/img/ui-dark/asset_list_consuming_dags.png | Bin 127796 -> 224394
bytes
airflow-core/docs/img/ui-dark/asset_view.png | Bin 229760 -> 313521
bytes
airflow-core/docs/img/ui-dark/backfill.png | Bin 125860 -> 166886
bytes
airflow-core/docs/img/ui-dark/basic_dag.png | Bin 17577 -> 240166 bytes
airflow-core/docs/img/ui-dark/branch_note.png | Bin 37976 -> 312529 bytes
.../docs/img/ui-dark/branch_with_trigger.png | Bin 35762 -> 585455 bytes
.../docs/img/ui-dark/branch_without_trigger.png | Bin 37206 -> 547205 bytes
airflow-core/docs/img/ui-dark/dag_doc.png | Bin 92727 -> 302292 bytes
.../img/ui-dark/dag_graph_all_dependencies.png | Bin 285637 -> 456833
bytes
.../img/ui-dark/dag_graph_external_conditions.png | Bin 164762 -> 355786
bytes
airflow-core/docs/img/ui-dark/dag_list.png | Bin 220039 -> 319051
bytes
.../docs/img/ui-dark/dag_overview_code.png | Bin 256143 -> 464534
bytes
.../docs/img/ui-dark/dag_overview_dashboard.png | Bin 354517 -> 468987
bytes
.../docs/img/ui-dark/dag_overview_details.png | Bin 117313 -> 191871
bytes
.../docs/img/ui-dark/dag_overview_graph.png | Bin 247453 -> 384787
bytes
.../docs/img/ui-dark/dag_overview_grid.png | Bin 74307 -> 124464 bytes
.../docs/img/ui-dark/dag_overview_runs.png | Bin 328557 -> 580319
bytes
.../docs/img/ui-dark/dag_overview_tasks.png | Bin 257795 -> 419197
bytes
airflow-core/docs/img/ui-dark/dag_run_details.png | Bin 244367 -> 335121
bytes
airflow-core/docs/img/ui-dark/dag_run_graph.png | Bin 323997 -> 658686
bytes
.../img/ui-dark/dag_run_task_instance_xcom.png | Bin 103983 -> 201138
bytes
.../docs/img/ui-dark/dag_run_task_instances.png | Bin 381299 -> 441570
bytes
.../docs/img/ui-dark/dag_task_instance_details.png | Bin 121964 -> 149605
bytes
.../docs/img/ui-dark/dag_task_instance_logs.png | Bin 342132 -> 580039
bytes
.../img/ui-dark/dag_trigger_window_single_run.png | Bin 74262 -> 63113 bytes
airflow-core/docs/img/ui-dark/dags.png | Bin 117751 -> 416371
bytes
...demo_complex_dag_overview_with_failed_tasks.png | Bin 0 -> 653998 bytes
.../demo_dag_overview_with_failed_tasks.png | Bin 285470 -> 0 bytes
.../docs/img/ui-dark/demo_graph_and_code_view.png | Bin 171844 -> 458347
bytes
.../img/ui-dark/demo_grid_view_with_task_logs.png | Bin 220959 -> 401627
bytes
.../docs/img/ui-dark/hitl_approve_reject.png | Bin 0 -> 477232 bytes
.../docs/img/ui-dark/hitl_branch_selected.png | Bin 0 -> 469903 bytes
.../docs/img/ui-dark/hitl_branch_selection.png | Bin 0 -> 456696 bytes
.../docs/img/ui-dark/hitl_wait_for_input.png | Bin 0 -> 459252 bytes
.../img/ui-dark/hitl_wait_for_multiple_options.png | Bin 0 -> 474777 bytes
.../docs/img/ui-dark/hitl_wait_for_option.png | Bin 0 -> 446596 bytes
airflow-core/docs/img/ui-dark/home_dark.png | Bin 203744 -> 358259
bytes
airflow-core/docs/img/ui-dark/task_doc.png | Bin 196657 -> 526160
bytes
.../docs/img/ui-dark/task_instance_history.png | Bin 125116 -> 315475
bytes
.../docs/img/ui-dark/task_instance_history_log.png | Bin 204892 -> 345354
bytes
.../ui-dark/tutorial_pipeline_add_connection.png | Bin 109852 -> 285717
bytes
.../img/ui-dark/tutorial_pipeline_dag_list.png | Bin 70666 -> 0 bytes
.../ui-dark/tutorial_pipeline_dag_list_trigger.png | Bin 0 -> 254058 bytes
.../tutorial_pipeline_dag_overview_processed.png | Bin 107191 -> 421607
bytes
.../tutorial_pipeline_dag_task_instance_logs.png | Bin 0 -> 510999 bytes
airflow-core/docs/img/ui-dark/variable_hidden.png | Bin 76058 -> 111198 bytes
.../docs/img/ui-light/admin_connections.png | Bin 0 -> 246252 bytes
.../img/ui-light/asset_list_consuming_dags.png | Bin 122966 -> 225115
bytes
airflow-core/docs/img/ui-light/asset_view.png | Bin 236941 -> 352686
bytes
airflow-core/docs/img/ui-light/backfill.png | Bin 116042 -> 188317
bytes
airflow-core/docs/img/ui-light/basic_dag.png | Bin 17997 -> 240901 bytes
airflow-core/docs/img/ui-light/branch_note.png | Bin 38672 -> 313601 bytes
.../docs/img/ui-light/branch_with_trigger.png | Bin 35825 -> 557956 bytes
.../docs/img/ui-light/branch_without_trigger.png | Bin 37074 -> 581019 bytes
airflow-core/docs/img/ui-light/dag_doc.png | Bin 96363 -> 298120 bytes
.../img/ui-light/dag_graph_all_dependencies.png | Bin 309325 -> 493139
bytes
.../img/ui-light/dag_graph_external_conditions.png | Bin 136359 -> 395154
bytes
airflow-core/docs/img/ui-light/dag_list.png | Bin 225518 -> 346447
bytes
.../docs/img/ui-light/dag_overview_code.png | Bin 236640 -> 462346
bytes
.../docs/img/ui-light/dag_overview_dashboard.png | Bin 360724 -> 486906
bytes
.../docs/img/ui-light/dag_overview_details.png | Bin 117433 -> 204735
bytes
.../docs/img/ui-light/dag_overview_graph.png | Bin 291099 -> 412395
bytes
.../docs/img/ui-light/dag_overview_grid.png | Bin 73707 -> 124097 bytes
.../docs/img/ui-light/dag_overview_runs.png | Bin 335716 -> 609394
bytes
.../docs/img/ui-light/dag_overview_tasks.png | Bin 268167 -> 449808
bytes
airflow-core/docs/img/ui-light/dag_run_details.png | Bin 256723 -> 372052
bytes
airflow-core/docs/img/ui-light/dag_run_graph.png | Bin 340520 -> 701016
bytes
.../img/ui-light/dag_run_task_instance_xcom.png | Bin 103285 -> 197717
bytes
.../docs/img/ui-light/dag_run_task_instances.png | Bin 390877 -> 471612
bytes
.../img/ui-light/dag_task_instance_details.png | Bin 121197 -> 146100
bytes
.../docs/img/ui-light/dag_task_instance_logs.png | Bin 325063 -> 614001
bytes
.../img/ui-light/dag_trigger_window_single_run.png | Bin 68585 -> 62480 bytes
airflow-core/docs/img/ui-light/dags.png | Bin 116182 -> 411981
bytes
...demo_complex_dag_overview_with_failed_tasks.png | Bin 0 -> 418224 bytes
.../demo_dag_overview_with_failed_tasks.png | Bin 286606 -> 0 bytes
.../docs/img/ui-light/demo_graph_and_code_view.png | Bin 165225 -> 309732
bytes
.../img/ui-light/demo_grid_view_with_task_logs.png | Bin 222704 -> 279687
bytes
.../docs/img/ui-light/hitl_approve_reject.png | Bin 0 -> 352558 bytes
.../docs/img/ui-light/hitl_branch_selected.png | Bin 0 -> 350699 bytes
.../docs/img/ui-light/hitl_branch_selection.png | Bin 0 -> 336638 bytes
.../docs/img/ui-light/hitl_wait_for_input.png | Bin 0 -> 325927 bytes
.../ui-light/hitl_wait_for_multiple_options.png | Bin 0 -> 350426 bytes
.../docs/img/ui-light/hitl_wait_for_option.png | Bin 0 -> 323444 bytes
airflow-core/docs/img/ui-light/home_light.png | Bin 213214 -> 384811
bytes
airflow-core/docs/img/ui-light/task_doc.png | Bin 202764 -> 529064
bytes
.../docs/img/ui-light/task_instance_history.png | Bin 124879 -> 351533
bytes
.../img/ui-light/task_instance_history_log.png | Bin 205839 -> 375281
bytes
.../ui-light/tutorial_pipeline_add_connection.png | Bin 114291 -> 286104
bytes
.../img/ui-light/tutorial_pipeline_dag_list.png | Bin 70320 -> 0 bytes
.../tutorial_pipeline_dag_list_trigger.png | Bin 0 -> 249992 bytes
.../tutorial_pipeline_dag_overview_processed.png | Bin 108052 -> 420870
bytes
.../tutorial_pipeline_dag_task_instance_logs.png | Bin 0 -> 509909 bytes
airflow-core/docs/img/ui-light/variable_hidden.png | Bin 79071 -> 114589 bytes
airflow-core/docs/index.rst | 8 +-
.../docs/installation/supported-versions.rst | 2 +-
.../docs/installation/upgrading_to_airflow3.rst | 66 +-
airflow-core/docs/migrations-ref.rst | 12 +-
airflow-core/docs/public-airflow-interface.rst | 69 +-
airflow-core/docs/troubleshooting.rst | 2 +-
airflow-core/docs/tutorial/fundamentals.rst | 4 +-
airflow-core/docs/tutorial/hitl.rst | 12 +-
airflow-core/docs/tutorial/pipeline.rst | 11 +-
airflow-core/newsfragments/46929.bugfix.rst | 1 -
airflow-core/newsfragments/49779.significant.rst | 20 -
airflow-core/newsfragments/50374.feature.rst | 1 -
airflow-core/newsfragments/50693.significant.rst | 41 -
airflow-core/newsfragments/51424.significant.rst | 17 -
airflow-core/newsfragments/51639.significant.rst | 17 -
airflow-core/newsfragments/52860.significant.rst | 17 -
airflow-core/newsfragments/53631.misc.rst | 1 -
airflow-core/newsfragments/53727.feature.rst | 1 -
airflow-core/newsfragments/53796.misc.rst | 1 -
airflow-core/newsfragments/54857.significant.rst | 14 -
airflow-core/newsfragments/55508.feature.rst | 1 -
airflow-core/pyproject.toml | 1 +
airflow-core/src/airflow/api/common/mark_tasks.py | 14 +-
airflow-core/src/airflow/api_fastapi/app.py | 9 +
.../api_fastapi/auth/managers/base_auth_manager.py | 106 +-
.../auth/managers/simple/ui/package-lock.json | 1497 ++++++-----
.../auth/managers/simple/ui/package.json | 32 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1656 ++++++------
.../auth/managers/simple/ui/src/theme.ts | 2 +-
.../src/airflow/api_fastapi/common/parameters.py | 60 +-
.../api_fastapi/core_api/datamodels/assets.py | 9 +
.../api_fastapi/core_api/datamodels/event_logs.py | 3 +
.../api_fastapi/core_api/datamodels/hitl.py | 1 +
.../api_fastapi/core_api/datamodels/ui/common.py | 4 +-
.../api_fastapi/core_api/datamodels/xcom.py | 20 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 45 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 293 ++-
.../api_fastapi/core_api/routes/public/__init__.py | 4 +-
.../api_fastapi/core_api/routes/public/assets.py | 23 +
.../core_api/routes/public/dag_report.py | 2 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 13 +-
.../core_api/routes/public/event_logs.py | 5 +-
.../api_fastapi/core_api/routes/public/hitl.py | 55 +-
.../core_api/routes/public/import_error.py | 4 +
.../api_fastapi/core_api/routes/public/plugins.py | 28 +-
.../core_api/routes/public/task_instances.py | 9 +
.../api_fastapi/core_api/routes/ui/assets.py | 12 +-
.../api_fastapi/core_api/routes/ui/dashboard.py | 32 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 20 +-
.../src/airflow/api_fastapi/core_api/security.py | 4 +-
.../src/airflow/cli/commands/dag_command.py | 7 +-
.../src/airflow/cli/commands/scheduler_command.py | 6 +-
.../src/airflow/cli/commands/task_command.py | 35 +-
.../config_templates/airflow_local_settings.py | 13 +-
.../src/airflow/config_templates/config.yml | 75 +-
airflow-core/src/airflow/configuration.py | 2 +-
.../src/airflow/dag_processing/bundles/manager.py | 148 +-
.../src/airflow/dag_processing/collection.py | 27 +-
.../airflow/{models => dag_processing}/dagbag.py | 112 +-
airflow-core/src/airflow/dag_processing/manager.py | 33 +-
.../src/airflow/dag_processing/processor.py | 4 +-
.../src/airflow/executors/executor_loader.py | 39 +
.../src/airflow/executors/local_executor.py | 12 +-
.../src/airflow/jobs/scheduler_job_runner.py | 33 +-
.../src/airflow/jobs/triggerer_job_runner.py | 5 +
airflow-core/src/airflow/logging_config.py | 26 +-
.../versions/0041_3_0_0_rename_dataset_as_asset.py | 12 +-
.../0076_3_1_0_add_human_in_the_loop_response.py | 2 +
...4_3_1_0_add_last_parse_duration_to_dag_model.py | 15 +-
...3_1_0_downgrade_serialized_dag_version_to_v2.py | 199 ++
...3_2_0_replace_asset_trigger_table_with_asset.py | 102 +
...0_change_serialized_dag_data_column_to_jsonb.py | 94 +
..._2_0_add_length_dag_bundle_team_bundle_name.py} | 37 +-
airflow-core/src/airflow/models/asset.py | 58 +-
airflow-core/src/airflow/models/dagbag.py | 665 +----
airflow-core/src/airflow/models/dagbundle.py | 2 +-
airflow-core/src/airflow/models/deadline.py | 118 +-
airflow-core/src/airflow/models/hitl.py | 2 +
airflow-core/src/airflow/models/log.py | 8 +
airflow-core/src/airflow/models/mappedoperator.py | 3 +
airflow-core/src/airflow/models/serialized_dag.py | 88 +-
airflow-core/src/airflow/models/taskinstance.py | 39 +-
airflow-core/src/airflow/models/team.py | 48 +-
airflow-core/src/airflow/models/trigger.py | 8 +-
.../airflow/serialization/definitions/taskgroup.py | 6 +
airflow-core/src/airflow/serialization/schema.json | 18 +-
.../airflow/serialization/serialized_objects.py | 159 +-
airflow-core/src/airflow/settings.py | 15 +
airflow-core/src/airflow/ui/dev/index.html | 2 +-
airflow-core/src/airflow/ui/index.html | 2 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 96 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 200 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 200 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 254 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 200 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 51 +-
.../ui/openapi-gen/requests/services.gen.ts | 311 +--
.../airflow/ui/openapi-gen/requests/types.gen.ts | 367 ++-
.../ui/public/i18n/locales/en/components.json | 1 +
.../ui/public/i18n/locales/zh-CN/admin.json | 10 +-
.../ui/public/i18n/locales/zh-CN/common.json | 19 +-
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 3 +
.../airflow/ui/public/i18n/locales/zh-CN/dags.json | 2 +-
.../ui/public/i18n/locales/zh-CN/dashboard.json | 4 +-
.../airflow/ui/public/i18n/locales/zh-CN/hitl.json | 9 +-
.../ui/src/components/DataTable/DataTable.tsx | 4 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 3 +
.../ui/src/components/FilterBar/FilterPill.tsx | 4 +-
.../ui/src/components/FilterBar/defaultIcons.tsx | 3 +-
.../components/FilterBar/filters/SelectFilter.tsx | 108 +
.../airflow/ui/src/components/FilterBar/types.ts | 3 +-
.../src/airflow/ui/src/components/HoverTooltip.tsx | 63 +
.../ui/src/components/NeedsReviewButton.tsx | 8 +-
.../src/airflow/ui/src/components/PoolBar.tsx | 1 -
.../ui/src/components/renderStructuredLog.tsx | 26 +-
.../ui/src/components/ui/Select/Trigger.tsx | 7 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 20 +-
.../ui/src/context/{timezone => hover}/Context.ts | 8 +-
.../hover/HoverProvider.tsx} | 24 +-
.../DataTable => context/hover}/index.ts | 5 +-
.../{timezone/useTimezone.ts => hover/useHover.ts} | 8 +-
.../airflow/ui/src/hooks/useRequiredActionTabs.ts | 6 +-
.../src/airflow/ui/src/hooks/useSelectedVersion.ts | 6 +-
.../src/airflow/ui/src/layouts/BaseLayout.tsx | 21 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 5 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 323 +--
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 97 +-
.../airflow/ui/src/layouts/Details/Gantt/utils.ts | 266 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 17 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 42 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 27 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 122 +-
airflow-core/src/airflow/ui/src/main.tsx | 11 +-
.../src/airflow/ui/src/mocks/handlers/log.ts | 188 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 17 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 10 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 60 +-
.../ui/src/pages/Dag/Calendar/CalendarLegend.tsx | 2 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 132 +-
.../pages/Dag/Calendar/CalendarTooltipContent.tsx | 68 -
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 25 +-
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 26 +-
.../ui/src/pages/Dag/Calendar/calendarUtils.ts | 22 +-
.../ui/src/pages/Dag/Calendar/richTooltipUtils.ts | 50 -
.../ui/src/pages/Dag/Calendar/useDelayedTooltip.ts | 60 -
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 45 +-
.../ui/src/pages/DagsList/AssetSchedule.tsx | 2 +-
.../src/pages/Dashboard/Stats/DAGImportErrors.tsx | 3 +-
.../pages/Dashboard/Stats/DAGImportErrorsModal.tsx | 36 +-
.../src/airflow/ui/src/pages/DeleteRunButton.tsx | 18 +-
.../HITLFilters.tsx} | 37 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 98 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 4 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 22 +-
.../ui/src/pages/TaskInstance/AssetEvents.tsx | 20 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 19 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 17 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 62 +-
.../ui/src/pages/TaskInstance/Logs/Logs.tsx | 21 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 4 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 13 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 38 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 35 +-
.../src/airflow/ui/src/queries/useDeleteDagRun.ts | 4 +-
.../ui/src/queries/useDeleteTaskInstance.ts | 4 +-
.../src/airflow/ui/src/queries/useGridRuns.ts | 5 +-
.../src/airflow/ui/src/queries/useGridStructure.ts | 5 +-
.../airflow/ui/src/queries/useGridTISummaries.ts | 4 +-
.../src/airflow/ui/src/queries/useLogs.tsx | 72 +-
.../airflow/ui/src/queries/useUpdateHITLDetail.ts | 14 +-
airflow-core/src/airflow/ui/src/theme.ts | 2 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 35 +-
airflow-core/src/airflow/utils/cli.py | 12 +-
airflow-core/src/airflow/utils/db.py | 11 +-
airflow-core/src/airflow/utils/db_manager.py | 2 +-
.../src/airflow/utils/deprecation_tools.py | 13 +-
.../src/airflow/utils/log/file_task_handler.py | 5 +-
airflow-core/src/airflow/utils/serve_logs/core.py | 10 +-
airflow-core/tests/integration/otel/test_otel.py | 3 +-
.../tests/unit/always/test_example_dags.py | 3 +-
.../tests/unit/always/test_project_structure.py | 7 -
.../core_api/routes/public/test_assets.py | 148 ++
.../core_api/routes/public/test_backfills.py | 3 +-
.../core_api/routes/public/test_dag_report.py | 2 +-
.../core_api/routes/public/test_dag_run.py | 16 +
.../core_api/routes/public/test_event_logs.py | 4 +
.../core_api/routes/public/test_hitl.py | 173 +-
.../core_api/routes/public/test_plugins.py | 29 +
.../core_api/routes/public/test_task_instances.py | 71 +-
.../core_api/routes/public/test_xcom.py | 18 +-
.../api_fastapi/core_api/routes/ui/test_assets.py | 83 +
.../api_fastapi/core_api/routes/ui/test_dags.py | 1 +
.../core_api/routes/ui/test_dashboard.py | 30 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 16 +
.../unit/api_fastapi/core_api/test_security.py | 23 +
.../versions/head/test_task_instances.py | 34 -
airflow-core/tests/unit/api_fastapi/test_app.py | 28 +
.../tests/unit/cli/commands/test_asset_command.py | 1 +
.../tests/unit/cli/commands/test_dag_command.py | 11 +-
.../tests/unit/cli/commands/test_db_command.py | 276 ++
.../unit/cli/commands/test_db_manager_command.py | 191 +-
.../unit/cli/commands/test_scheduler_command.py | 3 +-
.../tests/unit/cli/commands/test_task_command.py | 3 +-
airflow-core/tests/unit/cli/conftest.py | 2 +-
airflow-core/tests/unit/core/test_configuration.py | 8 +-
.../tests/unit/core/test_impersonation_tests.py | 3 +-
.../bundles/test_dag_bundle_manager.py | 14 +
.../tests/unit/dag_processing/test_manager.py | 70 +-
.../tests/unit/dag_processing/test_processor.py | 145 +-
.../tests/unit/executors/test_executor_loader.py | 99 +-
.../tests/unit/executors/test_local_executor.py | 10 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 90 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 94 +-
airflow-core/tests/unit/models/test_cleartasks.py | 4 +-
airflow-core/tests/unit/models/test_dag.py | 2 +-
airflow-core/tests/unit/models/test_dagbag.py | 16 +-
airflow-core/tests/unit/models/test_dagcode.py | 2 +-
airflow-core/tests/unit/models/test_dagrun.py | 24 +-
airflow-core/tests/unit/models/test_deadline.py | 147 +-
.../tests/unit/models/test_serialized_dag.py | 2 +-
.../tests/unit/models/test_taskinstance.py | 44 +-
airflow-core/tests/unit/models/test_team.py | 70 +
airflow-core/tests/unit/models/test_trigger.py | 17 +-
airflow-core/tests/unit/plugins/test_plugin.py | 15 +
.../tests/unit/plugins/test_plugins_manager.py | 2 +-
.../unit/serialization/test_dag_serialization.py | 403 ++-
.../tests/unit/utils/log/test_colored_log.py | 46 -
airflow-core/tests/unit/utils/test_db_manager.py | 30 +
.../tests/unit/utils/test_deprecation_tools.py | 20 +-
airflow-core/tests/unit/utils/test_log_handlers.py | 25 +-
airflow-ctl/docs/howto/index.rst | 48 +-
airflow-ctl/docs/images/command_hashes.txt | 2 +-
...flowctl_api_network_architecture_diagram.md5sum | 1 +
...airflowctl_api_network_architecture_diagram.png | Bin 0 -> 63371 bytes
.../airflowctl_api_network_architecture_diagram.py | 86 +
airflow-ctl/docs/images/output_version.svg | 59 +-
airflow-ctl/pyproject.toml | 11 -
airflow-ctl/src/airflowctl/_shared/timezones | 1 -
.../src/airflowctl/api/datamodels/generated.py | 13 +
airflow-ctl/src/airflowctl/api/operations.py | 55 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 19 +-
.../src/airflowctl/ctl/commands/version_command.py | 8 +-
.../tests/airflow_ctl/api/test_operations.py | 1 +
.../ctl/commands/test_version_command.py | 11 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 2 +-
.../tests/airflow_e2e_tests/conftest.py | 4 +-
chart/Chart.yaml | 18 +-
chart/newsfragments/53350.significant.rst | 4 +-
chart/templates/NOTES.txt | 2 +-
chart/templates/_helpers.yaml | 10 +-
chart/templates/api-server/api-server-ingress.yaml | 4 +-
chart/templates/limitrange.yaml | 2 +-
chart/templates/pgbouncer/pgbouncer-ingress.yaml | 5 +-
chart/templates/resourcequota.yaml | 2 +-
chart/templates/secrets/fernetkey-secret.yaml | 2 +-
chart/templates/secrets/git-ssh-key-secret.yaml | 2 +-
chart/templates/secrets/jwt-secret.yaml | 3 +-
chart/templates/secrets/redis-secrets.yaml | 4 +-
.../secrets/webserver-secret-key-secret.yaml | 2 +-
chart/templates/statsd/statsd-deployment.yaml | 4 +-
chart/templates/statsd/statsd-ingress.yaml | 5 +-
.../templates/triggerer/triggerer-deployment.yaml | 2 +-
.../triggerer/triggerer-kedaautoscaler.yaml | 4 +-
chart/values.schema.json | 4 +-
chart/values.yaml | 10 +-
contributing-docs/02_how_to_communicate.rst | 2 +-
.../03a_contributors_quick_start_beginners.rst | 132 +
...ontributors_quick_start_seasoned_developers.rst | 12 +-
contributing-docs/README.rst | 4 +-
.../contributors_quick_start_codespaces.rst | 2 +-
.../contributors_quick_start_gitpod.rst | 2 +-
.../contributors_quick_start_pycharm.rst | 2 +-
.../contributors_quick_start_vscode.rst | 2 +-
dev/README_RELEASE_PROVIDERS.md | 36 +-
dev/breeze/README.md | 2 +-
dev/breeze/doc/01_installation.rst | 2 +-
dev/breeze/doc/03_developer_tasks.rst | 2 +-
dev/breeze/doc/ci/02_images.md | 4 +-
.../doc/images/output_k8s_configure-cluster.svg | 6 +-
.../doc/images/output_k8s_configure-cluster.txt | 2 +-
.../doc/images/output_k8s_create-cluster.svg | 6 +-
.../doc/images/output_k8s_create-cluster.txt | 2 +-
.../doc/images/output_k8s_delete-cluster.svg | 4 +-
.../doc/images/output_k8s_delete-cluster.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 6 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
dev/breeze/doc/images/output_k8s_k9s.svg | 4 +-
dev/breeze/doc/images/output_k8s_k9s.txt | 2 +-
dev/breeze/doc/images/output_k8s_logs.svg | 4 +-
dev/breeze/doc/images/output_k8s_logs.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 6 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
dev/breeze/doc/images/output_k8s_shell.svg | 4 +-
dev/breeze/doc/images/output_k8s_shell.txt | 2 +-
dev/breeze/doc/images/output_k8s_status.svg | 4 +-
dev/breeze/doc/images/output_k8s_status.txt | 2 +-
dev/breeze/doc/images/output_k8s_tests.svg | 6 +-
dev/breeze/doc/images/output_k8s_tests.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 6 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
dev/breeze/pyproject.toml | 10 +-
.../airflow_breeze/commands/developer_commands.py | 2 +
.../commands/release_management_commands.py | 23 +-
.../airflow_breeze/commands/testing_commands.py | 9 +-
dev/breeze/src/airflow_breeze/global_constants.py | 12 +-
.../templates/CHANGELOG_TEMPLATE.rst.jinja2 | 3 -
.../airflow_breeze/utils/docker_command_utils.py | 16 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 10 +-
.../src/airflow_breeze/utils/selective_checks.py | 2 +-
dev/breeze/tests/test_selective_checks.py | 2 +
dev/breeze/uv.lock | 1570 ++++++------
dev/provider_db_inventory.py | 2 +-
dev/pyproject.toml | 2 +-
devel-common/pyproject.toml | 6 +-
.../extra_provider_files_with_substitutions.py | 53 +-
devel-common/src/tests_common/pytest_plugin.py | 13 +-
devel-common/src/tests_common/test_utils/db.py | 34 +-
.../test_utils/mock_security_manager.py | 30 -
.../src/tests_common/test_utils/version_compat.py | 2 +
docker-stack-docs/entrypoint.rst | 9 +-
docker-tests/tests/docker_tests/test_prod_image.py | 5 +-
docs/spelling_wordlist.txt | 3 +
generated/PYPI_README.md | 28 +-
go-sdk/.mockery.yml | 7 +-
go-sdk/.pre-commit-config.yaml | 38 +-
.../ci/docker-compose/ga.yml => go-sdk/Justfile | 38 +-
go-sdk/README.md | 9 +-
go-sdk/bin/.gitignore | 2 +
.../{sdk => bundle/bundlev1/bundlev1client}/doc.go | 9 +-
go-sdk/bundle/bundlev1/bundlev1client/grpc.go | 126 +
.../bundlev1/bundlev1server/doc.go} | 17 +-
.../bundle/bundlev1/bundlev1server/impl/plugin.go | 189 ++
go-sdk/bundle/bundlev1/bundlev1server/server.go | 103 +
go-sdk/{sdk/errors.go => bundle/bundlev1/doc.go} | 16 +-
go-sdk/{worker => bundle/bundlev1}/registry.go | 52 +-
go-sdk/bundle/bundlev1/registry_test.go | 120 +
go-sdk/bundle/bundlev1/schemas.go | 57 +
go-sdk/{worker => bundle/bundlev1}/task.go | 22 +-
go-sdk/{worker => bundle/bundlev1}/task_test.go | 28 +-
go-sdk/celery/app.go | 94 +-
go-sdk/{sdk/doc.go => celery/cmd/main.go} | 11 +-
go-sdk/celery/commands/root.go | 102 +
go-sdk/celery/{cmd => commands}/run.go | 32 +-
go-sdk/celery/config.go | 6 +-
.../login.py => go-sdk/example/bundle/Justfile | 26 +-
go-sdk/example/{ => bundle}/main.go | 72 +-
go-sdk/example/{ => bundle}/main_test.go | 0
go-sdk/go.mod | 15 +-
go-sdk/go.sum | 34 +
go-sdk/internal/protov1/plugin.pb.go | 1121 ++++++++
go-sdk/internal/protov1/plugin.proto | 65 +
go-sdk/internal/protov1/plugin_grpc.pb.go | 165 ++
.../cmd/root.go => pkg/bundles/shared/config.go} | 77 +-
go-sdk/pkg/bundles/shared/discovery.go | 252 ++
.../{api/init.go => bundles/shared/handshake.go} | 29 +-
go-sdk/pkg/logging/server/server.go | 328 +++
go-sdk/pkg/logging/server/server_test.go | 317 +++
go-sdk/pkg/logging/shclog/shclog.go | 241 ++
go-sdk/{ => pkg}/worker/init.go | 0
go-sdk/{ => pkg}/worker/runner.go | 137 +-
go-sdk/{ => pkg}/worker/runner_test.go | 31 +-
go-sdk/{ => pkg}/worker/task.go | 33 +-
go-sdk/{ => pkg}/worker/task_test.go | 26 +-
go-sdk/sdk/client.go | 21 +-
go-sdk/sdk/client_test.go | 120 +-
go-sdk/sdk/connection.go | 137 +
go-sdk/sdk/connection_test.go | 228 ++
go-sdk/sdk/doc.go | 2 +-
go-sdk/sdk/errors.go | 6 +
go-sdk/sdk/sdk.go | 15 +
go-sdk/worker/mocks/Registry.go | 203 --
go-sdk/worker/mocks/Task.go | 96 -
go-sdk/worker/mocks/Worker.go | 325 ---
go-sdk/worker/registry_test.go | 67 -
.../airflow_aux/test_basic_helm_chart.py | 8 +-
helm-tests/tests/helm_tests/other/test_statsd.py | 12 +-
providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 4 +-
providers/airbyte/docs/.latest-doc-only-change.txt | 2 +-
providers/airbyte/docs/index.rst | 2 -
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 16 +
providers/alibaba/docs/index.rst | 4 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
providers/amazon/README.rst | 8 +-
providers/amazon/docs/changelog.rst | 42 +-
.../amazon/docs/executors/lambda-executor.rst | 10 +-
providers/amazon/docs/index.rst | 6 +-
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/auth_manager/aws_auth_manager.py | 111 +-
.../providers/amazon/aws/hooks/redshift_cluster.py | 7 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 37 +-
.../providers/amazon/aws/operators/batch.py | 10 +-
.../amazon/aws/operators/redshift_cluster.py | 7 +-
.../src/airflow/providers/amazon/aws/sensors/s3.py | 35 +-
.../providers/amazon/aws/transfers/s3_to_sftp.py | 7 +-
.../airflow/providers/amazon/aws/triggers/sqs.py | 52 +-
.../airflow/providers/amazon/aws/triggers/ssm.py | 4 +-
.../tests/system/amazon/aws/example_s3_to_sql.py | 2 +-
.../tests/system/amazon/aws/example_sql_to_s3.py | 2 +-
.../amazon/tests/system/amazon/aws/example_ssm.py | 2 +-
.../aws/auth_manager/test_aws_auth_manager.py | 74 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 19 +-
.../tests/unit/amazon/aws/operators/test_batch.py | 63 +-
.../amazon/aws/operators/test_redshift_cluster.py | 16 +-
.../tests/unit/amazon/aws/sensors/test_s3.py | 39 +-
.../unit/amazon/aws/transfers/test_s3_to_sftp.py | 117 +
.../tests/unit/amazon/aws/triggers/test_ssm.py | 30 +-
providers/apache/beam/README.rst | 16 +-
providers/apache/beam/docs/changelog.rst | 21 +-
providers/apache/beam/docs/index.rst | 6 +-
providers/apache/beam/provider.yaml | 3 +-
providers/apache/beam/pyproject.toml | 6 +-
.../src/airflow/providers/apache/beam/__init__.py | 2 +-
.../cassandra/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/cassandra/docs/index.rst | 2 -
.../apache/drill/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/drill/docs/index.rst | 2 -
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/druid/docs/index.rst | 2 -
providers/apache/flink/docs/index.rst | 2 -
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 15 +
providers/apache/hdfs/docs/index.rst | 4 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
.../apache/hive/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hive/docs/index.rst | 2 -
.../iceberg/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/iceberg/docs/index.rst | 2 -
.../apache/impala/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/impala/docs/index.rst | 2 -
providers/apache/kafka/README.rst | 16 +-
providers/apache/kafka/docs/changelog.rst | 14 +-
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 +-
.../apache/kafka/operators/test_consume.py | 41 +-
.../apache/kafka/operators/test_produce.py | 33 +-
.../apache/kylin/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/kylin/docs/index.rst | 2 -
providers/apache/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 18 +
providers/apache/livy/docs/index.rst | 8 +-
providers/apache/livy/provider.yaml | 3 +-
providers/apache/livy/pyproject.toml | 6 +-
.../src/airflow/providers/apache/livy/__init__.py | 2 +-
.../apache/pig/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/pig/docs/index.rst | 2 -
.../apache/pinot/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/pinot/docs/index.rst | 2 -
.../apache/spark/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/spark/docs/index.rst | 2 -
.../tinkerpop/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/tinkerpop/docs/index.rst | 2 -
providers/apprise/docs/.latest-doc-only-change.txt | 2 +-
providers/apprise/docs/index.rst | 2 -
.../arangodb/docs/.latest-doc-only-change.txt | 2 +-
providers/arangodb/docs/index.rst | 2 -
providers/asana/docs/.latest-doc-only-change.txt | 2 +-
providers/asana/docs/index.rst | 2 -
.../jira/docs/.latest-doc-only-change.txt | 2 +-
providers/atlassian/jira/docs/index.rst | 2 -
providers/celery/README.rst | 15 +-
providers/celery/docs/.latest-doc-only-change.txt | 2 +-
providers/celery/docs/changelog.rst | 25 +-
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
.../airflow/providers/celery/cli/celery_command.py | 20 +-
.../providers/celery/executors/celery_executor.py | 4 +-
.../celery/executors/celery_executor_utils.py | 26 +-
.../integration/celery/test_celery_executor.py | 6 +-
.../tests/unit/celery/cli/test_celery_command.py | 57 +-
.../unit/celery/executors/test_celery_executor.py | 18 +
.../cloudant/docs/.latest-doc-only-change.txt | 2 +-
providers/cloudant/docs/index.rst | 2 -
providers/cncf/kubernetes/README.rst | 10 +-
providers/cncf/kubernetes/docs/changelog.rst | 37 +-
providers/cncf/kubernetes/docs/index.rst | 6 +-
providers/cncf/kubernetes/provider.yaml | 4 +-
providers/cncf/kubernetes/pyproject.toml | 10 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../cncf/kubernetes/cli/kubernetes_command.py | 2 +-
.../providers/cncf/kubernetes/operators/job.py | 7 +-
.../providers/cncf/kubernetes/operators/kueue.py | 7 +-
.../providers/cncf/kubernetes/operators/pod.py | 7 +-
.../cncf/kubernetes/operators/resource.py | 7 +-
.../cncf/kubernetes/sensors/spark_kubernetes.py | 7 +-
.../providers/cncf/kubernetes/version_compat.py | 10 +-
providers/cohere/docs/.latest-doc-only-change.txt | 2 +-
providers/cohere/docs/index.rst | 2 -
providers/common/compat/README.rst | 16 +-
providers/common/compat/docs/changelog.rst | 15 +
providers/common/compat/docs/index.rst | 8 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
providers/common/io/README.rst | 16 +-
providers/common/io/docs/changelog.rst | 22 +
providers/common/io/docs/index.rst | 8 +-
providers/common/io/provider.yaml | 3 +-
providers/common/io/pyproject.toml | 6 +-
.../io/src/airflow/providers/common/io/__init__.py | 2 +-
.../providers/common/io/operators/file_transfer.py | 5 +-
.../airflow/providers/common/io/version_compat.py | 10 -
.../unit/common/io/operators/test_file_transfer.py | 6 +-
.../messaging/docs/.latest-doc-only-change.txt | 2 +-
providers/common/messaging/docs/changelog.rst | 3 -
providers/common/sql/README.rst | 17 +-
providers/common/sql/docs/changelog.rst | 15 +-
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
providers/databricks/README.rst | 19 +-
providers/databricks/docs/changelog.rst | 19 +-
providers/databricks/docs/index.rst | 6 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/hooks/databricks_base.py | 78 +-
.../unit/databricks/hooks/test_databricks_base.py | 144 +-
providers/datadog/docs/.latest-doc-only-change.txt | 2 +-
providers/datadog/docs/index.rst | 2 -
providers/dbt/cloud/docs/changelog.rst | 2 -
.../dingding/docs/.latest-doc-only-change.txt | 2 +-
providers/dingding/docs/index.rst | 2 -
providers/discord/docs/.latest-doc-only-change.txt | 2 +-
providers/discord/docs/index.rst | 2 -
providers/docker/README.rst | 15 +-
providers/docker/docs/changelog.rst | 26 +
providers/docker/docs/index.rst | 8 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 58 +-
providers/edge3/docs/index.rst | 2 +-
providers/edge3/provider.yaml | 4 +-
providers/edge3/pyproject.toml | 6 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../providers/edge3/openapi/v2-edge-generated.yaml | 40 +-
.../providers/edge3/plugins/www/dist/main.umd.cjs | 56 +-
.../www/openapi-gen/requests/services.gen.ts | 20 +-
.../plugins/www/openapi-gen/requests/types.gen.ts | 40 +-
.../providers/edge3/plugins/www/package.json | 40 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 2697 ++++++++++----------
.../edge3/plugins/www/src/components/ui/Alert.tsx | 1 -
.../providers/edge3/plugins/www/src/theme.ts | 1 -
providers/edge3/www-hash.txt | 2 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 21 +
providers/elasticsearch/docs/index.rst | 8 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
providers/exasol/README.rst | 6 +-
providers/exasol/docs/changelog.rst | 15 +
providers/exasol/docs/index.rst | 8 +-
providers/exasol/provider.yaml | 3 +-
providers/exasol/pyproject.toml | 6 +-
.../src/airflow/providers/exasol/__init__.py | 2 +-
providers/fab/README.rst | 16 +-
providers/fab/docs/auth-manager/index.rst | 1 +
providers/fab/docs/auth-manager/sso.rst | 247 ++
providers/fab/docs/changelog.rst | 45 +-
providers/fab/docs/cli-ref.rst | 5 -
providers/fab/docs/index.rst | 7 +-
providers/fab/provider.yaml | 4 +-
providers/fab/pyproject.toml | 6 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 62 +-
.../fab/auth_manager/security_manager/override.py | 2 +-
.../0001_1_4_0_create_ab_tables_if_missing.py | 1 +
.../airflow/providers/fab/www/airflow_flask_app.py | 7 +-
.../airflow/providers/fab/www/package-lock.json | 16 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../airflowDefaultTheme.ff5a35f322070b094aa2.css | 2 +-
.../dist/materialIcons.3e67dd6fbfcc4f3b5105.css | 2 +-
.../api/auth/backend/test_kerberos_auth.py | 5 +-
.../api_endpoints/api_connexion_utils.py | 6 +-
.../test_role_and_permission_endpoint.py | 7 +-
.../api_endpoints/test_user_endpoint.py | 5 +-
.../auth_manager/cli_commands/test_definition.py | 13 +-
.../cli_commands/test_permissions_command.py | 7 +-
.../auth_manager/cli_commands/test_role_command.py | 10 +-
.../cli_commands/test_sync_perm_command.py | 5 +-
.../auth_manager/cli_commands/test_user_command.py | 7 +-
.../fab/auth_manager/cli_commands/test_utils.py | 5 +-
.../fab/auth_manager/models/test_anonymous_user.py | 5 +-
.../fab/auth_manager/schemas/test_user_schema.py | 14 +-
.../security_manager/test_constants.py | 5 +-
.../auth_manager/security_manager/test_override.py | 5 +-
.../unit/fab/auth_manager/test_fab_auth_manager.py | 28 +-
.../fab/tests/unit/fab/auth_manager/test_models.py | 11 +-
.../tests/unit/fab/auth_manager/test_security.py | 27 +-
providers/fab/www-hash.txt | 2 +-
.../facebook/docs/.latest-doc-only-change.txt | 2 +-
providers/facebook/docs/index.rst | 2 -
providers/ftp/docs/.latest-doc-only-change.txt | 2 +-
providers/ftp/docs/index.rst | 2 -
providers/git/README.rst | 6 +-
providers/git/docs/changelog.rst | 14 +-
providers/git/docs/index.rst | 2 +-
providers/git/provider.yaml | 3 +-
providers/git/pyproject.toml | 6 +-
.../git/src/airflow/providers/git/__init__.py | 2 +-
providers/github/docs/.latest-doc-only-change.txt | 2 +-
providers/github/docs/index.rst | 2 -
providers/google/README.rst | 35 +-
providers/google/docs/changelog.rst | 73 +-
providers/google/docs/index.rst | 8 +-
.../google/docs/operators/cloud/vertex_ai.rst | 2 +-
.../operators/marketing_platform/display_video.rst | 127 -
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 6 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../src/airflow/providers/google/ads/hooks/ads.py | 8 +-
.../google/cloud/hooks/vertex_ai/auto_ml.py | 173 --
.../marketing_platform/hooks/display_video.py | 150 --
.../marketing_platform/operators/display_video.py | 510 ----
.../marketing_platform/sensors/display_video.py | 69 +-
providers/google/tests/deprecations_ignore.yml | 17 -
.../google/tests/system/google/ads/example_ads.py | 2 +-
.../example_vertex_ai_auto_ml_image_training.py | 152 --
.../cloud/vertex_ai/example_vertex_ai_endpoint.py | 7 +-
.../marketing_platform/hooks/test_display_video.py | 290 ---
.../operators/test_display_video.py | 320 ---
.../sensors/test_display_video.py | 22 +-
providers/grpc/docs/.latest-doc-only-change.txt | 2 +-
providers/grpc/docs/index.rst | 2 -
.../hashicorp/docs/.latest-doc-only-change.txt | 2 +-
providers/hashicorp/docs/index.rst | 2 -
providers/http/docs/changelog.rst | 2 -
providers/imap/docs/.latest-doc-only-change.txt | 2 +-
providers/imap/docs/index.rst | 2 -
.../influxdb/docs/.latest-doc-only-change.txt | 2 +-
providers/influxdb/docs/index.rst | 2 -
providers/jdbc/docs/changelog.rst | 2 -
providers/jenkins/README.rst | 6 +-
providers/jenkins/docs/changelog.rst | 22 +
providers/jenkins/docs/index.rst | 4 +-
providers/jenkins/provider.yaml | 3 +-
providers/jenkins/pyproject.toml | 6 +-
.../src/airflow/providers/jenkins/__init__.py | 2 +-
providers/keycloak/docs/changelog.rst | 2 -
.../v2-keycloak-auth-manager-generated.yaml | 37 +
.../keycloak/auth_manager/routes/token.py | 39 +-
.../keycloak/auth_manager/services}/__init__.py | 0
.../auth_manager/{routes => services}/token.py | 25 +-
.../keycloak/auth_manager/cli/test_commands.py | 2 +-
.../keycloak/auth_manager/routes/test_token.py | 53 +-
.../keycloak/auth_manager/services}/__init__.py | 0
.../keycloak/auth_manager/services/test_token.py | 78 +
providers/microsoft/azure/README.rst | 18 +-
providers/microsoft/azure/docs/changelog.rst | 17 +-
providers/microsoft/azure/docs/index.rst | 6 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 6 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../microsoft/azure/hooks/test_data_factory.py | 8 +-
.../mssql/docs/.latest-doc-only-change.txt | 2 +-
providers/microsoft/mssql/docs/index.rst | 2 -
providers/microsoft/psrp/README.rst | 6 +-
providers/microsoft/psrp/docs/changelog.rst | 32 +
providers/microsoft/psrp/docs/index.rst | 4 +-
providers/microsoft/psrp/provider.yaml | 4 +-
providers/microsoft/psrp/pyproject.toml | 6 +-
.../airflow/providers/microsoft/psrp/__init__.py | 2 +-
.../providers/microsoft/psrp/operators/psrp.py | 8 +-
.../winrm/docs/.latest-doc-only-change.txt | 2 +-
providers/microsoft/winrm/docs/index.rst | 2 -
providers/mongo/docs/.latest-doc-only-change.txt | 2 +-
providers/mongo/docs/index.rst | 2 -
providers/mysql/docs/changelog.rst | 2 -
.../mysql/tests/unit/mysql/assets/test_mysql.py | 9 +-
providers/neo4j/docs/changelog.rst | 2 -
providers/odbc/docs/.latest-doc-only-change.txt | 2 +-
providers/odbc/docs/index.rst | 2 -
providers/openai/docs/.latest-doc-only-change.txt | 2 +-
providers/openai/docs/index.rst | 2 -
.../tests/unit/openai/operators/test_openai.py | 5 +-
.../openfaas/docs/.latest-doc-only-change.txt | 2 +-
providers/openfaas/docs/index.rst | 2 -
providers/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 33 +-
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/provider.yaml | 4 +-
providers/openlineage/pyproject.toml | 6 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../providers/openlineage/plugins/listener.py | 6 +-
.../airflow/providers/openlineage/utils/utils.py | 25 +-
.../unit/openlineage/plugins/test_execution.py | 9 +-
.../unit/openlineage/plugins/test_listener.py | 64 +-
.../tests/unit/openlineage/test_conf.py | 2 +-
.../tests/unit/openlineage/utils/test_utils.py | 27 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 16 +
providers/opensearch/docs/index.rst | 4 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../opsgenie/docs/.latest-doc-only-change.txt | 2 +-
providers/opsgenie/docs/index.rst | 2 -
providers/oracle/docs/.latest-doc-only-change.txt | 2 +-
providers/oracle/docs/changelog.rst | 2 -
.../oracle/tests/unit/oracle/hooks/test_oracle.py | 9 +-
.../pagerduty/docs/.latest-doc-only-change.txt | 2 +-
providers/pagerduty/docs/index.rst | 2 -
providers/papermill/README.rst | 15 +-
providers/papermill/docs/changelog.rst | 20 +
providers/papermill/docs/index.rst | 8 +-
providers/papermill/provider.yaml | 3 +-
providers/papermill/pyproject.toml | 6 +-
.../src/airflow/providers/papermill/__init__.py | 2 +-
.../pgvector/docs/.latest-doc-only-change.txt | 2 +-
providers/pgvector/docs/index.rst | 2 -
providers/pinecone/docs/changelog.rst | 2 -
providers/postgres/docs/changelog.rst | 2 -
.../tests/unit/postgres/assets/test_postgres.py | 9 +-
.../tests/unit/postgres/hooks/test_postgres.py | 18 +-
providers/presto/docs/.latest-doc-only-change.txt | 2 +-
providers/presto/docs/index.rst | 2 -
providers/qdrant/docs/.latest-doc-only-change.txt | 2 +-
providers/qdrant/docs/index.rst | 2 -
providers/redis/README.rst | 15 +-
providers/redis/docs/changelog.rst | 12 +
providers/redis/docs/index.rst | 6 +-
providers/redis/provider.yaml | 3 +-
providers/redis/pyproject.toml | 6 +-
.../redis/src/airflow/providers/redis/__init__.py | 2 +-
providers/salesforce/docs/changelog.rst | 2 -
.../tests/unit/salesforce/hooks/test_salesforce.py | 2 +-
.../tests/unit/salesforce/operators/test_bulk.py | 6 +-
providers/samba/docs/changelog.rst | 2 -
providers/segment/docs/.latest-doc-only-change.txt | 2 +-
providers/segment/docs/index.rst | 2 -
.../sendgrid/docs/.latest-doc-only-change.txt | 2 +-
providers/sendgrid/docs/index.rst | 2 -
providers/sftp/docs/changelog.rst | 2 -
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 4 +-
.../sftp/tests/unit/sftp/operators/test_sftp.py | 2 +-
.../singularity/docs/.latest-doc-only-change.txt | 2 +-
providers/singularity/docs/index.rst | 2 -
providers/slack/README.rst | 6 +-
providers/slack/docs/changelog.rst | 17 +-
providers/slack/docs/index.rst | 6 +-
providers/slack/provider.yaml | 3 +-
providers/slack/pyproject.toml | 6 +-
.../slack/src/airflow/providers/slack/__init__.py | 2 +-
.../unit/slack/transfers/test_sql_to_slack.py | 2 +-
providers/smtp/README.rst | 7 +-
providers/smtp/docs/changelog.rst | 25 +-
providers/smtp/docs/index.rst | 7 +-
providers/smtp/provider.yaml | 4 +-
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
.../airflow/providers/smtp/notifications/smtp.py | 3 +-
providers/snowflake/README.rst | 15 +-
providers/snowflake/docs/changelog.rst | 14 +-
providers/snowflake/docs/index.rst | 6 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 6 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
.../tests/unit/snowflake/hooks/test_snowflake.py | 3 +-
.../tests/unit/snowflake/hooks/test_sql.py | 3 +-
providers/sqlite/docs/.latest-doc-only-change.txt | 2 +-
providers/sqlite/docs/index.rst | 2 -
providers/ssh/README.rst | 6 +-
providers/ssh/docs/changelog.rst | 17 +
providers/ssh/docs/index.rst | 4 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/ssh/tests/unit/ssh/hooks/test_ssh.py | 2 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 49 +-
providers/standard/docs/index.rst | 2 +-
providers/standard/provider.yaml | 6 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../airflow/providers/standard/decorators/stub.py | 102 +
.../example_dags/example_bash_decorator.py | 15 +-
.../src/airflow/providers/standard/exceptions.py | 6 +-
.../providers/standard/get_provider_info.py | 1 +
.../airflow/providers/standard/operators/hitl.py | 39 +-
.../providers/standard/sensors/external_task.py | 7 +-
.../airflow/providers/standard/version_compat.py | 2 +
.../tests/unit/standard/decorators/test_python.py | 11 +-
.../tests/unit/standard/decorators/test_stub.py} | 42 +-
.../tests/unit/standard/operators/test_hitl.py | 119 +-
.../tests/unit/standard/operators/test_python.py | 10 +-
.../standard/sensors/test_external_task_sensor.py | 77 +-
.../tests/unit/standard/sensors/test_time_delta.py | 8 +-
.../tests/unit/standard/sensors/test_weekday.py | 8 +-
.../tests/unit/standard/triggers/test_hitl.py | 3 +-
.../unit/standard/utils/test_sensor_helper.py | 3 +-
providers/tableau/docs/.latest-doc-only-change.txt | 2 +-
providers/tableau/docs/index.rst | 2 -
.../telegram/docs/.latest-doc-only-change.txt | 2 +-
providers/telegram/docs/index.rst | 2 -
.../teradata/docs/.latest-doc-only-change.txt | 2 +-
providers/teradata/docs/index.rst | 2 -
providers/trino/docs/.latest-doc-only-change.txt | 2 +-
providers/trino/docs/index.rst | 2 -
.../trino/tests/unit/trino/assets/test_trino.py | 9 +-
providers/vertica/docs/.latest-doc-only-change.txt | 2 +-
providers/vertica/docs/index.rst | 2 -
providers/weaviate/docs/changelog.rst | 2 -
.../tests/unit/weaviate/hooks/test_weaviate.py | 8 +-
providers/yandex/docs/.latest-doc-only-change.txt | 2 +-
providers/yandex/docs/index.rst | 2 -
.../yandex/tests/unit/yandex/utils/test_fields.py | 2 +-
providers/ydb/docs/.latest-doc-only-change.txt | 2 +-
providers/ydb/docs/index.rst | 2 -
providers/zendesk/docs/.latest-doc-only-change.txt | 2 +-
providers/zendesk/docs/index.rst | 2 -
pyproject.toml | 3 +-
reproducible_build.yaml | 4 +-
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/prek/boring_cyborg.py | 2 +-
scripts/ci/prek/check_aiobotocore_optional.py | 2 +-
.../ci/prek/check_airflow_bug_report_template.py | 2 +-
scripts/ci/prek/check_common_sql_dependency.py | 2 +-
.../prek/check_contextmanager_class_decorators.py | 133 +
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_integrations_list.py | 2 +-
scripts/ci/prek/check_provider_docs.py | 2 +-
.../ci/prek/check_system_tests_hidden_in_index.py | 2 +-
scripts/ci/prek/checkout_no_credentials.py | 2 +-
scripts/ci/prek/lint_json_schema.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/sort_in_the_wild.py | 2 +-
scripts/ci/prek/supported_versions.py | 2 +-
scripts/ci/prek/update_chart_dependencies.py | 2 +-
scripts/ci/prek/update_example_dags_paths.py | 2 +-
scripts/ci/prek/update_providers_dependencies.py | 2 +-
scripts/ci/prek/update_source_date_epoch.py | 2 +-
scripts/ci/prek/upgrade_important_versions.py | 17 +
scripts/ci/prek/validate_chart_annotations.py | 2 +-
scripts/docker/entrypoint_prod.sh | 6 +
scripts/in_container/run_schema_defaults_check.py | 125 +-
scripts/tools/free_up_disk_space.sh | 3 +-
scripts/tools/setup_breeze | 2 +-
.../logging/src/airflow_shared/logging/__init__.py | 2 +
.../logging/src/airflow_shared/logging/_config.py | 45 +
.../airflow_shared/logging/percent_formatter.py | 68 +-
.../src/airflow_shared/logging/structlog.py | 110 +-
shared/logging/tests/logging/test_structlog.py | 111 +-
.../tests/secrets_masker/test_secrets_masker.py | 18 +-
shared/timezones/tests/timezones/test_timezone.py | 6 +-
task-sdk/pyproject.toml | 2 +
task-sdk/src/airflow/sdk/__init__.py | 2 +-
task-sdk/src/airflow/sdk/bases/operator.py | 2 +-
task-sdk/src/airflow/sdk/definitions/connection.py | 105 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 37 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 9 +
task-sdk/src/airflow/sdk/execution_time/context.py | 105 +-
.../src/airflow/sdk/execution_time/supervisor.py | 21 +
.../src/airflow/sdk/execution_time/task_runner.py | 26 +-
task-sdk/src/airflow/sdk/log.py | 25 +-
task-sdk/src/airflow/sdk/types.py | 2 +
task-sdk/tests/conftest.py | 42 +
task-sdk/tests/task_sdk/bases/test_hook.py | 2 +-
task-sdk/tests/task_sdk/bases/test_operator.py | 20 +-
task-sdk/tests/task_sdk/bases/test_sensor.py | 2 +-
.../definitions/decorators/test_task_group.py | 20 +-
task-sdk/tests/task_sdk/definitions/test_asset.py | 8 +-
.../task_sdk/definitions/test_asset_decorators.py | 7 +-
.../{test_connections.py => test_connection.py} | 124 +
task-sdk/tests/task_sdk/definitions/test_dag.py | 8 +-
.../tests/task_sdk/definitions/test_deadline.py | 1 +
.../tests/task_sdk/execution_time/test_context.py | 37 +-
.../task_sdk/execution_time/test_context_cache.py | 332 +++
.../task_sdk/execution_time/test_supervisor.py | 55 +-
.../task_sdk/execution_time/test_task_runner.py | 27 +-
task-sdk/tests/task_sdk/io/test_path.py | 2 +-
1010 files changed, 21233 insertions(+), 12031 deletions(-)
create mode 100644 airflow-core/docs/howto/sla-to-deadlines.rst
delete mode 100644 airflow-core/docs/img/hitl_approve_reject.png
delete mode 100644 airflow-core/docs/img/hitl_branch_selected.png
delete mode 100644 airflow-core/docs/img/hitl_branch_selection.png
delete mode 100644 airflow-core/docs/img/hitl_wait_for_input.png
delete mode 100644 airflow-core/docs/img/hitl_wait_for_multiple_options.png
delete mode 100644 airflow-core/docs/img/hitl_wait_for_option.png
create mode 100644
airflow-core/docs/img/ui-dark/demo_complex_dag_overview_with_failed_tasks.png
delete mode 100644
airflow-core/docs/img/ui-dark/demo_dag_overview_with_failed_tasks.png
create mode 100644 airflow-core/docs/img/ui-dark/hitl_approve_reject.png
create mode 100644 airflow-core/docs/img/ui-dark/hitl_branch_selected.png
create mode 100644 airflow-core/docs/img/ui-dark/hitl_branch_selection.png
create mode 100644 airflow-core/docs/img/ui-dark/hitl_wait_for_input.png
create mode 100644
airflow-core/docs/img/ui-dark/hitl_wait_for_multiple_options.png
create mode 100644 airflow-core/docs/img/ui-dark/hitl_wait_for_option.png
delete mode 100644 airflow-core/docs/img/ui-dark/tutorial_pipeline_dag_list.png
create mode 100644
airflow-core/docs/img/ui-dark/tutorial_pipeline_dag_list_trigger.png
create mode 100644
airflow-core/docs/img/ui-dark/tutorial_pipeline_dag_task_instance_logs.png
create mode 100644 airflow-core/docs/img/ui-light/admin_connections.png
create mode 100644
airflow-core/docs/img/ui-light/demo_complex_dag_overview_with_failed_tasks.png
delete mode 100644
airflow-core/docs/img/ui-light/demo_dag_overview_with_failed_tasks.png
create mode 100644 airflow-core/docs/img/ui-light/hitl_approve_reject.png
create mode 100644 airflow-core/docs/img/ui-light/hitl_branch_selected.png
create mode 100644 airflow-core/docs/img/ui-light/hitl_branch_selection.png
create mode 100644 airflow-core/docs/img/ui-light/hitl_wait_for_input.png
create mode 100644
airflow-core/docs/img/ui-light/hitl_wait_for_multiple_options.png
create mode 100644 airflow-core/docs/img/ui-light/hitl_wait_for_option.png
delete mode 100644
airflow-core/docs/img/ui-light/tutorial_pipeline_dag_list.png
create mode 100644
airflow-core/docs/img/ui-light/tutorial_pipeline_dag_list_trigger.png
create mode 100644
airflow-core/docs/img/ui-light/tutorial_pipeline_dag_task_instance_logs.png
delete mode 100644 airflow-core/newsfragments/46929.bugfix.rst
delete mode 100644 airflow-core/newsfragments/49779.significant.rst
delete mode 100644 airflow-core/newsfragments/50374.feature.rst
delete mode 100644 airflow-core/newsfragments/50693.significant.rst
delete mode 100644 airflow-core/newsfragments/51424.significant.rst
delete mode 100644 airflow-core/newsfragments/51639.significant.rst
delete mode 100644 airflow-core/newsfragments/52860.significant.rst
delete mode 100644 airflow-core/newsfragments/53631.misc.rst
delete mode 100644 airflow-core/newsfragments/53727.feature.rst
delete mode 100644 airflow-core/newsfragments/53796.misc.rst
delete mode 100644 airflow-core/newsfragments/54857.significant.rst
delete mode 100644 airflow-core/newsfragments/55508.feature.rst
copy airflow-core/src/airflow/{models => dag_processing}/dagbag.py (84%)
create mode 100644
airflow-core/src/airflow/migrations/versions/0085_3_1_0_downgrade_serialized_dag_version_to_v2.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0086_3_2_0_replace_asset_trigger_table_with_asset.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0087_3_2_0_change_serialized_dag_data_column_to_jsonb.py
copy
airflow-core/src/airflow/migrations/versions/{0011_2_9_0_add_dataset_expression_in_dagmodel.py
=> 0088_3_2_0_add_length_dag_bundle_team_bundle_name.py} (56%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/SelectFilter.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/HoverTooltip.tsx
copy airflow-core/src/airflow/ui/src/context/{timezone => hover}/Context.ts
(80%)
copy
airflow-core/src/airflow/ui/src/{components/AssetExpression/OrGateNode.tsx =>
context/hover/HoverProvider.tsx} (66%)
copy airflow-core/src/airflow/ui/src/{components/DataTable =>
context/hover}/index.ts (85%)
copy airflow-core/src/airflow/ui/src/context/{timezone/useTimezone.ts =>
hover/useHover.ts} (78%)
delete mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltipContent.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/richTooltipUtils.ts
delete mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/useDelayedTooltip.ts
copy airflow-core/src/airflow/ui/src/pages/{XCom/XComFilters.tsx =>
HITLTaskInstances/HITLFilters.tsx} (73%)
create mode 100644 airflow-core/tests/unit/models/test_team.py
delete mode 100644 airflow-core/tests/unit/utils/log/test_colored_log.py
create mode 100644
airflow-ctl/docs/images/diagrams/airflowctl_api_network_architecture_diagram.md5sum
create mode 100644
airflow-ctl/docs/images/diagrams/airflowctl_api_network_architecture_diagram.png
create mode 100644
airflow-ctl/docs/images/diagrams/airflowctl_api_network_architecture_diagram.py
delete mode 120000 airflow-ctl/src/airflowctl/_shared/timezones
create mode 100644 contributing-docs/03a_contributors_quick_start_beginners.rst
copy airflow-core/docs/privacy_notice.rst =>
contributing-docs/03b_contributors_quick_start_seasoned_developers.rst (65%)
delete mode 100644
devel-common/src/tests_common/test_utils/mock_security_manager.py
copy scripts/ci/docker-compose/ga.yml => go-sdk/Justfile (60%)
create mode 100644 go-sdk/bin/.gitignore
copy go-sdk/{sdk => bundle/bundlev1/bundlev1client}/doc.go (72%)
create mode 100644 go-sdk/bundle/bundlev1/bundlev1client/grpc.go
copy go-sdk/{sdk/errors.go => bundle/bundlev1/bundlev1server/doc.go} (67%)
create mode 100644 go-sdk/bundle/bundlev1/bundlev1server/impl/plugin.go
create mode 100644 go-sdk/bundle/bundlev1/bundlev1server/server.go
copy go-sdk/{sdk/errors.go => bundle/bundlev1/doc.go} (69%)
rename go-sdk/{worker => bundle/bundlev1}/registry.go (66%)
create mode 100644 go-sdk/bundle/bundlev1/registry_test.go
create mode 100644 go-sdk/bundle/bundlev1/schemas.go
copy go-sdk/{worker => bundle/bundlev1}/task.go (85%)
copy go-sdk/{worker => bundle/bundlev1}/task_test.go (82%)
copy go-sdk/{sdk/doc.go => celery/cmd/main.go} (88%)
create mode 100644 go-sdk/celery/commands/root.go
rename go-sdk/celery/{cmd => commands}/run.go (57%)
copy
airflow-core/src/airflow/api_fastapi/auth/managers/simple/datamodels/login.py
=> go-sdk/example/bundle/Justfile (60%)
rename go-sdk/example/{ => bundle}/main.go (50%)
rename go-sdk/example/{ => bundle}/main_test.go (100%)
create mode 100644 go-sdk/internal/protov1/plugin.pb.go
create mode 100644 go-sdk/internal/protov1/plugin.proto
create mode 100644 go-sdk/internal/protov1/plugin_grpc.pb.go
rename go-sdk/{celery/cmd/root.go => pkg/bundles/shared/config.go} (60%)
create mode 100644 go-sdk/pkg/bundles/shared/discovery.go
copy go-sdk/pkg/{api/init.go => bundles/shared/handshake.go} (65%)
create mode 100644 go-sdk/pkg/logging/server/server.go
create mode 100644 go-sdk/pkg/logging/server/server_test.go
create mode 100644 go-sdk/pkg/logging/shclog/shclog.go
rename go-sdk/{ => pkg}/worker/init.go (100%)
rename go-sdk/{ => pkg}/worker/runner.go (76%)
rename go-sdk/{ => pkg}/worker/runner_test.go (89%)
rename go-sdk/{ => pkg}/worker/task.go (82%)
rename go-sdk/{ => pkg}/worker/task_test.go (83%)
create mode 100644 go-sdk/sdk/connection.go
create mode 100644 go-sdk/sdk/connection_test.go
delete mode 100644 go-sdk/worker/mocks/Registry.go
delete mode 100644 go-sdk/worker/mocks/Task.go
delete mode 100644 go-sdk/worker/mocks/Worker.go
delete mode 100644 go-sdk/worker/registry_test.go
create mode 100644 providers/fab/docs/auth-manager/sso.rst
delete mode 100644
providers/google/tests/system/google/cloud/vertex_ai/example_vertex_ai_auto_ml_image_training.py
copy {airflow-core/src/airflow/_shared =>
providers/keycloak/src/airflow/providers/keycloak/auth_manager/services}/__init__.py
(100%)
copy providers/keycloak/src/airflow/providers/keycloak/auth_manager/{routes =>
services}/token.py (68%)
copy {airflow-core/src/airflow/_shared =>
providers/keycloak/tests/unit/keycloak/auth_manager/services}/__init__.py (100%)
create mode 100644
providers/keycloak/tests/unit/keycloak/auth_manager/services/test_token.py
create mode 100644
providers/standard/src/airflow/providers/standard/decorators/stub.py
copy providers/{openai/tests/unit/openai/test_exceptions.py =>
standard/tests/unit/standard/decorators/test_stub.py} (54%)
create mode 100644 scripts/ci/prek/check_contextmanager_class_decorators.py
create mode 100644 shared/logging/src/airflow_shared/logging/_config.py
rename task-sdk/tests/task_sdk/definitions/{test_connections.py =>
test_connection.py} (66%)
create mode 100644 task-sdk/tests/task_sdk/execution_time/test_context_cache.py