This is an automated email from the ASF dual-hosted git repository.
jscheffl pushed a change to branch
dependabot/npm_and_yarn/providers/edge3/src/airflow/providers/edge3/plugins/www/happy-dom-20.0.2
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 646bd7693a8 Bump happy-dom
add db8f00551d2 Bump happy-dom (#56687)
add 1ab5bb63fc0 Fix KeyError when accessing retry_delay on MappedOperator
without explicit value (#56605)
add 5d58c048b1a Decouple `Param` and `ParamsDict` from SDK during
deserialization (#55111)
add c28b21178b9 Fix custom timetable generate_run_id not called for manual
triggers (#56373)
add f14a880d76f Free disk space for mypy jobs (#56703)
add b3f90be0353 Enable PT011 rule to prvoider tests (#56698)
add 416c73e864b Fix memory leak in remote logging connection cache (#56695)
add 8f182ba910f Remove unnecessary use of mock item on test body (#56712)
add 501da16d448 fix: corrects otel serialization of file paths in dag
processor (#56665)
add 11f18a233ec Add Audit Logs detailed documentation (#56640)
add cafa7655b9a Optimize fail-fast check to avoid loading
``SerializedDAG`` (#56694)
add 4926999cf0f Prevent unnecessary kubernetes client imports in workers
(#56692)
add 65cfdc82824 Add ANSI support to log viewer (#56463)
add d8f276d1afb Fix AsyncToSync and serialization error (#56363)
add 8eb5d8565f1 Fixing YAML block scalar when providing sshKey for
git-sync (#56716)
add 6dd5793f3d1 Use correct API_VERSION for task sdk integration tests
(#56715)
add 532069332c2 Fix corrupted bare Git repository recovery in DAG bundles
(#56206)
add 8e5755bd5b1 Fix Databricks provider import error without fab provider
(#56702)
add b55528a2209 Add Greek UI translation (#56229)
add aab7f16c389 Add resize function for Dag Documentation (#56344)
add 235d6f830c1 style: modify log highlight color (#56379)
add 3b22cdeaf77 Fix view for many DAG tags (#55604)
add 8ddadaf01a8 Remove mock_supervisor_comms in core connection tests
(#56714)
add d58da15d1c4 Update refresh token flow (#55506)
add 5ae3eaf85ca chore(module-loading): remove outdated TODO and clarify
import_string docstring (#56713)
add c0f9d11ddb7 Improve DAG and task missing error handling in callbacks
(#56725)
add 52e1b3ea3d9 Correct 'Dag' to 'DAG' for code snippets in provider docs
(#56727)
add 16e9b35f0e9 Fix task retries executing wrong method after deferred
state (#56731)
add c47b1ae38d6 Fix supported Python versions in README (#56734)
add 08150192d51 Fix execution failures with NULL dag_run.conf during
upgrades (#56729)
add 98eb4fbeca4 feat: adds support for OpenTelemetry standard environment
variables f… (#56634)
add 17037e6a2cf Lazy import PodGenerator for deserialization (#56733)
add 6afab7b3c84 AIP-67 - Multi-team: Verify dag/task executors are present
in team (#55973)
add 6901fe09546 Gate multi team executor loader changes with feature flag
(#56740)
add af8a4b5457a Free up disk space in k8s tests (#56746)
add 86b0e98a868 Migrate CreateAssetEventsBody to Pydantic v2 ConfigDict
(#56697)
add 0f5b91e5661 Bump upgrade check versions (#56743)
add 1338a59be2a Add better diagnostics for E2E tests (#56742)
add 1e0f2b00d77 Fix: Preserve key structure when adding plural forms in
add_keys (#56753)
add 51016db18d0 Fix formatting in production-guide.rst (#56754)
add 1ba8c1d098c feat: async slack notifier (#56685)
add 9cc63bf31ea Update docs for archive site modifications (#56764)
add d2713905407 Update example dms system tests for sqla 2 (#56744)
add f832735f37a Align HITL frontend and backend API filtering (#56759)
add 380fa70343b Add auto refresh to backfill banner (#56226)
add 3383e777e91 Fix Advanced Search button overlap in DAG List View
(#56588)
add 9ef4f12a5bc Fix DAG processor crash with pre-import module
optimization (#56773)
add d8b33009249 Azure IAM/Entra ID support for SnowflakeHook (#55874)
add 352392f41eb Clean prek cache before running static checks (#56788)
add b65ce68531d Updated codeowners for ci/dev tooling (#56798)
add a7f5337c2a1 Summarize warnings should run after all tests produced
warnings (#56797)
add c54c1a97220 Add comprehensive compatibility imports for Airflow 2 to 3
migration (#56790)
add 52250f64f5b Add retry for e2e test_remote_logging_s3 (#56811)
add 965c76df1d8 run fastapi app within the parent process in dev mode
(#56800)
add 0bbe92ff3fe Reorder fastapi app list checks (#56812)
add 6014289b1cb Update all hatch versions in all files (#56784)
add d4d8d2fbf0d Fix mypy type errors in apache-drill provider for
sqlalchemy 2 upgrade (#56795)
add e2b1c056e5f fix mypy type errors in test_pool.py (#56801)
add afc4924492c fix mypy type errors in test_mark_tasks.py (#56804)
add f5fd3100bf7 fix mypy type errors in test_hitl.py (#56805)
add 6d977a925e8 Ensure dag.test uses serialized dag for testing (#56660)
add 556d179d35b Restore prek cache in a more robust way (#56796)
add 1249af1dfad Simplify version-specific imports in the Google provider
(#56793)
add 95c7eaa69c4 i18n(Ko): add missing translations(Oct 19) (#56823)
add 8cd988dad76 Fix MyPy type errors in test_dags.py (#56735) (#56770)
add 8836376a778 Switch mypy prek hooks to be executed on pre-push, not on
pre-commit (#56829)
add c07eb2850c3 change from class method to instance method call on rtif
(#56645)
add da66c417269 Fix .airflowignore order precedence (#56509)
add b7cb84e65ff Fix get_ti_count and get_task_states access in
callbackrequests (#56822)
add a370e11a42a remove deprecation (#56835)
add 2eb48e23c93 Upgrade uv and remove accidental uv sync (#56834)
add a3175f8cedc When prek install-hooks fails, log is now shown in CI
(#56839)
add 325bd72d7df Fix MyPy type errors in dot_renderer.py (#56841)
add 3cb7fc0f46b fix mypy type errors in test_variable.py (#56802)
add 134af4f3820 Replace custom breeze upgrade check with uv tool upgrade
(#56844)
add c88f86a229d Add build-info to summarize-warnings prerequisites (#56850)
add c2bccf13b00 update serializer document to reflect the latest change in
codebase (#56269)
add 59089cda666 Synchronize and fix ARM CI workflows (#56856)
add 1887b041934 Add PL translations 2025.10.18 (#56825)
add 2e78e01248f Properly name the regular/remote leg tests (#56859)
add 2e1422be30e Add fail_on_file_not_exist to SFTPToGCSOperator (#56528)
add 788fdc41c32 update broken link (#56862)
add fa183444c38 Fix mypy type errors in Neo4j provider for SQLAlchemy 2
upgrade (#56785)
add 80911e83390 Implement integration test for airflowctl with 3.1 (#56124)
add 4011709c951 fix typos (#56864)
add 4626bc98bed Fix: Handle SQLAlchemy_URI for PrestoHook (#56298)
add bb8a7b97e8b feat: Add lazy filtering support for inlet events by time
range, ordering, and limit (#54891)
add 503358e8154 Handle get_queue_info todo in JenkinsJobTriggerOperator
(#54207)
add 310f268b290 Check for console in validate_cmd_result (#56876)
add 7d02211e140 Replace DeprecationWarning with DeprecatedImportWarning in
airflow-core (#56836)
add a2ee0d80d69 UI - Download Tasks Logs button (#56771)
add b606608ad3e Fix task_log_sources naming for test_remote_logging_s3
(#56869)
add dc4545ba39d Fix mypy type errors in Teradata provider for SQLAlchemy 2
upgrade (#56861)
add fc565171d2d fix mypy type errors in common/sql provider for sqlalchemy
2 upgrade (#56824)
add e00dece3bcb fix subject column for tagging in preparing providers
release (#56885)
add 0f4888f20c7 Make `AwaitMessageTrigger` inherit `BaseEventTrigger`
(#56741)
add 14d42eb063f Set static type as `datetime` in models when type is
`UtcDateTime` (#56780)
add f6ed4be72f4 fix mypy type errors in test_connection.py (#56803)
add 5f3ed2385d2 fix mypy type errors in opensearch provider for sqlalchemy
2 upgrade (#56819)
add ed3dec85e87 fix mypy type errors in elasticsearch provider for
sqlalchemy 2 upgrade (#56818)
add df65e63c688 Bump eslint from 9.37.0 to 9.38.0 in
/providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates
group across 1 directory (#56847)
add b1777899662 `shared/README.md`: fix typo `airlow` -> `airflow` (#56898)
add 2d1aa75a889 Replace --force flag with -f in prek install commands for
Breeze setup docs (#56888)
add f46326bd4ee Add airflowctl integration tests to CODEOWNERS (#56900)
add 9b02bafa0a6 Add SQLA's `mapped_column` to common-compat (#56880)
add d0e6222ef8c Handle invalid token in `JWTRefreshMiddleware` (#56904)
add 3eda4081921 fix mypy type errors in imap provider for sqlalchemy 2
upgrade (#56810)
add a2455c0ceda Dag task named 'root' causes blue screen on hover (#56902)
add 22e347d1479 Pass args/kwargs to super in local executor (#56786)
add 7c9ffa5bf6b feat: add async jira notifier (#56326)
add e24cfb0fae9 Common.Compat: Extract reusable compat utilities and
rename to sdk (#56884)
add 0cc7da3369f Align HITL frontend and backend API sorting parameters
(#56030)
add 8ffb7b17a33 fix(scheduler): load dag_run eagering for execution API
validation (#56916)
add d83e80ff615 FAB: reuse ORM type hints from common-compat (#56903)
add e8194f12e8e Introduce generic Callbacks to support running callbacks
on executors (#54796)
add 4791bbb5206 Fix DAG params API contract broken by #55111 (#56831)
add c99f814ddb2 use AIRFLOW__CELERY__POOL=solo when debugging
celery-worker (#56868)
add 6802605ee8d Fix mypy errors for sqla2 in aws hooks (#56751)
add f32fdf86622 Close Catalan gap (#56905)
add 8d4d4b164e2 Add support of deferable mode for
CloudDataTransferServiceRunJobOperator (#56711)
add 389a34bddd7 Move container-related functions from PodManager to a
separate file (#56700)
add e24d78c3ef2 Add security checkpoints to release processes. (#56927)
add d16a8207b71 Restore timtable active_runs_limit check (#56922)
add 04e59381ef5 Bump psutil from 7.1.0 to 7.1.1 in /dev/breeze (#56899)
add d9790957192 update celery broker_url config description (#56917)
add 4dec042ff31 Pass required remote_host arg to SSHHook (#55664)
add 02cea461679 let PubsubPullTrigger exceptions propagate to triggerer
framework (#56400)
add e33598939d9 Serialize pydantic models in json mode. This ensures the
dict is json serializable. (#56736) (#56878)
add 209fb2e923b Revert "fix(scheduler): load dag_run eagering for
execution API validation (#56916)" (#56943)
add 800f733c22f fix: enable api to clear ti instances by specifying map
indexes (#56346)
add a244a0166a1 Add Thai UI translation (#56353)
add 652dd855aa0 fix MyPy type errors in test_assets.py ,
test_mapped_task_upstream_dep.py and test_serialized_objects.py. for
SQLAlchemy 2 compatibility (#56806)
add a35602c691c Simplify version-specific imports in the Standard provider
(#56867)
add df0e1ae9286 SQLA2/FAB: fix some type hints (#56928)
add d7174df9b81 Fix refresh token middleware error handling (#56892)
add c26fc9334cd Bump vite (#56914)
add 871ff3a010c fix: Add ``max_retry_delay`` to ``MappedOperator`` model
(#56396)
add 0e3312d035e SQLA2: Fix assorted mypy issues in core (#56930)
add 82d2aff08f2 fix mypy type errors in dag_processing for sqlalchemy 2
upgrade (#56843)
add f3ad20aad80 fix: Fix MyPy type errors in CLI commands for SQLAlchemy 2
compatibility (#56907)
add 34ac24fa27b Deprecate old vertex ai generative operators and introduce
new gen ai (#56950)
add 4f7908cc883 docs: Enhance triggering_asset_event retrieval
documentation in DAGs (#52666) (#52674)
add 9b1beb4b51a Bump vite from 7.1.5 to 7.1.11 in
/airflow-core/src/airflow/ui (#56912)
add 9366ab2f559 Update duration format to show milliseconds (#56775)
add 04e6398eaca Bump happy-dom from 17.4.6 to 20.0.2 in
/airflow-core/src/airflow/ui (#56684)
add 657cde25713 SQLA2: fix mypy violations in
`api_fastapi/.../calendar.py` (#56944)
add fbcc0b02edd fix: fix mypy type errors in test_otel.py (#56958)
add 1c62f7541a6 Remove celery code from the Go Worker (#56964)
add 23f97a64651 fix: fix mypy errors in tests/unit/api_fastapi/common/
(#56960)
add 7a81ed0e00f Update go module versions of go-sdk (#56966)
add c3f53b1d598 Fix topological sort for Grid View (#56963)
add 4b5a1c4954e Rename the package for the Airflow go edge worker so it is
`go install`able (#56970)
add 25202a8a703 Fix import datetime in `Job` (#56972)
add 051160409fb Add configurable timeout for Execution API requests
(#56969)
add 62a0eb71731 Fix MyPy type error in workloads.py for SQLAlchemy 2
compatibility (#56906)
add 1a654344f03 Fix main. Fix `test_athena_sql.py` (#56974)
add 0b3a294b51a SQLA2: Partially fix type hints in the edge3 provider
(#56873)
add 21f468cb8ab fix: fix mypy errors in utils/log (#56967)
add ded31721d01 Fix MyPy test errors in api_fastapi/core_api/routes/ui/*
(#56918)
add bfa4a1bb504 Fix deprecated GitHub API authentication in airflow-github
script (#56978)
add 02fef9d6203 Fix FlexibleForm rendering when all params have sections
(#56870)
add d7b440bf431 SQLA2: fix mypy issue with getting the dialect name
(#56941)
add e6e337061ef docs:improve plugin system documentation for clarity and
completeness (#56177)
add 8a537eee323 Migrate asana provider to ``common.compat`` (#57007)
add c61c9e4c6c3 Migrate airbyte provider to ``common.compat`` (#56996)
add 1a610af8ce3 Migrate dbt.cloud provider to ``common.compat`` (#56999)
add 84a467e8e61 Migrate weaviate provider to ``common.compat`` (#57019)
add 339904d9fef Migrate pgvector provider to common.compat (#57024)
add a8c4499af56 Migrate cncf/kubernetes provider to ``common.compat``
(#57023)
add 7decce8ad6b Migrate hashicorp provider to common.compat (#57015)
add 08ff167a7b0 Migrate jdbc and jenkins providers to ``common.compat``
(#57012)
add 44a29da2e67 Migrate openai provider to ``common.compat`` (#57020)
add a04fc1407d6 Migrate sendgrid provider to ``common.compat`` (#57021)
add 28f4379ee4c Migrate ssh provider to ``common.compat`` (#57004)
add a8a0d62186a Migrate apprise provider to ``common.compat`` (#57005)
add b7ee3d759a0 Migrate amazon provider to ``common.compat`` (#56994)
add b52c7e66689 Migrate microsoft providers to ``common.compat`` (#56995)
add d1a58efbc00 Migrate snowflake provider to ``common.compat`` (#57003)
add 29aa4dc9e08 Migrate databricks provider to ``common.compat`` (#56993)
add 6f50f35292c Migrate atlassian-jira provider to ``common.compat``
(#57002)
add dacc23d8748 Migrate arangodb provider to ``common.compat`` (#57001)
add e3a4f703ac2 Migrate zendesk provider to ``common.compat`` (#56997)
add 88406a5fd6c Migrate alibaba provider to ``common.compat`` (#57000)
add 62b441164dd Migrate github provider to ``common.compat`` (#57009)
add d6628a5c6f5 Migrate git provider to ``common.compat`` (#57008)
add b0d396af042 Migrate edge3 provider to ``common.compat`` (#56998)
add e2289f9f90a Remove state dependency from airflow core in sdk (#55292)
add 6eb9d9e578b Fix Outlet Event Extra Data is Empty in Task Instance
Success Listener (#54568)
add bca6675862b ci(github): move Guan Ming as Taiwan translation code
owner (#57034)
add 79738baae90 feat(i18n): fill the Taiwan translation gap (#57035)
add 8d71c0710c5 Fix Extra Links translation key. (#57030)
add 70f9cf6082b docs(ui/grid): add a comment to explain why dag_id need to
be filtered again (#57033)
add c2c81525c05 Update readme docs for Go SDK (#56975)
add 21c15cb3cc5 Enable PT011 rule to airflow-core tests (#57014)
add 757db273916 fix get latest serialized_dag model query to prevent "Out
of sort memory" error (#55589)
add 61e75193178 Enable PT011 rule to provider tests (#56578)
add 833717a53a2 fix(scheduler): load dag_run eagering for execution API
validation (#57010)
add 8668fe57527 Fix dags list not rendering (#57037)
add 4e4621251a7 Fix dag list cache invalidation on favouriting a dag
(#57039)
add 05258c9448c Caught if added commands is not an airflowctl command
(#56991)
add a1951633acf Close German translation gaps for full UI translation
2025-10-21 (#56980)
add 5ed4ffe4ac0 fix: fix mypy errors in /api/common/airflow_health.py
(#57017)
add ea01d3c34a6 Migrate postgres provider to ``common.compat`` (#57022)
add 1e7639dbbab Fix main static checks (#57050)
add 33820c0ef81 Update Cadwyn migrations with v3-1-test changes (#57011)
add f9ddaa62ddb Fix static checks in go-sdk/README.md (#57052)
add ef5977c0b53 Throw NotImplementedError error when
fail_when_dag_is_paused is used in TriggerDagRunOperator with Airflow 3.x
(#56965)
add e6038eee78f Migrate tableau, telegram, trino, teradata providers to
``common.compat`` (#57013)
add 8843d4e71ce Update French local for 3.1.1 (#57043)
add 4c35cd2006a Fix: Adjust PanelButtons spacing and alignment (#56570)
add 9d51b42ded6 Migrate Apache providers & Elasticsearch to
``common.compat`` (#57016)
add ad809637152 Migrate redis provider to ``common.compat`` (#57006)
add 23140992902 Add possibility of removing extra translations missing in
en (#57060)
add b49948152b4 Use the correct backfill command in airflowctl tests
(#57071)
add 7ab6dc2ecf3 Prepare release for Oct 2025 wave of providers (#57029)
add a8f2d975983 Fix grid links for tasks with retries (#57063)
add c3daef9fa93 HTTP Notifier implementation (#56160)
add f78196710b0 fix: fix mypy errors in api_fastapi/logging/ (#57096)
add 3e1b02a1a1a Migrate remaining providers to common.compat compatibility
layer in singularity (#57077)
add cfa11c92ed3 Migrate remaining providers to common.compat compatibility
layer (#57073)
add 8bfd7f1e7e1 Migrate remaining providers to common.compat compatibility
layer in Salesforce (#57088)
add 52dd46d9252 Migrate remaining providers to common.compat compatibility
layer (#57093)
add 6fb4e26f981 Port Airflow Python client changes (#57103)
add 7cec2a78ac8 Fix triggerer errors after Airflow 2 to 3 migration
(#55884)
add b2f78738f7f Extract prek hooks for Edge provider (#57104)
add f1f051c24cd Migrate remaining providers to common.compat compatibility
layer in facebook (#57079)
add 3271d5ff5ea Migrate segment provider to ``common.compat`` (#57078)
add b153d5e9ae6 Migrate discord provider to ``common.compat`` (#57114)
add 44f8479b159 Migrate slack provider to ``common.compat`` (#57110)
add b2f8b9fce27 Make SerializedParam.resolve not raise by default (#56923)
add fa60a7a02f1 Migrate retry handler in task SDK API client to use
tenacity instead of retryhttp (#56762)
add 8a7bc17a57a Expand task sdk integration tests to cover task instance
endpoints (#57056)
add 080eed68466 add my username (#57128)
add f8f976dffcf Remove MySQL client (#57146)
add 6b37361b8bf Bump `common.compat` provider to 1.8 for some providers
(#57115)
add b73f5839d93 Migrate cloudant provider to common.compat compatibility
layer (#57070)
add b55fca0330f Fix mypy type errors in collection.py (#57095)
add d31c7326967 Migrate `common.sql` provider to `common.compat` (#57075)
add 42e73140b53 fix mypy type errors in prev_dagrun_dep.py (#57119)
add 0f1ba974f97 Fix: Fix MyPy type errors in manager.py (#57090)
add da32b682d1b Fix connection access in triggerer for deferrable
operators (#57154)
add 5f2d9610b9d SQLA2 Migration: Fix airflow/utils/context.py MyPy error
(#57122)
add 66bf2c344c9 Migrate `apache/kylin` provider to `common.compat` (#57132)
add 026444b1ad2 Migrate `ftp` provider to `common.compat` (#57127)
add c8f2c967dbb Migrate `opsgenie` provider to `common.compat` (#57121)
add fa5e3fb5ba3 Migrate `Pagerduty` provider to `common.compat` (#57120)
add 68d2fabdbf9 Migrate `Papermill` provider to `common.compat` (#57118)
add fc155f27b49 Migrate `yandex` provider to `common.compat` (#57116)
add bd22d28eb91 Migrate `influxdb` provider to `common.compat` (#57092)
add 6838c82dbac Migrate samba provider to ``common.compat`` (#57082)
add 560a5fe270e Migrate `http` provider to `common.compat` (#57089)
add f9b38d28862 Update UI contributing docs (#56987)
add 93b97d0a671 Migrate neo4j provider to `common.compat` (#57149)
add e155012353b Migrate pinecone provider to `common.compat` (#57137)
add 82bff7e98e8 Migrate presto provider to common.compat (#57136)
add 6092ed468db Migrate Oracle providers to `common.compat` compatibility
layer (#57133)
add e55ab6ea43f Migrate `datadog` provider to `common.compat` (#57074)
add 35bbcd0019d Migrate `opensearch` provider to `common.compat` (#57129)
add 5013aad00b3 Fix dag-processor crash when renaming DAG tag case on
MySQL (#57113)
add 970d7dac23a Use `exc_info` for task instance heartbeat failure
exception logging (#57172)
add 84c882a1d07 Fix DAG bundle retrieval from S3 (#57178)
add 0af0661fb97 Extract prek hooks for Keycloak provider (#57182)
add a158ded9aa8 Migrate smtp provider to `common.compat` (#57105)
add 8ecca1dfbab Resolves the CI failure in the upgrade-important-versions
hook. (#57185)
add 881c0a3cc6e Extract prek hooks for Common.Compat provider (#57183)
add 7289f4f5475 Move subprocess utility closer to usage in google beam
(#57187)
add f52c0f6685f Bump zizmor version to 1.16.0 to fix CI (#57190)
add a14cd327c4d fix MyPy type errors in common (#56807)
add 267882a4672 Extract prek hooks for FAB provider (#57181)
add 23a4d8f5688 refactor: migrate models to use mapped_column for
SQLAlchemy 2.0 compatibility (#56827)
add 7b78a72e6b5 Migrate openfaas provider to common.compat (#57134)
add b92ae3d1d1d Migrate sftp provider to `common.compat` (#57111)
add 78837ef2c4f Update release process for providers to use RAT 0.17
(#57201)
add 063643911ef Deprecate subprocess exec utils from airflow core (#57193)
add 3b97c94376a Fix dag processor crash by ignoring callbacks from other
bundles (#57192)
add 9adb256aba3 fix: Add auto-refresh functionality to Required Actions
page (#56404)
add c54922e0d80 Fix Link to Dag in Plugin (#55642)
add 3eac6805ade Fixing some typos and spelling errors (#57186)
add 9fa5773308f Migrate openlineage provider to common.compat (#57124)
add 57f3d91efb7 Revert "Fix main. Fix `test_athena_sql.py` (#56974)"
(#57098)
add 5f6a2ab5d33 Migrate google provider to `common.compat` (#57130)
add 7bd21a641b4 Add missing `bucket_name` to `get_file_metadata` in
`S3Hook`
add c52c62f3e31 Migrate `common/sql` provider to `common.compat` (#57135)
add cf709afa6a1 Upgrade `flask-appbuilder` to 5.0.1 (#57170)
add 491f4a77313 Move subprocess utility closer to usage in python venv
operators (#57189)
add 60c38de195f Upgrade cloudant provider to use compat provider 1.8.0
(#57202)
add 05e43837f6c Migrate MySQL provider to `common.compat` (#57165)
add d9dd661d2f9 Fix static check (#57211)
add eb6f2c3e387 Migrate Docker provider to `common.compat` (#57117)
add 1d96f675991 Migrate grpc provider to common.compat (#57087)
add a92319ac832 Fix Pagerduty tests for latest version 6.0.0 (#57216)
add cf991d84230 Add task instance integration tests for rtif, heartbeat,
state transitions (#57198)
add 86339245567 Add missing translations PL 2025.10.22 (#57059)
add e75dd479e9a Add dependabot and code-scanning reviews before release
(#57227)
add 880c2703c8a Bump prek to 0.2.11 and pip to 25.3 (#57228)
add 551fb3adf8f Update airflow-api.service (#53842)
add b37016084ed Fix systemd service files issues (#57126)
add cf82ae49a74 Make single workflow to run both AMD and ARM builds
(#56887)
add 427f3fa4ab8 refactor sync_bundles_to_db (#57150)
add 2d3efa900de Fix: Handle string formatted conf param in
TriggerDagRunOperator (#57214)
add c5b7fbb369f Automatically publish "apache-airflow-providers" docs
(#57229)
add 90e3926868d Review and modernize release check process for Airflow:
(#57203)
add 1d422c6fd33 i18n(Ko): add missing translations(Oct 25) (#57240)
add 0ce2f5c866d CI: Fix workflow name (#57246)
add 10ae2b3bf56 Refactor DAG deactivation logic (#57233)
add 1039a4605a6 Fixes inconsistency where other dbt operators already
supported hook_params (#57242)
add 505d9e42392 Auto-compile UI assets on Breeze start-airflow command
(#57219)
add d75002208c6 Update release docs for Helm Chart to use breeze
workflow-run (#57255)
add 4f3cf811c17 Fix runner type assignment in selective checks (#57254)
add 045fbc5d80d Extract prek hooks for Providers (#57250)
add 35ab7af0543 SQLA2: fix mypy violations in core_api/security.py (#57249)
add d75e91340d3 Disable some integration tests for ARM (#57259)
add fb601d89deb CHG: image (#56593)
add a0b4d2979bf Only show latest minor versions in version drop-down in
docs (#57243)
add 4e66830a3d8 Migrate `mongo` provider to `common.compat` (#57147)
add 63a5cfe689d Migrate `imap` provider to `common.compat` (#57091)
add 5a28c4499da Fix n+1 query to fetch tags in the dags list page (#57270)
add f515fe35274 Bump vite from 7.1.5 to 7.1.11 in
/dev/react-plugin-tools/react_plugin_template (#57200)
add ccad20865e3 Bump happy-dom
add 951a3489ae3 Compile Edge3 assets
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 (646bd7693a8)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/providers/edge3/src/airflow/providers/edge3/plugins/www/happy-dom-20.0.2
(951a3489ae3)
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:
.dockerignore | 1 +
.github/CODEOWNERS | 47 +-
.github/actions/breeze/action.yml | 8 +
.github/actions/install-pre-commit/action.yml | 88 -
.github/actions/install-prek/action.yml | 37 +-
.github/boring-cyborg.yml | 6 +
.github/dependabot.yml | 5 +
.github/workflows/additional-prod-image-tests.yml | 33 +
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/airflow-e2e-tests.yml | 10 +-
.github/workflows/basic-tests.yml | 14 +-
.github/workflows/{ci-amd.yml => ci-amd-arm.yml} | 155 +-
.github/workflows/ci-arm.yml | 615 ---
.github/workflows/ci-image-checks.yml | 8 +-
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/k8s-tests.yml | 3 +
.github/workflows/prod-image-extra-checks.yml | 23 +-
.github/workflows/release_dockerhub_image.yml | 14 +-
.gitignore | 4 +
.pre-commit-config.yaml | 381 +-
.rat-excludes | 143 +-
Dockerfile | 92 +-
Dockerfile.ci | 94 +-
README.md | 12 +-
.../logging-monitoring/metrics.rst | 11 +
.../logging-monitoring/traces.rst | 9 +
.../docs/administration-and-deployment/plugins.rst | 37 +-
.../authoring-and-scheduling/asset-scheduling.rst | 88 +-
.../docs/authoring-and-scheduling/serializers.rst | 37 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 4264 ++++++++++----------
airflow-core/docs/migrations-ref.rst | 6 +-
airflow-core/docs/security/audit_logs.rst | 613 ++-
airflow-core/src/airflow/__init__.py | 4 +-
.../src/airflow/api/common/airflow_health.py | 9 +-
airflow-core/src/airflow/api/common/trigger_dag.py | 4 +-
airflow-core/src/airflow/api_fastapi/app.py | 6 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 11 +-
.../auth/managers/simple/ui/package-lock.json | 24 +-
.../auth/managers/simple/ui/package.json | 4 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 486 ++-
.../auth/middlewares}/__init__.py | 0
.../api_fastapi/auth/middlewares/refresh_token.py | 75 +
.../src/airflow/api_fastapi/common/db/common.py | 6 +-
.../src/airflow/api_fastapi/common/db/dags.py | 3 +-
.../src/airflow/api_fastapi/core_api/app.py | 6 +
.../api_fastapi/core_api/datamodels/assets.py | 7 +-
.../api_fastapi/core_api/datamodels/dag_run.py | 17 +-
.../api_fastapi/core_api/datamodels/dags.py | 7 +-
.../core_api/datamodels/task_instances.py | 6 +-
.../api_fastapi/core_api/datamodels/tasks.py | 9 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 42 +-
.../api_fastapi/core_api/routes/public/auth.py | 21 -
.../api_fastapi/core_api/routes/public/hitl.py | 1 +
.../core_api/routes/public/task_instances.py | 27 +-
.../api_fastapi/core_api/routes/ui/assets.py | 11 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 7 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 8 +-
.../api_fastapi/core_api/routes/ui/dashboard.py | 12 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 4 +-
.../api_fastapi/core_api/routes/ui/structure.py | 2 +-
.../src/airflow/api_fastapi/core_api/security.py | 19 +-
.../api_fastapi/core_api/services/ui/calendar.py | 39 +-
.../execution_api/datamodels/taskinstance.py | 2 +-
.../execution_api/routes/asset_events.py | 36 +-
.../execution_api/routes/task_instances.py | 13 +-
.../api_fastapi/execution_api/versions/__init__.py | 6 +-
.../versions/{v2025_10_10.py => v2025_10_27.py} | 17 +-
.../versions/{v2025_10_10.py => v2026_01_01.py} | 0
.../src/airflow/api_fastapi/logging/decorators.py | 6 +-
airflow-core/src/airflow/assets/manager.py | 3 +-
.../src/airflow/cli/commands/api_server_command.py | 54 +-
.../src/airflow/cli/commands/dag_command.py | 16 +-
.../src/airflow/cli/commands/task_command.py | 8 +-
.../src/airflow/config_templates/config.yml | 9 +
.../src/airflow/dag_processing/bundles/manager.py | 9 +-
.../src/airflow/dag_processing/collection.py | 84 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 34 +-
airflow-core/src/airflow/dag_processing/manager.py | 46 +-
.../src/airflow/dag_processing/processor.py | 84 +-
airflow-core/src/airflow/datasets/__init__.py | 4 +-
airflow-core/src/airflow/datasets/metadata.py | 3 +-
.../src/airflow/executors/executor_loader.py | 10 +-
.../src/airflow/executors/local_executor.py | 4 +-
airflow-core/src/airflow/executors/workloads.py | 73 +-
airflow-core/src/airflow/jobs/job.py | 31 +-
.../src/airflow/jobs/scheduler_job_runner.py | 34 +-
.../src/airflow/jobs/triggerer_job_runner.py | 8 +-
airflow-core/src/airflow/metrics/otel_logger.py | 17 +-
...py => 0090_3_2_0_add_fail_fast_to_dag_table.py} | 25 +-
.../0091_3_2_0_restructure_callback_table.py | 101 +
airflow-core/src/airflow/models/__init__.py | 2 +
airflow-core/src/airflow/models/asset.py | 29 +-
airflow-core/src/airflow/models/backfill.py | 25 +-
airflow-core/src/airflow/models/callback.py | 208 +
airflow-core/src/airflow/models/dag.py | 24 +-
airflow-core/src/airflow/models/dag_version.py | 5 +-
airflow-core/src/airflow/models/dagbag.py | 4 +-
airflow-core/src/airflow/models/dagbundle.py | 4 +-
airflow-core/src/airflow/models/dagcode.py | 5 +-
airflow-core/src/airflow/models/dagrun.py | 33 +-
airflow-core/src/airflow/models/dagwarning.py | 3 +-
.../src/airflow/models/db_callback_request.py | 38 +-
airflow-core/src/airflow/models/deadline.py | 6 +-
airflow-core/src/airflow/models/errors.py | 4 +-
airflow-core/src/airflow/models/hitl.py | 5 +-
airflow-core/src/airflow/models/hitl_history.py | 39 +-
airflow-core/src/airflow/models/log.py | 5 +-
airflow-core/src/airflow/models/mappedoperator.py | 10 +-
airflow-core/src/airflow/models/pool.py | 4 +-
.../src/airflow/models/renderedtifields.py | 2 +-
airflow-core/src/airflow/models/serialized_dag.py | 22 +-
airflow-core/src/airflow/models/taskinstance.py | 20 +-
.../src/airflow/models/taskinstancehistory.py | 11 +-
airflow-core/src/airflow/models/tasklog.py | 4 +-
airflow-core/src/airflow/models/taskreschedule.py | 6 +-
airflow-core/src/airflow/models/trigger.py | 8 +-
airflow-core/src/airflow/models/xcom.py | 3 +-
airflow-core/src/airflow/secrets/__init__.py | 4 +-
.../airflow/serialization/definitions/notset.py | 10 +-
.../src/airflow/serialization/definitions/param.py | 155 +
.../airflow/serialization/definitions/taskgroup.py | 4 +
.../airflow/serialization/serialized_objects.py | 83 +-
.../airflow/serialization/serializers/pydantic.py | 2 +-
.../src/airflow/ti_deps/deps/prev_dagrun_dep.py | 10 +-
airflow-core/src/airflow/timetables/datasets.py | 3 +-
airflow-core/src/airflow/traces/otel_tracer.py | 6 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 6 -
.../ui/openapi-gen/queries/ensureQueryData.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 13 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 3 +-
.../ui/openapi-gen/requests/services.gen.ts | 26 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 30 +-
airflow-core/src/airflow/ui/package.json | 7 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 587 +--
airflow-core/src/airflow/ui/public/i18n/README.md | 12 +
.../ui/public/i18n/locales/ar/components.json | 4 +
.../airflow/ui/public/i18n/locales/ar/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/ca/common.json | 9 +-
.../ui/public/i18n/locales/ca/components.json | 8 +
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 2 +
.../airflow/ui/public/i18n/locales/ca/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/ca/hitl.json | 3 +
.../airflow/ui/public/i18n/locales/de/common.json | 5 +
.../ui/public/i18n/locales/de/components.json | 12 +-
.../airflow/ui/public/i18n/locales/de/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/de/hitl.json | 5 +
.../airflow/ui/public/i18n/locales/el/admin.json | 166 +
.../airflow/ui/public/i18n/locales/el/assets.json | 30 +
.../airflow/ui/public/i18n/locales/el/browse.json | 26 +
.../airflow/ui/public/i18n/locales/el/common.json | 318 ++
.../ui/public/i18n/locales/el/components.json | 134 +
.../src/airflow/ui/public/i18n/locales/el/dag.json | 154 +
.../airflow/ui/public/i18n/locales/el/dags.json | 96 +
.../ui/public/i18n/locales/el/dashboard.json | 45 +
.../airflow/ui/public/i18n/locales/el/hitl.json | 34 +
.../airflow/ui/public/i18n/locales/el/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/en/common.json | 5 +
.../ui/public/i18n/locales/en/components.json | 8 +
.../airflow/ui/public/i18n/locales/en/hitl.json | 5 +
.../ui/public/i18n/locales/es/components.json | 4 +
.../airflow/ui/public/i18n/locales/es/dags.json | 3 +-
.../ui/public/i18n/locales/fr/components.json | 10 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 2 +
.../airflow/ui/public/i18n/locales/fr/dags.json | 3 +-
.../ui/public/i18n/locales/he/components.json | 4 +
.../airflow/ui/public/i18n/locales/he/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/hi/common.json | 3 -
.../ui/public/i18n/locales/hi/components.json | 4 +
.../src/airflow/ui/public/i18n/locales/hi/dag.json | 5 +-
.../airflow/ui/public/i18n/locales/hi/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/hu/common.json | 2 -
.../ui/public/i18n/locales/hu/components.json | 4 +
.../airflow/ui/public/i18n/locales/hu/dags.json | 3 +-
.../ui/public/i18n/locales/it/components.json | 4 +
.../airflow/ui/public/i18n/locales/it/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/ko/common.json | 7 +
.../ui/public/i18n/locales/ko/components.json | 8 +
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 2 +
.../airflow/ui/public/i18n/locales/ko/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/ko/hitl.json | 5 +
.../ui/public/i18n/locales/nl/components.json | 8 +-
.../airflow/ui/public/i18n/locales/nl/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/pl/common.json | 5 +
.../ui/public/i18n/locales/pl/components.json | 12 +
.../airflow/ui/public/i18n/locales/pl/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 5 +
.../ui/public/i18n/locales/pt/components.json | 4 +
.../airflow/ui/public/i18n/locales/pt/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/th/admin.json | 166 +
.../airflow/ui/public/i18n/locales/th/assets.json | 30 +
.../airflow/ui/public/i18n/locales/th/browse.json | 26 +
.../airflow/ui/public/i18n/locales/th/common.json | 318 ++
.../ui/public/i18n/locales/th/components.json | 132 +
.../src/airflow/ui/public/i18n/locales/th/dag.json | 154 +
.../airflow/ui/public/i18n/locales/th/dags.json | 96 +
.../ui/public/i18n/locales/th/dashboard.json | 45 +
.../airflow/ui/public/i18n/locales/th/hitl.json | 34 +
.../airflow/ui/public/i18n/locales/th/tasks.json | 10 +
.../ui/public/i18n/locales/tr/components.json | 4 +
.../airflow/ui/public/i18n/locales/tr/dags.json | 3 +-
.../ui/public/i18n/locales/zh-CN/components.json | 4 +
.../airflow/ui/public/i18n/locales/zh-CN/dags.json | 3 +-
.../ui/public/i18n/locales/zh-TW/common.json | 7 +
.../ui/public/i18n/locales/zh-TW/components.json | 8 +
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/zh-TW/hitl.json | 5 +
.../src/airflow/ui/src/components/AnsiRenderer.tsx | 235 ++
.../ui/src/components/Banner/BackfillBanner.tsx | 22 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 21 +-
.../src/components/FlexibleForm/FlexibleForm.tsx | 2 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 70 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 2 +-
.../ui/src/components/renderStructuredLog.tsx | 173 +-
.../ui/src/components/ui/ResizableWrapper.tsx | 79 +
.../src/airflow/ui/src/constants/filterConfigs.tsx | 27 +
.../src/airflow/ui/src/constants/searchParams.ts | 5 +
airflow-core/src/airflow/ui/src/i18n/config.ts | 2 +
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 19 +-
.../layouts/Details/Grid/TaskInstancesColumn.tsx | 5 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 4 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 14 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 2 +-
.../ui/src/pages/Dag/Overview/TaskLogPreview.tsx | 6 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 1 +
.../ui/src/pages/HITLTaskInstances/HITLFilters.tsx | 25 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 115 +-
.../ui/src/pages/TaskInstance/ExtraLinks.tsx | 4 +-
.../ui/src/pages/TaskInstance/Logs/Logs.tsx | 68 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 5 +
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 17 +
.../src/airflow/ui/src/queries/useLogs.tsx | 3 +-
.../airflow/ui/src/queries/useToggleFavoriteDag.ts | 11 +-
.../src/airflow/ui/src/utils/datetimeUtils.test.ts | 6 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 6 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 5 +
.../usePersistentResizableState.ts} | 26 +-
airflow-core/src/airflow/utils/context.py | 3 +
.../src/airflow/utils/dag_parsing_context.py | 3 +-
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/dot_renderer.py | 4 +-
airflow-core/src/airflow/utils/file.py | 23 +-
.../src/airflow/utils/log/file_task_handler.py | 13 +-
airflow-core/src/airflow/utils/log/log_reader.py | 7 +-
airflow-core/src/airflow/utils/process_utils.py | 23 +
airflow-core/src/airflow/utils/sqlalchemy.py | 14 +-
airflow-core/tests/integration/otel/test_otel.py | 2 +
airflow-core/tests/unit/always/test_connection.py | 12 +-
.../tests/unit/always/test_project_structure.py | 6 +
.../tests/unit/always/test_providers_manager.py | 16 +-
.../tests/unit/api/common/test_mark_tasks.py | 2 +
.../auth/managers/test_base_auth_manager.py | 3 +
.../unit/api_fastapi/auth/middlewares}/__init__.py | 0
.../auth/middlewares/test_refresh_token.py | 132 +
.../unit/api_fastapi/common/test_exceptions.py | 3 +
.../core_api/routes/public/test_assets.py | 4 +-
.../core_api/routes/public/test_auth.py | 56 -
.../core_api/routes/public/test_dag_run.py | 74 +
.../core_api/routes/public/test_dags.py | 84 +-
.../core_api/routes/public/test_hitl.py | 2 +
.../core_api/routes/public/test_plugins.py | 57 +-
.../core_api/routes/public/test_task_instances.py | 141 +-
.../core_api/routes/public/test_tasks.py | 45 +-
.../api_fastapi/core_api/routes/test_routes.py | 1 -
.../api_fastapi/core_api/routes/ui/test_dags.py | 73 +-
.../versions/head/test_asset_events.py | 326 +-
.../versions/head/test_task_instances.py | 136 +
.../versions/v2025_04_28}/__init__.py | 0
.../versions/v2025_09_23/test_task_instances.py | 57 +
.../unit/cli/commands/test_api_server_command.py | 48 +-
.../tests/unit/core/test_airflow_module.py | 4 +-
.../tests/unit/dag_processing/test_collection.py | 42 +
.../tests/unit/dag_processing/test_dagbag.py | 99 +
.../tests/unit/dag_processing/test_manager.py | 137 +
.../tests/unit/dag_processing/test_processor.py | 257 +-
airflow-core/tests/unit/dags/.airflowignore_glob | 7 +-
...gate_ignore.py => test_explicit_dont_ignore.py} | 5 +-
.../dags/subdir2/subdir3/should_ignore_this.py} | 0
.../dags/subdir2/subdir3/test_explicit_ignore.py} | 0
airflow-core/tests/unit/datasets/test_dataset.py | 4 +-
.../tests/unit/executors/test_executor_loader.py | 17 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 152 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 32 +
airflow-core/tests/unit/models/test_callback.py | 139 +
airflow-core/tests/unit/models/test_connection.py | 3 +-
airflow-core/tests/unit/models/test_dag.py | 33 +-
.../tests/unit/models/test_mappedoperator.py | 221 +
airflow-core/tests/unit/models/test_pool.py | 7 +-
airflow-core/tests/unit/models/test_variable.py | 3 +-
.../unit/serialization/test_dag_serialization.py | 26 +-
.../unit/serialization/test_serialized_objects.py | 32 +-
.../ti_deps/deps/test_mapped_task_upstream_dep.py | 2 +-
airflow-core/tests/unit/utils/test_db.py | 2 +-
airflow-core/tests/unit/utils/test_file.py | 35 +-
airflow-core/tests/unit/utils/test_helpers.py | 8 +-
.../tests/unit/utils/test_operator_helpers.py | 4 +-
airflow-core/tests/unit/utils/test_sqlalchemy.py | 57 +-
airflow-core/tests/unit/utils/test_task_group.py | 34 +-
airflow-core/tests/unit/utils/test_trigger_rule.py | 2 +-
.../pyproject.toml | 7 +-
.../tests/airflowctl_tests}/__init__.py | 0
.../tests/airflowctl_tests/conftest.py | 253 ++
.../tests/airflowctl_tests}/constants.py | 6 +
.../airflowctl_tests/test_airflowctl_commands.py | 77 +
airflow-ctl/docs/cli-and-env-variables-ref.rst | 7 +
airflow-ctl/src/airflowctl/api/client.py | 25 +-
.../src/airflowctl/api/datamodels/generated.py | 8 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 9 +-
.../airflow_ctl/ctl/commands/test_auth_command.py | 6 +-
airflow-e2e-tests/pyproject.toml | 1 -
.../tests/airflow_e2e_tests/conftest.py | 35 +-
.../remote_log_tests/test_remote_logging.py | 41 +-
chart/docs/production-guide.rst | 2 +-
chart/values.yaml | 2 +-
clients/python/CHANGELOG.md | 36 +
clients/python/version.txt | 2 +-
.../03a_contributors_quick_start_beginners.rst | 3 +
contributing-docs/08_static_code_checks.rst | 39 +-
contributing-docs/15_node_environment_setup.rst | 232 +-
contributing-docs/testing/unit_tests.rst | 4 +-
dev/README_RELEASE_AIRFLOW.md | 54 +-
dev/README_RELEASE_HELM_CHART.md | 78 +-
dev/README_RELEASE_PROVIDERS.md | 41 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 17 +-
dev/airflow-github | 8 +-
dev/breeze/README.md | 9 -
dev/breeze/doc/01_installation.rst | 2 +-
dev/breeze/doc/05_test_commands.rst | 21 +-
dev/breeze/doc/06_managing_docker_images.rst | 2 +-
dev/breeze/doc/09_release_management_tasks.rst | 2 +-
dev/breeze/doc/ci/02_images.md | 6 +-
dev/breeze/doc/images/output_ci-image_build.svg | 2 +-
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 2 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
.../output_release-management_publish-docs.svg | 38 +-
.../output_release-management_publish-docs.txt | 2 +-
.../output_setup_check-all-params-in-groups.svg | 34 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 24 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_testing.svg | 30 +-
dev/breeze/doc/images/output_testing.txt | 2 +-
...utput_testing_airflow-ctl-integration-tests.svg | 144 +
...utput_testing_airflow-ctl-integration-tests.txt | 1 +
dev/breeze/pyproject.toml | 4 +-
.../commands/release_management_commands.py | 28 +-
.../commands/release_management_commands_config.py | 2 -
.../src/airflow_breeze/commands/setup_commands.py | 4 -
.../airflow_breeze/commands/testing_commands.py | 56 +
.../commands/testing_commands_config.py | 15 +-
.../airflow_breeze/commands/workflow_commands.py | 7 +-
dev/breeze/src/airflow_breeze/global_constants.py | 24 +-
.../prepare_providers/provider_documentation.py | 7 +-
dev/breeze/src/airflow_breeze/utils/cdxgen.py | 2 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 75 +-
.../src/airflow_breeze/utils/publish_docs_to_s3.py | 35 +-
dev/breeze/src/airflow_breeze/utils/reinstall.py | 9 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 7 +-
.../src/airflow_breeze/utils/selective_checks.py | 82 +-
dev/breeze/tests/test_packages.py | 17 +-
dev/breeze/tests/test_provider_dependencies.py | 4 +-
dev/breeze/tests/test_provider_documentation.py | 6 +-
dev/breeze/tests/test_selective_checks.py | 358 +-
dev/breeze/uv.lock | 1480 ++++---
dev/chart/build_changelog_annotations.py | 2 +-
dev/check_files.py | 44 +-
dev/i18n/check_translations_completeness.py | 104 +-
.../react_plugin_template/package.json | 6 +-
.../react_plugin_template/pnpm-lock.yaml | 560 +--
devel-common/pyproject.toml | 3 +-
docker-stack-docs/build.rst | 16 +-
.../docker-examples/customizing/mysql-client.sh | 37 -
docker-tests/pyproject.toml | 1 -
docs/README.md | 28 +-
docs/images/build-docs.png | Bin 0 -> 293775 bytes
docs/images/sync_github_to_s3.png | Bin 146423 -> 374702
bytes
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 12 +-
go-sdk/Justfile | 5 +-
go-sdk/README.md | 118 +-
go-sdk/bundle/bundlev1/doc.go | 2 +-
go-sdk/celery/app.go | 142 -
go-sdk/celery/cmd/main.go | 33 -
go-sdk/celery/commands/root.go | 55 -
go-sdk/celery/commands/run.go | 69 -
go-sdk/celery/config.go | 24 -
.../cmd => cmd/airflow-go-edge-worker}/main.go | 0
go-sdk/go.mod | 23 +-
go-sdk/go.sum | 44 +-
go-sdk/pkg/config/config.go | 2 +-
go-sdk/sdk/sdk.go | 3 -
.../tests/chart_utils/helm_template_generator.py | 49 +-
kubernetes-tests/pyproject.toml | 1 -
providers/.pre-commit-config.yaml | 232 ++
providers/airbyte/README.rst | 40 +-
providers/airbyte/docs/changelog.rst | 21 +
providers/airbyte/docs/index.rst | 45 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 8 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
.../src/airflow/providers/airbyte/hooks/airbyte.py | 2 +-
.../airflow/providers/airbyte/operators/airbyte.py | 4 +-
.../airflow/providers/airbyte/sensors/airbyte.py | 4 +-
.../airflow/providers/airbyte/version_compat.py | 17 -
providers/alibaba/README.rst | 44 +-
providers/alibaba/docs/changelog.rst | 16 +
providers/alibaba/docs/index.rst | 49 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 8 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
.../alibaba/cloud/hooks/analyticdb_spark.py | 2 +-
.../providers/alibaba/cloud/hooks/base_alibaba.py | 2 +-
.../airflow/providers/alibaba/cloud/hooks/oss.py | 7 +-
.../providers/alibaba/cloud/links/maxcompute.py | 11 +-
.../alibaba/cloud/operators/analyticdb_spark.py | 2 +-
.../alibaba/cloud/operators/maxcompute.py | 2 +-
.../providers/alibaba/cloud/operators/oss.py | 2 +-
.../alibaba/cloud/sensors/analyticdb_spark.py | 2 +-
.../providers/alibaba/cloud/sensors/oss_key.py | 2 +-
.../airflow/providers/alibaba/version_compat.py | 13 +-
providers/amazon/README.rst | 8 +-
providers/amazon/docs/changelog.rst | 36 +
providers/amazon/docs/index.rst | 8 +-
.../notifications/chime_notifier_howto_guide.rst | 4 +-
providers/amazon/docs/notifications/sns.rst | 4 +-
providers/amazon/docs/notifications/sqs.rst | 4 +-
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 8 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../providers/amazon/aws/hooks/athena_sql.py | 4 +-
.../airflow/providers/amazon/aws/hooks/base_aws.py | 2 +-
.../providers/amazon/aws/hooks/redshift_sql.py | 26 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 11 +-
.../amazon/aws/hooks/sagemaker_unified_studio.py | 2 +-
.../airflow/providers/amazon/aws/links/base_aws.py | 2 +-
.../providers/amazon/aws/operators/base_aws.py | 2 +-
.../aws/operators/sagemaker_unified_studio.py | 2 +-
.../providers/amazon/aws/sensors/base_aws.py | 2 +-
.../src/airflow/providers/amazon/aws/sensors/s3.py | 2 +-
.../amazon/aws/sensors/sagemaker_unified_studio.py | 2 +-
.../amazon/aws/transfers/azure_blob_to_s3.py | 2 +-
.../airflow/providers/amazon/aws/transfers/base.py | 2 +-
.../providers/amazon/aws/transfers/exasol_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/ftp_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/gcs_to_s3.py | 2 +-
.../amazon/aws/transfers/glacier_to_gcs.py | 2 +-
.../amazon/aws/transfers/google_api_to_s3.py | 7 +-
.../amazon/aws/transfers/hive_to_dynamodb.py | 2 +-
.../providers/amazon/aws/transfers/http_to_s3.py | 2 +-
.../amazon/aws/transfers/imap_attachment_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/local_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/mongo_to_s3.py | 2 +-
.../amazon/aws/transfers/redshift_to_s3.py | 2 +-
.../amazon/aws/transfers/s3_to_dynamodb.py | 2 +-
.../providers/amazon/aws/transfers/s3_to_ftp.py | 2 +-
.../amazon/aws/transfers/s3_to_redshift.py | 2 +-
.../providers/amazon/aws/transfers/s3_to_sftp.py | 2 +-
.../providers/amazon/aws/transfers/s3_to_sql.py | 2 +-
.../amazon/aws/transfers/salesforce_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/sftp_to_s3.py | 2 +-
.../providers/amazon/aws/transfers/sql_to_s3.py | 2 +-
.../amazon/aws/utils/connection_wrapper.py | 5 +-
.../airflow/providers/amazon/aws/utils/waiter.py | 4 +-
.../src/airflow/providers/amazon/version_compat.py | 22 +-
.../tests/system/amazon/aws/example_appflow.py | 15 +-
.../system/amazon/aws/example_azure_blob_to_s3.py | 14 +-
.../system/amazon/aws/example_cloudformation.py | 14 +-
.../amazon/tests/system/amazon/aws/example_dms.py | 4 +-
.../system/amazon/aws/example_dms_serverless.py | 4 +-
.../system/amazon/aws/example_eks_templated.py | 14 +-
.../aws/example_eks_with_fargate_in_one_step.py | 14 +-
.../amazon/aws/example_eks_with_fargate_profile.py | 14 +-
.../amazon/tests/system/amazon/aws/example_emr.py | 17 +-
.../amazon/aws/example_emr_notebook_execution.py | 14 +-
.../system/amazon/aws/example_emr_serverless.py | 14 +-
.../tests/system/amazon/aws/example_eventbridge.py | 14 +-
.../tests/system/amazon/aws/example_ftp_to_s3.py | 14 +-
.../amazon/tests/system/amazon/aws/example_glue.py | 11 +-
.../amazon/aws/example_google_api_sheets_to_s3.py | 14 +-
.../amazon/aws/example_imap_attachment_to_s3.py | 14 +-
.../tests/system/amazon/aws/example_local_to_s3.py | 16 +-
.../tests/system/amazon/aws/example_mongo_to_s3.py | 15 +-
.../system/amazon/aws/example_rds_instance.py | 14 +-
.../system/amazon/aws/example_rds_snapshot.py | 14 +-
.../tests/system/amazon/aws/example_redshift.py | 14 +-
.../amazon/aws/example_redshift_s3_transfers.py | 14 +-
.../amazon/tests/system/amazon/aws/example_s3.py | 14 +-
.../tests/system/amazon/aws/example_s3_to_ftp.py | 14 +-
.../tests/system/amazon/aws/example_s3_to_sftp.py | 14 +-
.../amazon/aws/example_sagemaker_notebook.py | 14 +-
.../system/amazon/aws/example_salesforce_to_s3.py | 14 +-
.../tests/system/amazon/aws/example_sftp_to_s3.py | 14 +-
.../tests/unit/amazon/aws/hooks/test_athena_sql.py | 9 +-
.../unit/amazon/aws/hooks/test_batch_waiters.py | 3 +-
.../unit/amazon/aws/hooks/test_eventbridge.py | 2 +-
.../unit/amazon/aws/hooks/test_redshift_data.py | 9 +-
.../unit/amazon/aws/hooks/test_redshift_sql.py | 11 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 16 +-
.../tests/unit/amazon/aws/links/test_base_aws.py | 2 +-
.../unit/amazon/aws/operators/test_base_aws.py | 2 +-
.../tests/unit/amazon/aws/operators/test_ecs.py | 39 +-
.../tests/unit/amazon/aws/sensors/test_base_aws.py | 2 +-
providers/apache/beam/README.rst | 6 +-
providers/apache/beam/docs/changelog.rst | 17 +
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 +-
.../airflow/providers/apache/beam/hooks/beam.py | 2 +-
.../providers/apache/beam/operators/beam.py | 5 +-
.../providers/apache/beam/version_compat.py | 8 -
providers/apache/cassandra/README.rst | 15 +-
.../cassandra/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/cassandra/docs/changelog.rst | 18 +
providers/apache/cassandra/docs/index.rst | 2 +-
providers/apache/cassandra/provider.yaml | 3 +-
providers/apache/cassandra/pyproject.toml | 14 +-
.../airflow/providers/apache/cassandra/__init__.py | 2 +-
.../providers/apache/cassandra/hooks/cassandra.py | 2 +-
.../providers/apache/cassandra/sensors/record.py | 4 +-
.../providers/apache/cassandra/sensors/table.py | 4 +-
.../providers/apache/cassandra/version_compat.py | 13 -
providers/apache/drill/README.rst | 6 +-
providers/apache/drill/docs/changelog.rst | 21 +
providers/apache/drill/docs/index.rst | 6 +-
providers/apache/drill/provider.yaml | 3 +-
providers/apache/drill/pyproject.toml | 6 +-
.../src/airflow/providers/apache/drill/__init__.py | 2 +-
.../airflow/providers/apache/drill/hooks/drill.py | 3 +-
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/flink/README.rst | 15 +-
.../apache/flink/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/flink/docs/changelog.rst | 17 +
providers/apache/flink/docs/index.rst | 6 +-
providers/apache/flink/provider.yaml | 3 +-
providers/apache/flink/pyproject.toml | 14 +-
.../src/airflow/providers/apache/flink/__init__.py | 2 +-
.../apache/flink/operators/flink_kubernetes.py | 4 +-
.../apache/flink/sensors/flink_kubernetes.py | 4 +-
.../providers/apache/flink/version_compat.py | 11 -
providers/apache/hdfs/README.rst | 15 +-
.../apache/hdfs/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hdfs/docs/changelog.rst | 12 +
providers/apache/hdfs/docs/index.rst | 2 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 14 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
.../airflow/providers/apache/hdfs/hooks/webhdfs.py | 2 +-
.../providers/apache/hdfs/sensors/web_hdfs.py | 4 +-
.../providers/apache/hdfs/version_compat.py | 13 -
providers/apache/hive/README.rst | 46 +-
providers/apache/hive/docs/changelog.rst | 24 +
providers/apache/hive/docs/index.rst | 31 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 8 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
.../airflow/providers/apache/hive/hooks/hive.py | 2 +-
.../providers/apache/hive/operators/hive.py | 4 +-
.../providers/apache/hive/operators/hive_stats.py | 4 +-
.../apache/hive/sensors/hive_partition.py | 4 +-
.../apache/hive/sensors/metastore_partition.py | 2 +-
.../apache/hive/sensors/named_hive_partition.py | 4 +-
.../apache/hive/transfers/hive_to_mysql.py | 4 +-
.../apache/hive/transfers/hive_to_samba.py | 4 +-
.../apache/hive/transfers/mssql_to_hive.py | 4 +-
.../apache/hive/transfers/mysql_to_hive.py | 4 +-
.../providers/apache/hive/transfers/s3_to_hive.py | 4 +-
.../apache/hive/transfers/vertica_to_hive.py | 4 +-
.../providers/apache/hive/version_compat.py | 26 +-
.../system/apache/hive/example_twitter_dag.py | 9 +-
.../hive/tests/unit/apache/hive/hooks/test_hive.py | 8 +-
.../apache/hive/transfers/test_hive_to_mysql.py | 7 +-
.../apache/hive/transfers/test_hive_to_samba.py | 7 +-
providers/apache/iceberg/README.rst | 15 +-
.../iceberg/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/iceberg/docs/changelog.rst | 18 +
providers/apache/iceberg/docs/index.rst | 2 +-
providers/apache/iceberg/provider.yaml | 3 +-
providers/apache/iceberg/pyproject.toml | 14 +-
.../airflow/providers/apache/iceberg/__init__.py | 2 +-
.../providers/apache/iceberg/hooks/iceberg.py | 2 +-
.../providers/apache/iceberg/version_compat.py | 6 -
providers/apache/impala/README.rst | 15 +-
.../apache/impala/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/impala/docs/changelog.rst | 16 +
providers/apache/impala/docs/index.rst | 6 +-
providers/apache/impala/provider.yaml | 3 +-
providers/apache/impala/pyproject.toml | 6 +-
.../airflow/providers/apache/impala/__init__.py | 2 +-
.../providers/apache/impala/version_compat.py | 4 +
providers/apache/kafka/README.rst | 7 +-
providers/apache/kafka/docs/changelog.rst | 18 +
providers/apache/kafka/docs/index.rst | 6 +-
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 10 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
.../airflow/providers/apache/kafka/hooks/base.py | 2 +-
.../providers/apache/kafka/operators/consume.py | 2 +-
.../providers/apache/kafka/operators/produce.py | 2 +-
.../providers/apache/kafka/sensors/kafka.py | 2 +-
.../apache/kafka/triggers/await_message.py | 10 +-
.../providers/apache/kafka/version_compat.py | 13 +-
.../apache/kylin/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/kylin/pyproject.toml | 2 +
.../airflow/providers/apache/kylin/hooks/kylin.py | 6 +-
.../providers/apache/kylin/operators/kylin_cube.py | 4 +-
.../providers/apache/kylin/version_compat.py | 6 -
providers/apache/livy/README.rst | 8 +-
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 | 8 +-
.../src/airflow/providers/apache/livy/__init__.py | 2 +-
.../providers/apache/livy/operators/livy.py | 4 +-
.../airflow/providers/apache/livy/sensors/livy.py | 4 +-
.../providers/apache/livy/version_compat.py | 8 +-
.../livy/tests/unit/apache/livy/hooks/test_livy.py | 38 +-
providers/apache/pig/README.rst | 15 +-
.../apache/pig/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/pig/docs/changelog.rst | 21 +
providers/apache/pig/docs/index.rst | 2 +-
providers/apache/pig/provider.yaml | 3 +-
providers/apache/pig/pyproject.toml | 14 +-
.../src/airflow/providers/apache/pig/__init__.py | 2 +-
.../src/airflow/providers/apache/pig/hooks/pig.py | 2 +-
.../airflow/providers/apache/pig/operators/pig.py | 4 +-
.../airflow/providers/apache/pig/version_compat.py | 12 -
providers/apache/pinot/README.rst | 15 +-
.../apache/pinot/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/pinot/docs/changelog.rst | 21 +
providers/apache/pinot/docs/index.rst | 6 +-
providers/apache/pinot/provider.yaml | 3 +-
providers/apache/pinot/pyproject.toml | 14 +-
.../src/airflow/providers/apache/pinot/__init__.py | 2 +-
.../airflow/providers/apache/pinot/hooks/pinot.py | 2 +-
.../providers/apache/pinot/version_compat.py | 6 -
providers/apache/spark/README.rst | 18 +-
providers/apache/spark/docs/changelog.rst | 22 +
providers/apache/spark/docs/index.rst | 8 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 8 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../providers/apache/spark/decorators/pyspark.py | 5 +-
.../providers/apache/spark/hooks/spark_connect.py | 2 +-
.../providers/apache/spark/hooks/spark_sql.py | 2 +-
.../providers/apache/spark/hooks/spark_submit.py | 2 +-
.../providers/apache/spark/operators/spark_jdbc.py | 2 +-
.../providers/apache/spark/operators/spark_sql.py | 4 +-
.../apache/spark/operators/spark_submit.py | 4 +-
.../providers/apache/spark/version_compat.py | 25 +-
.../unit/apache/spark/hooks/test_spark_connect.py | 2 +-
providers/apache/tinkerpop/README.rst | 15 +-
.../tinkerpop/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/tinkerpop/docs/changelog.rst | 21 +
providers/apache/tinkerpop/docs/index.rst | 2 +-
providers/apache/tinkerpop/provider.yaml | 3 +-
providers/apache/tinkerpop/pyproject.toml | 14 +-
.../airflow/providers/apache/tinkerpop/__init__.py | 2 +-
.../providers/apache/tinkerpop/hooks/gremlin.py | 2 +-
.../apache/tinkerpop/operators/gremlin.py | 8 +-
.../providers/apache/tinkerpop/version_compat.py | 13 +-
providers/apprise/README.rst | 8 +-
providers/apprise/docs/changelog.rst | 23 +
providers/apprise/docs/index.rst | 8 +-
.../notifications/apprise_notifier_howto_guide.rst | 4 +-
providers/apprise/provider.yaml | 3 +-
providers/apprise/pyproject.toml | 8 +-
.../src/airflow/providers/apprise/__init__.py | 2 +-
.../src/airflow/providers/apprise/hooks/apprise.py | 2 +-
.../airflow/providers/apprise/version_compat.py | 7 +-
providers/arangodb/README.rst | 38 +-
providers/arangodb/docs/changelog.rst | 21 +
providers/arangodb/docs/index.rst | 43 +-
providers/arangodb/provider.yaml | 3 +-
providers/arangodb/pyproject.toml | 8 +-
.../src/airflow/providers/arangodb/__init__.py | 2 +-
.../airflow/providers/arangodb/hooks/arangodb.py | 2 +-
.../providers/arangodb/operators/arangodb.py | 8 +-
.../airflow/providers/arangodb/sensors/arangodb.py | 8 +-
.../airflow/providers/arangodb/version_compat.py | 14 -
providers/asana/README.rst | 38 +-
providers/asana/docs/changelog.rst | 18 +
providers/asana/docs/index.rst | 43 +-
providers/asana/provider.yaml | 3 +-
providers/asana/pyproject.toml | 8 +-
.../asana/src/airflow/providers/asana/__init__.py | 2 +-
.../src/airflow/providers/asana/hooks/asana.py | 2 +-
.../providers/asana/operators/asana_tasks.py | 8 +-
.../src/airflow/providers/asana/version_compat.py | 17 +-
.../asana/tests/unit/asana/hooks/test_asana.py | 2 +-
providers/atlassian/jira/README.rst | 10 +-
providers/atlassian/jira/docs/changelog.rst | 28 +
providers/atlassian/jira/docs/index.rst | 10 +-
.../notifications/jira-notifier-howto-guide.rst | 4 +-
providers/atlassian/jira/provider.yaml | 3 +-
providers/atlassian/jira/pyproject.toml | 10 +-
.../airflow/providers/atlassian/jira/__init__.py | 2 +-
.../airflow/providers/atlassian/jira/hooks/jira.py | 109 +-
.../providers/atlassian/jira/notifications/jira.py | 57 +-
.../providers/atlassian/jira/operators/jira.py | 4 +-
.../providers/atlassian/jira/sensors/jira.py | 4 +-
.../providers/atlassian/jira/version_compat.py | 14 -
.../tests/unit/atlassian/jira/hooks/test_jira.py | 120 +-
.../unit/atlassian/jira/notifications/test_jira.py | 36 +-
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 24 +
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 7 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
.../airflow/providers/celery/cli/celery_command.py | 2 +-
.../celery/executors/celery_executor_utils.py | 13 +-
.../airflow/providers/celery/get_provider_info.py | 2 +-
.../cloudant/docs/.latest-doc-only-change.txt | 2 +-
providers/cloudant/pyproject.toml | 2 +
.../airflow/providers/cloudant/hooks/cloudant.py | 2 +-
.../airflow/providers/cloudant/version_compat.py | 6 -
providers/cncf/kubernetes/README.rst | 46 +-
providers/cncf/kubernetes/docs/changelog.rst | 30 +
providers/cncf/kubernetes/docs/index.rst | 51 +-
.../cncf/kubernetes/docs/kubernetes_executor.rst | 4 +-
providers/cncf/kubernetes/docs/operators.rst | 4 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 8 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../cncf/kubernetes/decorators/kubernetes.py | 2 +-
.../cncf/kubernetes/decorators/kubernetes_cmd.py | 2 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 42 +-
.../providers/cncf/kubernetes/operators/pod.py | 11 +-
.../cncf/kubernetes/sensors/spark_kubernetes.py | 7 +-
.../providers/cncf/kubernetes/utils/container.py | 118 +
.../providers/cncf/kubernetes/utils/pod_manager.py | 137 +-
.../providers/cncf/kubernetes/version_compat.py | 32 +-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 2 +-
.../unit/cncf/kubernetes/test_pod_generator.py | 4 +-
.../unit/cncf/kubernetes/utils/test_container.py | 172 +
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 147 -
providers/cohere/docs/.latest-doc-only-change.txt | 2 +-
providers/cohere/pyproject.toml | 2 +
.../src/airflow/providers/cohere/hooks/cohere.py | 2 +-
.../providers/cohere/operators/embedding.py | 4 +-
.../src/airflow/providers/cohere/version_compat.py | 15 -
.../common/compat}/.pre-commit-config.yaml | 18 +-
providers/common/compat/README.rst | 7 +-
providers/common/compat/docs/changelog.rst | 26 +
providers/common/compat/docs/index.rst | 7 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 7 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
.../providers/common/compat/_compat_utils.py | 105 +
.../src/airflow/providers/common/compat/sdk.py | 219 +
.../common/compat/sqlalchemy}/__init__.py | 0
.../providers/common/compat/sqlalchemy/orm.py | 9 +-
.../providers/common/compat/standard/operators.py | 41 +-
.../providers/common/compat/standard/triggers.py | 15 +-
.../providers/common/compat/standard/utils.py | 22 +-
.../unit/common/compat/sqlalchemy}/__init__.py | 0
.../unit/common/compat/sqlalchemy/test_orm.py | 145 +
.../tests/unit/common/compat/test__compat_utils.py | 215 +
.../compat/tests/unit/common/compat/test_sdk.py | 54 +
providers/common/io/README.rst | 6 +-
providers/common/io/docs/changelog.rst | 18 +
providers/common/io/docs/index.rst | 6 +-
providers/common/io/provider.yaml | 3 +-
providers/common/io/pyproject.toml | 6 +-
.../io/src/airflow/providers/common/io/__init__.py | 2 +-
.../messaging/docs/.latest-doc-only-change.txt | 2 +-
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 17 +
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 11 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../providers/common/sql/dialects/dialect.py | 27 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 10 +-
.../common/sql/operators/generic_transfer.py | 8 +-
.../airflow/providers/common/sql/operators/sql.py | 4 +-
.../airflow/providers/common/sql/sensors/sql.py | 4 +-
.../airflow/providers/common/sql/sensors/sql.pyi | 8 +-
.../airflow/providers/common/sql/triggers/sql.py | 2 +-
.../airflow/providers/common/sql/version_compat.py | 14 -
.../tests/unit/common/sql/dialects/test_dialect.py | 1 -
.../sql/tests/unit/common/sql/hooks/test_dbapi.py | 2 +-
providers/databricks/README.rst | 9 +-
providers/databricks/docs/changelog.rst | 23 +
providers/databricks/docs/index.rst | 9 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 10 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/operators/databricks.py | 10 +-
.../databricks/operators/databricks_repos.py | 8 +-
.../databricks/operators/databricks_sql.py | 4 +-
.../databricks/operators/databricks_workflow.py | 10 +-
.../databricks/plugins/databricks_workflow.py | 197 +-
.../providers/databricks/sensors/databricks.py | 9 +-
.../databricks/sensors/databricks_partition.py | 13 +-
.../providers/databricks/sensors/databricks_sql.py | 13 +-
.../airflow/providers/databricks/version_compat.py | 12 -
providers/datadog/docs/.latest-doc-only-change.txt | 2 +-
providers/datadog/pyproject.toml | 2 +
.../src/airflow/providers/datadog/hooks/datadog.py | 2 +-
.../airflow/providers/datadog/sensors/datadog.py | 4 +-
.../airflow/providers/datadog/version_compat.py | 15 -
providers/dbt/cloud/README.rst | 18 +-
providers/dbt/cloud/docs/changelog.rst | 23 +
providers/dbt/cloud/docs/index.rst | 9 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 8 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 6 +-
.../src/airflow/providers/dbt/cloud/sensors/dbt.py | 13 +-
.../airflow/providers/dbt/cloud/version_compat.py | 12 -
.../tests/unit/dbt/cloud/operators/test_dbt.py | 2 +-
.../cloud/tests/unit/dbt/cloud/sensors/test_dbt.py | 2 +
.../dingding/docs/.latest-doc-only-change.txt | 2 +-
providers/discord/docs/.latest-doc-only-change.txt | 2 +-
providers/discord/pyproject.toml | 2 +-
.../providers/discord/operators/discord_webhook.py | 6 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 16 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 7 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
.../airflow/providers/docker/decorators/docker.py | 7 +-
.../src/airflow/providers/docker/hooks/docker.py | 4 +-
.../airflow/providers/docker/operators/docker.py | 2 +-
.../providers/docker/operators/docker_swarm.py | 6 +-
.../src/airflow/providers/docker/version_compat.py | 3 -
providers/edge3/.pre-commit-config.yaml | 51 +
providers/edge3/README.rst | 40 +-
providers/edge3/docs/changelog.rst | 33 +
providers/edge3/docs/edge_executor.rst | 4 +-
providers/edge3/docs/index.rst | 45 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 10 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../src/airflow/providers/edge3/cli/worker.py | 3 +-
.../providers/edge3/example_dags/win_test.py | 2 +-
.../providers/edge3/executors/edge_executor.py | 5 +-
.../src/airflow/providers/edge3/models/edge_job.py | 31 +-
.../airflow/providers/edge3/models/edge_logs.py | 19 +-
.../airflow/providers/edge3/models/edge_worker.py | 42 +-
.../providers/edge3/openapi/v2-edge-generated.yaml | 6 +-
.../edge3/plugins/edge_executor_plugin.py | 12 +-
.../providers/edge3/plugins/www/dist/main.umd.cjs | 49 +-
.../www/openapi-gen/requests/schemas.gen.ts | 8 +-
.../plugins/www/openapi-gen/requests/types.gen.ts | 2 +-
.../edge3/plugins/www/src/layouts/EdgeLayout.tsx | 23 +-
.../edge3/plugins/www/src/layouts/NavTabs.tsx | 9 +-
.../edge3/plugins/www/src/pages/JobsPage.tsx | 15 +-
.../providers/edge3/plugins/www/vite.config.ts | 3 +-
.../src/airflow/providers/edge3/version_compat.py | 6 -
.../providers/edge3/worker_api/routes/jobs.py | 2 +-
.../providers/edge3/worker_api/routes/worker.py | 2 +-
.../edge3/tests/unit/edge3/cli/test_worker.py | 2 +-
.../unit/edge3/executors/test_edge_executor.py | 2 +-
.../unit/edge3/worker_api/routes/test_logs.py | 2 +-
.../unit/edge3/worker_api/routes/test_worker.py | 2 +-
providers/edge3/www-hash.txt | 2 +-
providers/elasticsearch/README.rst | 21 +-
providers/elasticsearch/docs/changelog.rst | 18 +
providers/elasticsearch/docs/index.rst | 21 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 8 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../providers/elasticsearch/hooks/elasticsearch.py | 2 +-
.../providers/elasticsearch/log/es_task_handler.py | 34 +-
.../providers/elasticsearch/version_compat.py | 14 +-
.../elasticsearch/example_elasticsearch_query.py | 9 +-
providers/exasol/docs/.latest-doc-only-change.txt | 2 +-
providers/fab/.pre-commit-config.yaml | 51 +
providers/fab/README.rst | 8 +-
providers/fab/docs/changelog.rst | 23 +-
providers/fab/docs/index.rst | 8 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 10 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/models/__init__.py | 25 +-
.../airflow/providers/fab/www/package-lock.json | 43 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../fab/auth_manager/models/test_user_model.py | 7 +-
.../tests/unit/fab/auth_manager/test_security.py | 14 +-
providers/fab/www-hash.txt | 2 +-
.../facebook/docs/.latest-doc-only-change.txt | 2 +-
providers/facebook/pyproject.toml | 2 +
.../airflow/providers/facebook/ads/hooks/ads.py | 2 +-
.../airflow/providers/facebook/version_compat.py | 10 +-
providers/ftp/docs/.latest-doc-only-change.txt | 2 +-
providers/ftp/docs/changelog.rst | 4 +-
providers/ftp/pyproject.toml | 1 +
.../ftp/src/airflow/providers/ftp/hooks/ftp.py | 2 +-
.../ftp/src/airflow/providers/ftp/operators/ftp.py | 2 +-
.../ftp/src/airflow/providers/ftp/sensors/ftp.py | 8 +-
.../src/airflow/providers/ftp/version_compat.py | 13 +-
providers/git/README.rst | 38 +-
providers/git/docs/changelog.rst | 23 +-
providers/git/docs/index.rst | 43 +-
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 | 79 +-
.../git/src/airflow/providers/git/hooks/git.py | 2 +-
.../src/airflow/providers/git/version_compat.py | 7 +-
providers/git/tests/unit/git/bundles/test_git.py | 66 +-
providers/github/README.rst | 38 +-
providers/github/docs/changelog.rst | 21 +
providers/github/docs/index.rst | 43 +-
providers/github/provider.yaml | 3 +-
providers/github/pyproject.toml | 8 +-
.../src/airflow/providers/github/__init__.py | 2 +-
.../src/airflow/providers/github/hooks/github.py | 2 +-
.../airflow/providers/github/operators/github.py | 4 +-
.../src/airflow/providers/github/sensors/github.py | 4 +-
.../src/airflow/providers/github/version_compat.py | 23 +-
providers/google/README.rst | 8 +-
providers/google/docs/changelog.rst | 54 +
providers/google/docs/index.rst | 8 +-
providers/google/docs/operators/cloud/gen_ai.rst | 112 +
.../google/docs/operators/cloud/vertex_ai.rst | 68 +-
providers/google/provider.yaml | 14 +-
providers/google/pyproject.toml | 8 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../src/airflow/providers/google/ads/hooks/ads.py | 2 +-
.../airflow/providers/google/ads/operators/ads.py | 2 +-
.../providers/google/ads/transfers/ads_to_gcs.py | 2 +-
.../src/airflow/providers/google/assets/gcs.py | 12 +-
.../providers/google/cloud/hooks/bigquery.py | 42 +-
.../providers/google/cloud/hooks/cloud_sql.py | 2 +-
.../cloud/hooks/cloud_storage_transfer_service.py | 16 +
.../providers/google/cloud/hooks/dataflow.py | 2 +-
.../providers/google/cloud/hooks/dataprep.py | 2 +-
.../airflow/providers/google/cloud/hooks/gcs.py | 6 +-
.../airflow/providers/google/cloud/hooks/gen_ai.py | 196 +
.../airflow/providers/google/cloud/hooks/looker.py | 2 +-
.../cloud/hooks/vertex_ai/generative_model.py | 30 +
.../providers/google/cloud/hooks/workflows.py | 2 +-
.../airflow/providers/google/cloud/links/base.py | 15 +-
.../google/cloud/links/cloud_storage_transfer.py | 2 +-
.../providers/google/cloud/links/cloud_tasks.py | 2 +-
.../providers/google/cloud/links/dataproc.py | 14 +-
.../google/cloud/links/kubernetes_engine.py | 2 +-
.../providers/google/cloud/links/translate.py | 2 +-
.../providers/google/cloud/links/vertex_ai.py | 2 +-
.../providers/google/cloud/openlineage/utils.py | 2 +-
.../providers/google/cloud/operators/alloy_db.py | 2 +-
.../providers/google/cloud/operators/automl.py | 2 +-
.../providers/google/cloud/operators/bigquery.py | 2 +-
.../google/cloud/operators/bigquery_dts.py | 2 +-
.../providers/google/cloud/operators/bigtable.py | 2 +-
.../google/cloud/operators/cloud_batch.py | 2 +-
.../google/cloud/operators/cloud_build.py | 2 +-
.../google/cloud/operators/cloud_composer.py | 2 +-
.../google/cloud/operators/cloud_logging_sink.py | 2 +-
.../google/cloud/operators/cloud_memorystore.py | 2 +-
.../providers/google/cloud/operators/cloud_run.py | 5 +-
.../providers/google/cloud/operators/cloud_sql.py | 4 +-
.../operators/cloud_storage_transfer_service.py | 33 +-
.../providers/google/cloud/operators/compute.py | 2 +-
.../google/cloud/operators/datacatalog.py | 2 +-
.../providers/google/cloud/operators/dataflow.py | 2 +-
.../providers/google/cloud/operators/dataform.py | 2 +-
.../providers/google/cloud/operators/datafusion.py | 2 +-
.../providers/google/cloud/operators/dataplex.py | 2 +-
.../providers/google/cloud/operators/dataprep.py | 2 +-
.../providers/google/cloud/operators/dataproc.py | 2 +-
.../google/cloud/operators/dataproc_metastore.py | 2 +-
.../providers/google/cloud/operators/datastore.py | 2 +-
.../providers/google/cloud/operators/dlp.py | 2 +-
.../providers/google/cloud/operators/functions.py | 2 +-
.../providers/google/cloud/operators/gcs.py | 2 +-
.../providers/google/cloud/operators/gen_ai.py | 389 ++
.../google/cloud/operators/kubernetes_engine.py | 2 +-
.../providers/google/cloud/operators/looker.py | 2 +-
.../google/cloud/operators/managed_kafka.py | 2 +-
.../providers/google/cloud/operators/mlengine.py | 2 +-
.../google/cloud/operators/natural_language.py | 2 +-
.../providers/google/cloud/operators/pubsub.py | 2 +-
.../providers/google/cloud/operators/spanner.py | 2 +-
.../google/cloud/operators/speech_to_text.py | 2 +-
.../google/cloud/operators/stackdriver.py | 2 +-
.../providers/google/cloud/operators/tasks.py | 2 +-
.../google/cloud/operators/text_to_speech.py | 2 +-
.../providers/google/cloud/operators/translate.py | 2 +-
.../google/cloud/operators/translate_speech.py | 2 +-
.../google/cloud/operators/vertex_ai/auto_ml.py | 2 +-
.../operators/vertex_ai/batch_prediction_job.py | 2 +-
.../google/cloud/operators/vertex_ai/custom_job.py | 2 +-
.../google/cloud/operators/vertex_ai/dataset.py | 2 +-
.../cloud/operators/vertex_ai/endpoint_service.py | 2 +-
.../operators/vertex_ai/experiment_service.py | 2 +-
.../cloud/operators/vertex_ai/feature_store.py | 2 +-
.../cloud/operators/vertex_ai/generative_model.py | 32 +-
.../vertex_ai/hyperparameter_tuning_job.py | 2 +-
.../cloud/operators/vertex_ai/model_service.py | 2 +-
.../cloud/operators/vertex_ai/pipeline_job.py | 2 +-
.../google/cloud/operators/vertex_ai/ray.py | 2 +-
.../google/cloud/operators/video_intelligence.py | 2 +-
.../providers/google/cloud/operators/vision.py | 2 +-
.../providers/google/cloud/sensors/bigquery.py | 4 +-
.../providers/google/cloud/sensors/bigquery_dts.py | 9 +-
.../providers/google/cloud/sensors/bigtable.py | 9 +-
.../google/cloud/sensors/cloud_composer.py | 9 +-
.../sensors/cloud_storage_transfer_service.py | 9 +-
.../providers/google/cloud/sensors/dataflow.py | 4 +-
.../providers/google/cloud/sensors/dataform.py | 9 +-
.../providers/google/cloud/sensors/datafusion.py | 9 +-
.../providers/google/cloud/sensors/dataplex.py | 9 +-
.../providers/google/cloud/sensors/dataprep.py | 9 +-
.../providers/google/cloud/sensors/dataproc.py | 9 +-
.../google/cloud/sensors/dataproc_metastore.py | 9 +-
.../airflow/providers/google/cloud/sensors/gcs.py | 10 +-
.../providers/google/cloud/sensors/looker.py | 9 +-
.../providers/google/cloud/sensors/pubsub.py | 9 +-
.../providers/google/cloud/sensors/tasks.py | 9 +-
.../cloud/sensors/vertex_ai/feature_store.py | 9 +-
.../providers/google/cloud/sensors/workflows.py | 9 +-
.../google/cloud/transfers/adls_to_gcs.py | 2 +-
.../google/cloud/transfers/azure_blob_to_gcs.py | 2 +-
.../cloud/transfers/azure_fileshare_to_gcs.py | 2 +-
.../google/cloud/transfers/bigquery_to_bigquery.py | 2 +-
.../google/cloud/transfers/bigquery_to_gcs.py | 2 +-
.../google/cloud/transfers/bigquery_to_mssql.py | 2 +-
.../google/cloud/transfers/bigquery_to_postgres.py | 2 +-
.../google/cloud/transfers/bigquery_to_sql.py | 2 +-
.../google/cloud/transfers/cassandra_to_gcs.py | 2 +-
.../google/cloud/transfers/facebook_ads_to_gcs.py | 2 +-
.../google/cloud/transfers/gcs_to_bigquery.py | 2 +-
.../providers/google/cloud/transfers/gcs_to_gcs.py | 2 +-
.../google/cloud/transfers/gcs_to_local.py | 2 +-
.../google/cloud/transfers/gcs_to_sftp.py | 2 +-
.../google/cloud/transfers/gdrive_to_gcs.py | 2 +-
.../google/cloud/transfers/gdrive_to_local.py | 2 +-
.../google/cloud/transfers/http_to_gcs.py | 2 +-
.../google/cloud/transfers/local_to_gcs.py | 2 +-
.../providers/google/cloud/transfers/s3_to_gcs.py | 2 +-
.../google/cloud/transfers/salesforce_to_gcs.py | 2 +-
.../google/cloud/transfers/sftp_to_gcs.py | 15 +-
.../google/cloud/transfers/sheets_to_gcs.py | 2 +-
.../providers/google/cloud/transfers/sql_to_gcs.py | 2 +-
.../providers/google/cloud/triggers/bigquery.py | 18 +-
.../providers/google/cloud/triggers/cloud_run.py | 2 +-
.../triggers/cloud_storage_transfer_service.py | 90 +
.../providers/google/cloud/triggers/pubsub.py | 32 +-
.../providers/google/common/hooks/base_google.py | 2 +-
.../google/firebase/operators/firestore.py | 2 +-
.../airflow/providers/google/get_provider_info.py | 14 +
.../airflow/providers/google/go_module_utils.py | 38 +-
.../providers/google/leveldb/hooks/leveldb.py | 2 +-
.../providers/google/leveldb/operators/leveldb.py | 2 +-
.../marketing_platform/links/analytics_admin.py | 12 +-
.../operators/analytics_admin.py | 2 +-
.../operators/campaign_manager.py | 2 +-
.../marketing_platform/operators/display_video.py | 2 +-
.../marketing_platform/operators/search_ads.py | 2 +-
.../marketing_platform/sensors/campaign_manager.py | 9 +-
.../marketing_platform/sensors/display_video.py | 9 +-
.../providers/google/suite/sensors/drive.py | 9 +-
.../google/suite/transfers/gcs_to_gdrive.py | 2 +-
.../google/suite/transfers/local_to_drive.py | 2 +-
.../src/airflow/providers/google/version_compat.py | 28 +-
.../tests/system/google/cloud/gen_ai}/__init__.py | 0
.../example_gen_ai_generative_model.py} | 138 +-
.../example_gen_ai_generative_model_tuning.py} | 38 +-
.../google/cloud/gen_ai/resources}/__init__.py | 0
.../resources/video_tuning_dataset.jsonl | 0
.../tests/unit/google/cloud/hooks/test_bigquery.py | 6 +-
.../test_cloud_storage_transfer_service_async.py | 18 +
.../tests/unit/google/cloud/hooks/test_gen_ai.py | 193 +
.../cloud/hooks/vertex_ai/test_generative_model.py | 92 +-
.../unit/google/cloud/links/test_base_link.py | 5 +-
.../google/cloud/operators/gen_ai}/__init__.py | 0
.../unit/google/cloud/operators/test_cloud_run.py | 5 +-
.../unit/google/cloud/operators/test_gen_ai.py | 250 ++
.../unit/google/cloud/operators/test_workflows.py | 6 +-
.../operators/vertex_ai/test_generative_model.py | 134 +-
.../google/cloud/transfers/test_sftp_to_gcs.py | 24 +
.../unit/google/cloud/triggers/test_cloud_run.py | 2 +-
.../test_cloud_storage_transfer_service.py | 93 +
.../unit/google/cloud/triggers/test_pubsub.py | 42 +
.../google/tests/unit/google/test_go_module.py | 4 +-
providers/grpc/docs/.latest-doc-only-change.txt | 2 +-
providers/grpc/docs/changelog.rst | 2 +-
providers/grpc/pyproject.toml | 2 +
.../grpc/src/airflow/providers/grpc/hooks/grpc.py | 2 +-
.../src/airflow/providers/grpc/operators/grpc.py | 2 +-
.../src/airflow/providers/grpc/version_compat.py | 15 +-
providers/hashicorp/README.rst | 42 +-
providers/hashicorp/docs/changelog.rst | 21 +
providers/hashicorp/docs/index.rst | 32 +-
providers/hashicorp/provider.yaml | 3 +-
providers/hashicorp/pyproject.toml | 8 +-
.../src/airflow/providers/hashicorp/__init__.py | 2 +-
.../src/airflow/providers/hashicorp/hooks/vault.py | 2 +-
.../airflow/providers/hashicorp/version_compat.py | 7 +-
providers/http/README.rst | 6 +-
providers/http/docs/changelog.rst | 20 +-
providers/http/docs/index.rst | 2 +-
providers/http/provider.yaml | 6 +-
providers/http/pyproject.toml | 15 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
.../airflow/providers/http/get_provider_info.py | 1 +
.../http/src/airflow/providers/http/hooks/http.py | 2 +-
.../providers/http/notifications/__init__.py | 5 +-
.../airflow/providers/http/notifications/http.py | 105 +
.../src/airflow/providers/http/operators/http.py | 2 +-
.../src/airflow/providers/http/sensors/http.py | 4 +-
.../src/airflow/providers/http/triggers/http.py | 2 +-
.../src/airflow/providers/http/version_compat.py | 17 +-
.../tests/unit/http/notifications}/__init__.py | 0
.../tests/unit/http/notifications/test_http.py | 95 +
providers/imap/README.rst | 6 +-
providers/imap/docs/changelog.rst | 20 +
providers/imap/docs/index.rst | 2 +-
providers/imap/provider.yaml | 3 +-
providers/imap/pyproject.toml | 8 +-
.../imap/src/airflow/providers/imap/__init__.py | 2 +-
.../imap/src/airflow/providers/imap/hooks/imap.py | 11 +-
.../providers/imap/sensors/imap_attachment.py | 2 +-
.../src/airflow/providers/imap/version_compat.py | 15 +-
.../influxdb/docs/.latest-doc-only-change.txt | 2 +-
providers/influxdb/pyproject.toml | 2 +
.../airflow/providers/influxdb/hooks/influxdb.py | 2 +-
.../providers/influxdb/operators/influxdb.py | 2 +-
.../airflow/providers/influxdb/version_compat.py | 15 +-
providers/jdbc/README.rst | 34 +-
providers/jdbc/docs/changelog.rst | 16 +
providers/jdbc/docs/index.rst | 34 +-
providers/jdbc/provider.yaml | 3 +-
providers/jdbc/pyproject.toml | 8 +-
.../jdbc/src/airflow/providers/jdbc/__init__.py | 2 +-
.../jdbc/src/airflow/providers/jdbc/hooks/jdbc.py | 6 +-
providers/jenkins/README.rst | 38 +-
providers/jenkins/docs/changelog.rst | 17 +
providers/jenkins/docs/index.rst | 43 +-
providers/jenkins/provider.yaml | 3 +-
providers/jenkins/pyproject.toml | 8 +-
.../src/airflow/providers/jenkins/__init__.py | 2 +-
.../src/airflow/providers/jenkins/hooks/jenkins.py | 2 +-
.../jenkins/operators/jenkins_job_trigger.py | 61 +-
.../airflow/providers/jenkins/sensors/jenkins.py | 6 +-
.../airflow/providers/jenkins/version_compat.py | 17 -
.../jenkins/operators/test_jenkins_job_trigger.py | 77 +-
.../keycloak}/.pre-commit-config.yaml | 18 +-
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 23 +
providers/keycloak/docs/index.rst | 2 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../keycloak/auth_manager/keycloak_auth_manager.py | 28 +-
.../keycloak/auth_manager/routes/test_login.py | 77 +-
.../auth_manager/test_keycloak_auth_manager.py | 39 +
providers/microsoft/azure/README.rst | 74 +-
providers/microsoft/azure/docs/changelog.rst | 28 +
providers/microsoft/azure/docs/index.rst | 74 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 7 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../airflow/providers/microsoft/azure/fs/adls.py | 2 +-
.../providers/microsoft/azure/fs/msgraph.py | 2 +-
.../airflow/providers/microsoft/azure/hooks/adx.py | 2 +-
.../airflow/providers/microsoft/azure/hooks/asb.py | 2 +-
.../providers/microsoft/azure/hooks/base_azure.py | 2 +-
.../providers/microsoft/azure/hooks/batch.py | 2 +-
.../microsoft/azure/hooks/container_registry.py | 2 +-
.../microsoft/azure/hooks/container_volume.py | 2 +-
.../providers/microsoft/azure/hooks/cosmos.py | 2 +-
.../microsoft/azure/hooks/data_factory.py | 2 +-
.../providers/microsoft/azure/hooks/data_lake.py | 2 +-
.../providers/microsoft/azure/hooks/fileshare.py | 2 +-
.../providers/microsoft/azure/hooks/msgraph.py | 4 +-
.../providers/microsoft/azure/hooks/synapse.py | 2 +-
.../providers/microsoft/azure/hooks/wasb.py | 2 +-
.../providers/microsoft/azure/operators/adls.py | 2 +-
.../providers/microsoft/azure/operators/adx.py | 2 +-
.../providers/microsoft/azure/operators/asb.py | 2 +-
.../providers/microsoft/azure/operators/batch.py | 2 +-
.../azure/operators/container_instances.py | 2 +-
.../providers/microsoft/azure/operators/cosmos.py | 2 +-
.../microsoft/azure/operators/data_factory.py | 14 +-
.../providers/microsoft/azure/operators/msgraph.py | 2 +-
.../providers/microsoft/azure/operators/powerbi.py | 5 +-
.../providers/microsoft/azure/operators/synapse.py | 14 +-
.../microsoft/azure/operators/wasb_delete_blob.py | 2 +-
.../providers/microsoft/azure/sensors/cosmos.py | 7 +-
.../microsoft/azure/sensors/data_factory.py | 7 +-
.../providers/microsoft/azure/sensors/msgraph.py | 2 +-
.../providers/microsoft/azure/sensors/wasb.py | 7 +-
.../microsoft/azure/transfers/local_to_adls.py | 2 +-
.../microsoft/azure/transfers/local_to_wasb.py | 2 +-
.../azure/transfers/oracle_to_azure_data_lake.py | 2 +-
.../microsoft/azure/transfers/s3_to_wasb.py | 2 +-
.../microsoft/azure/transfers/sftp_to_wasb.py | 2 +-
.../providers/microsoft/azure/version_compat.py | 29 -
.../unit/microsoft/azure/operators/test_msgraph.py | 2 +-
.../unit/microsoft/azure/operators/test_powerbi.py | 2 +-
.../microsoft/azure/operators/test_powerbi_list.py | 2 +-
.../azure/tests/unit/microsoft/azure/test_utils.py | 4 +-
.../mssql/docs/.latest-doc-only-change.txt | 2 +-
providers/microsoft/psrp/README.rst | 38 +-
providers/microsoft/psrp/docs/changelog.rst | 16 +
providers/microsoft/psrp/docs/index.rst | 43 +-
providers/microsoft/psrp/provider.yaml | 3 +-
providers/microsoft/psrp/pyproject.toml | 8 +-
.../airflow/providers/microsoft/psrp/__init__.py | 2 +-
.../airflow/providers/microsoft/psrp/hooks/psrp.py | 2 +-
.../providers/microsoft/psrp/operators/psrp.py | 2 +-
.../providers/microsoft/psrp/version_compat.py | 12 -
.../unit/microsoft/psrp/operators/test_psrp.py | 2 +-
providers/microsoft/winrm/README.rst | 38 +-
providers/microsoft/winrm/docs/changelog.rst | 21 +
providers/microsoft/winrm/docs/index.rst | 43 +-
providers/microsoft/winrm/provider.yaml | 3 +-
providers/microsoft/winrm/pyproject.toml | 8 +-
.../airflow/providers/microsoft/winrm/__init__.py | 2 +-
.../providers/microsoft/winrm/hooks/winrm.py | 2 +-
.../providers/microsoft/winrm/operators/winrm.py | 2 +-
.../providers/microsoft/winrm/version_compat.py | 12 -
providers/mongo/docs/.latest-doc-only-change.txt | 2 +-
providers/mongo/pyproject.toml | 2 +
.../src/airflow/providers/mongo/hooks/mongo.py | 2 +-
.../src/airflow/providers/mongo/sensors/mongo.py | 2 +-
.../src/airflow/providers/mongo/version_compat.py | 15 +-
providers/mysql/docs/.latest-doc-only-change.txt | 2 +-
providers/mysql/pyproject.toml | 2 +
.../src/airflow/providers/mysql/hooks/mysql.py | 7 +-
.../providers/mysql/transfers/presto_to_mysql.py | 8 +-
.../providers/mysql/transfers/s3_to_mysql.py | 8 +-
.../providers/mysql/transfers/trino_to_mysql.py | 8 +-
.../providers/mysql/transfers/vertica_to_mysql.py | 8 +-
.../src/airflow/providers/mysql/version_compat.py | 6 -
.../mysql/tests/unit/mysql/hooks/test_mysql.py | 21 +-
.../mysql/hooks/test_mysql_connector_python.py | 4 +-
providers/neo4j/README.rst | 6 +-
providers/neo4j/docs/changelog.rst | 17 +
providers/neo4j/docs/index.rst | 2 +-
providers/neo4j/provider.yaml | 3 +-
providers/neo4j/pyproject.toml | 8 +-
.../neo4j/src/airflow/providers/neo4j/__init__.py | 2 +-
.../src/airflow/providers/neo4j/hooks/neo4j.py | 5 +-
.../src/airflow/providers/neo4j/operators/neo4j.py | 2 +-
.../src/airflow/providers/neo4j/version_compat.py | 6 -
.../neo4j/tests/unit/neo4j/operators/test_neo4j.py | 2 +-
providers/odbc/docs/.latest-doc-only-change.txt | 2 +-
providers/openai/README.rst | 38 +-
providers/openai/docs/changelog.rst | 21 +
providers/openai/docs/index.rst | 43 +-
providers/openai/provider.yaml | 3 +-
providers/openai/pyproject.toml | 8 +-
.../src/airflow/providers/openai/__init__.py | 2 +-
.../src/airflow/providers/openai/hooks/openai.py | 2 +-
.../airflow/providers/openai/operators/openai.py | 8 +-
.../src/airflow/providers/openai/version_compat.py | 18 +-
.../openai/tests/system/openai/example_openai.py | 8 +-
.../tests/unit/openai/operators/test_openai.py | 7 +-
.../openfaas/docs/.latest-doc-only-change.txt | 2 +-
providers/openfaas/pyproject.toml | 2 +
.../airflow/providers/openfaas/hooks/openfaas.py | 2 +-
.../airflow/providers/openfaas/version_compat.py | 6 -
providers/openlineage/README.rst | 12 +-
providers/openlineage/docs/changelog.rst | 26 +
providers/openlineage/docs/guides/user.rst | 2 +-
providers/openlineage/docs/index.rst | 12 +-
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 8 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../providers/openlineage/extractors/manager.py | 6 +-
.../providers/openlineage/operators/empty.py | 4 +-
.../providers/openlineage/plugins/listener.py | 2 +-
.../providers/openlineage/plugins/macros.py | 2 +-
.../src/airflow/providers/openlineage/sqlparser.py | 2 +-
.../openlineage/utils/selective_enable.py | 9 +-
.../airflow/providers/openlineage/utils/spark.py | 2 +-
.../src/airflow/providers/openlineage/utils/sql.py | 2 +-
.../airflow/providers/openlineage/utils/utils.py | 25 +-
.../providers/openlineage/version_compat.py | 15 +-
.../example_openlineage_base_complex_dag.py | 2 +-
.../tests/system/openlineage/operator.py | 13 +-
.../openlineage/dags/test_openlineage_execution.py | 2 +-
.../tests/unit/openlineage/extractors/test_base.py | 8 +-
.../unit/openlineage/extractors/test_manager.py | 24 +-
.../unit/openlineage/plugins/test_listener.py | 5 +-
.../tests/unit/openlineage/plugins/test_macros.py | 2 +-
.../tests/unit/openlineage/plugins/test_utils.py | 9 +-
.../unit/openlineage/utils/custom_facet_fixture.py | 2 +-
.../openlineage/utils/test_selective_enable.py | 8 +-
.../tests/unit/openlineage/utils/test_utils.py | 9 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 16 +
providers/opensearch/docs/index.rst | 2 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 8 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/opensearch/hooks/opensearch.py | 2 +-
.../providers/opensearch/log/os_task_handler.py | 14 +-
.../providers/opensearch/operators/opensearch.py | 2 +-
.../airflow/providers/opensearch/version_compat.py | 13 -
.../opensearch/tests/unit/opensearch/conftest.py | 2 +-
.../opsgenie/docs/.latest-doc-only-change.txt | 2 +-
providers/opsgenie/pyproject.toml | 2 +-
.../airflow/providers/opsgenie/hooks/opsgenie.py | 2 +-
.../providers/opsgenie/notifications/opsgenie.py | 7 +-
.../providers/opsgenie/operators/opsgenie.py | 8 +-
.../airflow/providers/opsgenie/version_compat.py | 12 +-
providers/oracle/docs/.latest-doc-only-change.txt | 2 +-
providers/oracle/pyproject.toml | 2 +
.../airflow/providers/oracle/operators/oracle.py | 4 +-
.../providers/oracle/transfers/oracle_to_oracle.py | 4 +-
.../src/airflow/providers/oracle/version_compat.py | 9 -
providers/pagerduty/README.rst | 10 +-
providers/pagerduty/docs/changelog.rst | 22 +
providers/pagerduty/docs/index.rst | 10 +-
.../pagerduty_notifier_howto_guide.rst | 4 +-
providers/pagerduty/provider.yaml | 3 +-
providers/pagerduty/pyproject.toml | 8 +-
.../src/airflow/providers/pagerduty/__init__.py | 2 +-
.../airflow/providers/pagerduty/hooks/pagerduty.py | 2 +-
.../providers/pagerduty/hooks/pagerduty_events.py | 2 +-
.../airflow/providers/pagerduty/version_compat.py | 6 -
.../tests/unit/pagerduty/hooks/test_pagerduty.py | 8 +-
.../unit/pagerduty/hooks/test_pagerduty_events.py | 43 +-
.../papermill/docs/.latest-doc-only-change.txt | 2 +-
providers/papermill/pyproject.toml | 1 +
.../airflow/providers/papermill/hooks/kernel.py | 2 +-
.../providers/papermill/operators/papermill.py | 8 +-
.../airflow/providers/papermill/version_compat.py | 12 -
providers/pgvector/README.rst | 30 +-
providers/pgvector/docs/changelog.rst | 20 +
providers/pgvector/docs/index.rst | 21 +-
providers/pgvector/provider.yaml | 3 +-
providers/pgvector/pyproject.toml | 7 +-
.../src/airflow/providers/pgvector/__init__.py | 2 +-
.../tests/system/pgvector/example_pgvector.py | 8 +-
.../system/pgvector/example_pgvector_openai.py | 8 +-
.../pinecone/docs/.latest-doc-only-change.txt | 2 +-
providers/pinecone/pyproject.toml | 2 +
.../airflow/providers/pinecone/hooks/pinecone.py | 2 +-
.../providers/pinecone/operators/pinecone.py | 2 +-
.../airflow/providers/pinecone/version_compat.py | 13 +-
providers/postgres/README.rst | 55 +-
providers/postgres/docs/changelog.rst | 23 +
providers/postgres/docs/index.rst | 34 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 8 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
.../providers/postgres/dialects/postgres.py | 79 +-
.../airflow/providers/postgres/hooks/postgres.py | 6 +-
providers/presto/README.rst | 15 +-
providers/presto/docs/changelog.rst | 21 +
providers/presto/docs/index.rst | 6 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 8 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
.../src/airflow/providers/presto/hooks/presto.py | 37 +-
.../providers/presto/transfers/gcs_to_presto.py | 2 +-
.../src/airflow/providers/presto/version_compat.py | 6 -
.../tests/unit/presto/hooks/test_presto_sql.py | 364 ++
providers/qdrant/docs/.latest-doc-only-change.txt | 2 +-
providers/qdrant/pyproject.toml | 2 +
.../src/airflow/providers/qdrant/hooks/qdrant.py | 2 +-
.../airflow/providers/qdrant/operators/qdrant.py | 2 +-
.../src/airflow/providers/qdrant/version_compat.py | 15 +-
providers/redis/README.rst | 19 +-
providers/redis/docs/.latest-doc-only-change.txt | 2 +-
providers/redis/docs/changelog.rst | 16 +
providers/redis/docs/index.rst | 19 +-
providers/redis/provider.yaml | 3 +-
providers/redis/pyproject.toml | 8 +-
.../redis/src/airflow/providers/redis/__init__.py | 2 +-
.../src/airflow/providers/redis/hooks/redis.py | 2 +-
.../providers/redis/operators/redis_publish.py | 8 +-
.../airflow/providers/redis/sensors/redis_key.py | 8 +-
.../providers/redis/sensors/redis_pub_sub.py | 8 +-
.../src/airflow/providers/redis/version_compat.py | 13 +-
.../unit/redis/log/test_redis_task_handler.py | 5 +-
.../salesforce/docs/.latest-doc-only-change.txt | 2 +-
providers/salesforce/pyproject.toml | 2 +
.../providers/salesforce/hooks/salesforce.py | 2 +-
.../airflow/providers/salesforce/operators/bulk.py | 4 +-
.../salesforce/operators/salesforce_apex_rest.py | 4 +-
.../airflow/providers/salesforce/version_compat.py | 17 +-
providers/samba/docs/.latest-doc-only-change.txt | 2 +-
providers/samba/pyproject.toml | 2 +
.../src/airflow/providers/samba/hooks/samba.py | 2 +-
.../providers/samba/transfers/gcs_to_samba.py | 4 +-
.../src/airflow/providers/samba/version_compat.py | 17 +-
providers/segment/docs/.latest-doc-only-change.txt | 2 +-
providers/segment/pyproject.toml | 2 +
.../src/airflow/providers/segment/hooks/segment.py | 2 +-
.../segment/operators/segment_track_event.py | 4 +-
.../airflow/providers/segment/version_compat.py | 17 +-
providers/sendgrid/README.rst | 42 +-
providers/sendgrid/docs/changelog.rst | 20 +
providers/sendgrid/docs/index.rst | 47 +-
providers/sendgrid/provider.yaml | 3 +-
providers/sendgrid/pyproject.toml | 8 +-
.../src/airflow/providers/sendgrid/__init__.py | 2 +-
.../airflow/providers/sendgrid/utils/emailer.py | 2 +-
.../airflow/providers/sendgrid/version_compat.py | 9 +-
providers/sftp/README.rst | 16 +-
providers/sftp/docs/changelog.rst | 17 +
providers/sftp/docs/index.rst | 6 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 7 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
.../providers/sftp/decorators/sensors/sftp.py | 11 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 4 +-
.../src/airflow/providers/sftp/operators/sftp.py | 21 +-
.../src/airflow/providers/sftp/sensors/sftp.py | 8 +-
.../src/airflow/providers/sftp/version_compat.py | 14 +-
.../singularity/docs/.latest-doc-only-change.txt | 2 +-
providers/singularity/pyproject.toml | 2 +
.../providers/singularity/operators/singularity.py | 4 +-
.../providers/singularity/version_compat.py | 9 +-
providers/slack/README.rst | 9 +-
providers/slack/docs/changelog.rst | 18 +
providers/slack/docs/index.rst | 9 +-
.../notifications/slack_notifier_howto_guide.rst | 4 +-
.../slackwebhook_notifier_howto_guide.rst | 4 +-
providers/slack/provider.yaml | 3 +-
providers/slack/pyproject.toml | 9 +-
.../slack/src/airflow/providers/slack/__init__.py | 2 +-
.../src/airflow/providers/slack/hooks/slack.py | 45 +-
.../airflow/providers/slack/hooks/slack_webhook.py | 13 +-
.../airflow/providers/slack/notifications/slack.py | 22 +-
.../src/airflow/providers/slack/operators/slack.py | 8 +-
.../providers/slack/operators/slack_webhook.py | 8 +-
.../providers/slack/transfers/base_sql_to_slack.py | 2 +-
.../providers/slack/transfers/sql_to_slack.py | 6 +-
.../slack/transfers/sql_to_slack_webhook.py | 6 +-
.../src/airflow/providers/slack/utils/__init__.py | 15 +
.../src/airflow/providers/slack/version_compat.py | 12 -
.../slack/tests/unit/slack/hooks/test_slack.py | 57 +-
.../tests/unit/slack/hooks/test_slack_webhook.py | 2 +-
.../tests/unit/slack/notifications/test_slack.py | 28 +
.../slack/tests/unit/slack/utils/test_utils.py | 43 +-
providers/smtp/docs/.latest-doc-only-change.txt | 2 +-
providers/smtp/docs/connections/smtp.rst | 4 +-
.../notifications/smtp_notifier_howto_guide.rst | 4 +-
providers/smtp/pyproject.toml | 2 +-
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 7 +-
.../airflow/providers/smtp/notifications/smtp.py | 2 +-
.../src/airflow/providers/smtp/operators/smtp.py | 4 +-
.../src/airflow/providers/smtp/version_compat.py | 15 -
providers/snowflake/README.rst | 38 +-
providers/snowflake/docs/changelog.rst | 29 +
.../docs/configurations-ref.rst | 0
providers/snowflake/docs/connections/snowflake.rst | 1 +
providers/snowflake/docs/index.rst | 28 +-
providers/snowflake/provider.yaml | 16 +-
providers/snowflake/pyproject.toml | 12 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
.../providers/snowflake/decorators/snowpark.py | 12 +-
.../providers/snowflake/get_provider_info.py | 14 +
.../airflow/providers/snowflake/hooks/snowflake.py | 56 +-
.../providers/snowflake/operators/snowflake.py | 6 +-
.../snowflake/transfers/copy_into_snowflake.py | 2 +-
.../airflow/providers/snowflake/version_compat.py | 6 -
.../unit/snowflake/decorators/test_snowpark.py | 7 +-
.../tests/unit/snowflake/hooks/test_snowflake.py | 79 +
.../unit/snowflake/operators/test_snowflake.py | 7 +-
providers/sqlite/docs/.latest-doc-only-change.txt | 2 +-
providers/ssh/README.rst | 40 +-
providers/ssh/docs/changelog.rst | 22 +
providers/ssh/docs/index.rst | 45 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 8 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 2 +-
.../ssh/src/airflow/providers/ssh/operators/ssh.py | 16 +-
.../src/airflow/providers/ssh/version_compat.py | 12 +-
providers/ssh/tests/unit/ssh/operators/test_ssh.py | 20 +-
providers/standard/README.rst | 36 +-
providers/standard/docs/changelog.rst | 17 +
providers/standard/docs/index.rst | 41 +-
providers/standard/docs/operators/bash.rst | 2 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 8 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../airflow/providers/standard/decorators/bash.py | 20 +-
.../standard/decorators/branch_external_python.py | 10 +-
.../providers/standard/decorators/branch_python.py | 9 +-
.../standard/decorators/branch_virtualenv.py | 9 +-
.../standard/decorators/external_python.py | 9 +-
.../providers/standard/decorators/python.py | 9 +-
.../standard/decorators/python_virtualenv.py | 11 +-
.../providers/standard/decorators/sensor.py | 11 +-
.../providers/standard/decorators/short_circuit.py | 10 +-
.../airflow/providers/standard/decorators/stub.py | 18 +-
.../example_dags/example_bash_decorator.py | 7 +-
.../example_dags/example_branch_operator.py | 7 +-
.../example_branch_operator_decorator.py | 7 +-
.../example_external_task_parent_deferrable.py | 8 +-
.../standard/example_dags/example_hitl_operator.py | 2 +-
.../standard/example_dags/example_sensors.py | 7 +-
.../example_short_circuit_decorator.py | 7 +-
.../example_dags/example_short_circuit_operator.py | 7 +-
.../airflow/providers/standard/hooks/filesystem.py | 2 +-
.../providers/standard/hooks/package_index.py | 2 +-
.../airflow/providers/standard/hooks/subprocess.py | 2 +-
.../airflow/providers/standard/operators/bash.py | 15 +-
.../airflow/providers/standard/operators/branch.py | 2 +-
.../providers/standard/operators/datetime.py | 8 +-
.../airflow/providers/standard/operators/empty.py | 2 +-
.../airflow/providers/standard/operators/hitl.py | 2 +-
.../providers/standard/operators/latest_only.py | 7 +-
.../airflow/providers/standard/operators/python.py | 18 +-
.../airflow/providers/standard/operators/smooth.py | 2 +-
.../providers/standard/operators/trigger_dagrun.py | 35 +-
.../providers/standard/operators/weekday.py | 8 +-
.../src/airflow/providers/standard/sensors/bash.py | 8 +-
.../providers/standard/sensors/date_time.py | 8 +-
.../providers/standard/sensors/external_task.py | 9 +-
.../providers/standard/sensors/filesystem.py | 2 +-
.../airflow/providers/standard/sensors/python.py | 8 +-
.../src/airflow/providers/standard/sensors/time.py | 7 +-
.../providers/standard/sensors/time_delta.py | 10 +-
.../airflow/providers/standard/sensors/weekday.py | 9 +-
.../providers/standard/triggers/temporal.py | 6 +-
.../providers/standard/utils/python_virtualenv.py | 39 +-
.../airflow/providers/standard/utils/skipmixin.py | 8 +-
.../airflow/providers/standard/version_compat.py | 24 +-
.../tests/unit/standard/operators/test_python.py | 6 +-
.../unit/standard/operators/test_trigger_dagrun.py | 56 +-
.../unit/standard/utils/test_python_virtualenv.py | 16 +-
providers/tableau/README.rst | 38 +-
providers/tableau/docs/changelog.rst | 22 +
providers/tableau/docs/index.rst | 43 +-
providers/tableau/provider.yaml | 3 +-
providers/tableau/pyproject.toml | 8 +-
.../src/airflow/providers/tableau/__init__.py | 2 +-
.../src/airflow/providers/tableau/hooks/tableau.py | 2 +-
.../airflow/providers/tableau/operators/tableau.py | 8 +-
.../airflow/providers/tableau/sensors/tableau.py | 8 +-
.../airflow/providers/tableau/version_compat.py | 13 +-
providers/telegram/README.rst | 38 +-
.../telegram/docs/.latest-doc-only-change.txt | 2 +-
providers/telegram/docs/changelog.rst | 22 +
providers/telegram/docs/index.rst | 43 +-
providers/telegram/provider.yaml | 3 +-
providers/telegram/pyproject.toml | 8 +-
.../src/airflow/providers/telegram/__init__.py | 2 +-
.../airflow/providers/telegram/hooks/telegram.py | 2 +-
.../providers/telegram/operators/telegram.py | 8 +-
.../airflow/providers/telegram/version_compat.py | 12 +-
providers/teradata/README.rst | 35 +-
providers/teradata/docs/changelog.rst | 20 +
providers/teradata/docs/index.rst | 24 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 8 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
.../airflow/providers/teradata/hooks/teradata.py | 20 +-
.../src/airflow/providers/teradata/hooks/ttu.py | 2 +-
.../airflow/providers/teradata/operators/bteq.py | 7 +-
.../providers/teradata/operators/teradata.py | 8 +-
.../teradata/operators/teradata_compute_cluster.py | 14 +-
.../teradata/transfers/azure_blob_to_teradata.py | 4 +-
.../providers/teradata/transfers/s3_to_teradata.py | 8 +-
.../teradata/transfers/teradata_to_teradata.py | 8 +-
.../airflow/providers/teradata/version_compat.py | 12 +-
.../tests/unit/teradata/operators/test_bteq.py | 2 +-
providers/trino/README.rst | 52 +-
providers/trino/docs/.latest-doc-only-change.txt | 2 +-
providers/trino/docs/changelog.rst | 22 +
providers/trino/docs/index.rst | 42 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 8 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
.../providers/trino/transfers/gcs_to_trino.py | 8 +-
.../src/airflow/providers/trino/version_compat.py | 6 -
providers/vertica/README.rst | 6 +-
providers/vertica/docs/changelog.rst | 21 +
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 | 44 +-
providers/weaviate/docs/changelog.rst | 17 +
providers/weaviate/docs/index.rst | 49 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 8 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
.../airflow/providers/weaviate/hooks/weaviate.py | 2 +-
.../providers/weaviate/operators/weaviate.py | 4 +-
.../airflow/providers/weaviate/version_compat.py | 20 +-
providers/yandex/docs/.latest-doc-only-change.txt | 2 +-
providers/yandex/pyproject.toml | 3 +
.../src/airflow/providers/yandex/hooks/yandex.py | 2 +-
.../src/airflow/providers/yandex/links/yq.py | 4 +-
.../airflow/providers/yandex/operators/dataproc.py | 4 +-
.../src/airflow/providers/yandex/operators/yq.py | 4 +-
.../src/airflow/providers/yandex/version_compat.py | 21 -
.../tests/unit/yandex/hooks/test_dataproc.py | 11 +-
.../yandex/tests/unit/yandex/hooks/test_yandex.py | 10 +-
.../yandex/tests/unit/yandex/hooks/test_yq.py | 9 +-
.../yandex/tests/unit/yandex/links/test_yq.py | 6 +-
.../tests/unit/yandex/operators/test_dataproc.py | 10 +-
.../yandex/tests/unit/yandex/operators/test_yq.py | 10 +-
providers/ydb/docs/.latest-doc-only-change.txt | 2 +-
providers/zendesk/README.rst | 38 +-
providers/zendesk/docs/changelog.rst | 17 +
providers/zendesk/docs/index.rst | 43 +-
providers/zendesk/provider.yaml | 3 +-
providers/zendesk/pyproject.toml | 8 +-
.../src/airflow/providers/zendesk/__init__.py | 2 +-
.../src/airflow/providers/zendesk/hooks/zendesk.py | 2 +-
.../airflow/providers/zendesk/version_compat.py | 14 -
pyproject.toml | 6 +-
.../ci/dockerfiles/apache-rat/build_and_push.sh | 4 +-
scripts/ci/install_breeze.sh | 4 +-
.../ci/prek/check_common_compat_lazy_imports.py | 183 +
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_license.py | 14 +-
.../check_template_context_variable_in_sync.py | 18 +-
scripts/ci/prek/common_prek_utils.py | 32 +-
scripts/ci/prek/mypy.py | 7 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/update_breeze_config_hash.py | 69 -
scripts/ci/prek/update_providers_build_files.py | 6 +-
scripts/ci/prek/upgrade_important_versions.py | 17 +-
scripts/cov/core_coverage.py | 1 +
.../docker/install_airflow_when_building_images.sh | 1 +
scripts/docker/install_mysql.sh | 93 +-
scripts/in_container/bin/run_tmux | 4 +
.../in_container/install_airflow_and_providers.py | 268 +-
scripts/systemd/airflow-api.service | 9 +-
scripts/systemd/airflow-flower.service | 1 -
scripts/systemd/airflow-kerberos.service | 2 +-
scripts/systemd/airflow-triggerer.service | 9 +-
scripts/tools/setup_breeze | 2 +-
shared/README.md | 2 +-
.../src/airflow_shared/logging/structlog.py | 14 +-
.../secrets_masker/secrets_masker.py | 19 +-
.../tests/secrets_masker/test_secrets_masker.py | 41 +
task-sdk-tests/pyproject.toml | 1 -
task-sdk-tests/tests/task_sdk_tests/conftest.py | 40 +-
task-sdk-tests/tests/task_sdk_tests/constants.py | 20 -
.../test_task_instance_operations.py | 190 +
.../tests/task_sdk_tests/test_task_sdk_health.py | 7 +-
task-sdk/.gitignore | 14 +
task-sdk/pyproject.toml | 4 -
task-sdk/src/airflow/sdk/api/client.py | 59 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
.../sdk/definitions/_internal/abstractoperator.py | 4 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 2 +-
task-sdk/src/airflow/sdk/definitions/connection.py | 19 -
task-sdk/src/airflow/sdk/definitions/dag.py | 70 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 8 +
task-sdk/src/airflow/sdk/execution_time/context.py | 140 +-
.../sdk/execution_time/secrets/execution_api.py | 20 +
.../src/airflow/sdk/execution_time/supervisor.py | 96 +-
.../src/airflow/sdk/execution_time/task_runner.py | 13 +-
task-sdk/src/airflow/sdk/module_loading.py | 3 +-
task-sdk/tests/task_sdk/api/test_client.py | 391 +-
task-sdk/tests/task_sdk/bases/test_hook.py | 2 -
task-sdk/tests/task_sdk/bases/test_sensor.py | 45 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 15 +
task-sdk/tests/task_sdk/definitions/test_param.py | 3 +-
.../tests/task_sdk/execution_time/test_context.py | 100 +-
.../tests/task_sdk/execution_time/test_secrets.py | 38 +
.../task_sdk/execution_time/test_supervisor.py | 249 +-
.../task_sdk/execution_time/test_task_runner.py | 152 +-
1667 files changed, 26276 insertions(+), 13125 deletions(-)
delete mode 100644 .github/actions/install-pre-commit/action.yml
rename .github/workflows/{ci-amd.yml => ci-amd-arm.yml} (90%)
delete mode 100644 .github/workflows/ci-arm.yml
copy airflow-core/src/airflow/{api/common =>
api_fastapi/auth/middlewares}/__init__.py (100%)
create mode 100644
airflow-core/src/airflow/api_fastapi/auth/middlewares/refresh_token.py
copy
airflow-core/src/airflow/api_fastapi/execution_api/versions/{v2025_10_10.py =>
v2025_10_27.py} (66%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/versions/{v2025_10_10.py =>
v2026_01_01.py} (100%)
copy
airflow-core/src/airflow/migrations/versions/{0069_3_0_3_delete_import_errors.py
=> 0090_3_2_0_add_fail_fast_to_dag_table.py} (69%)
create mode 100644
airflow-core/src/airflow/migrations/versions/0091_3_2_0_restructure_callback_table.py
create mode 100644 airflow-core/src/airflow/models/callback.py
copy
providers/amazon/src/airflow/providers/amazon/aws/auth_manager/datamodels/login.py
=> airflow-core/src/airflow/serialization/definitions/notset.py (84%)
create mode 100644 airflow-core/src/airflow/serialization/definitions/param.py
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/tasks.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/tasks.json
create mode 100644 airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/ui/ResizableWrapper.tsx
copy airflow-core/src/airflow/ui/src/{context/timezone/TimezoneProvider.tsx =>
utils/usePersistentResizableState.ts} (55%)
copy airflow-core/{src/airflow/api/common =>
tests/unit/api_fastapi/auth/middlewares}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/auth/middlewares/test_refresh_token.py
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/execution_api/versions/v2025_04_28}/__init__.py (100%)
copy airflow-core/tests/unit/dags/subdir1/{test_negate_ignore.py =>
test_explicit_dont_ignore.py} (89%)
copy airflow-core/{src/airflow/api/common/__init__.py =>
tests/unit/dags/subdir2/subdir3/should_ignore_this.py} (100%)
copy airflow-core/{src/airflow/_shared/__init__.py =>
tests/unit/dags/subdir2/subdir3/test_explicit_ignore.py} (100%)
create mode 100644 airflow-core/tests/unit/models/test_callback.py
copy {task-sdk-tests => airflow-ctl-tests}/pyproject.toml (92%)
copy {task-sdk-tests/tests/task_sdk_tests =>
airflow-ctl-tests/tests/airflowctl_tests}/__init__.py (100%)
create mode 100644 airflow-ctl-tests/tests/airflowctl_tests/conftest.py
copy {docker-tests/tests/docker_tests =>
airflow-ctl-tests/tests/airflowctl_tests}/constants.py (84%)
create mode 100644
airflow-ctl-tests/tests/airflowctl_tests/test_airflowctl_commands.py
create mode 100644
dev/breeze/doc/images/output_testing_airflow-ctl-integration-tests.svg
create mode 100644
dev/breeze/doc/images/output_testing_airflow-ctl-integration-tests.txt
delete mode 100755
docker-stack-docs/docker-examples/customizing/mysql-client.sh
create mode 100644 docs/images/build-docs.png
delete mode 100644 go-sdk/celery/app.go
delete mode 100644 go-sdk/celery/cmd/main.go
delete mode 100644 go-sdk/celery/commands/root.go
delete mode 100644 go-sdk/celery/commands/run.go
delete mode 100644 go-sdk/celery/config.go
rename go-sdk/{edge/cmd => cmd/airflow-go-edge-worker}/main.go (100%)
create mode 100644 providers/.pre-commit-config.yaml
create mode 100644
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/utils/container.py
create mode 100644
providers/cncf/kubernetes/tests/unit/cncf/kubernetes/utils/test_container.py
copy {dev => providers/common/compat}/.pre-commit-config.yaml (66%)
create mode 100644
providers/common/compat/src/airflow/providers/common/compat/_compat_utils.py
create mode 100644
providers/common/compat/src/airflow/providers/common/compat/sdk.py
copy {airflow-core/src/airflow/_shared =>
providers/common/compat/src/airflow/providers/common/compat/sqlalchemy}/__init__.py
(100%)
copy dev/breeze/src/airflow_breeze/utils/click_utils.py =>
providers/common/compat/src/airflow/providers/common/compat/sqlalchemy/orm.py
(80%)
copy {airflow-core/src/airflow/_shared =>
providers/common/compat/tests/unit/common/compat/sqlalchemy}/__init__.py (100%)
create mode 100644
providers/common/compat/tests/unit/common/compat/sqlalchemy/test_orm.py
create mode 100644
providers/common/compat/tests/unit/common/compat/test__compat_utils.py
create mode 100644 providers/common/compat/tests/unit/common/compat/test_sdk.py
create mode 100644 providers/edge3/.pre-commit-config.yaml
create mode 100644 providers/fab/.pre-commit-config.yaml
create mode 100644 providers/google/docs/operators/cloud/gen_ai.rst
create mode 100644
providers/google/src/airflow/providers/google/cloud/hooks/gen_ai.py
create mode 100644
providers/google/src/airflow/providers/google/cloud/operators/gen_ai.py
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/gen_ai}/__init__.py (100%)
rename
providers/google/tests/system/google/cloud/{vertex_ai/example_vertex_ai_generative_model.py
=> gen_ai/example_gen_ai_generative_model.py} (80%)
rename
providers/google/tests/system/google/cloud/{vertex_ai/example_vertex_ai_generative_model_tuning.py
=> gen_ai/example_gen_ai_generative_model_tuning.py} (82%)
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/gen_ai/resources}/__init__.py (100%)
copy providers/google/tests/system/google/cloud/{vertex_ai =>
gen_ai}/resources/video_tuning_dataset.jsonl (100%)
create mode 100644
providers/google/tests/unit/google/cloud/hooks/test_gen_ai.py
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/unit/google/cloud/operators/gen_ai}/__init__.py (100%)
create mode 100644
providers/google/tests/unit/google/cloud/operators/test_gen_ai.py
copy airflow-core/src/airflow/example_dags/libs/helper.py =>
providers/http/src/airflow/providers/http/notifications/__init__.py (89%)
create mode 100644
providers/http/src/airflow/providers/http/notifications/http.py
copy {airflow-core/src/airflow/_shared =>
providers/http/tests/unit/http/notifications}/__init__.py (100%)
create mode 100644 providers/http/tests/unit/http/notifications/test_http.py
copy {dev => providers/keycloak}/.pre-commit-config.yaml (67%)
create mode 100644 providers/presto/tests/unit/presto/hooks/test_presto_sql.py
copy providers/{amazon => snowflake}/docs/configurations-ref.rst (100%)
create mode 100755 scripts/ci/prek/check_common_compat_lazy_imports.py
delete mode 100755 scripts/ci/prek/update_breeze_config_hash.py
create mode 100644
task-sdk-tests/tests/task_sdk_tests/test_task_instance_operations.py
create mode 100644 task-sdk/.gitignore