This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch
dependabot/uv/dev/breeze/uv-dependency-updates-b8f00a7f1d
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 5e42d871732 Bump the uv-dependency-updates group in /dev/breeze with 2
updates
add 68275ced21c Remove tags from AWS system tests (#59206)
add a178d00aa5e Remove team ID and use team name as PK (#59109)
add 51064ba2409 Fix mypy error in `scheduler_job_runner.py` (#59204)
add 479acd8a77d i18n(Ko): add missing translation (Dec 8) (#59199)
add 6d57acfa779 Remove labels from unexisted sections (#59213)
add 4ea1ebf56c8 Added paginated_run method to KiotaRequestAdapterHook in
MSGraph (#57536)
add cfd82c7f9c5 Add newsfragment for 52357 PR (#59214)
add 442979423f7 Fix outdated dependency documentation (#58970)
add 84568391f21 Add is_watcher field to TriggerDetails TypedDict (#59161)
add b20d1f62cd5 Fix broken syntax highlighting in AIR rules note section
(#59188)
add 0bf6f82d3d6 Fix side-effect of running version suffix replacements
(#58937)
add 3c2163729d3 Fix composer sys test (#59200)
add 95658615b68 Keycloak CLI: add dry run functionality (#59134)
add 216e7a722f7 Add max_trigger_to_select_per_loop conf to respect
Triggerer HA setup (#58803)
add 697ad4a3d40 Import empty operator from compat module for AF2/AF3
support (#59222)
add a0b3a3b8b48 Update BulkDeleteAction to use generic type (#59207)
add be94a60ecc7 Remove unused functions in Core expandinput (#59225)
add 087c656cf2a Completing stubbed tests for AssetEvent operations (#59182)
add 4438c28bee1 Remove UUID case for sqlalachemy 2 from tests (#59230)
add 7218cf04581 Fix links for DurationChart (#59095)
add ac6e893af73 Add common: namespace to translation keys in AssetsList
component for consistency. (#59227)
add 787b8186b62 docs: adjust misleading docs (#59228)
add 42d82cbc17a Permit `airflow db migrate -r` with an empty database
(#59205)
add a6c9066120a Fix incorrect state query parameter for task_instances
(#59086)
add c12afbdda46 Fix migration to add TI primary key for sqlite dialect
(#59241)
add 3b74a8d6920 Complete Hebrew translation 2025-12-09 (#59133)
add 740da666b58 Don't depend upon FastAPI inside Task-SDK client (#59250)
add 12a66dbccab Keycloak: implement connection pooling (#59252)
add 11e127ba5fc Create `create_token` method in FAB auth manager (#59245)
add 10558d8d154 Conditionally import from task sdk (#59254)
add 861cf546cf0 Close the gaps in PL translation 2025-12-09 (#59251)
add af5e469f8c2 Passwords from stdin in Keycloak Provider (#59119)
add dac53df3ade Fix airflow version in migration (#59240)
add 8e3f689e14e Fix remote logging S3 connection retrieval in supervisor
context (#59247)
add 38cf2147567 Prepare providers release 2025-12-09 (#59249)
add afd53fd8b4c Fetch asset event source dag run (#59090)
add 91ae1733791 Add wildcard support for dag_id and dag_run_id in bulk ti
endpoint (#57441)
add 4983b2a0236 Extract shared "module_loading" distribution (#59139)
add 1e7e40ee595 Add CI workflow for UI e2e tests (#58901)
add 0b6d2589df0 Fix an odd import of pendulum from sqlalchemy_utils
instead of elsewhere. (#59258)
add 274e096e6df Fix flaky test_get_last_ti_filters_removed_tasks and
Pydantic v2 discriminator error to fix CI (#59273)
add 612a290a34e Enhance code view to support search and diff (#55467)
add ffb180b9ee4 Update main as Apache Airflow 3.1.4 has been released
(#59268)
add f1fdcdc0249 Return 403 when the Keycloak access token is expired
(#59281)
add 925376664f8 A few more missing compat imports in example dags (#59283)
add d32091cd4f4 Check team boundaries in variables (#58905)
add 0c794d01a46 Update version and add changelog for 3.1.4 Python Client
Release (#59274)
add 006b7e8683a Ensure that git-sync actually runs when
dags.gitSync.enabled=true and dags.persistence.enabled=true (#59123)
add d739a989cd2 Add TdLoadOperator to execute data transfers using
Teradata Parallel Transporter (TPT) tdload utility (#58918)
add 505881858ec Translation gaps in main TR (#59168)
add 98fee1ecd66 Fix release process issues after going through 2025-12-09
release (#59261)
add 9f87af96fd9 Add uvicorn_logging_level config option to control API
server access logs (#55405) (#56062)
add 6e3e51201e4 Fix XCom key handling when keys contain special characters
like slash (#58344)
add 7c6fcecc535 fix chrome failure (#59300)
add 3966d0afb2f Check for Deprecated SQLA Query Class Usage in Prevent
Deprecated SQLA Hook (#55274)
add f1f1feb9dbb update readme with new contribution section (#59312)
add d8604c4bb2f Update i18n freeze instructions (#59136)
add 09350e3d6b2 Add theme config (#58411)
add e0b02c9bb3a Cleanup input components (#59287)
add 0224303bc68 Fix backfill run_on_latest_version defaulting to False
instead of True (#59304)
add 95adec475f9 Add hints for claim validation to auth manager
documentation (#59320)
add c9e190fb254 Add todo re exception handling in dagrun create loop
(#59121)
add a27dd7be521 Update json to JSON for consistency in translations
(#59323)
add f4cd07129d8 Bump the fab-ui-package-updates group across 1 directory
with 3 updates (#59242)
add 2bacaea711e `ISSUE_TRIAGE_PROCESS.rst` fix link: spelling and
whitespace (#59340)
add dfeca8274e0 Update manager.py (#59330)
add 81dee2f4fe1 Optimize K8s API usage for watching events (#59080)
add 310e1181cb5 Fix _format_schema_for_description to handle missing
"fields" key gracefully (#59343)
add 23ab73adf0a build: upgrade uv to 0.9.17, prek to 0.2.21, ruff to
0.14.9 (#59350)
add c6c4284f245 Bump the uv-dependency-updates group in /dev/breeze with 2
updates
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (5e42d871732)
\
N -- N -- N
refs/heads/dependabot/uv/dev/breeze/uv-dependency-updates-b8f00a7f1d
(c6c4284f245)
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:
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 2 +-
.github/actions/breeze/action.yml | 2 +-
.github/actions/install-prek/action.yml | 4 +-
.github/workflows/additional-prod-image-tests.yml | 40 +
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/ci-amd-arm.yml | 2 +
.github/workflows/release_dockerhub_image.yml | 2 +-
.../{airflow-e2e-tests.yml => ui-e2e-tests.yml} | 68 +-
.pre-commit-config.yaml | 2 +-
.rat-excludes | 1 +
Dockerfile | 4 +-
Dockerfile.ci | 4 +-
ISSUE_TRIAGE_PROCESS.rst | 2 +-
README.md | 12 +-
RELEASE_NOTES.rst | 85 +
airflow-core/.pre-commit-config.yaml | 4 +-
.../docs/authoring-and-scheduling/deferring.rst | 13 +
.../docs/authoring-and-scheduling/serializers.rst | 2 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/howto/customize-ui.rst | 89 +
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 4954 +++++++++++---------
.../exmaple_theme_configuration_dark_mode.png | Bin 0 -> 60070 bytes
.../exmaple_theme_configuration_light_mode.png | Bin 0 -> 60098 bytes
airflow-core/docs/installation/dependencies.rst | 22 +-
.../docs/installation/supported-versions.rst | 2 +-
.../docs/installation/upgrading_to_airflow3.rst | 2 +-
airflow-core/docs/migrations-ref.rst | 9 +-
airflow-core/pyproject.toml | 6 +-
airflow-core/src/airflow/_shared/module_loading | 1 +
.../api_fastapi/auth/managers/base_auth_manager.py | 13 +-
.../src/airflow/api_fastapi/common/types.py | 71 +
.../api_fastapi/core_api/datamodels/backfills.py | 1 +
.../api_fastapi/core_api/datamodels/common.py | 3 +-
.../core_api/datamodels/task_instances.py | 2 +
.../api_fastapi/core_api/datamodels/ui/config.py | 3 +-
.../api_fastapi/core_api/datamodels/ui/teams.py | 3 -
.../api_fastapi/core_api/datamodels/variables.py | 5 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 53 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 33 +-
.../core_api/routes/public/backfills.py | 1 +
.../core_api/routes/public/variables.py | 8 +-
.../api_fastapi/core_api/routes/public/xcom.py | 4 +-
.../api_fastapi/core_api/routes/ui/config.py | 23 +
.../api_fastapi/core_api/routes/ui/teams.py | 2 +-
.../core_api/services/public/task_instances.py | 353 +-
.../execution_api/datamodels/taskinstance.py | 3 +-
.../src/airflow/api_fastapi/execution_api/deps.py | 22 +
.../api_fastapi/execution_api/routes/dag_runs.py | 130 +-
.../api_fastapi/execution_api/routes/variables.py | 19 +-
.../api_fastapi/execution_api/routes/xcoms.py | 212 +-
.../api_fastapi/execution_api/versions/__init__.py | 5 +
.../versions/{v2025_09_23.py => v2025_12_08.py} | 21 +-
airflow-core/src/airflow/cli/cli_config.py | 7 +-
.../src/airflow/cli/commands/api_server_command.py | 9 +-
.../src/airflow/cli/commands/db_manager_command.py | 2 +-
.../src/airflow/cli/commands/team_command.py | 17 +-
.../src/airflow/config_templates/config.yml | 78 +
airflow-core/src/airflow/configuration.py | 5 +-
.../src/airflow/dag_processing/bundles/base.py | 5 +-
.../src/airflow/dag_processing/bundles/manager.py | 2 +-
airflow-core/src/airflow/dag_processing/manager.py | 7 +-
airflow-core/src/airflow/exceptions.py | 2 +-
.../src/airflow/executors/executor_loader.py | 2 +-
.../src/airflow/jobs/scheduler_job_runner.py | 6 +
.../src/airflow/jobs/triggerer_job_runner.py | 3 +-
airflow-core/src/airflow/logging_config.py | 2 +-
.../versions/0000_2_6_2_squashed_migrations.py | 848 ++++
.../0001_2_7_0_add_index_to_task_instance_table.py | 4 +-
...3_0_0_add_uuid_primary_key_to_task_instance_.py | 22 +-
.../versions/0094_3_2_0_remove_team_id.py | 148 +
airflow-core/src/airflow/models/__init__.py | 2 +-
airflow-core/src/airflow/models/connection.py | 26 +-
airflow-core/src/airflow/models/expandinput.py | 15 +-
airflow-core/src/airflow/models/pool.py | 15 +-
airflow-core/src/airflow/models/team.py | 31 +-
airflow-core/src/airflow/models/trigger.py | 7 +
airflow-core/src/airflow/models/variable.py | 101 +-
airflow-core/src/airflow/plugins_manager.py | 2 +-
airflow-core/src/airflow/providers_manager.py | 2 +-
.../src/airflow/secrets/environment_variables.py | 9 +-
.../src/airflow/secrets/local_filesystem.py | 2 +-
airflow-core/src/airflow/secrets/metastore.py | 13 +-
airflow-core/src/airflow/serialization/decoders.py | 2 +-
airflow-core/src/airflow/serialization/encoders.py | 2 +-
airflow-core/src/airflow/serialization/serde.py | 2 +-
.../airflow/serialization/serialized_objects.py | 2 +-
.../airflow/serialization/serializers/bignum.py | 2 +-
.../airflow/serialization/serializers/builtin.py | 2 +-
.../airflow/serialization/serializers/datetime.py | 2 +-
.../airflow/serialization/serializers/deltalake.py | 2 +-
.../airflow/serialization/serializers/iceberg.py | 2 +-
.../serialization/serializers/kubernetes.py | 2 +-
.../src/airflow/serialization/serializers/numpy.py | 2 +-
.../airflow/serialization/serializers/pandas.py | 2 +-
.../airflow/serialization/serializers/pydantic.py | 2 +-
.../airflow/serialization/serializers/timezone.py | 2 +-
airflow-core/src/airflow/task/priority_strategy.py | 2 +-
airflow-core/src/airflow/triggers/callback.py | 2 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 2 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 2 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 2 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 2 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 101 +-
.../ui/openapi-gen/requests/services.gen.ts | 2 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 34 +-
airflow-core/src/airflow/ui/package.json | 1 +
airflow-core/src/airflow/ui/playwright.config.ts | 1 -
airflow-core/src/airflow/ui/pnpm-lock.yaml | 41 +
airflow-core/src/airflow/ui/public/i18n/README.md | 10 +-
.../airflow/ui/public/i18n/locales/en/common.json | 7 +-
.../airflow/ui/public/i18n/locales/he/assets.json | 7 +
.../airflow/ui/public/i18n/locales/he/browse.json | 4 -
.../airflow/ui/public/i18n/locales/he/common.json | 10 +-
.../ui/public/i18n/locales/he/components.json | 10 +
.../src/airflow/ui/public/i18n/locales/he/dag.json | 12 +
.../airflow/ui/public/i18n/locales/he/dags.json | 5 +
.../airflow/ui/public/i18n/locales/he/hitl.json | 5 +-
.../airflow/ui/public/i18n/locales/ko/common.json | 1 +
.../airflow/ui/public/i18n/locales/pl/assets.json | 1 +
.../airflow/ui/public/i18n/locales/pl/browse.json | 4 -
.../airflow/ui/public/i18n/locales/pl/common.json | 3 +
.../ui/public/i18n/locales/pl/components.json | 3 +
.../airflow/ui/public/i18n/locales/tr/assets.json | 5 +
.../airflow/ui/public/i18n/locales/tr/common.json | 7 +-
.../ui/public/i18n/locales/tr/components.json | 10 +
.../src/airflow/ui/public/i18n/locales/tr/dag.json | 12 +
.../airflow/ui/public/i18n/locales/tr/dags.json | 5 +
.../airflow/ui/public/i18n/locales/tr/hitl.json | 3 +-
.../src/components/DagActions/RunBackfillForm.tsx | 42 +-
.../airflow/ui/src/components/DurationChart.tsx | 17 +-
.../airflow/ui/src/components/SearchBar.test.tsx | 3 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 26 +-
.../ui/src/components/ui/FileUpload/Dropzone.tsx | 43 -
.../ui/src/components/ui/FileUpload/FileInput.tsx | 54 -
.../ui/src/components/ui/FileUpload/Item.tsx | 61 -
.../ui/src/components/ui/FileUpload/List.tsx | 51 -
.../ui/src/components/ui/FileUpload/Root.tsx | 35 -
.../ui/src/components/ui/FileUpload/index.ts | 34 -
.../airflow/ui/src/components/ui/InputGroup.tsx | 57 -
.../src/airflow/ui/src/components/ui/index.ts | 1 -
.../ui/src/context/ChakraCustomProvider.tsx | 35 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 3 +-
airflow-core/src/airflow/ui/src/main.tsx | 15 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 7 +-
.../ui/src/pages/Connections/Connections.tsx | 3 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 249 +-
.../ui/src/pages/Dag/Code/CodeDiffViewer.tsx | 87 +
.../Dag/Code/VersionCompareSelect.tsx} | 52 +-
.../pages/Dag/Tasks/TaskFilters/TaskFilters.tsx | 3 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 3 +-
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 3 +-
.../pages/Dashboard/Stats/DAGImportErrorsModal.tsx | 4 +-
.../Dashboard/Stats/PluginImportErrorsModal.tsx | 4 +-
.../src/airflow/ui/src/pages/Pools/Pools.tsx | 3 +-
.../ui/src/pages/TaskInstance/AssetEvents.tsx | 6 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 4 +-
.../ui/src/pages/Variables/ImportVariablesForm.tsx | 56 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 3 +-
airflow-core/src/airflow/ui/src/theme.ts | 724 +--
airflow-core/src/airflow/ui/tests/e2e/README.md | 161 +-
airflow-core/src/airflow/utils/db.py | 7 +-
airflow-core/src/airflow/utils/db_manager.py | 2 +-
airflow-core/src/airflow/utils/serve_logs/core.py | 7 +-
.../src/airflow/utils/serve_logs/log_server.py | 2 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 6 +-
.../tests/unit/always/test_project_structure.py | 1 -
airflow-core/tests/unit/always/test_secrets.py | 10 +-
.../auth/managers/test_base_auth_manager.py | 6 +-
.../unit/api_fastapi/common/test_exceptions.py | 15 +-
.../tests/unit/api_fastapi/common/test_types.py | 76 +
.../core_api/routes/public/test_dag_run.py | 2 +-
.../core_api/routes/public/test_task_instances.py | 170 +-
.../core_api/routes/public/test_variables.py | 45 +-
.../core_api/routes/public/test_xcom.py | 48 +-
.../api_fastapi/core_api/routes/ui/test_config.py | 21 +
.../api_fastapi/core_api/routes/ui/test_teams.py | 5 -
.../services/public/test_task_instances.py | 340 +-
.../execution_api/versions/head/test_dag_runs.py | 105 +-
.../versions/v2025_11_07}/__init__.py | 0
.../versions/v2025_11_07/test_dag_runs.py | 62 +
.../unit/cli/commands/test_api_server_command.py | 2 +
.../unit/cli/commands/test_backfill_command.py | 6 +-
.../tests/unit/cli/commands/test_team_command.py | 28 +-
.../tests/unit/core/test_example_dags_system.py | 2 +-
.../tests/unit/dag_processing/test_processor.py | 2 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 6 +-
airflow-core/tests/unit/models/test_connection.py | 7 +-
airflow-core/tests/unit/models/test_dag.py | 2 +-
airflow-core/tests/unit/models/test_dagrun.py | 9 +-
airflow-core/tests/unit/models/test_pool.py | 9 +-
airflow-core/tests/unit/models/test_team.py | 50 +-
airflow-core/tests/unit/models/test_trigger.py | 91 +
airflow-core/tests/unit/models/test_variable.py | 77 +-
.../tests/unit/plugins/test_plugins_manager.py | 2 +-
.../serialization/serializers/test_serializers.py | 2 +-
.../unit/serialization/test_dag_serialization.py | 2 +-
.../tests/unit/serialization/test_serde.py | 2 +-
.../tests/unit/utils/test_module_loading.py | 35 -
.../src/airflowctl/api/datamodels/generated.py | 133 +-
chart/newsfragments/52357.improvement.rst | 1 +
.../dag-processor/dag-processor-deployment.yaml | 2 +-
chart/templates/rbac/pod-launcher-role.yaml | 1 +
.../workers/worker-celery-serviceaccount.yaml | 4 +-
.../workers/worker-kubernetes-serviceaccount.yaml | 4 +-
clients/python/CHANGELOG.md | 7 +
clients/python/version.txt | 2 +-
dev/README_RELEASE_AIRFLOW.md | 135 +-
dev/breeze/doc/ci/02_images.md | 4 +-
.../doc/images/output_testing_ui-e2e-tests.svg | 80 +-
.../doc/images/output_testing_ui-e2e-tests.txt | 2 +-
dev/breeze/pyproject.toml | 2 +-
.../src/airflow_breeze/commands/common_options.py | 6 +-
.../commands/release_management_commands.py | 17 +-
.../airflow_breeze/commands/testing_commands.py | 153 +-
.../commands/testing_commands_config.py | 8 +
.../src/airflow_breeze/commands/ui_commands.py | 23 +-
dev/breeze/src/airflow_breeze/global_constants.py | 4 +-
.../prepare_providers/provider_documentation.py | 19 +-
.../airflow_breeze/utils/docker_compose_utils.py | 165 +
dev/breeze/src/airflow_breeze/utils/packages.py | 4 +-
.../src/airflow_breeze/utils/selective_checks.py | 4 +
dev/breeze/tests/test_packages.py | 46 +-
dev/breeze/uv.lock | 161 +-
devel-common/pyproject.toml | 2 +-
devel-common/src/tests_common/pytest_plugin.py | 3 +-
.../src/tests_common/test_utils/providers.py | 2 +-
docs/spelling_wordlist.txt | 2 +
generated/PYPI_README.md | 10 +-
.../helm_tests/airflow_core/test_dag_processor.py | 10 +-
providers/.last_release_date.txt | 2 +-
providers/airbyte/README.rst | 8 +-
providers/airbyte/docs/changelog.rst | 11 +
providers/airbyte/docs/index.rst | 8 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 8 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
providers/alibaba/README.rst | 8 +-
providers/alibaba/docs/changelog.rst | 11 +
providers/alibaba/docs/index.rst | 8 +-
providers/alibaba/provider.yaml | 3 +-
providers/alibaba/pyproject.toml | 8 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
providers/amazon/README.rst | 9 +-
providers/amazon/docs/changelog.rst | 25 +
providers/amazon/docs/index.rst | 8 +-
providers/amazon/provider.yaml | 3 +-
providers/amazon/pyproject.toml | 8 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/secrets/secrets_manager.py | 3 +-
.../amazon/aws/secrets/systems_manager.py | 3 +-
.../tests/system/amazon/aws/example_appflow.py | 8 +-
.../tests/system/amazon/aws/example_appflow_run.py | 1 -
.../tests/system/amazon/aws/example_athena.py | 1 -
.../system/amazon/aws/example_azure_blob_to_s3.py | 1 -
.../tests/system/amazon/aws/example_batch.py | 1 -
.../tests/system/amazon/aws/example_bedrock.py | 1 -
.../amazon/aws/example_bedrock_batch_inference.py | 1 -
.../aws/example_bedrock_retrieve_and_generate.py | 3 +-
.../system/amazon/aws/example_cloudformation.py | 1 -
.../tests/system/amazon/aws/example_comprehend.py | 1 -
.../aws/example_comprehend_document_classifier.py | 1 -
.../tests/system/amazon/aws/example_datasync.py | 1 -
.../amazon/tests/system/amazon/aws/example_dms.py | 1 -
.../tests/system/amazon/aws/example_dynamodb.py | 1 -
.../system/amazon/aws/example_dynamodb_to_s3.py | 1 -
.../amazon/tests/system/amazon/aws/example_ec2.py | 1 -
.../amazon/tests/system/amazon/aws/example_ecs.py | 1 -
.../tests/system/amazon/aws/example_ecs_fargate.py | 1 -
.../system/amazon/aws/example_eks_templated.py | 1 -
.../aws/example_eks_with_fargate_in_one_step.py | 1 -
.../amazon/aws/example_eks_with_fargate_profile.py | 1 -
.../aws/example_eks_with_nodegroup_in_one_step.py | 1 -
.../amazon/aws/example_eks_with_nodegroups.py | 1 -
.../amazon/tests/system/amazon/aws/example_emr.py | 1 -
.../tests/system/amazon/aws/example_emr_eks.py | 1 -
.../amazon/aws/example_emr_notebook_execution.py | 1 -
.../system/amazon/aws/example_emr_serverless.py | 1 -
.../tests/system/amazon/aws/example_eventbridge.py | 1 -
.../tests/system/amazon/aws/example_ftp_to_s3.py | 1 -
.../tests/system/amazon/aws/example_gcs_to_s3.py | 1 -
.../system/amazon/aws/example_glacier_to_gcs.py | 1 -
.../amazon/tests/system/amazon/aws/example_glue.py | 1 -
.../system/amazon/aws/example_glue_data_quality.py | 1 -
...xample_glue_data_quality_with_recommendation.py | 1 -
.../amazon/aws/example_google_api_sheets_to_s3.py | 1 -
.../amazon/aws/example_google_api_youtube_to_s3.py | 1 -
.../system/amazon/aws/example_hive_to_dynamodb.py | 1 -
.../tests/system/amazon/aws/example_http_to_s3.py | 8 +-
.../amazon/aws/example_imap_attachment_to_s3.py | 1 -
.../system/amazon/aws/example_kinesis_analytics.py | 1 -
.../tests/system/amazon/aws/example_lambda.py | 1 -
.../tests/system/amazon/aws/example_local_to_s3.py | 1 -
.../tests/system/amazon/aws/example_mongo_to_s3.py | 1 -
.../amazon/tests/system/amazon/aws/example_mwaa.py | 1 -
.../system/amazon/aws/example_mwaa_airflow2.py | 1 -
.../tests/system/amazon/aws/example_neptune.py | 1 -
.../tests/system/amazon/aws/example_quicksight.py | 1 -
.../tests/system/amazon/aws/example_rds_event.py | 1 -
.../tests/system/amazon/aws/example_rds_export.py | 1 -
.../system/amazon/aws/example_rds_instance.py | 1 -
.../system/amazon/aws/example_rds_snapshot.py | 1 -
.../tests/system/amazon/aws/example_redshift.py | 1 -
.../amazon/aws/example_redshift_s3_transfers.py | 1 -
.../amazon/tests/system/amazon/aws/example_s3.py | 1 -
.../system/amazon/aws/example_s3_to_dynamodb.py | 1 -
.../tests/system/amazon/aws/example_s3_to_ftp.py | 1 -
.../tests/system/amazon/aws/example_s3_to_sftp.py | 1 -
.../tests/system/amazon/aws/example_s3_to_sql.py | 1 -
.../tests/system/amazon/aws/example_sagemaker.py | 1 -
.../amazon/aws/example_sagemaker_endpoint.py | 1 -
.../amazon/aws/example_sagemaker_notebook.py | 1 -
.../amazon/aws/example_sagemaker_pipeline.py | 1 -
.../amazon/aws/example_sagemaker_unified_studio.py | 1 -
.../system/amazon/aws/example_salesforce_to_s3.py | 1 -
.../tests/system/amazon/aws/example_sftp_to_s3.py | 1 -
.../amazon/tests/system/amazon/aws/example_sns.py | 1 -
.../tests/system/amazon/aws/example_sql_to_s3.py | 1 -
.../amazon/tests/system/amazon/aws/example_sqs.py | 1 -
.../amazon/tests/system/amazon/aws/example_ssm.py | 12 +-
.../system/amazon/aws/example_step_functions.py | 1 -
.../amazon/tests/system/amazon/aws/utils/k8s.py | 6 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 2 +-
.../unit/amazon/aws/log/test_s3_task_handler.py | 2 +-
providers/apache/beam/README.rst | 38 +-
providers/apache/beam/docs/changelog.rst | 11 +
providers/apache/beam/docs/index.rst | 27 +-
providers/apache/beam/provider.yaml | 3 +-
providers/apache/beam/pyproject.toml | 8 +-
.../src/airflow/providers/apache/beam/__init__.py | 2 +-
providers/apache/druid/README.rst | 8 +-
providers/apache/druid/docs/changelog.rst | 11 +
providers/apache/druid/docs/index.rst | 8 +-
providers/apache/druid/provider.yaml | 3 +-
providers/apache/druid/pyproject.toml | 8 +-
.../src/airflow/providers/apache/druid/__init__.py | 2 +-
providers/apache/flink/README.rst | 16 +-
providers/apache/flink/docs/changelog.rst | 11 +
providers/apache/flink/docs/index.rst | 7 +-
providers/apache/flink/provider.yaml | 3 +-
providers/apache/flink/pyproject.toml | 8 +-
.../src/airflow/providers/apache/flink/__init__.py | 2 +-
providers/apache/hdfs/README.rst | 34 +-
providers/apache/hdfs/docs/changelog.rst | 11 +
providers/apache/hdfs/docs/index.rst | 25 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 8 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
providers/apache/hive/README.rst | 8 +-
providers/apache/hive/docs/changelog.rst | 11 +
providers/apache/hive/docs/index.rst | 8 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 8 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
providers/apache/kafka/README.rst | 22 +-
providers/apache/kafka/docs/changelog.rst | 11 +
providers/apache/kafka/docs/index.rst | 21 +-
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 8 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
.../providers/apache/kafka/hooks/consume.py | 2 +-
.../providers/apache/kafka/operators/consume.py | 2 +-
.../providers/apache/kafka/operators/produce.py | 2 +-
.../apache/kafka/triggers/await_message.py | 2 +-
providers/apache/kylin/README.rst | 8 +-
providers/apache/kylin/docs/changelog.rst | 11 +
providers/apache/kylin/docs/index.rst | 8 +-
providers/apache/kylin/provider.yaml | 3 +-
providers/apache/kylin/pyproject.toml | 8 +-
.../src/airflow/providers/apache/kylin/__init__.py | 2 +-
providers/apache/livy/README.rst | 8 +-
providers/apache/livy/docs/changelog.rst | 11 +
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/pig/README.rst | 26 +-
providers/apache/pig/docs/changelog.rst | 11 +
providers/apache/pig/docs/index.rst | 17 +-
providers/apache/pig/provider.yaml | 3 +-
providers/apache/pig/pyproject.toml | 8 +-
.../src/airflow/providers/apache/pig/__init__.py | 2 +-
providers/apache/pinot/README.rst | 30 +-
providers/apache/pinot/docs/changelog.rst | 11 +
providers/apache/pinot/docs/index.rst | 21 +-
providers/apache/pinot/provider.yaml | 3 +-
providers/apache/pinot/pyproject.toml | 8 +-
.../src/airflow/providers/apache/pinot/__init__.py | 2 +-
providers/apache/spark/README.rst | 8 +-
providers/apache/spark/docs/changelog.rst | 11 +
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/arangodb/README.rst | 8 +-
providers/arangodb/docs/changelog.rst | 11 +
providers/arangodb/docs/index.rst | 8 +-
providers/arangodb/provider.yaml | 3 +-
providers/arangodb/pyproject.toml | 8 +-
.../src/airflow/providers/arangodb/__init__.py | 2 +-
.../jira/docs/.latest-doc-only-change.txt | 2 +-
providers/atlassian/jira/docs/index.rst | 2 +-
providers/atlassian/jira/pyproject.toml | 2 +-
providers/celery/README.rst | 8 +-
providers/celery/docs/changelog.rst | 13 +
providers/celery/docs/index.rst | 8 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 8 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
providers/cloudant/README.rst | 8 +-
providers/cloudant/docs/changelog.rst | 11 +
providers/cloudant/docs/index.rst | 8 +-
providers/cloudant/provider.yaml | 3 +-
providers/cloudant/pyproject.toml | 8 +-
.../src/airflow/providers/cloudant/__init__.py | 2 +-
providers/cncf/kubernetes/README.rst | 9 +-
providers/cncf/kubernetes/docs/changelog.rst | 19 +
providers/cncf/kubernetes/docs/index.rst | 9 +-
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 8 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 96 +-
.../providers/cncf/kubernetes/operators/pod.py | 26 +-
.../providers/cncf/kubernetes/triggers/pod.py | 27 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 87 +-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 211 +
.../unit/cncf/kubernetes/triggers/test_pod.py | 24 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 374 +-
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 13 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
.../common/compat/module_loading/__init__.py | 64 +-
.../messaging/docs/.latest-doc-only-change.txt | 2 +-
providers/common/sql/README.rst | 8 +-
providers/common/sql/docs/changelog.rst | 12 +
providers/common/sql/docs/index.rst | 8 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 8 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 4 +-
providers/databricks/README.rst | 8 +-
providers/databricks/docs/changelog.rst | 12 +
providers/databricks/docs/index.rst | 8 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 8 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
providers/datadog/README.rst | 8 +-
providers/datadog/docs/changelog.rst | 11 +
providers/datadog/docs/index.rst | 8 +-
providers/datadog/provider.yaml | 3 +-
providers/datadog/pyproject.toml | 8 +-
.../src/airflow/providers/datadog/__init__.py | 2 +-
providers/dbt/cloud/README.rst | 8 +-
providers/dbt/cloud/docs/changelog.rst | 17 +
providers/dbt/cloud/docs/index.rst | 8 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 8 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
providers/dingding/README.rst | 8 +-
providers/dingding/docs/changelog.rst | 11 +
providers/dingding/docs/index.rst | 8 +-
providers/dingding/provider.yaml | 3 +-
providers/dingding/pyproject.toml | 8 +-
.../src/airflow/providers/dingding/__init__.py | 2 +-
providers/discord/README.rst | 8 +-
providers/discord/docs/changelog.rst | 11 +
providers/discord/docs/index.rst | 8 +-
providers/discord/provider.yaml | 3 +-
providers/discord/pyproject.toml | 8 +-
.../src/airflow/providers/discord/__init__.py | 2 +-
providers/docker/README.rst | 8 +-
providers/docker/docs/changelog.rst | 16 +
providers/docker/docs/index.rst | 8 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 8 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
providers/edge3/README.rst | 14 +-
providers/edge3/docs/changelog.rst | 18 +
providers/edge3/docs/index.rst | 14 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 8 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
providers/elasticsearch/README.rst | 8 +-
providers/elasticsearch/docs/changelog.rst | 11 +
providers/elasticsearch/docs/index.rst | 8 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 8 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../providers/elasticsearch/log/es_task_handler.py | 2 +-
providers/fab/README.rst | 8 +-
providers/fab/docs/auth-manager/access-control.rst | 2 +-
.../fab/docs/auth-manager/api-authentication.rst | 6 +-
providers/fab/docs/auth-manager/token.rst | 126 +-
providers/fab/docs/changelog.rst | 31 +
providers/fab/docs/index.rst | 8 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 8 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../auth_manager/api_fastapi/datamodels/login.py | 7 -
.../openapi/v2-fab-auth-manager-generated.yaml | 22 +-
.../fab/auth_manager/api_fastapi/routes/login.py | 15 +-
.../fab/auth_manager/api_fastapi/services/login.py | 37 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 27 +
...y => 0000_1_4_0_create_ab_tables_if_missing.py} | 0
.../airflow/providers/fab/www/package-lock.json | 158 +-
.../fab/src/airflow/providers/fab/www/package.json | 4 +-
.../auth_manager/api_fastapi/routes/test_login.py | 8 +-
.../api_fastapi/services/test_login.py | 62 +-
.../unit/fab/auth_manager/test_fab_auth_manager.py | 45 +-
providers/fab/www-hash.txt | 2 +-
providers/facebook/README.rst | 8 +-
providers/facebook/docs/changelog.rst | 11 +
providers/facebook/docs/index.rst | 8 +-
providers/facebook/provider.yaml | 3 +-
providers/facebook/pyproject.toml | 8 +-
.../src/airflow/providers/facebook/__init__.py | 2 +-
providers/git/README.rst | 8 +-
providers/git/docs/changelog.rst | 17 +
providers/git/docs/index.rst | 8 +-
providers/git/provider.yaml | 3 +-
providers/git/pyproject.toml | 8 +-
.../git/src/airflow/providers/git/__init__.py | 2 +-
providers/github/README.rst | 8 +-
providers/github/docs/changelog.rst | 11 +
providers/github/docs/index.rst | 8 +-
providers/github/provider.yaml | 3 +-
providers/github/pyproject.toml | 8 +-
.../src/airflow/providers/github/__init__.py | 2 +-
providers/google/README.rst | 8 +-
providers/google/docs/changelog.rst | 18 +
providers/google/docs/index.rst | 8 +-
providers/google/provider.yaml | 3 +-
providers/google/pyproject.toml | 8 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/hooks/bigquery.py | 25 +-
.../google/cloud/secrets/secret_manager.py | 3 +-
.../cloud/composer/example_cloud_composer.py | 2 +-
.../tests/unit/google/cloud/hooks/test_bigquery.py | 5 +
.../airflow/providers/hashicorp/secrets/vault.py | 3 +-
providers/http/README.rst | 8 +-
providers/http/docs/changelog.rst | 16 +
providers/http/docs/index.rst | 8 +-
providers/http/provider.yaml | 3 +-
providers/http/pyproject.toml | 8 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
providers/imap/README.rst | 8 +-
providers/imap/docs/changelog.rst | 11 +
providers/imap/docs/index.rst | 8 +-
providers/imap/provider.yaml | 3 +-
providers/imap/pyproject.toml | 8 +-
.../imap/src/airflow/providers/imap/__init__.py | 2 +-
providers/jdbc/README.rst | 8 +-
providers/jdbc/docs/changelog.rst | 11 +
providers/jdbc/docs/index.rst | 8 +-
providers/jdbc/provider.yaml | 3 +-
providers/jdbc/pyproject.toml | 8 +-
.../jdbc/src/airflow/providers/jdbc/__init__.py | 2 +-
providers/jenkins/README.rst | 8 +-
providers/jenkins/docs/changelog.rst | 11 +
providers/jenkins/docs/index.rst | 8 +-
providers/jenkins/provider.yaml | 3 +-
providers/jenkins/pyproject.toml | 8 +-
.../src/airflow/providers/jenkins/__init__.py | 2 +-
providers/keycloak/README.rst | 38 +-
.../docs/auth-manager/manage/permissions.rst | 6 +-
providers/keycloak/docs/changelog.rst | 27 +
providers/keycloak/docs/index.rst | 43 +-
providers/keycloak/provider.yaml | 19 +-
providers/keycloak/pyproject.toml | 8 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../keycloak/auth_manager/cli/commands.py | 227 +-
.../keycloak/auth_manager/cli/definition.py | 32 +-
.../providers/keycloak/auth_manager/cli/utils.py | 81 +
.../providers/keycloak/auth_manager/constants.py | 2 +
.../keycloak/auth_manager/keycloak_auth_manager.py | 42 +-
.../providers/keycloak/get_provider_info.py | 14 +
.../keycloak/auth_manager/cli/test_commands.py | 278 +-
.../keycloak/auth_manager/cli/test_definition.py | 85 +-
.../unit/keycloak/auth_manager/cli/test_utils.py | 61 +
.../auth_manager/test_keycloak_auth_manager.py | 75 +-
providers/microsoft/azure/README.rst | 8 +-
providers/microsoft/azure/docs/changelog.rst | 21 +
providers/microsoft/azure/docs/index.rst | 8 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 8 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/hooks/msgraph.py | 159 +-
.../providers/microsoft/azure/operators/msgraph.py | 21 +-
.../providers/microsoft/azure/secrets/key_vault.py | 3 +-
.../providers/microsoft/azure/triggers/msgraph.py | 2 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 99 +
providers/microsoft/psrp/README.rst | 8 +-
providers/microsoft/psrp/docs/changelog.rst | 11 +
providers/microsoft/psrp/docs/index.rst | 8 +-
providers/microsoft/psrp/provider.yaml | 3 +-
providers/microsoft/psrp/pyproject.toml | 8 +-
.../airflow/providers/microsoft/psrp/__init__.py | 2 +-
providers/microsoft/winrm/README.rst | 8 +-
providers/microsoft/winrm/docs/changelog.rst | 11 +
providers/microsoft/winrm/docs/index.rst | 8 +-
providers/microsoft/winrm/provider.yaml | 3 +-
providers/microsoft/winrm/pyproject.toml | 8 +-
.../airflow/providers/microsoft/winrm/__init__.py | 2 +-
providers/neo4j/README.rst | 8 +-
providers/neo4j/docs/changelog.rst | 11 +
providers/neo4j/docs/index.rst | 8 +-
providers/neo4j/provider.yaml | 3 +-
providers/neo4j/pyproject.toml | 8 +-
.../neo4j/src/airflow/providers/neo4j/__init__.py | 2 +-
providers/openai/README.rst | 8 +-
providers/openai/docs/changelog.rst | 11 +
providers/openai/docs/index.rst | 8 +-
providers/openai/provider.yaml | 3 +-
providers/openai/pyproject.toml | 8 +-
.../src/airflow/providers/openai/__init__.py | 2 +-
providers/openfaas/README.rst | 8 +-
providers/openfaas/docs/changelog.rst | 11 +
providers/openfaas/docs/index.rst | 8 +-
providers/openfaas/provider.yaml | 3 +-
providers/openfaas/pyproject.toml | 8 +-
.../src/airflow/providers/openfaas/__init__.py | 2 +-
providers/openlineage/README.rst | 8 +-
providers/openlineage/docs/changelog.rst | 15 +
providers/openlineage/docs/index.rst | 8 +-
providers/openlineage/provider.yaml | 3 +-
providers/openlineage/pyproject.toml | 8 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../airflow/providers/openlineage/utils/utils.py | 2 +-
providers/opensearch/README.rst | 8 +-
providers/opensearch/docs/changelog.rst | 11 +
providers/opensearch/docs/index.rst | 8 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 8 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/opensearch/log/os_task_handler.py | 2 +-
providers/pagerduty/README.rst | 8 +-
providers/pagerduty/docs/changelog.rst | 11 +
providers/pagerduty/docs/index.rst | 8 +-
providers/pagerduty/provider.yaml | 3 +-
providers/pagerduty/pyproject.toml | 8 +-
.../src/airflow/providers/pagerduty/__init__.py | 2 +-
providers/postgres/README.rst | 8 +-
providers/postgres/docs/changelog.rst | 11 +
providers/postgres/docs/index.rst | 8 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 8 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
providers/presto/README.rst | 8 +-
providers/presto/docs/changelog.rst | 11 +
providers/presto/docs/index.rst | 8 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 8 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/redis/README.rst | 8 +-
providers/redis/docs/changelog.rst | 16 +
providers/redis/docs/index.rst | 8 +-
providers/redis/provider.yaml | 3 +-
providers/redis/pyproject.toml | 8 +-
.../redis/src/airflow/providers/redis/__init__.py | 2 +-
providers/salesforce/README.rst | 8 +-
providers/salesforce/docs/changelog.rst | 11 +
providers/salesforce/docs/index.rst | 8 +-
providers/salesforce/provider.yaml | 3 +-
providers/salesforce/pyproject.toml | 8 +-
.../src/airflow/providers/salesforce/__init__.py | 2 +-
providers/samba/README.rst | 8 +-
providers/samba/docs/changelog.rst | 11 +
providers/samba/docs/index.rst | 8 +-
providers/samba/provider.yaml | 3 +-
providers/samba/pyproject.toml | 8 +-
.../samba/src/airflow/providers/samba/__init__.py | 2 +-
providers/segment/README.rst | 8 +-
providers/segment/docs/changelog.rst | 11 +
providers/segment/docs/index.rst | 8 +-
providers/segment/provider.yaml | 3 +-
providers/segment/pyproject.toml | 8 +-
.../src/airflow/providers/segment/__init__.py | 2 +-
providers/sftp/README.rst | 8 +-
providers/sftp/docs/changelog.rst | 16 +
providers/sftp/docs/index.rst | 8 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 8 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
providers/singularity/README.rst | 8 +-
providers/singularity/docs/changelog.rst | 11 +
providers/singularity/docs/index.rst | 8 +-
providers/singularity/provider.yaml | 3 +-
providers/singularity/pyproject.toml | 8 +-
.../src/airflow/providers/singularity/__init__.py | 2 +-
providers/slack/README.rst | 8 +-
providers/slack/docs/changelog.rst | 11 +
providers/slack/docs/index.rst | 8 +-
providers/slack/provider.yaml | 3 +-
providers/slack/pyproject.toml | 8 +-
.../slack/src/airflow/providers/slack/__init__.py | 2 +-
providers/smtp/README.rst | 8 +-
providers/smtp/docs/changelog.rst | 11 +
providers/smtp/docs/index.rst | 8 +-
providers/smtp/provider.yaml | 3 +-
providers/smtp/pyproject.toml | 8 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
providers/snowflake/README.rst | 8 +-
providers/snowflake/docs/changelog.rst | 17 +
providers/snowflake/docs/index.rst | 8 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 8 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
providers/ssh/README.rst | 8 +-
providers/ssh/docs/changelog.rst | 11 +
providers/ssh/docs/index.rst | 8 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 8 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
providers/standard/README.rst | 8 +-
providers/standard/docs/changelog.rst | 18 +
providers/standard/docs/index.rst | 8 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 8 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
providers/tableau/README.rst | 8 +-
providers/tableau/docs/changelog.rst | 11 +
providers/tableau/docs/index.rst | 8 +-
providers/tableau/provider.yaml | 3 +-
providers/tableau/pyproject.toml | 8 +-
.../src/airflow/providers/tableau/__init__.py | 2 +-
providers/telegram/README.rst | 8 +-
providers/telegram/docs/changelog.rst | 11 +
providers/telegram/docs/index.rst | 8 +-
providers/telegram/provider.yaml | 3 +-
providers/telegram/pyproject.toml | 8 +-
.../src/airflow/providers/telegram/__init__.py | 2 +-
providers/teradata/README.rst | 8 +-
providers/teradata/docs/changelog.rst | 11 +
providers/teradata/docs/index.rst | 8 +-
providers/teradata/docs/operators/tpt.rst | 133 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 8 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
.../src/airflow/providers/teradata/hooks/tpt.py | 245 +-
.../airflow/providers/teradata/operators/tpt.py | 436 ++
.../airflow/providers/teradata/utils/tpt_util.py | 146 +
.../tests/system/teradata/example_remote_tpt.py | 111 +-
.../teradata/tests/system/teradata/example_tpt.py | 108 +-
.../tests/system/teradata/tdload_src_file.txt | 1000 ++++
.../teradata/tests/unit/teradata/hooks/test_tpt.py | 284 ++
.../tests/unit/teradata/operators/test_tpt.py | 591 ++-
.../tests/unit/teradata/utils/test_tpt_util.py | 262 ++
providers/trino/README.rst | 8 +-
providers/trino/docs/changelog.rst | 11 +
providers/trino/docs/index.rst | 8 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 8 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
.../airflow/providers/yandex/secrets/lockbox.py | 3 +-
providers/ydb/README.rst | 36 +-
providers/ydb/docs/changelog.rst | 11 +
providers/ydb/docs/index.rst | 36 +-
providers/ydb/provider.yaml | 3 +-
providers/ydb/pyproject.toml | 8 +-
.../ydb/src/airflow/providers/ydb/__init__.py | 2 +-
pyproject.toml | 5 +-
reproducible_build.yaml | 4 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
.../ci/prek/prevent_deprecated_sqlalchemy_usage.py | 11 +
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/supported_versions.py | 2 +-
scripts/in_container/run_migration_reference.py | 2 +-
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 1 +
.../src/airflow_shared/configuration/parser.py | 2 +-
.../{timezones => module_loading}/pyproject.toml | 6 +-
.../src/airflow_shared/module_loading/__init__.py | 22 +
.../tests/conftest.py | 0
.../tests/module_loading}/__init__.py | 0
.../tests/module_loading}/test_module_loading.py | 20 +-
.../src/airflow_shared/secrets_backend/base.py | 3 +-
task-sdk-integration-tests/dags/test_asset_dag.py | 11 +-
.../tests/task_sdk_tests/conftest.py | 1 +
.../task_sdk_tests/test_asset_event_operations.py | 56 +-
.../task_sdk_tests/test_dag_run_operations.py | 4 +-
task-sdk/pyproject.toml | 6 +-
task-sdk/src/airflow/sdk/_shared/module_loading | 1 +
task-sdk/src/airflow/sdk/api/client.py | 11 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
task-sdk/src/airflow/sdk/configuration.py | 2 +-
task-sdk/src/airflow/sdk/definitions/callback.py | 2 +-
task-sdk/src/airflow/sdk/definitions/connection.py | 2 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 2 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 102 +-
.../sdk/execution_time/secrets/execution_api.py | 4 +-
.../src/airflow/sdk/execution_time/supervisor.py | 21 +-
task-sdk/src/airflow/sdk/io/fs.py | 2 +-
task-sdk/src/airflow/sdk/io/store.py | 2 +-
task-sdk/src/airflow/sdk/module_loading.py | 71 +-
task-sdk/tests/task_sdk/api/test_client.py | 23 +-
.../tests/task_sdk/definitions/test_callback.py | 2 +-
.../tests/task_sdk/definitions/test_connection.py | 2 +-
.../task_sdk/definitions/test_module_loading.py | 23 -
.../tests/task_sdk/execution_time/test_context.py | 93 +-
.../tests/task_sdk/execution_time/test_sentry.py | 2 +-
.../task_sdk/execution_time/test_supervisor.py | 114 +-
.../task_sdk/execution_time/test_task_runner.py | 79 +
task-sdk/tests/task_sdk/io/test_path.py | 2 +-
806 files changed, 15812 insertions(+), 6297 deletions(-)
copy .github/workflows/{airflow-e2e-tests.yml => ui-e2e-tests.yml} (68%)
create mode 100644
airflow-core/docs/img/change-theme/exmaple_theme_configuration_dark_mode.png
create mode 100644
airflow-core/docs/img/change-theme/exmaple_theme_configuration_light_mode.png
create mode 120000 airflow-core/src/airflow/_shared/module_loading
copy
airflow-core/src/airflow/api_fastapi/execution_api/versions/{v2025_09_23.py =>
v2025_12_08.py} (59%)
create mode 100644
airflow-core/src/airflow/migrations/versions/0000_2_6_2_squashed_migrations.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0094_3_2_0_remove_team_id.py
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/FileUpload/Dropzone.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/FileUpload/FileInput.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/FileUpload/Item.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/FileUpload/List.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/FileUpload/Root.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/ui/FileUpload/index.ts
delete mode 100644 airflow-core/src/airflow/ui/src/components/ui/InputGroup.tsx
copy dev/react-plugin-tools/react_plugin_template/src/main.tsx =>
airflow-core/src/airflow/ui/src/context/ChakraCustomProvider.tsx (61%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Code/CodeDiffViewer.tsx
copy airflow-core/src/airflow/ui/src/{components/DagVersionSelect.tsx =>
pages/Dag/Code/VersionCompareSelect.tsx} (72%)
create mode 100644 airflow-core/tests/unit/api_fastapi/common/test_types.py
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/execution_api/versions/v2025_11_07}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_11_07/test_dag_runs.py
delete mode 100644 airflow-core/tests/unit/utils/test_module_loading.py
create mode 100644 chart/newsfragments/52357.improvement.rst
create mode 100644 dev/breeze/src/airflow_breeze/utils/docker_compose_utils.py
copy airflow-core/tests/unit/listeners/lifecycle_listener.py =>
providers/common/compat/src/airflow/providers/common/compat/module_loading/__init__.py
(52%)
rename
providers/fab/src/airflow/providers/fab/migrations/versions/{0001_1_4_0_create_ab_tables_if_missing.py
=> 0000_1_4_0_create_ab_tables_if_missing.py} (100%)
create mode 100644
providers/keycloak/src/airflow/providers/keycloak/auth_manager/cli/utils.py
create mode 100644
providers/keycloak/tests/unit/keycloak/auth_manager/cli/test_utils.py
create mode 100644 providers/teradata/tests/system/teradata/tdload_src_file.txt
copy shared/{timezones => module_loading}/pyproject.toml (89%)
rename airflow-core/src/airflow/utils/module_loading.py =>
shared/module_loading/src/airflow_shared/module_loading/__init__.py (77%)
copy shared/{observability => module_loading}/tests/conftest.py (100%)
copy {airflow-core/src/airflow/api/common =>
shared/module_loading/tests/module_loading}/__init__.py (100%)
copy {task-sdk/tests/task_sdk/definitions =>
shared/module_loading/tests/module_loading}/test_module_loading.py (72%)
create mode 120000 task-sdk/src/airflow/sdk/_shared/module_loading