This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a change to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard a91a39169b1 [v3-0-test] Limit confluent-kafka temporarily to exclude
2.8.1 (#47204) (#47205)
omit bcd82b9c5a7 Bump version of kubernetes provider to 10.4.0
omit beca634ab34 Bump version of celery provider to 3.11.0
omit 286987bbbb5 Bump version of standard provider to 1.0.0
omit f0524db873e Bump task-sdk version to 1.0.0.b1
omit b5c0f40da12 Update RELEASE_NOTES.rst
omit af05606ea2e Update Airflow version to 3.0.0b1
omit 79d4020a6c2 Update default branches for 3-0
add 78667ac52d3 Disable past/future Clear TI buttons when logical date is
null (#47170)
add 280453006d5 Add in 500 error logging for the ExecutionAPI app (#47159)
add 4eeb6f08205 doc: fix contribution doc ports (#47176) (#47177)
add ffe8f230a6f Update INTHEWILD.md (#47175)
add 28c93d93ca2 fIx deprecation warnings in common.sql (#47169)
add 22da95984a3 Add bundle name arg to list dags cli command (#45779)
add 871b3e70c06 Removing upper bound on drill now that 1.1.8 is released
(#47190)
add 6f503a37671 Improve Dag/Task page responsiveness (#47179)
add 647b39d2e9b [Edge] Export ti.success and ti.finish metrics from edge
worker (#47063)
add 405c8c97321 Disable Past/Future options for Mark TI as when logical
date is null (#47182)
add 8a4fca53308 Fix graph height from PanelButtons change (#47181)
add 1e87a2a72cc fix: finally delete archive table when airflow clean fail
(#46857)
add 4a0b8f350ab Fix waiting for UI asset compilation instead of WWW in
start-airflow (#47202)
add 9dcb91439f1 Fix black color hiding note icon in dark theme. (#47193)
add 76c7044ec0b Limit confluent-kafka temporarily to exclude 2.8.1 (#47204)
add 7053b110c74 Indent fix for breeze visuals (#47198)
add ba6cdc60535 Link state icons in dashboard to list page with instances
filtered by the state for the given duration. (#46968)
add ce6261e99ac Fix kafka connection refuse issue in kafka provider tests
(#47213)
add 4e258927642 AIP-38 Fix graph mapped task instance link (#47215)
add dce416dc9a5 Avoid old www geenrated assets and node_modules to be part
of context (#47214)
add 07e0bc10963 Workaround PyPI constraint generation error caused by
confluent-kafka 2.8.1 (#47216)
add 8a3328a9b5e Bring back Airflow 2 webserver port mapping (#47219)
add 8661e095f60 Format log timestamp and level. Filter logs by level
(#47178)
add 1addb55154f Improve documentation for updating provider dependencies
(#47203)
add 3aebe6329c7 Fix typing on TIHistory.record_ti (#47222)
add 16dbee9fb1c Records TIHistory record when task retries (#47223)
add 1ae1ff8b418 Fix rendered_fields Field in TI Responsse pydantic model
(#46985)
add c51010f41ce Re-added close_conn connection on SFTPHook and get_conn
should return SFTPClient instead of context managed connection (#47217)
add b835219e1ee Fix support for old method signature of
pagination_function in MSGraphAsyncOperator (#47101)
add 07af54e5c6b Fix set option (#47218)
add b38e09397e5 Add local scheme as alternative to file for using the
ObjectStoragePath (#46670)
add 10da1a02f30 Implement stale dag bundle cleanup (#46503)
add bf210230b04 [Helm Chart] Grant Airflow API Server Permission to Read
Pod Logs (#47212)
add eeed654069b Pinning fastapi to not use 0.115.10 temporarily (#47233)
add 1e602b12d85 doc: fix webserver command in contribution doc (#47176)
(#47235)
add 65d00988ed9 Remove `api_connexion` (#47171)
add ca4f094c76c Common Message Queue (#46694)
add 28436fb1cd7 Clean out legacy commands (#47236)
add 998fcd6cfbc Improve SFTP hook's directory transfer to use a single
connection for multiple files (#46582)
add 6e7c5f13caa Add root volume for airflow to keep generated config in
breeze (#47228)
add 5e8d8afdd8a Upgrade to latest version of uv (#47243)
add 51c2590fc60 Popup auto closing in Create backfill (#47244)
add ccd02336bfc Fix broken generated provider.toml on main (#47250)
add 4eb8af064d9 Update Airflow back-compat version after 2.10.5 release
(#47226)
add cc2c4ce0c96 Regenerate common.messaging generated documentation/files
(#47253)
add 5f7be558a19 Add regex validation for table names in 'bulk_dump'
(#47255)
add 4e8fa928e4e Add regex validation for table names in 'bulk_load'
(#47254)
add c9bbfa5692e Fix MSSQL provider dependency on common-sql (#47188)
add ae7d4d8b024 Automatically upgrade node when upgrading installers
(#47247)
add 69eba4407bf Change get_conn to get_managed_conn in direcotry transfer
(#47248)
add f4e8f866402 Introduce `breeze doctor` (#46664)
add e4bef43c001 Remove exclusions of confluent-kafka (#47240)
add 49d33b64691 Add Selective Check for caplog Usage and Warn and Allow
Maintainer to Approve (#46780)
add 14477054824 Fix codespell issues detected by new codespell (#47259)
add f015a947d6b Limit secrets passed to reusable workflows (#47258)
add f40b55a2040 Feature/list connections on connections page (#47231)
add 0593e7fefe2 Adding comment explaining why we exclude 0.115.10 fastapi
(#47266)
add 67b4325b9c7 Fix permissions for aws-creds in publish-docs job (#47272)
add 001f25a3b88 Deprecating email, email_on_retry, email_on_failure in
BaseOperator (#47146)
add d869ee5b266 Fix typo in helm-chart values schema (#47269)
add 33893c48604 include area:providers in boring cyborg labels (#47276)
add b69fe195eb4 Fix minor formatting issue in breeze troubleshooting doc
(#47277)
add ddd8e3fb008 Replace disallowed characters in metadata label (#46811)
add a1df83bacf6 doc: Add GCSListObjectsOperator to operators listed in
documentation in Google Provider for GCS #39290 (#47002)
add 57986c0f247 fix: OpenLineage serialization of dataset timetables for
Airflow 2.9 (#47150)
add 0b915f534aa Define min. `uv` version (#47237)
add f59f0226e76 Extract secrets explicitly and assign (#47278)
add ccd126f595f feat(task_sdk): add support for inlet_events in Task
Context (#45960)
add 0130e5c8478 docs(newsfragments): update migration rules in
newsfragments (#47049)
add 547fb0eee45 fix: typo in Python client INSTALL instructions (#47284)
add 3e284a45eb6 docs: Fix numbering format of Step 1 in
17_adding_api_endpoints.rst (#47286)
add 6771ac3343a fix: typo in numbering (#47288)
add 27f559e8717 docs: Format consistency in `10_working_with_git.rst`
(#47289)
add d36606b054e docs: Improve formatting and clarity in contributors quick
start guide contributing-docs/03_contributors_quick_start.rst (#47290)
add 6d5d716ee4c fix(manage-dags-files.rst): typo and grammatical error
(#47291)
add f94174ac4e5 fix: typo in hatch_build.py comment (#47287)
add 0eb4d91761d removed commented code (#47285)
add 3a7246fcdf1 AIP 84 - Add Auth to Pools (#47192)
add b215907855d Fix scheduler crash due to comparing Nullable value in
query (#47301)
add 78928609d0f Add failed task log preview to Dag Overview page (#47224)
add fb320ab8a00 AIP-38 Default value for version selector (#47154)
add 71810e55336 Remove stale dag check in the scheduler (#47304)
add 3ca175bb53e AIP 84 - Add auth to connections (#47194)
add 431608103a4 Handle token expired for UI to redirect to login page
(#47308)
add 077984c4a29 Remove yandexcloud exclusions (#47309)
add 9be08cf9145 Mark Multiple Executor Configuration as stable (#46742)
add 6008483efe8 Create operators for working with Consumer Groups for GCP
Apache Kafka (#47056)
add 4651ccce787 Add error statuses check in RdsExportTaskExistenceSensor
(#46917)
add 201baf902ab Make DAG reparse Button less prominent (#47180)
add 0f21f0ab426 Move `airflow.www.auth` to
`airflow.providers.fab.www.auth` (#47307)
add 0d5de5a223a Fix install instructions after switching www -> ui (#47314)
add 54016ecd11f AIP-81 | AIP-84 | Include Token Generation Endpoints in
FAB (#47043)
add 1645298b0ec Fix non-integrated API calls from tests (#47327)
add ddaf4c30e08 In docker-compose test, reserialize DAGs instead of
looping scheduler (#47317)
add a37f6fec447 Adding ticks to user provided table names (#47262)
add 9a059124a94 Move api-server to port 8080 (#47310)
add ff1e0e3b254 Restrict pymongo to less than 4.11 for our CI (#47336)
add 4225966a59d Proper limitat for pymongo and better comment explaining
root cause (#47338)
add 8f4fc4f1076 Remove `airflow.www` module (#47318)
add c0f71799986 Update docstring for users param in auth managers (#47334)
add e98e8037d1a Add method to retrieve Druid task status URL based on
ingestion type (#47238)
add 25a905ef31b Decrease size of docker context by two orders of magnitude
(#47342)
add 85b523db624 Add custom svg for backfill icon (#47315)
add e012557cdfd AIP-84 | Add Auth for Variable (#47211)
add dfeeeb4aee5 AIP-84 | Fix Merged Permission for Connections and Pools
(#47345)
add 14ad957777a Add Asset Details page with events and graph (#47162)
add ef0b840dddc strip url before parsing (#47347)
add b599f6dddc8 [OpenLineage] fixed inputs in OL implementation of
CopyFromExternalStageToSnowflakeOperator (#47168)
add 08ee7155645 AIP-38 Fix login redirection for SimpleAuthManager (#47351)
add 903d8c541c6 Bump trove-classifiers from 2025.2.18.16 to 2025.3.3.18
(#47352)
add b09e7b12aad Sort version/try and update query key for dag graph
(#47350)
add 96c0df66739 Remove unused methods from auth managers (#47316)
add 8bcbb96bcee Fix wrong use of `identifier` in Table serializer for
Iceberg (#47358)
add c3872a21547 Lazy load failed logs, default overviews to past 24 hours
(#47355)
add c55b977fb45 Add search bar and fix sorting on the connections page
(#47359)
add 9939b1b3d76 Add AWS SageMaker Unified Studio Workflow Operator (#45726)
add 8e3d25f9097 Fix `lookup_from_deprecated_options` in
AirflowConfigParser (#47004)
add 3a8749052e6 Add unique UUID `try_id` column to TaskInstance and
TaskInstanceHistory (#47065)
add 5a5bae857c1 Update Documents to Improve Consistency (#47341)
add 73627fd6613 Avoid scheduler crash with passing executor_config with
CeleryExecutor (#47375)
add dada63b3199 Rewording a small breeze visual (#47380)
add b2cae8c775b Fix AssetCondition docstring (#47379)
add 6107fcef991 AIP-84 | Add Auth for Dags (#47062)
add e49d7964de2 Add log grouping using summary and details tag. (#46820)
add bb8d465f221 Clean Leftovers of RemovedInAirflow3Warning (#47264)
add 4d98dc2555e Add Dag Dependencies as option to Dag Graph view (#47361)
add 7bfe283cf4f Fix test_python_client after adding permission (#47388)
add 140196dc925 AIP-84 | Add Auth for Event Logs (#47246)
add ffd4d9006bf AIP-38 Responsive dag run actions (#47394)
add aa24daba821 docs: update link to context.py in callbacks.rst (#45676)
add 0104131f50a update breadcrumb spacing (#47396)
add f3c1f219f89 Link to asset from asset event in dashboard. (#47385)
add 351131c189c Do not send creds as querystring in Simple auth manager
(#47397)
add 3e8284d2b5e Reuse Asset Event card list in Asset Details page (#47403)
add 74febb9a2bf Revert "AIP-84 | Add Auth for Dags" (#47402)
add 4955252dab2 update provider reference in taskflow.rst (#47387)
add 1030d6df323 Fix Dag Node link and clean up error messages (#47405)
add 5f6ec955ed1 AIP-84 Add Get single DagVersion endpoint (#47404)
add 14a74ca57fc Re-order pre-commit checks so that the FastAPI spec is
generated before UI client (#47408)
add 2f127b486c2 Search support on GET connections API (#47409)
add 7da602a5f76 Add Dag Version to Dag Run & Task Instance tables (#47400)
add 3a300c97090 Allow truncatedtext to wrap to two lines (#47415)
add d6ddee05dbc Move simple auth manager password "dir" env var to a
"file" config (#47363)
add e4002c3305a Move tests_common package to devel-common project (#47281)
add a223eb77424 All tests should run when API files change (#47417)
add 1308e539298 Fix typo in scheduler_job_runner.py (#47418)
add 91a93474377 Add asset event information to Dag Graph (#47410)
add c50541142b9 Base AWS classes - S3 (#47321)
add 83643e555a3 Remove core Airflow support for static hybrid executors
(#47322)
add fde5463a26d Fix indentation in core conf test (#47424)
add fca1c3020ed revert removing `external_trigger` from OpenLineage
provider (#47383)
add 323a942b5e3 AIP- 76 | Fix migration issue (#47435)
add da42a6df254 Bring back ``all-core`` extra to editable extras of
airflow (#47441)
add e81b19e4501 Add missing `-e` flag when preparing PyPI constraints
(#47445)
add c4409597235 Disable ORM access from Tasks, DAG processing and Triggers
(#47320)
add 251bacf5b1f AIP-38 Show bundle version and bundle URL in code tab
(#47442)
add 9f344f27309 Remove extra string interpolation from fstrings (#47436)
add e6b1b2019d7 Create asset event modal (#47421)
add 50ff8b5434f AIP-84 - Add Auth for Assets (#47136)
add 387126a1524 implement get hook in task sdk connections (#47401)
add 8ebdc878f1b Update Dag and Asset panel defaults (#47463)
add 5cda5bddd6c Add some typing and require kwargs for auth manager
(#47455)
add e165be7cad4 Fix beam pipeline options False value parsing (#47419)
add 3bd28e19141 Remove deprecated `[database] load_default_connections`
config option (#47414)
add aabb50255f3 Move OpenAPI generation and ui compilation pre-commits to
CI section (#47461)
add 9d64a0a11ea Remove ResourceWarnings from TaskSDK (#47462)
new 5283647d980 Update default branches for 3-0
new b41a93eee72 Update Airflow version to 3.0.0b2
new 4f49d3f41e4 Update RELEASE_NOTES.rst
new d840beb8fdf Bump task-sdk version to 1.0.0.b2
new 577f6c1b698 Bump celery provider version to 3.11.0
new 629720729f2 Bump k8s provider version to 10.4.0
new 1ce2e2a1365 Bump standard provider version to 1.0.0
new 910a618bdec Bump openlineage provider version to 2.1.1
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 (a91a39169b1)
\
N -- N -- N refs/heads/v3-0-test (910a618bdec)
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.
The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.dockerignore | 22 +-
.github/CODEOWNERS | 1 -
.../airflow_providers_bug_report.yml | 1 +
.github/actions/install-pre-commit/action.yml | 2 +-
.github/boring-cyborg.yml | 4 +-
.github/workflows/additional-ci-image-checks.yml | 2 -
.github/workflows/basic-tests.yml | 21 +-
.github/workflows/ci-image-checks.yml | 10 +
.github/workflows/ci.yml | 21 +-
.github/workflows/finalize-tests.yml | 2 -
.github/workflows/special-tests.yml | 6 -
.pre-commit-config.yaml | 77 +-
COMMITTERS.rst | 4 +-
Dockerfile | 13 +-
Dockerfile.ci | 51 +-
INSTALL | 273 +++----
INTHEWILD.md | 5 +-
ISSUE_TRIAGE_PROCESS.rst | 4 +-
RELEASE_NOTES.rst | 2 +-
airflow/__init__.py | 2 +-
airflow/api/auth/backend/session.py | 38 -
airflow/api_connexion/endpoints/asset_endpoint.py | 365 ---------
airflow/api_connexion/endpoints/config_endpoint.py | 144 ----
.../api_connexion/endpoints/connection_endpoint.py | 215 ------
airflow/api_connexion/endpoints/dag_endpoint.py | 237 ------
airflow/api_connexion/endpoints/dag_parsing.py | 72 --
.../api_connexion/endpoints/dag_run_endpoint.py | 470 ------------
.../api_connexion/endpoints/dag_source_endpoint.py | 83 --
.../api_connexion/endpoints/dag_stats_endpoint.py | 81 --
.../endpoints/dag_warning_endpoint.py | 75 --
.../api_connexion/endpoints/event_log_endpoint.py | 123 ---
.../api_connexion/endpoints/extra_link_endpoint.py | 77 --
airflow/api_connexion/endpoints/health_endpoint.py | 33 -
.../endpoints/import_error_endpoint.py | 142 ----
airflow/api_connexion/endpoints/log_endpoint.py | 130 ----
airflow/api_connexion/endpoints/plugin_endpoint.py | 39 -
airflow/api_connexion/endpoints/pool_endpoint.py | 172 -----
.../api_connexion/endpoints/provider_endpoint.py | 58 --
airflow/api_connexion/endpoints/request_dict.py | 27 -
airflow/api_connexion/endpoints/task_endpoint.py | 64 --
.../endpoints/task_instance_endpoint.py | 834 ---------------------
airflow/api_connexion/endpoints/update_mask.py | 35 -
.../api_connexion/endpoints/variable_endpoint.py | 149 ----
.../api_connexion/endpoints/version_endpoint.py | 42 --
airflow/api_connexion/endpoints/xcom_endpoint.py | 135 ----
airflow/api_connexion/exceptions.py | 197 -----
airflow/api_connexion/parameters.py | 131 ----
airflow/api_connexion/schemas/asset_schema.py | 210 ------
airflow/api_connexion/schemas/common_schema.py | 148 ----
airflow/api_connexion/schemas/config_schema.py | 64 --
airflow/api_connexion/schemas/connection_schema.py | 94 ---
airflow/api_connexion/schemas/dag_run_schema.py | 194 -----
airflow/api_connexion/schemas/dag_schema.py | 82 +-
airflow/api_connexion/schemas/dag_source_schema.py | 30 -
airflow/api_connexion/schemas/dag_stats_schema.py | 47 --
.../api_connexion/schemas/dag_warning_schema.py | 56 --
airflow/api_connexion/schemas/enum_schemas.py | 37 -
airflow/api_connexion/schemas/error_schema.py | 57 --
airflow/api_connexion/schemas/event_log_schema.py | 63 --
airflow/api_connexion/schemas/health_schema.py | 59 --
airflow/api_connexion/schemas/job_schema.py | 42 --
airflow/api_connexion/schemas/log_schema.py | 38 -
airflow/api_connexion/schemas/plugin_schema.py | 58 --
airflow/api_connexion/schemas/pool_schema.py | 93 ---
airflow/api_connexion/schemas/provider_schema.py | 55 --
.../api_connexion/schemas/task_instance_schema.py | 278 -------
airflow/api_connexion/schemas/task_schema.py | 98 ---
airflow/api_connexion/schemas/trigger_schema.py | 42 --
airflow/api_connexion/schemas/variable_schema.py | 38 -
airflow/api_connexion/schemas/version_schema.py | 29 -
airflow/api_connexion/schemas/xcom_schema.py | 72 --
airflow/api_connexion/security.py | 274 -------
airflow/api_fastapi/common/parameters.py | 6 +
.../core_api/datamodels/task_instances.py | 2 +-
.../api_fastapi/core_api/openapi/v1-generated.yaml | 183 ++++-
.../api_fastapi/core_api/routes/public/assets.py | 29 +-
.../core_api/routes/public/connections.py | 28 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 2 +
.../core_api/routes/public/dag_versions.py | 30 +-
.../core_api/routes/public/event_logs.py | 3 +
.../api_fastapi/core_api/routes/public/pools.py | 11 +-
.../core_api/routes/public/variables.py | 9 +-
airflow/api_fastapi/core_api/security.py | 93 ++-
airflow/api_fastapi/execution_api/app.py | 17 +-
.../datamodels/{asset.py => asset_event.py} | 47 +-
.../api_fastapi/execution_api/routes/__init__.py | 2 +
.../execution_api/routes/asset_events.py | 111 +++
.../execution_api/routes/task_instances.py | 6 +
airflow/auth/managers/base_auth_manager.py | 105 +--
airflow/auth/managers/models/resource_details.py | 2 +-
airflow/auth/managers/simple/routes/login.py | 6 +-
airflow/auth/managers/simple/services/login.py | 16 +-
.../auth/managers/simple/simple_auth_manager.py | 31 +-
.../auth/managers/simple/ui/src/login/Login.tsx | 8 +-
.../managers/simple/ui/src/login/LoginForm.tsx | 48 +-
airflow/cli/cli_config.py | 5 +-
airflow/cli/commands/legacy_commands.py | 28 -
.../cli/commands/remote_commands/config_command.py | 6 +-
.../cli/commands/remote_commands/dag_command.py | 38 +-
airflow/config_templates/config.yml | 64 +-
airflow/configuration.py | 22 +-
airflow/dag_processing/bundles/base.py | 297 +++++++-
airflow/dag_processing/bundles/git.py | 49 +-
airflow/dag_processing/collection.py | 2 +-
airflow/dag_processing/processor.py | 6 -
airflow/example_dags/example_branch_operator.py | 2 +-
.../example_branch_operator_decorator.py | 2 +-
airflow/example_dags/tutorial.py | 3 -
airflow/exceptions.py | 7 -
airflow/executors/base_executor.py | 20 -
airflow/executors/executor_constants.py | 4 -
airflow/executors/executor_loader.py | 37 +-
airflow/executors/workloads.py | 9 +-
airflow/io/__init__.py | 1 +
airflow/jobs/scheduler_job_runner.py | 73 +-
...9_3_0_0_tweak_assetaliasmodel_to_match_asset.py | 4 +-
.../0060_3_0_0_add_try_id_to_ti_and_tih.py | 183 +++++
airflow/models/dagrun.py | 2 +
airflow/models/taskinstance.py | 12 +-
airflow/models/taskinstancehistory.py | 14 +-
airflow/reproducible_build.yaml | 4 +-
airflow/serialization/serializers/iceberg.py | 2 +-
airflow/settings.py | 56 +-
airflow/ui/CONTRIBUTING.md | 2 +-
airflow/ui/openapi-gen/queries/common.ts | 29 +-
airflow/ui/openapi-gen/queries/prefetch.ts | 39 +-
airflow/ui/openapi-gen/queries/queries.ts | 55 +-
airflow/ui/openapi-gen/queries/suspense.ts | 48 +-
airflow/ui/openapi-gen/requests/schemas.gen.ts | 1 -
airflow/ui/openapi-gen/requests/services.gen.ts | 40 +-
airflow/ui/openapi-gen/requests/types.gen.ts | 45 +-
airflow/ui/package.json | 1 +
airflow/ui/pnpm-lock.yaml | 14 +
.../Assets}/AssetEvent.tsx | 40 +-
.../Assets}/AssetEvents.tsx | 56 +-
airflow/ui/src/components/BackfillIcon.tsx | 36 +
airflow/ui/src/components/BreadcrumbStats.tsx | 53 ++
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 4 +-
airflow/ui/src/components/DagVersionSelect.tsx | 32 +-
.../ui/src/components/EditableMarkdownButton.tsx | 119 +++
airflow/ui/src/components/ErrorAlert.tsx | 4 +-
.../components/FlexibleForm/FieldAdvancedArray.tsx | 27 +-
.../ui/src/components/FlexibleForm/FieldObject.tsx | 30 +-
.../Graph/AliasNode.tsx} | 32 +-
.../Graph/AssetConditionNode.tsx} | 17 +-
airflow/ui/src/components/Graph/AssetNode.tsx | 87 +++
airflow/ui/src/components/Graph/DagNode.tsx | 62 ++
.../{layouts/Details => components}/Graph/Edge.tsx | 2 +-
.../Details => components}/Graph/JoinNode.tsx | 0
.../Details => components}/Graph/NodeWrapper.tsx | 0
.../Details => components}/Graph/TaskLink.tsx | 2 +-
.../Details => components}/Graph/TaskNode.tsx | 0
.../Details => components}/Graph/reactflowUtils.ts | 3 +-
.../Details => components}/Graph/useGraphLayout.ts | 14 +-
airflow/ui/src/components/HeaderCard.tsx | 69 +-
airflow/ui/src/components/JsonEditor.tsx | 51 ++
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 4 +-
airflow/ui/src/components/Menu/MenuButton.tsx | 6 +-
airflow/ui/src/components/{ => Menu}/ParseDag.tsx | 9 +-
.../ui/src/components/Menu/RunBackfillButton.tsx | 2 +
airflow/ui/src/components/SearchBar.tsx | 6 +-
airflow/ui/src/components/TaskTrySelect.tsx | 11 +-
airflow/ui/src/components/TimeRangeSelector.tsx | 2 +-
airflow/ui/src/components/TogglePause.tsx | 8 +-
airflow/ui/src/components/TrendCountButton.tsx | 2 +-
.../{ => TriggerDag}/EditableMarkdown.tsx | 2 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 27 +-
airflow/ui/src/components/TruncatedText.tsx | 25 +-
airflow/ui/src/constants/searchParams.ts | 6 +
airflow/ui/src/hooks/useSelectedVersion.ts | 83 ++
airflow/ui/src/layouts/BaseLayout.tsx | 4 -
airflow/ui/src/layouts/Details/DagBreadcrumb.tsx | 37 +-
airflow/ui/src/layouts/Details/DetailsLayout.tsx | 6 +-
airflow/ui/src/layouts/Details/Graph/Graph.tsx | 82 +-
airflow/ui/src/layouts/Details/Grid/Bar.tsx | 27 +-
airflow/ui/src/layouts/Details/Grid/Grid.tsx | 8 +-
.../{TaskInstances.tsx => TaskInstancesColumn.tsx} | 2 +-
airflow/ui/src/layouts/Details/PanelButtons.tsx | 125 ++-
airflow/ui/src/layouts/Nav/AdminButton.tsx | 4 +
airflow/ui/src/mocks/handlers/index.ts | 3 +-
airflow/ui/src/mocks/handlers/log.ts | 194 +++++
airflow/ui/src/pages/Asset/Asset.tsx | 80 ++
airflow/ui/src/pages/Asset/AssetGraph.tsx | 102 +++
.../Asset/CreateAssetEvent.tsx} | 27 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 195 +++++
airflow/ui/src/pages/{Task => Asset}/Header.tsx | 49 +-
.../Details/Gantt => pages/Asset}/index.ts | 2 +-
airflow/ui/src/pages/AssetsList/AssetsList.tsx | 23 +-
.../AssetsList.tsx => Connections/Connections.tsx} | 93 +--
.../Details/Gantt => pages/Connections}/index.ts | 2 +-
airflow/ui/src/pages/Dag/Code/Code.tsx | 65 +-
airflow/ui/src/pages/Dag/Header.tsx | 2 -
airflow/ui/src/pages/Dag/Overview/FailedLogs.tsx | 65 ++
airflow/ui/src/pages/Dag/Overview/Overview.tsx | 33 +-
.../ui/src/pages/Dag/Overview/TaskLogPreview.tsx | 76 ++
airflow/ui/src/pages/DagRuns.tsx | 23 +-
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 14 +-
.../HistoricalMetrics/HistoricalMetrics.tsx | 22 +-
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 14 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 12 +-
airflow/ui/src/pages/Run/Header.tsx | 139 ++--
airflow/ui/src/pages/Task/Overview/Overview.tsx | 30 +-
airflow/ui/src/pages/TaskInstance/Header.tsx | 50 +-
.../Logs/Logs.test.tsx} | 36 +-
airflow/ui/src/pages/TaskInstance/Logs/Logs.tsx | 9 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 3 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 112 ++-
.../pages/{ => TaskInstances}/TaskInstances.tsx | 124 +--
.../pages/TaskInstances/TaskInstancesFilter.tsx | 134 ++++
.../Details/Gantt => pages/TaskInstances}/index.ts | 3 +-
airflow/ui/src/queries/useLogs.tsx | 100 ++-
airflow/ui/src/router.tsx | 12 +-
airflow/ui/src/utils/logs.ts | 53 ++
airflow/ui/testsSetup.ts | 4 +-
airflow/utils/context.py | 125 +--
airflow/utils/db.py | 10 +-
airflow/utils/db_cleanup.py | 79 +-
airflow/utils/docs.py | 8 +-
airflow/utils/helpers.py | 2 +-
airflow/www/extensions/init_appbuilder_links.py | 64 --
airflow/www/extensions/init_cache.py | 52 --
airflow/www/extensions/init_dagbag.py | 38 -
airflow/www/extensions/init_jinja_globals.py | 101 ---
airflow/www/extensions/init_manifest_files.py | 61 --
airflow/www/extensions/init_robots.py | 39 -
airflow/www/extensions/init_security.py | 68 --
airflow/www/extensions/init_session.py | 61 --
airflow/www/extensions/init_wsgi_middlewares.py | 62 --
airflow/www/fab_security/manager.py | 49 --
airflow/www/session.py | 41 -
airflow/www/utils.py | 34 -
airflow/www/validators.py | 139 ----
.../templates/rbac/pod-log-reader-rolebinding.yaml | 9 +-
.../templates/scheduler/scheduler-deployment.yaml | 2 +-
chart/values.schema.json | 8 +-
chart/values.yaml | 3 +-
clients/python/INSTALL | 2 +-
clients/python/README.md | 4 +-
.../v1.yaml => clients/python/openapi_v1.yaml | 0
clients/python/test_python_client.py | 16 +-
contributing-docs/01_roles_in_airflow_project.rst | 2 +-
contributing-docs/03_contributors_quick_start.rst | 71 +-
contributing-docs/04_how_to_contribute.rst | 2 +-
contributing-docs/07_local_virtualenv.rst | 170 +++--
contributing-docs/08_static_code_checks.rst | 10 +-
contributing-docs/10_working_with_git.rst | 10 +-
contributing-docs/11_provider_packages.rst | 42 +-
.../12_airflow_dependencies_and_extras.rst | 54 +-
contributing-docs/17_adding_api_endpoints.rst | 6 +-
.../images/quick_start/local_airflow.png | Bin 21976 -> 269359 bytes
.../images/quick_start/start_airflow_tmux.png | Bin 1112697 -> 593730
bytes
.../contributors_quick_start_pycharm.rst | 20 +-
contributing-docs/testing/dag_testing.rst | 2 +-
contributing-docs/testing/unit_tests.rst | 13 +-
dev/MANUALLY_BUILDING_IMAGES.md | 26 +
dev/README_RELEASE_PYTHON_CLIENT.md | 2 +-
dev/breeze/README.md | 19 +-
dev/breeze/doc/03_developer_tasks.rst | 18 +-
dev/breeze/doc/04_troubleshooting.rst | 27 +-
dev/breeze/doc/09_release_management_tasks.rst | 2 +-
dev/breeze/doc/adr/0013-get-rid-of-submodules.md | 4 +-
dev/breeze/doc/ci/01_ci_environment.md | 2 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/ci/03_github_variables.md | 2 +-
dev/breeze/doc/ci/04_selective_checks.md | 2 +-
dev/breeze/doc/ci/06_debugging.md | 4 +-
dev/breeze/doc/images/output-commands.svg | 44 +-
dev/breeze/doc/images/output_build-docs.svg | 90 ++-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
dev/breeze/doc/images/output_doctor.svg | 112 +++
dev/breeze/doc/images/output_doctor.txt | 1 +
dev/breeze/doc/images/output_down.svg | 37 +-
dev/breeze/doc/images/output_down.txt | 2 +-
...tput_release-management_add-back-references.svg | 48 +-
...tput_release-management_add-back-references.txt | 2 +-
...management_generate-issue-content-providers.svg | 52 +-
...management_generate-issue-content-providers.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 76 +-
...e-management_prepare-provider-documentation.txt | 2 +-
...elease-management_prepare-provider-packages.svg | 88 +--
...elease-management_prepare-provider-packages.txt | 2 +-
.../output_release-management_publish-docs.svg | 86 ++-
.../output_release-management_publish-docs.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 16 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
.../output_setup_check-all-params-in-groups.svg | 2 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 2 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_static-checks.svg | 116 ++-
dev/breeze/doc/images/output_static-checks.txt | 2 +-
.../src/airflow_breeze/commands/ci_commands.py | 2 +-
.../airflow_breeze/commands/developer_commands.py | 52 +-
.../commands/developer_commands_config.py | 10 +-
.../commands/release_management_commands.py | 4 +-
.../src/airflow_breeze/commands/setup_commands.py | 1 +
dev/breeze/src/airflow_breeze/global_constants.py | 11 +-
.../src/airflow_breeze/params/build_ci_params.py | 2 +-
.../src/airflow_breeze/params/shell_params.py | 17 +-
dev/breeze/src/airflow_breeze/pre_commit_ids.py | 3 -
.../templates/pyproject_TEMPLATE.toml.jinja2 | 30 +-
dev/breeze/src/airflow_breeze/utils/cdxgen.py | 4 +-
.../airflow_breeze/utils/docker_command_utils.py | 2 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 57 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 2 +-
dev/breeze/src/airflow_breeze/utils/run_utils.py | 2 +-
.../src/airflow_breeze/utils/selective_checks.py | 107 ++-
dev/breeze/src/airflow_breeze/utils/visuals.py | 22 +-
dev/breeze/tests/test_selective_checks.py | 355 +++++++--
dev/get_devel_deps.sh | 8 +-
devel-common/pyproject.toml | 119 +++
.../src/tests_common}/__init__.py | 2 +-
.../src/tests_common/_internals}/__init__.py | 0
.../tests_common}/_internals/capture_warnings.py | 2 +-
.../tests_common}/_internals/forbidden_warnings.py | 0
.../src/tests_common}/pytest_plugin.py | 48 +-
.../src/tests_common}/test_utils/README.md | 0
.../src/tests_common}/test_utils/__init__.py | 2 +-
.../src/tests_common}/test_utils/api_fastapi.py | 0
.../src/tests_common}/test_utils/asserts.py | 3 +-
.../test_utils/azure_system_helpers.py | 1 -
.../src/tests_common}/test_utils/common_sql.py | 0
.../src/tests_common}/test_utils/compat.py | 0
.../src/tests_common}/test_utils/config.py | 0
.../src/tests_common}/test_utils/db.py | 7 +-
.../tests_common}/test_utils/executor_loader.py | 0
.../src/tests_common}/test_utils/fake_datetime.py | 0
.../src/tests_common}/test_utils/file_loading.py | 0
.../tests_common}/test_utils/format_datetime.py | 0
.../tests_common}/test_utils/gcp_system_helpers.py | 5 +-
.../src/tests_common}/test_utils/get_all_tests.py | 0
.../src/tests_common}/test_utils/hdfs_utils.py | 0
.../src/tests_common}/test_utils/log_handlers.py | 0
.../test_utils/logging_command_executor.py | 0
.../src/tests_common}/test_utils/logs.py | 0
.../src/tests_common}/test_utils/mapping.py | 3 +-
.../src/tests_common}/test_utils/mock_context.py | 0
.../src/tests_common}/test_utils/mock_executor.py | 0
.../src/tests_common}/test_utils/mock_operators.py | 1 -
.../src/tests_common}/test_utils/mock_plugins.py | 0
.../test_utils/mock_security_manager.py | 0
.../tests_common/test_utils/operators}/__init__.py | 0
.../operators/postgres_local_executor.cfg | 0
.../test_utils/operators/run_deferrable.py | 0
.../src/tests_common/test_utils/perf}/__init__.py | 0
.../test_utils/perf/perf_kit/__init__.py | 0
.../test_utils/perf/perf_kit/memory.py | 0
.../test_utils/perf/perf_kit/python.py | 0
.../test_utils/perf/perf_kit/repeat_and_time.py | 0
.../test_utils/perf/perf_kit/sqlalchemy.py | 0
.../src/tests_common}/test_utils/permissions.py | 0
.../src/tests_common}/test_utils/providers.py | 0
.../test_utils/reset_warning_registry.py | 0
.../test_utils/salesforce_system_helpers.py | 0
.../test_utils/sftp_system_helpers.py | 0
.../src/tests_common}/test_utils/system_tests.py | 3 +-
.../tests_common}/test_utils/system_tests_class.py | 1 -
.../src/tests_common}/test_utils/terraform.py | 0
.../src/tests_common}/test_utils/timetables.py | 0
.../src/tests_common}/test_utils/version_compat.py | 3 +-
.../src/tests_common}/test_utils/watcher.py | 0
docker_tests/test_docker_compose_quick_start.py | 7 +-
docs/README.rst | 2 +-
.../logging-monitoring/callbacks.rst | 2 +-
.../administration-and-deployment/plugins.rst | 2 +-
.../administration-and-deployment/web-stack.rst | 2 +-
.../dynamic-task-mapping.rst | 2 +-
.../core-concepts/auth-manager/index.rst | 12 +-
.../core-concepts/executor/index.rst | 4 -
docs/apache-airflow/empty_plugin/empty_plugin.py | 2 +-
docs/apache-airflow/extra-packages-ref.rst | 123 +--
.../howto/docker-compose/docker-compose.yaml | 8 +-
docs/apache-airflow/howto/usage-cli.rst | 2 +
docs/apache-airflow/img/airflow_erd.sha256 | 2 +-
docs/apache-airflow/img/airflow_erd.svg | 728 +++++++++---------
docs/apache-airflow/migrations-ref.rst | 4 +-
docs/apache-airflow/security/api.rst | 10 +-
docs/apache-airflow/tutorial/taskflow.rst | 2 +-
docs/conf.py | 4 +-
docs/docker-stack/README.md | 10 +-
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../extending/add-apt-packages/Dockerfile | 2 +-
.../add-build-essential-extend/Dockerfile | 2 +-
.../extending/add-providers/Dockerfile | 2 +-
.../add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../extending/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docs/docker-stack/entrypoint.rst | 14 +-
docs/exts/operators_and_hooks_ref.py | 2 +-
docs/helm-chart/manage-dags-files.rst | 2 +-
docs/spelling_wordlist.txt | 11 +
generated/provider_dependencies.json | 38 +-
hatch_build.py | 618 ++++++---------
helm_tests/airflow_core/test_api_server.py | 10 +-
helm_tests/airflow_core/test_scheduler.py | 24 +-
helm_tests/security/test_rbac_pod_log_reader.py | 17 +-
kubernetes_tests/test_base.py | 2 +-
newsfragments/123.significant.rst | 17 +
newsfragments/45960.significant.rst | 37 +
newsfragments/46408.significant.rst | 6 +-
newsfragments/46415.significant.rst | 1 +
newsfragments/46663.significant.rst | 4 +-
newsfragments/46916.significant.rst | 19 +
newsfragments/47136.significant.rst | 13 +
newsfragments/47264.significant.rst | 16 +
newsfragments/47441.significant.rst | 15 +
newsfragments/aip-79.significant.rst | 14 +-
providers/airbyte/provider.yaml | 2 +-
providers/airbyte/pyproject.toml | 25 +-
.../airflow/providers/airbyte/get_provider_info.py | 3 +-
providers/alibaba/provider.yaml | 2 +-
providers/alibaba/pyproject.toml | 25 +-
.../alibaba/cloud/log/oss_task_handler.py | 2 +-
.../airflow/providers/alibaba/get_provider_info.py | 3 +-
providers/amazon/README.rst | 2 +-
.../docs/operators/sagemakerunifiedstudio.rst | 60 ++
providers/amazon/provider.yaml | 22 +-
providers/amazon/pyproject.toml | 42 +-
.../amazon/aws/auth_manager/aws_auth_manager.py | 71 +-
.../aws_security_manager_override.py | 44 --
.../amazon/aws/hooks/sagemaker_unified_studio.py | 188 +++++
.../amazon/aws/links/sagemaker_unified_studio.py | 15 +-
.../providers/amazon/aws/log/s3_task_handler.py | 2 +-
.../airflow/providers/amazon/aws/operators/s3.py | 304 ++++----
.../aws/operators/sagemaker_unified_studio.py | 155 ++++
.../airflow/providers/amazon/aws/sensors/rds.py | 15 +-
.../src/airflow/providers/amazon/aws/sensors/s3.py | 73 +-
.../amazon/aws/sensors/sagemaker_unified_studio.py | 73 ++
.../airflow/providers/amazon/aws/triggers/s3.py | 33 +-
.../aws/triggers/sagemaker_unified_studio.py | 66 ++
.../airflow/providers/amazon/aws/triggers/sqs.py | 12 +-
.../amazon/aws/utils/sagemaker_unified_studio.py | 11 +-
.../airflow/providers/amazon/get_provider_info.py | 31 +-
.../amazon/aws/example_sagemaker_unified_studio.py | 166 ++++
.../amazon/aws/auth_manager/avp/test_facade.py | 4 +-
.../amazon/aws/auth_manager/router/test_login.py | 2 +-
.../aws/auth_manager/test_aws_auth_manager.py | 141 +---
.../aws/hooks/test_sagemaker_unified_studio.py | 201 +++++
...gemaker.py => test_sagemaker_unified_studio.py} | 11 +-
.../unit/amazon/aws/operators/test_notebook.ipynb | 61 ++
.../tests/unit/amazon/aws/operators/test_s3.py | 26 +-
.../aws/operators/test_sagemaker_unified_studio.py | 176 +++++
.../tests/unit/amazon/aws/sensors/test_rds.py | 25 +
.../tests/unit/amazon/aws/sensors/test_s3.py | 6 +-
.../aws/sensors/test_sagemaker_unified_studio.py | 105 +++
.../tests/unit/amazon/aws/triggers/test_s3.py | 5 +
.../unit/amazon/aws/utils/test_eks_get_token.py | 4 +-
.../aws/utils/test_sagemaker_unified_studio.py | 41 +-
providers/apache/beam/provider.yaml | 2 +-
providers/apache/beam/pyproject.toml | 27 +-
.../providers/apache/beam/get_provider_info.py | 3 +-
.../airflow/providers/apache/beam/hooks/beam.py | 43 +-
.../beam/tests/unit/apache/beam/hooks/test_beam.py | 6 +-
providers/apache/cassandra/provider.yaml | 2 +-
providers/apache/cassandra/pyproject.toml | 25 +-
.../apache/cassandra/get_provider_info.py | 3 +-
providers/apache/drill/README.rst | 8 +-
providers/apache/drill/docs/index.rst | 8 +-
providers/apache/drill/provider.yaml | 2 +-
providers/apache/drill/pyproject.toml | 28 +-
.../providers/apache/drill/get_provider_info.py | 5 +-
providers/apache/druid/provider.yaml | 2 +-
providers/apache/druid/pyproject.toml | 27 +-
.../providers/apache/druid/get_provider_info.py | 3 +-
.../airflow/providers/apache/druid/hooks/druid.py | 30 +-
.../tests/unit/apache/druid/hooks/test_druid.py | 12 +
providers/apache/flink/provider.yaml | 2 +-
providers/apache/flink/pyproject.toml | 26 +-
.../providers/apache/flink/get_provider_info.py | 3 +-
providers/apache/hdfs/docs/index.rst | 9 +-
providers/apache/hdfs/provider.yaml | 2 +-
providers/apache/hdfs/pyproject.toml | 25 +-
.../providers/apache/hdfs/get_provider_info.py | 3 +-
.../providers/apache/hdfs/log/hdfs_task_handler.py | 2 +-
providers/apache/hive/provider.yaml | 2 +-
providers/apache/hive/pyproject.toml | 32 +-
.../providers/apache/hive/get_provider_info.py | 3 +-
providers/apache/iceberg/provider.yaml | 2 +-
providers/apache/iceberg/pyproject.toml | 25 +-
.../providers/apache/iceberg/get_provider_info.py | 2 +-
.../tests/system/apache/iceberg/example_iceberg.py | 3 -
providers/apache/impala/provider.yaml | 2 +-
providers/apache/impala/pyproject.toml | 24 +-
.../providers/apache/impala/get_provider_info.py | 2 +-
providers/apache/kafka/README.rst | 27 +-
providers/apache/kafka/docs/index.rst | 28 +
providers/apache/kafka/provider.yaml | 2 +-
providers/apache/kafka/pyproject.toml | 38 +-
.../providers/apache/kafka/get_provider_info.py | 6 +-
.../airflow/providers/apache/kafka/hooks/base.py | 11 +
.../system/apache/kafka/example_dag_hello_kafka.py | 2 -
.../tests/unit/apache/kafka/hooks/test_client.py | 5 +-
.../tests/unit/apache/kafka/hooks/test_consume.py | 7 +-
.../tests/unit/apache/kafka/hooks/test_produce.py | 7 +-
providers/apache/kylin/provider.yaml | 2 +-
providers/apache/kylin/pyproject.toml | 25 +-
.../providers/apache/kylin/get_provider_info.py | 3 +-
providers/apache/livy/provider.yaml | 2 +-
providers/apache/livy/pyproject.toml | 26 +-
.../providers/apache/livy/get_provider_info.py | 3 +-
providers/apache/pig/provider.yaml | 2 +-
providers/apache/pig/pyproject.toml | 25 +-
.../providers/apache/pig/get_provider_info.py | 3 +-
providers/apache/pinot/provider.yaml | 2 +-
providers/apache/pinot/pyproject.toml | 26 +-
.../providers/apache/pinot/get_provider_info.py | 3 +-
providers/apache/spark/provider.yaml | 2 +-
providers/apache/spark/pyproject.toml | 27 +-
.../providers/apache/spark/get_provider_info.py | 3 +-
providers/apprise/provider.yaml | 2 +-
providers/apprise/pyproject.toml | 25 +-
.../airflow/providers/apprise/get_provider_info.py | 3 +-
providers/arangodb/provider.yaml | 2 +-
providers/arangodb/pyproject.toml | 25 +-
.../providers/arangodb/get_provider_info.py | 3 +-
providers/asana/provider.yaml | 2 +-
providers/asana/pyproject.toml | 25 +-
.../airflow/providers/asana/get_provider_info.py | 3 +-
providers/atlassian/jira/provider.yaml | 2 +-
providers/atlassian/jira/pyproject.toml | 25 +-
.../providers/atlassian/jira/get_provider_info.py | 3 +-
providers/celery/docs/changelog.rst | 9 +-
providers/celery/docs/commits.rst | 13 +-
providers/celery/provider.yaml | 9 +-
providers/celery/pyproject.toml | 26 +-
.../airflow/providers/celery/cli/celery_command.py | 53 +-
.../celery/executors/celery_executor_utils.py | 2 +-
.../airflow/providers/celery/get_provider_info.py | 10 +-
.../tests/unit/celery/cli/test_celery_command.py | 51 +-
providers/cloudant/provider.yaml | 2 +-
providers/cloudant/pyproject.toml | 25 +-
.../providers/cloudant/get_provider_info.py | 3 +-
providers/cncf/kubernetes/docs/changelog.rst | 5 +-
providers/cncf/kubernetes/docs/commits.rst | 5 +-
providers/cncf/kubernetes/provider.yaml | 2 +-
providers/cncf/kubernetes/pyproject.toml | 25 +-
.../providers/cncf/kubernetes/get_provider_info.py | 3 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 2 +-
providers/cohere/provider.yaml | 2 +-
providers/cohere/pyproject.toml | 25 +-
.../airflow/providers/cohere/get_provider_info.py | 3 +-
providers/common/compat/provider.yaml | 2 +-
providers/common/compat/pyproject.toml | 27 +-
.../providers/common/compat/get_provider_info.py | 3 +-
providers/common/io/docs/xcom_backend.rst | 16 +
providers/common/io/provider.yaml | 2 +-
providers/common/io/pyproject.toml | 27 +-
.../providers/common/io/get_provider_info.py | 3 +-
providers/{samba => common/messaging}/README.rst | 23 +-
.../messaging/docs/changelog.rst} | 23 +-
.../common/messaging/docs/commits.rst | 15 +-
.../{samba => common/messaging}/docs/index.rst | 45 +-
.../docs/installing-providers-from-sources.rst | 0
providers/common/messaging/docs/providers.rst | 38 +
.../messaging}/docs/security.rst | 0
.../messaging/docs/triggers.rst} | 35 +-
.../{sendgrid => common/messaging}/provider.yaml | 31 +-
providers/common/{io => messaging}/pyproject.toml | 49 +-
.../messaging}/src/airflow/__init__.py | 0
.../messaging/src/airflow/providers}/__init__.py | 0
.../src/airflow/providers/common}/__init__.py | 0
.../airflow/providers/common/messaging}/LICENSE | 0
.../providers/common/messaging}/__init__.py | 4 +-
.../common/messaging}/get_provider_info.py | 38 +-
.../common/messaging/providers}/__init__.py | 5 +-
.../common/messaging/providers/base_provider.py | 55 ++
.../providers/common/messaging/providers/sqs.py | 29 +-
.../common/messaging/triggers}/__init__.py | 0
.../common/messaging/triggers/msg_queue.py | 71 ++
.../messaging}/tests/conftest.py | 0
.../messaging/tests/system}/__init__.py | 0
.../messaging/tests/system/common}/__init__.py | 0
.../tests/system/common/messaging}/__init__.py | 0
.../messaging/example_message_queue_trigger.py | 26 +-
.../messaging/tests/unit}/__init__.py | 0
.../messaging/tests/unit/common}/__init__.py | 0
.../tests/unit/common/messaging}/__init__.py | 0
.../unit/common/messaging/triggers}/__init__.py | 0
.../common/messaging/triggers/test_msg_queue.py} | 14 +-
providers/common/sql/docs/index.rst | 1 +
providers/common/sql/provider.yaml | 2 +-
providers/common/sql/pyproject.toml | 26 +-
.../providers/common/sql/get_provider_info.py | 3 +-
.../airflow/providers/common/sql/operators/sql.py | 3 +-
.../sql/tests/unit/common/sql/hooks/test_dbapi.py | 3 +-
.../sql/tests/unit/common/sql/hooks/test_sql.py | 3 +-
.../tests/unit/common/sql/operators/test_sql.py | 2 +-
.../unit/common/sql/operators/test_sql_execute.py | 3 +-
providers/databricks/README.rst | 1 +
providers/databricks/docs/index.rst | 1 +
providers/databricks/provider.yaml | 2 +-
providers/databricks/pyproject.toml | 31 +-
.../providers/databricks/get_provider_info.py | 4 +-
.../databricks/plugins/databricks_workflow.py | 28 +-
.../databricks/sensors/databricks_partition.py | 2 +-
.../providers/databricks/sensors/databricks_sql.py | 2 +-
.../unit/databricks/hooks/test_databricks_sql.py | 2 +-
.../databricks/operators/test_databricks_sql.py | 2 +-
.../databricks/plugins/test_databricks_workflow.py | 4 +-
.../sensors/test_databricks_partition.py | 2 +-
providers/datadog/provider.yaml | 2 +-
providers/datadog/pyproject.toml | 25 +-
.../airflow/providers/datadog/get_provider_info.py | 3 +-
providers/dbt/cloud/provider.yaml | 2 +-
providers/dbt/cloud/pyproject.toml | 27 +-
.../providers/dbt/cloud/get_provider_info.py | 3 +-
providers/dingding/provider.yaml | 2 +-
providers/dingding/pyproject.toml | 26 +-
.../providers/dingding/get_provider_info.py | 3 +-
providers/discord/provider.yaml | 2 +-
providers/discord/pyproject.toml | 26 +-
.../airflow/providers/discord/get_provider_info.py | 3 +-
providers/docker/provider.yaml | 2 +-
providers/docker/pyproject.toml | 26 +-
.../airflow/providers/docker/get_provider_info.py | 3 +-
providers/edge/README.rst | 25 +-
providers/edge/docs/changelog.rst | 10 +
providers/edge/docs/edge_executor.rst | 1 -
providers/edge/docs/index.rst | 38 +-
providers/edge/provider.yaml | 4 +-
providers/edge/pyproject.toml | 39 +-
.../edge/src/airflow/providers/edge/__init__.py | 2 +-
.../providers/edge/executors/edge_executor.py | 15 +
.../airflow/providers/edge/get_provider_info.py | 6 +-
.../providers/edge/plugins/edge_executor_plugin.py | 23 +-
.../providers/edge/worker_api/routes/jobs.py | 32 +
.../unit/edge/executors/test_edge_executor.py | 14 +-
.../tests/unit/edge/worker_api/routes/test_jobs.py | 96 +++
providers/elasticsearch/provider.yaml | 2 +-
providers/elasticsearch/pyproject.toml | 26 +-
.../providers/elasticsearch/get_provider_info.py | 3 +-
providers/exasol/provider.yaml | 2 +-
providers/exasol/pyproject.toml | 26 +-
.../airflow/providers/exasol/get_provider_info.py | 3 +-
.../exasol/tests/unit/exasol/hooks/test_sql.py | 2 +-
.../fab/docs/auth-manager/api-authentication.rst | 32 +-
providers/fab/docs/index.rst | 2 +-
providers/fab/provider.yaml | 2 +-
providers/fab/pyproject.toml | 24 +-
.../providers}/3rd-party-licenses/LICENSES-ui.txt | 6 +-
.../fab/auth_manager/api_fastapi}/__init__.py | 0
.../api_fastapi/datamodels}/__init__.py | 0
.../auth_manager/api_fastapi/datamodels/login.py | 15 +-
.../auth_manager/api_fastapi/openapi}/__init__.py | 0
.../api_fastapi}/openapi/v1-generated.yaml | 25 +-
.../auth_manager/api_fastapi/routes}/__init__.py | 0
.../fab/auth_manager/api_fastapi}/routes/login.py | 29 +-
.../auth_manager/api_fastapi/services}/__init__.py | 0
.../fab/auth_manager/api_fastapi/services/login.py | 58 ++
.../providers/fab/auth_manager/fab_auth_manager.py | 65 +-
.../fab/auth_manager/security_manager/override.py | 17 +-
.../src/airflow/providers/fab/get_provider_info.py | 2 +-
.../providers/fab/www}/airflow_flask_app.py | 8 +-
.../providers/fab/www/api_connexion/security.py | 2 +-
.../fab/src/airflow/providers/fab}/www/auth.py | 17 +-
.../fab/www/extensions/init_appbuilder.py | 4 +-
.../providers/fab/www/extensions/init_views.py | 2 +-
.../airflow/providers/fab}/www/security_appless.py | 0
.../fab/src/airflow/providers/fab/www/utils.py | 14 +
.../api_endpoints/api_connexion_utils.py | 12 +
.../fab/auth_manager/api_endpoints/test_auth.py | 2 +-
.../test_role_and_permission_endpoint.py | 94 +--
.../api_endpoints/test_user_endpoint.py | 98 ++-
.../unit/fab/auth_manager/api_fastapi}/__init__.py | 0
.../unit/fab/auth_manager/api_fastapi}/conftest.py | 13 +-
.../auth_manager/api_fastapi/routes}/__init__.py | 0
.../auth_manager/api_fastapi/routes/test_login.py | 52 ++
.../auth_manager/api_fastapi/services}/__init__.py | 0
.../api_fastapi/services/test_login.py | 105 +++
.../auth_manager/security_manager/test_override.py | 23 +
.../unit/fab/auth_manager/test_fab_auth_manager.py | 117 +--
providers/fab/tests/unit/fab/utils.py | 4 -
.../fab/tests/unit/fab}/www/test_auth.py | 39 +-
providers/facebook/provider.yaml | 2 +-
providers/facebook/pyproject.toml | 25 +-
.../providers/facebook/get_provider_info.py | 3 +-
providers/ftp/provider.yaml | 2 +-
providers/ftp/pyproject.toml | 27 +-
.../src/airflow/providers/ftp/get_provider_info.py | 3 +-
providers/github/provider.yaml | 2 +-
providers/github/pyproject.toml | 25 +-
.../airflow/providers/github/get_provider_info.py | 3 +-
providers/google/docs/operators/cloud/gcs.rst | 31 +
.../google/docs/operators/cloud/managed_kafka.rst | 60 ++
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 43 +-
.../providers/google/cloud/hooks/bigquery.py | 2 +-
.../providers/google/cloud/hooks/managed_kafka.py | 227 +++++-
.../providers/google/cloud/links/managed_kafka.py | 30 +
.../providers/google/cloud/log/gcs_task_handler.py | 2 +-
.../google/cloud/operators/managed_kafka.py | 265 +++++++
.../providers/google/cloud/utils/validators.py | 33 +-
.../airflow/providers/google/get_provider_info.py | 4 +-
.../cloud/azure/example_azure_fileshare_to_gcs.py | 3 -
.../example_managed_kafka_consumer_group.py | 254 +++++++
.../unit/google/cloud/hooks/test_managed_kafka.py | 189 +++++
.../unit/google/cloud/links/test_managed_kafka.py | 40 +
.../unit/google/cloud/operators/test_dataproc.py | 2 +-
.../google/cloud/operators/test_managed_kafka.py | 131 ++++
.../unit/google/cloud/transfers/test_s3_to_gcs.py | 46 +-
.../unit/google/cloud/utils/test_validators.py | 59 ++
.../common/auth_backend/test_google_openid.py | 12 +-
providers/grpc/provider.yaml | 2 +-
providers/grpc/pyproject.toml | 25 +-
.../airflow/providers/grpc/get_provider_info.py | 3 +-
providers/hashicorp/provider.yaml | 2 +-
providers/hashicorp/pyproject.toml | 26 +-
.../providers/hashicorp/get_provider_info.py | 3 +-
providers/http/README.rst | 2 +-
providers/http/provider.yaml | 2 +-
providers/http/pyproject.toml | 27 +-
.../airflow/providers/http/get_provider_info.py | 5 +-
providers/imap/provider.yaml | 2 +-
providers/imap/pyproject.toml | 25 +-
.../airflow/providers/imap/get_provider_info.py | 3 +-
providers/influxdb/provider.yaml | 2 +-
providers/influxdb/pyproject.toml | 25 +-
.../providers/influxdb/get_provider_info.py | 3 +-
providers/jdbc/provider.yaml | 2 +-
providers/jdbc/pyproject.toml | 26 +-
.../airflow/providers/jdbc/get_provider_info.py | 3 +-
providers/jenkins/provider.yaml | 2 +-
providers/jenkins/pyproject.toml | 25 +-
.../airflow/providers/jenkins/get_provider_info.py | 3 +-
providers/microsoft/azure/provider.yaml | 2 +-
providers/microsoft/azure/pyproject.toml | 27 +-
.../providers/microsoft/azure/get_provider_info.py | 2 +-
.../microsoft/azure/log/wasb_task_handler.py | 2 +-
.../providers/microsoft/azure/operators/msgraph.py | 10 +-
.../unit/microsoft/azure/operators/test_msgraph.py | 35 +
providers/microsoft/mssql/README.rst | 2 +-
providers/microsoft/mssql/docs/index.rst | 2 +-
providers/microsoft/mssql/provider.yaml | 2 +-
providers/microsoft/mssql/pyproject.toml | 29 +-
.../providers/microsoft/mssql/get_provider_info.py | 5 +-
providers/microsoft/psrp/provider.yaml | 2 +-
providers/microsoft/psrp/pyproject.toml | 25 +-
.../providers/microsoft/psrp/get_provider_info.py | 3 +-
providers/microsoft/winrm/provider.yaml | 2 +-
providers/microsoft/winrm/pyproject.toml | 25 +-
.../providers/microsoft/winrm/get_provider_info.py | 3 +-
providers/mongo/README.rst | 8 +-
providers/mongo/docs/index.rst | 8 +-
providers/mongo/provider.yaml | 2 +-
providers/mongo/pyproject.toml | 31 +-
.../airflow/providers/mongo/get_provider_info.py | 4 +-
providers/mysql/provider.yaml | 2 +-
providers/mysql/pyproject.toml | 31 +-
.../airflow/providers/mysql/get_provider_info.py | 3 +-
.../src/airflow/providers/mysql/hooks/mysql.py | 18 +-
.../mysql/tests/unit/mysql/hooks/test_mysql.py | 46 +-
providers/neo4j/provider.yaml | 2 +-
providers/neo4j/pyproject.toml | 25 +-
.../airflow/providers/neo4j/get_provider_info.py | 3 +-
providers/odbc/provider.yaml | 2 +-
providers/odbc/pyproject.toml | 26 +-
.../airflow/providers/odbc/get_provider_info.py | 3 +-
providers/openai/provider.yaml | 2 +-
providers/openai/pyproject.toml | 25 +-
.../airflow/providers/openai/get_provider_info.py | 3 +-
providers/openfaas/provider.yaml | 2 +-
providers/openfaas/pyproject.toml | 25 +-
.../providers/openfaas/get_provider_info.py | 3 +-
providers/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 24 +
providers/openlineage/docs/commits.rst | 21 +
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 33 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../openlineage/facets/AirflowDagRunFacet.json | 3 +
.../openlineage/facets/AirflowRunFacet.json | 3 +
.../providers/openlineage/get_provider_info.py | 4 +-
.../airflow/providers/openlineage/utils/utils.py | 45 +-
.../tests/unit/openlineage/plugins/test_adapter.py | 2 +
.../tests/unit/openlineage/plugins/test_utils.py | 364 ++++++++-
.../tests/unit/openlineage/utils/test_spark.py | 2 +-
.../tests/unit/openlineage/utils/test_utils.py | 2 +
providers/opensearch/provider.yaml | 2 +-
providers/opensearch/pyproject.toml | 25 +-
.../providers/opensearch/get_provider_info.py | 3 +-
.../tests/system/opensearch/example_opensearch.py | 2 -
providers/opsgenie/provider.yaml | 2 +-
providers/opsgenie/pyproject.toml | 25 +-
.../providers/opsgenie/get_provider_info.py | 3 +-
providers/oracle/provider.yaml | 2 +-
providers/oracle/pyproject.toml | 26 +-
.../airflow/providers/oracle/get_provider_info.py | 3 +-
providers/pagerduty/provider.yaml | 2 +-
providers/pagerduty/pyproject.toml | 25 +-
.../providers/pagerduty/get_provider_info.py | 3 +-
providers/papermill/provider.yaml | 2 +-
providers/papermill/pyproject.toml | 26 +-
.../providers/papermill/get_provider_info.py | 3 +-
providers/pgvector/provider.yaml | 2 +-
providers/pgvector/pyproject.toml | 27 +-
.../providers/pgvector/get_provider_info.py | 3 +-
providers/pinecone/docs/index.rst | 12 +-
providers/pinecone/provider.yaml | 2 +-
providers/pinecone/pyproject.toml | 25 +-
.../providers/pinecone/get_provider_info.py | 3 +-
providers/postgres/provider.yaml | 2 +-
providers/postgres/pyproject.toml | 28 +-
.../providers/postgres/get_provider_info.py | 3 +-
providers/presto/provider.yaml | 2 +-
providers/presto/pyproject.toml | 27 +-
.../airflow/providers/presto/get_provider_info.py | 3 +-
providers/qdrant/provider.yaml | 2 +-
providers/qdrant/pyproject.toml | 25 +-
.../airflow/providers/qdrant/get_provider_info.py | 3 +-
providers/redis/provider.yaml | 2 +-
providers/redis/pyproject.toml | 25 +-
.../airflow/providers/redis/get_provider_info.py | 3 +-
providers/salesforce/provider.yaml | 2 +-
providers/salesforce/pyproject.toml | 25 +-
.../providers/salesforce/get_provider_info.py | 3 +-
providers/samba/provider.yaml | 2 +-
providers/samba/pyproject.toml | 26 +-
.../airflow/providers/samba/get_provider_info.py | 3 +-
providers/segment/provider.yaml | 2 +-
providers/segment/pyproject.toml | 25 +-
.../airflow/providers/segment/get_provider_info.py | 3 +-
providers/sendgrid/provider.yaml | 2 +-
providers/sendgrid/pyproject.toml | 25 +-
.../providers/sendgrid/get_provider_info.py | 3 +-
providers/sftp/provider.yaml | 2 +-
providers/sftp/pyproject.toml | 28 +-
.../airflow/providers/sftp/get_provider_info.py | 3 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 113 ++-
.../src/airflow/providers/sftp/sensors/sftp.py | 1 -
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 29 +-
.../sftp/tests/unit/sftp/sensors/test_sftp.py | 12 +
providers/singularity/provider.yaml | 2 +-
providers/singularity/pyproject.toml | 25 +-
.../providers/singularity/get_provider_info.py | 3 +-
providers/slack/provider.yaml | 2 +-
providers/slack/pyproject.toml | 26 +-
.../airflow/providers/slack/get_provider_info.py | 3 +-
providers/smtp/provider.yaml | 2 +-
providers/smtp/pyproject.toml | 25 +-
.../airflow/providers/smtp/get_provider_info.py | 3 +-
providers/snowflake/provider.yaml | 2 +-
providers/snowflake/pyproject.toml | 28 +-
.../providers/snowflake/get_provider_info.py | 3 +-
.../snowflake/transfers/copy_into_snowflake.py | 57 +-
.../tests/unit/snowflake/hooks/test_sql.py | 2 +-
.../unit/snowflake/operators/test_snowflake_sql.py | 2 +-
.../transfers/test_copy_into_snowflake.py | 330 +++++++-
providers/sqlite/provider.yaml | 2 +-
providers/sqlite/pyproject.toml | 26 +-
.../airflow/providers/sqlite/get_provider_info.py | 3 +-
providers/ssh/provider.yaml | 2 +-
providers/ssh/pyproject.toml | 25 +-
.../src/airflow/providers/ssh/get_provider_info.py | 3 +-
providers/standard/docs/changelog.rst | 7 +-
providers/standard/docs/commits.rst | 11 +-
providers/standard/docs/operators/python.rst | 2 +-
providers/standard/provider.yaml | 2 +-
providers/standard/pyproject.toml | 25 +-
.../providers/standard/get_provider_info.py | 3 +-
.../airflow/providers/standard/operators/python.py | 2 +-
providers/tableau/provider.yaml | 2 +-
providers/tableau/pyproject.toml | 25 +-
.../airflow/providers/tableau/get_provider_info.py | 3 +-
providers/telegram/provider.yaml | 2 +-
providers/telegram/pyproject.toml | 25 +-
.../providers/telegram/get_provider_info.py | 3 +-
providers/teradata/provider.yaml | 2 +-
providers/teradata/pyproject.toml | 28 +-
.../providers/teradata/get_provider_info.py | 3 +-
.../teradata/triggers/teradata_compute_cluster.py | 2 +-
.../tests/unit/teradata/operators/test_teradata.py | 2 +-
.../triggers/test_teradata_compute_cluster.py | 2 +-
providers/trino/docs/index.rst | 2 +-
providers/trino/provider.yaml | 2 +-
providers/trino/pyproject.toml | 28 +-
.../airflow/providers/trino/get_provider_info.py | 3 +-
providers/vertica/provider.yaml | 2 +-
providers/vertica/pyproject.toml | 26 +-
.../airflow/providers/vertica/get_provider_info.py | 3 +-
.../src/airflow/providers/vertica/hooks/vertica.py | 3 +-
providers/weaviate/provider.yaml | 2 +-
providers/weaviate/pyproject.toml | 25 +-
.../providers/weaviate/get_provider_info.py | 3 +-
providers/yandex/README.rst | 8 +-
providers/yandex/provider.yaml | 2 +-
providers/yandex/pyproject.toml | 31 +-
.../airflow/providers/yandex/get_provider_info.py | 9 +-
providers/ydb/provider.yaml | 2 +-
providers/ydb/pyproject.toml | 26 +-
.../src/airflow/providers/ydb/get_provider_info.py | 3 +-
.../tests/integration/ydb/operators/test_ydb.py | 2 +-
providers/ydb/tests/unit/ydb/operators/test_ydb.py | 2 +-
providers/zendesk/provider.yaml | 2 +-
providers/zendesk/pyproject.toml | 25 +-
.../airflow/providers/zendesk/get_provider_info.py | 3 +-
pyproject.toml | 286 ++++---
scripts/ci/docker-compose/backend-sqlite.yml | 4 -
scripts/ci/docker-compose/base-ports.yml | 2 +-
scripts/ci/docker-compose/base.yml | 3 +
scripts/ci/docker-compose/local.yml | 4 +-
.../docker-compose/providers-and-tests-sources.yml | 8 +-
scripts/ci/docker-compose/remove-sources.yml | 9 +-
scripts/ci/docker-compose/tests-sources.yml | 1 +
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/kubernetes/k8s_requirements.txt | 2 +-
scripts/ci/kubernetes/nodeport.yaml | 4 +-
scripts/ci/pre_commit/check_deprecations.py | 1 -
.../check_provider_airflow_compatibility.py | 64 --
.../ci/pre_commit/check_ti_vs_tis_attributes.py | 2 +-
scripts/ci/pre_commit/insert_extras.py | 4 -
scripts/ci/pre_commit/sort_tags_in_openapi_spec.py | 66 --
.../pre_commit/update_installers_and_pre_commit.py | 35 +-
.../ci/pre_commit/update_providers_dependencies.py | 7 +-
scripts/ci/testing/summarize_captured_warnings.py | 1 -
scripts/docker/common.sh | 9 +-
scripts/docker/entrypoint_ci.sh | 35 +-
scripts/docker/install_airflow.sh | 2 +-
scripts/in_container/_in_container_utils.sh | 9 +-
scripts/in_container/bin/run_tmux | 2 +-
.../in_container/install_airflow_and_providers.py | 19 +-
.../in_container/install_airflow_python_client.py | 2 -
scripts/in_container/install_devel_deps.py | 79 --
.../install_development_dependencies.py | 86 +++
scripts/in_container/run_generate_constraints.py | 5 +-
.../in_container/run_update_fastapi_api_spec.py | 15 +-
scripts/tools/setup_breeze | 2 +-
task_sdk/pyproject.toml | 22 +-
task_sdk/src/airflow/sdk/__init__.py | 2 +-
task_sdk/src/airflow/sdk/api/client.py | 27 +
.../src/airflow/sdk/api/datamodels/_generated.py | 44 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 4 +-
.../src/airflow/sdk/definitions/baseoperator.py | 26 +-
task_sdk/src/airflow/sdk/definitions/connection.py | 25 +-
task_sdk/src/airflow/sdk/definitions/context.py | 4 +-
task_sdk/src/airflow/sdk/execution_time/comms.py | 37 +
task_sdk/src/airflow/sdk/execution_time/context.py | 75 ++
.../src/airflow/sdk/execution_time/supervisor.py | 87 ++-
.../src/airflow/sdk/execution_time/task_runner.py | 15 +-
task_sdk/tests/conftest.py | 5 +
task_sdk/tests/definitions/test_connections.py | 72 ++
task_sdk/tests/execution_time/test_context.py | 58 +-
task_sdk/tests/execution_time/test_supervisor.py | 114 ++-
task_sdk/tests/execution_time/test_task_runner.py | 56 +-
tests/always/test_example_dags.py | 8 -
tests/always/test_project_structure.py | 8 +
tests/api_fastapi/conftest.py | 53 +-
.../core_api/routes/public/test_assets.py | 85 +++
.../core_api/routes/public/test_connections.py | 70 ++
.../core_api/routes/public/test_dag_run.py | 13 +-
.../core_api/routes/public/test_dag_versions.py | 72 ++
.../core_api/routes/public/test_event_logs.py | 18 +
.../core_api/routes/public/test_login.py | 4 +-
.../core_api/routes/public/test_pools.py | 48 ++
.../core_api/routes/public/test_variables.py | 68 ++
tests/api_fastapi/core_api/test_security.py | 17 +-
.../execution_api/routes/test_asset_events.py | 184 +++++
.../execution_api/routes/test_task_instances.py | 11 +
tests/auth/managers/simple/services/test_login.py | 1 +
tests/auth/managers/test_base_auth_manager.py | 51 --
.../local_commands/test_api_server_command.py | 2 +-
.../local_commands/test_scheduler_command.py | 1 -
.../local_commands/test_standalone_command.py | 6 -
.../remote_commands/test_config_command.py | 2 +-
.../commands/remote_commands/test_dag_command.py | 34 +-
tests/cli/commands/test_legacy_commands.py | 48 +-
tests/cli/conftest.py | 10 +-
tests/cli/test_cli_parser.py | 4 -
tests/core/test_configuration.py | 53 +-
tests/dag_processing/bundles/test_base.py | 172 ++++-
tests/dag_processing/bundles/test_git.py | 7 +-
tests/dag_processing/test_manager.py | 11 +-
tests/executors/test_executor_loader.py | 2 -
.../cli/commands/test_celery_command.py | 17 +-
.../integration/executors/test_celery_executor.py | 34 +-
tests/io/test_path.py | 11 +-
tests/jobs/test_scheduler_job.py | 80 --
tests/jobs/test_triggerer_job.py | 6 +-
tests/models/test_taskinstance.py | 100 ++-
tests/sensors/test_base.py | 8 -
tests/serialization/test_dag_serialization.py | 21 +-
tests/utils/test_db_cleanup.py | 34 +-
tests/utils/test_helpers.py | 2 +-
tests/utils/test_log_handlers.py | 10 +-
tests/www/__init__.py | 17 -
tests/www/test_validators.py | 167 -----
tests_common/_internals/__init__.py | 16 -
tests_common/pyproject.toml | 38 -
tests_common/test_utils/api_connexion_utils.py | 112 ---
tests_common/test_utils/operators/__init__.py | 16 -
tests_common/test_utils/perf/__init__.py | 16 -
.../test_utils/remote_user_api_auth_backend.py | 69 --
996 files changed, 16356 insertions(+), 13909 deletions(-)
delete mode 100644 airflow/api/auth/backend/session.py
delete mode 100644 airflow/api_connexion/endpoints/asset_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/config_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/connection_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/dag_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/dag_parsing.py
delete mode 100644 airflow/api_connexion/endpoints/dag_run_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/dag_source_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/dag_stats_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/dag_warning_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/event_log_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/extra_link_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/health_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/import_error_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/log_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/plugin_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/pool_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/provider_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/request_dict.py
delete mode 100644 airflow/api_connexion/endpoints/task_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/task_instance_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/update_mask.py
delete mode 100644 airflow/api_connexion/endpoints/variable_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/version_endpoint.py
delete mode 100644 airflow/api_connexion/endpoints/xcom_endpoint.py
delete mode 100644 airflow/api_connexion/exceptions.py
delete mode 100644 airflow/api_connexion/parameters.py
delete mode 100644 airflow/api_connexion/schemas/asset_schema.py
delete mode 100644 airflow/api_connexion/schemas/common_schema.py
delete mode 100644 airflow/api_connexion/schemas/config_schema.py
delete mode 100644 airflow/api_connexion/schemas/connection_schema.py
delete mode 100644 airflow/api_connexion/schemas/dag_run_schema.py
delete mode 100644 airflow/api_connexion/schemas/dag_source_schema.py
delete mode 100644 airflow/api_connexion/schemas/dag_stats_schema.py
delete mode 100644 airflow/api_connexion/schemas/dag_warning_schema.py
delete mode 100644 airflow/api_connexion/schemas/enum_schemas.py
delete mode 100644 airflow/api_connexion/schemas/error_schema.py
delete mode 100644 airflow/api_connexion/schemas/event_log_schema.py
delete mode 100644 airflow/api_connexion/schemas/health_schema.py
delete mode 100644 airflow/api_connexion/schemas/job_schema.py
delete mode 100644 airflow/api_connexion/schemas/log_schema.py
delete mode 100644 airflow/api_connexion/schemas/plugin_schema.py
delete mode 100644 airflow/api_connexion/schemas/pool_schema.py
delete mode 100644 airflow/api_connexion/schemas/provider_schema.py
delete mode 100644 airflow/api_connexion/schemas/task_instance_schema.py
delete mode 100644 airflow/api_connexion/schemas/task_schema.py
delete mode 100644 airflow/api_connexion/schemas/trigger_schema.py
delete mode 100644 airflow/api_connexion/schemas/variable_schema.py
delete mode 100644 airflow/api_connexion/schemas/version_schema.py
delete mode 100644 airflow/api_connexion/schemas/xcom_schema.py
delete mode 100644 airflow/api_connexion/security.py
copy airflow/api_fastapi/execution_api/datamodels/{asset.py => asset_event.py}
(51%)
create mode 100644 airflow/api_fastapi/execution_api/routes/asset_events.py
create mode 100644
airflow/migrations/versions/0060_3_0_0_add_try_id_to_ti_and_tih.py
rename airflow/ui/src/{pages/Dashboard/HistoricalMetrics =>
components/Assets}/AssetEvent.tsx (78%)
rename airflow/ui/src/{pages/Dashboard/HistoricalMetrics =>
components/Assets}/AssetEvents.tsx (66%)
create mode 100644 airflow/ui/src/components/BackfillIcon.tsx
create mode 100644 airflow/ui/src/components/BreadcrumbStats.tsx
create mode 100644 airflow/ui/src/components/EditableMarkdownButton.tsx
copy airflow/ui/src/{layouts/Details/Graph/JoinNode.tsx =>
components/Graph/AliasNode.tsx} (59%)
copy airflow/ui/src/{layouts/Details/Graph/JoinNode.tsx =>
components/Graph/AssetConditionNode.tsx} (70%)
create mode 100644 airflow/ui/src/components/Graph/AssetNode.tsx
create mode 100644 airflow/ui/src/components/Graph/DagNode.tsx
rename airflow/ui/src/{layouts/Details => components}/Graph/Edge.tsx (98%)
rename airflow/ui/src/{layouts/Details => components}/Graph/JoinNode.tsx (100%)
rename airflow/ui/src/{layouts/Details => components}/Graph/NodeWrapper.tsx
(100%)
rename airflow/ui/src/{layouts/Details => components}/Graph/TaskLink.tsx (96%)
rename airflow/ui/src/{layouts/Details => components}/Graph/TaskNode.tsx (100%)
rename airflow/ui/src/{layouts/Details => components}/Graph/reactflowUtils.ts
(96%)
rename airflow/ui/src/{layouts/Details => components}/Graph/useGraphLayout.ts
(95%)
create mode 100644 airflow/ui/src/components/JsonEditor.tsx
rename airflow/ui/src/components/{ => Menu}/ParseDag.tsx (87%)
rename airflow/ui/src/components/{ => TriggerDag}/EditableMarkdown.tsx (96%)
create mode 100644 airflow/ui/src/hooks/useSelectedVersion.ts
rename airflow/ui/src/layouts/Details/Grid/{TaskInstances.tsx =>
TaskInstancesColumn.tsx} (95%)
create mode 100644 airflow/ui/src/mocks/handlers/log.ts
create mode 100644 airflow/ui/src/pages/Asset/Asset.tsx
create mode 100644 airflow/ui/src/pages/Asset/AssetGraph.tsx
copy airflow/ui/src/{components/TriggerDag/TriggerDAGButton.tsx =>
pages/Asset/CreateAssetEvent.tsx} (67%)
create mode 100644 airflow/ui/src/pages/Asset/CreateAssetEventModal.tsx
copy airflow/ui/src/pages/{Task => Asset}/Header.tsx (52%)
copy airflow/ui/src/{layouts/Details/Gantt => pages/Asset}/index.ts (96%)
copy airflow/ui/src/pages/{AssetsList/AssetsList.tsx =>
Connections/Connections.tsx} (53%)
copy airflow/ui/src/{layouts/Details/Gantt => pages/Connections}/index.ts (94%)
create mode 100644 airflow/ui/src/pages/Dag/Overview/FailedLogs.tsx
create mode 100644 airflow/ui/src/pages/Dag/Overview/TaskLogPreview.tsx
copy airflow/ui/src/pages/{Dag/DagHeader.test.tsx =>
TaskInstance/Logs/Logs.test.tsx} (55%)
rename airflow/ui/src/pages/{ => TaskInstances}/TaskInstances.tsx (65%)
create mode 100644 airflow/ui/src/pages/TaskInstances/TaskInstancesFilter.tsx
copy airflow/ui/src/{layouts/Details/Gantt => pages/TaskInstances}/index.ts
(94%)
create mode 100644 airflow/ui/src/utils/logs.ts
delete mode 100644 airflow/www/extensions/init_appbuilder_links.py
delete mode 100644 airflow/www/extensions/init_cache.py
delete mode 100644 airflow/www/extensions/init_dagbag.py
delete mode 100644 airflow/www/extensions/init_jinja_globals.py
delete mode 100644 airflow/www/extensions/init_manifest_files.py
delete mode 100644 airflow/www/extensions/init_robots.py
delete mode 100644 airflow/www/extensions/init_security.py
delete mode 100644 airflow/www/extensions/init_session.py
delete mode 100644 airflow/www/extensions/init_wsgi_middlewares.py
delete mode 100644 airflow/www/fab_security/manager.py
delete mode 100644 airflow/www/session.py
delete mode 100644 airflow/www/utils.py
delete mode 100644 airflow/www/validators.py
rename airflow/api_connexion/openapi/v1.yaml => clients/python/openapi_v1.yaml
(100%)
create mode 100644 dev/breeze/doc/images/output_doctor.svg
create mode 100644 dev/breeze/doc/images/output_doctor.txt
create mode 100644 devel-common/pyproject.toml
rename {tests_common => devel-common/src/tests_common}/__init__.py (95%)
rename {airflow/api_connexion/endpoints =>
devel-common/src/tests_common/_internals}/__init__.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/_internals/capture_warnings.py (99%)
rename {tests_common =>
devel-common/src/tests_common}/_internals/forbidden_warnings.py (100%)
rename {tests_common => devel-common/src/tests_common}/pytest_plugin.py (98%)
rename {tests_common => devel-common/src/tests_common}/test_utils/README.md
(100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/__init__.py
(93%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/api_fastapi.py (100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/asserts.py
(99%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/azure_system_helpers.py (99%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/common_sql.py (100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/compat.py
(100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/config.py
(100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/db.py (98%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/executor_loader.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/fake_datetime.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/file_loading.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/format_datetime.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/gcp_system_helpers.py (99%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/get_all_tests.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/hdfs_utils.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/log_handlers.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/logging_command_executor.py (100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/logs.py
(100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/mapping.py
(99%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/mock_context.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/mock_executor.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/mock_operators.py (99%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/mock_plugins.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/mock_security_manager.py (100%)
rename {airflow/www/extensions =>
devel-common/src/tests_common/test_utils/operators}/__init__.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/operators/postgres_local_executor.cfg
(100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/operators/run_deferrable.py (100%)
rename {airflow/www/fab_security =>
devel-common/src/tests_common/test_utils/perf}/__init__.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/perf/perf_kit/__init__.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/perf/perf_kit/memory.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/perf/perf_kit/python.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/perf/perf_kit/repeat_and_time.py
(100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/perf/perf_kit/sqlalchemy.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/permissions.py (100%)
rename {tests_common => devel-common/src/tests_common}/test_utils/providers.py
(100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/reset_warning_registry.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/salesforce_system_helpers.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/sftp_system_helpers.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/system_tests.py (99%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/system_tests_class.py (99%)
rename {tests_common => devel-common/src/tests_common}/test_utils/terraform.py
(100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/timetables.py (100%)
rename {tests_common =>
devel-common/src/tests_common}/test_utils/version_compat.py (99%)
rename {tests_common => devel-common/src/tests_common}/test_utils/watcher.py
(100%)
create mode 100644 newsfragments/123.significant.rst
create mode 100644 newsfragments/45960.significant.rst
create mode 100644 newsfragments/46916.significant.rst
create mode 100644 newsfragments/47136.significant.rst
create mode 100644 newsfragments/47264.significant.rst
create mode 100644 newsfragments/47441.significant.rst
create mode 100644 providers/amazon/docs/operators/sagemakerunifiedstudio.rst
delete mode 100644
providers/amazon/src/airflow/providers/amazon/aws/auth_manager/security_manager/aws_security_manager_override.py
create mode 100644
providers/amazon/src/airflow/providers/amazon/aws/hooks/sagemaker_unified_studio.py
rename airflow/api_connexion/types.py =>
providers/amazon/src/airflow/providers/amazon/aws/links/sagemaker_unified_studio.py
(68%)
create mode 100644
providers/amazon/src/airflow/providers/amazon/aws/operators/sagemaker_unified_studio.py
create mode 100644
providers/amazon/src/airflow/providers/amazon/aws/sensors/sagemaker_unified_studio.py
create mode 100644
providers/amazon/src/airflow/providers/amazon/aws/triggers/sagemaker_unified_studio.py
copy docker_tests/conftest.py =>
providers/amazon/src/airflow/providers/amazon/aws/utils/sagemaker_unified_studio.py
(80%)
create mode 100644
providers/amazon/tests/system/amazon/aws/example_sagemaker_unified_studio.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/hooks/test_sagemaker_unified_studio.py
copy providers/amazon/tests/unit/amazon/aws/links/{test_sagemaker.py =>
test_sagemaker_unified_studio.py} (74%)
create mode 100644
providers/amazon/tests/unit/amazon/aws/operators/test_notebook.ipynb
create mode 100644
providers/amazon/tests/unit/amazon/aws/operators/test_sagemaker_unified_studio.py
create mode 100644
providers/amazon/tests/unit/amazon/aws/sensors/test_sagemaker_unified_studio.py
copy airflow/secrets/environment_variables.py =>
providers/amazon/tests/unit/amazon/aws/utils/test_sagemaker_unified_studio.py
(51%)
copy providers/{samba => common/messaging}/README.rst (80%)
copy providers/{google/docs/operators/cloud/index.rst =>
common/messaging/docs/changelog.rst} (54%)
copy docs/apache-airflow-providers/operators-and-hooks-ref/index.rst =>
providers/common/messaging/docs/commits.rst (68%)
copy providers/{samba => common/messaging}/docs/index.rst (65%)
copy providers/{airbyte =>
common/messaging}/docs/installing-providers-from-sources.rst (100%)
create mode 100644 providers/common/messaging/docs/providers.rst
copy providers/{airbyte => common/messaging}/docs/security.rst (100%)
copy providers/{samba/docs/connections.rst =>
common/messaging/docs/triggers.rst} (55%)
copy providers/{sendgrid => common/messaging}/provider.yaml (74%)
copy providers/common/{io => messaging}/pyproject.toml (67%)
copy providers/{airbyte => common/messaging}/src/airflow/__init__.py (100%)
rename
providers/{amazon/src/airflow/providers/amazon/aws/auth_manager/security_manager
=> common/messaging/src/airflow/providers}/__init__.py (100%)
copy {airflow/api_connexion =>
providers/common/messaging/src/airflow/providers/common}/__init__.py (100%)
copy {chart =>
providers/common/messaging/src/airflow/providers/common/messaging}/LICENSE
(100%)
copy providers/{standard/src/airflow/providers/standard =>
common/messaging/src/airflow/providers/common/messaging}/__init__.py (91%)
copy providers/{sendgrid/src/airflow/providers/sendgrid =>
common/messaging/src/airflow/providers/common/messaging}/get_provider_info.py
(61%)
copy providers/{edge/src/airflow/providers/edge/executors =>
common/messaging/src/airflow/providers/common/messaging/providers}/__init__.py
(85%)
create mode 100644
providers/common/messaging/src/airflow/providers/common/messaging/providers/base_provider.py
copy airflow/listeners/spec/dagrun.py =>
providers/common/messaging/src/airflow/providers/common/messaging/providers/sqs.py
(55%)
copy {airflow/api_connexion =>
providers/common/messaging/src/airflow/providers/common/messaging/triggers}/__init__.py
(100%)
create mode 100644
providers/common/messaging/src/airflow/providers/common/messaging/triggers/msg_queue.py
copy providers/{airbyte => common/messaging}/tests/conftest.py (100%)
copy providers/{airbyte/src/airflow =>
common/messaging/tests/system}/__init__.py (100%)
copy providers/{airbyte/src/airflow =>
common/messaging/tests/system/common}/__init__.py (100%)
copy {airflow/api_connexion =>
providers/common/messaging/tests/system/common/messaging}/__init__.py (100%)
copy airflow/example_dags/example_latest_only.py =>
providers/common/messaging/tests/system/common/messaging/example_message_queue_trigger.py
(65%)
copy providers/{airbyte/src/airflow =>
common/messaging/tests/unit}/__init__.py (100%)
copy providers/{airbyte/src/airflow =>
common/messaging/tests/unit/common}/__init__.py (100%)
copy {airflow/api_connexion =>
providers/common/messaging/tests/unit/common/messaging}/__init__.py (100%)
copy {airflow/api_connexion =>
providers/common/messaging/tests/unit/common/messaging/triggers}/__init__.py
(100%)
copy providers/{google/tests/unit/google/cloud/utils/test_dataproc.py =>
common/messaging/tests/unit/common/messaging/triggers/test_msg_queue.py} (63%)
create mode 100644
providers/edge/tests/unit/edge/worker_api/routes/test_jobs.py
copy providers/fab/{ =>
src/airflow/providers}/3rd-party-licenses/LICENSES-ui.txt (97%)
copy {airflow/api_connexion =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi}/__init__.py
(100%)
copy {airflow/api_connexion =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels}/__init__.py
(100%)
copy airflow/api_fastapi/execution_api/datamodels/token.py =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/datamodels/login.py
(80%)
copy {airflow/api_connexion =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/openapi}/__init__.py
(100%)
copy {airflow/auth/managers/simple =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi}/openapi/v1-generated.yaml
(84%)
copy {airflow/api_connexion =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/routes}/__init__.py
(100%)
copy {airflow/auth/managers/simple =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi}/routes/login.py
(65%)
copy {airflow/api_connexion =>
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/services}/__init__.py
(100%)
create mode 100644
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/services/login.py
rename {airflow/utils =>
providers/fab/src/airflow/providers/fab/www}/airflow_flask_app.py (86%)
rename {airflow => providers/fab/src/airflow/providers/fab}/www/auth.py (95%)
rename {airflow =>
providers/fab/src/airflow/providers/fab}/www/security_appless.py (100%)
copy {airflow/api_connexion =>
providers/fab/tests/unit/fab/auth_manager/api_fastapi}/__init__.py (100%)
copy {tests/api_fastapi/execution_api =>
providers/fab/tests/unit/fab/auth_manager/api_fastapi}/conftest.py (74%)
copy {airflow/api_connexion =>
providers/fab/tests/unit/fab/auth_manager/api_fastapi/routes}/__init__.py (100%)
create mode 100644
providers/fab/tests/unit/fab/auth_manager/api_fastapi/routes/test_login.py
rename {airflow/www =>
providers/fab/tests/unit/fab/auth_manager/api_fastapi/services}/__init__.py
(100%)
create mode 100644
providers/fab/tests/unit/fab/auth_manager/api_fastapi/services/test_login.py
rename {tests => providers/fab/tests/unit/fab}/www/test_auth.py (84%)
copy airflow/listeners/spec/lifecycle.py =>
providers/google/src/airflow/providers/google/cloud/utils/validators.py (57%)
create mode 100644
providers/google/tests/system/google/cloud/managed_kafka/example_managed_kafka_consumer_group.py
create mode 100644
providers/google/tests/unit/google/cloud/utils/test_validators.py
delete mode 100755
scripts/ci/pre_commit/check_provider_airflow_compatibility.py
delete mode 100755 scripts/ci/pre_commit/sort_tags_in_openapi_spec.py
delete mode 100755 scripts/in_container/install_devel_deps.py
create mode 100755 scripts/in_container/install_development_dependencies.py
create mode 100644 task_sdk/tests/definitions/test_connections.py
create mode 100644 tests/api_fastapi/execution_api/routes/test_asset_events.py
delete mode 100644 tests/www/__init__.py
delete mode 100644 tests/www/test_validators.py
delete mode 100644 tests_common/_internals/__init__.py
delete mode 100644 tests_common/pyproject.toml
delete mode 100644 tests_common/test_utils/api_connexion_utils.py
delete mode 100644 tests_common/test_utils/operators/__init__.py
delete mode 100644 tests_common/test_utils/perf/__init__.py
delete mode 100644 tests_common/test_utils/remote_user_api_auth_backend.py