You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by ra...@apache.org on 2026/08/12 08:47:45 UTC
(airflow) 01/08: Merge remote-tracking branch 'refs/remotes/origin/main'
This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a commit to annotated tag constraints-latest
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit bc3e2d6231837a5528b59968ee77c70e2b758e3b
Merge: 5d1e2043793 a2b0ad54e75
Author: Rahul Vats <ra...@gmail.com>
AuthorDate: Fri Jul 31 14:45:03 2026 +0530
Merge remote-tracking branch 'refs/remotes/origin/main'
.agents/skills/airflow-translations/locales/el.md | 67 +-
.agents/skills/airflow-translations/locales/tr.md | 239 +-
.../prepare-providers-documentation/SKILL.md | 301 +-
.dockerignore | 1 +
.github/CODEOWNERS | 16 +-
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 1 +
.github/PULL_REQUEST_TEMPLATE.md | 2 +-
.../actions/prepare_breeze_and_image/action.yml | 13 +-
.github/boring-cyborg.yml | 8 +-
.github/dependabot.yml | 173 +-
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 29 +-
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/airflow-e2e-tests.yml | 104 +-
.github/workflows/asf-allowlist-check.yml | 2 +-
.github/workflows/backport-cli.yml | 2 +-
.github/workflows/basic-tests.yml | 26 +-
.github/workflows/ci-amd.yml | 36 +-
.github/workflows/ci-arm.yml | 36 +-
.github/workflows/ci-duration-monitor.yml | 4 +-
.github/workflows/ci-image-build.yml | 197 +-
.github/workflows/ci-image-checks.yml | 18 +-
.github/workflows/ci-notification.yml | 8 +-
.github/workflows/codeql-analysis.yml | 10 +-
.github/workflows/e2e-flaky-tests-report.yml | 4 +-
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/generate-constraints.yml | 27 +-
.github/workflows/helm-tests.yml | 4 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/java-sdk-release-verify.yml | 8 +-
.github/workflows/k8s-tests.yml | 8 +-
.github/workflows/kustomize-overlays-tests.yml | 2 +-
.github/workflows/milestone-tag-assistant.yml | 2 +-
.github/workflows/notify-uv-lock-conflicts.yml | 2 +-
.github/workflows/openlineage-e2e-compat-tests.yml | 2 +-
.github/workflows/prod-image-build.yml | 4 +-
.github/workflows/publish-docs-to-s3.yml | 104 +-
.github/workflows/push-image-cache.yml | 4 +-
.github/workflows/recheck-old-bug-report.yml | 2 +-
.github/workflows/registry-backfill.yml | 10 +-
.github/workflows/registry-build.yml | 81 +-
.github/workflows/registry-tests.yml | 4 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 4 +-
.github/workflows/run-unit-tests.yml | 2 +-
.../scheduled-verify-release-calendar.yml | 4 +-
.github/workflows/stale.yml | 4 +-
.github/workflows/test-providers.yml | 4 +-
.github/workflows/ui-e2e-tests.yml | 4 +-
.../update-constraints-on-push-stable.yml | 12 +-
.github/workflows/update-constraints-on-push.yml | 10 +-
.github/workflows/upgrade-check.yml | 6 +-
.pre-commit-config.yaml | 78 +-
AGENTS.md | 4 +-
COMMITTERS.rst | 2 +-
Dockerfile | 35 +-
Dockerfile.ci | 39 +-
INTHEWILD.md | 1 +
README.md | 2 +-
RELEASE_NOTES.rst | 27 +
airflow-core/.pre-commit-config.yaml | 4 +-
.../lang-sdk}/0001-java-sdk-airflow-integration.md | 0
.../adr/lang-sdk}/0002-workload-execution.md | 0
.../adr/lang-sdk}/0003-pure-java-dags.md | 2 +-
.../adr/lang-sdk}/0004-dag-parsing.md | 10 +-
.../adr/lang-sdk}/0005-coordinator-packaging.md | 12 +-
.../lang-sdk/0006-no-lang-sdk-source-display.md | 136 +
airflow-core/adr/lang-sdk/README.md | 37 +
.../advanced-logging-configuration.rst | 53 +-
.../logging-monitoring/logging-tasks.rst | 2 +-
.../logging-monitoring/metrics.rst | 71 +-
.../logging-monitoring/traces.rst | 30 +
.../modules_management.rst | 2 +-
.../docs/administration-and-deployment/plugins.rst | 29 +-
.../docs/authoring-and-scheduling/assets.rst | 63 +-
.../language-sdks/index.rst | 12 +
.../language-sdks/java.rst | 8 +
.../language-sdks/typescript.rst | 294 ++
.../docs/authoring-and-scheduling/timetable.rst | 31 +-
airflow-core/docs/best-practices.rst | 2 +-
.../docs/core-concepts/auth-manager/index.rst | 41 +-
airflow-core/docs/core-concepts/message-queues.rst | 5 +
airflow-core/docs/core-concepts/multi-team.rst | 26 +-
airflow-core/docs/core-concepts/overview.rst | 85 +
.../core-concepts/task-and-asset-state-store.rst | 16 +-
airflow-core/docs/extra-packages-ref.rst | 92 +-
airflow-core/docs/faq.rst | 2 +-
airflow-core/docs/howto/custom-operator.rst | 30 +-
airflow-core/docs/howto/deadline-alerts.rst | 17 +-
.../docs/howto/docker-compose/docker-compose.yaml | 4 +-
airflow-core/docs/howto/set-config.rst | 1 +
airflow-core/docs/howto/set-up-database.rst | 26 +-
airflow-core/docs/howto/usage-cli.rst | 16 +
.../diagram_java_sdk_execution_architecture.md5sum | 1 +
.../diagram_java_sdk_execution_architecture.png | Bin 0 -> 176205 bytes
.../img/diagram_java_sdk_execution_architecture.py | 287 ++
.../img/diagram_java_sdk_execution_sequence.md5sum | 1 +
.../img/diagram_java_sdk_execution_sequence.png | Bin 0 -> 189307 bytes
.../img/diagram_java_sdk_execution_sequence.py | 327 ++
...diagram_native_language_sdk_architecture.md5sum | 1 +
.../diagram_native_language_sdk_architecture.png | Bin 0 -> 146251 bytes
.../diagram_native_language_sdk_architecture.py | 258 ++
.../diagram_task_sdk_execution_architecture.md5sum | 1 +
.../diagram_task_sdk_execution_architecture.png | Bin 0 -> 184731 bytes
.../img/diagram_task_sdk_execution_architecture.py | 291 ++
.../img/diagram_task_sdk_execution_sequence.md5sum | 1 +
.../img/diagram_task_sdk_execution_sequence.png | Bin 0 -> 144211 bytes
.../img/diagram_task_sdk_execution_sequence.py | 313 ++
airflow-core/docs/installation/prerequisites.rst | 4 +
airflow-core/docs/migrations-ref.rst | 38 +-
.../local-filesystem-secrets-backend.rst | 47 +-
airflow-core/newsfragments/62501.bugfix.rst | 1 +
airflow-core/newsfragments/67672.improvement.rst | 1 +
airflow-core/newsfragments/67765.bugfix.rst | 1 +
airflow-core/newsfragments/67927.feature.rst | 1 +
airflow-core/newsfragments/68521.feature.rst | 1 +
airflow-core/newsfragments/68760.significant.rst | 11 +
airflow-core/newsfragments/69377.bugfix.rst | 1 +
airflow-core/newsfragments/69469.improvement.rst | 1 +
airflow-core/newsfragments/69790.feature.rst | 1 +
airflow-core/newsfragments/69874.bugfix.rst | 1 +
airflow-core/newsfragments/69877.bugfix.rst | 1 +
airflow-core/newsfragments/70154.significant.rst | 1 +
airflow-core/newsfragments/70240.bugfix.rst | 1 +
airflow-core/pyproject.toml | 18 +-
airflow-core/src/airflow/__init__.py | 5 +-
airflow-core/src/airflow/__main__.py | 6 +
airflow-core/src/airflow/api/common/mark_tasks.py | 44 +-
airflow-core/src/airflow/api_fastapi/app.py | 17 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 33 +-
.../api_fastapi/auth/managers/models/base_user.py | 9 +
.../auth/managers/models/resource_details.py | 3 +
.../auth/managers/simple/simple_auth_manager.py | 16 +-
.../simple/ui/openapi-gen/queries/common.ts | 2 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 2 +-
.../simple/ui/openapi-gen/queries/index.ts | 2 +-
.../ui/openapi-gen/queries/infiniteQueries.ts | 2 +-
.../simple/ui/openapi-gen/queries/prefetch.ts | 2 +-
.../simple/ui/openapi-gen/queries/queries.ts | 2 +-
.../simple/ui/openapi-gen/queries/suspense.ts | 2 +-
.../auth/managers/simple/ui/package.json | 40 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1145 +++---
.../src/airflow/api_fastapi/common/db/assets.py | 54 +
.../src/airflow/api_fastapi/common/db/dag_runs.py | 2 +-
.../src/airflow/api_fastapi/common/db/dags.py | 31 +-
.../src/airflow/api_fastapi/common/exceptions.py | 48 +-
.../src/airflow/api_fastapi/common/parameters.py | 240 +-
.../src/airflow/api_fastapi/core_api/app.py | 7 -
.../api_fastapi/core_api/datamodels/assets.py | 29 +
.../api_fastapi/core_api/datamodels/backfills.py | 22 +
.../api_fastapi/core_api/datamodels/dag_run.py | 1 +
.../api_fastapi/core_api/datamodels/event_logs.py | 1 +
.../api_fastapi/core_api/datamodels/plugins.py | 5 +-
.../core_api/datamodels/task_instances.py | 1 +
.../api_fastapi/core_api/datamodels/ui/common.py | 1 +
.../api_fastapi/core_api/datamodels/ui/dags.py | 8 +
.../api_fastapi/core_api/datamodels/ui/deadline.py | 31 +-
.../core_api/datamodels/ui/structure.py | 4 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 809 +++-
.../core_api/openapi/v2-rest-api-generated.yaml | 1838 ++++-----
.../api_fastapi/core_api/routes/public/assets.py | 12 +-
.../core_api/routes/public/backfills.py | 39 +
.../core_api/routes/public/connections.py | 15 +
.../core_api/routes/public/dag_parsing.py | 49 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 85 +-
.../api_fastapi/core_api/routes/public/dags.py | 2 +-
.../core_api/routes/public/event_logs.py | 21 +-
.../core_api/routes/public/import_error.py | 65 +-
.../api_fastapi/core_api/routes/public/job.py | 4 +
.../api_fastapi/core_api/routes/public/plugins.py | 16 +-
.../core_api/routes/public/task_instances.py | 113 +-
.../api_fastapi/core_api/routes/ui/assets.py | 97 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 61 +-
.../api_fastapi/core_api/routes/ui/deadlines.py | 4 +-
.../api_fastapi/core_api/routes/ui/dependencies.py | 2 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 60 +-
.../core_api/routes/ui/partitioned_dag_runs.py | 19 +-
.../api_fastapi/core_api/routes/ui/structure.py | 97 +-
.../src/airflow/api_fastapi/core_api/security.py | 53 +-
.../core_api/services/public/dag_run.py | 25 +-
.../core_api/services/public/event_logs.py | 40 +
.../core_api/services/public/task_instances.py | 36 +-
.../core_api/services/ui/dependencies.py | 486 ++-
.../api_fastapi/core_api/services/ui/grid.py | 7 +-
.../api_fastapi/core_api/services/ui/structure.py | 185 -
.../api_fastapi/core_api/services/ui/task_group.py | 65 +-
.../airflow/api_fastapi/execution_api/AGENTS.md | 4 +-
.../src/airflow/api_fastapi/execution_api/app.py | 2 +
.../execution_api/routes/asset_events.py | 27 +-
.../api_fastapi/execution_api/routes/dag_runs.py | 8 +
.../execution_api/routes/task_instances.py | 14 +-
.../src/airflow/api_fastapi/logging/decorators.py | 2 +-
airflow-core/src/airflow/assets/manager.py | 112 +-
.../src/airflow/cli/commands/backfill_command.py | 2 +
.../src/airflow/cli/commands/config_command.py | 5 +-
.../src/airflow/cli/commands/dag_command.py | 3 +
.../src/airflow/cli/commands/db_command.py | 6 +
.../src/airflow/cli/commands/task_command.py | 7 +-
airflow-core/src/airflow/cli/utils.py | 15 +
.../config_templates/airflow_local_settings.py | 8 +
.../src/airflow/config_templates/config.yml | 45 +-
airflow-core/src/airflow/configuration.py | 12 +-
.../src/airflow/dag_processing/bundles/manager.py | 15 +-
airflow-core/src/airflow/dag_processing/manager.py | 27 +-
.../src/airflow/executors/base_executor.py | 1 +
.../airflow/executors/workloads/connection_test.py | 3 +
.../src/airflow/executors/workloads/task.py | 6 +-
.../src/airflow/executors/workloads/trigger.py | 1 +
.../src/airflow/jobs/scheduler_job_runner.py | 470 ++-
.../src/airflow/jobs/triggerer_job_runner.py | 49 +-
airflow-core/src/airflow/logging_config.py | 50 +-
...03_2_7_0_add_include_deferred_column_to_pool.py | 2 +-
.../0004_2_8_0_add_clear_number_to_dag_run.py | 2 +-
...011_2_9_0_add_dataset_expression_in_dagmodel.py | 2 +-
...2_9_0_adding_adding_max_failure_runs_column_.py | 2 +-
...014_2_9_0_add_display_name_for_dag_and_task_.py | 2 +-
.../0015_2_9_0_update_trigger_kwargs_type.py | 2 +-
...nconsistency_between_ORM_and_migration_files.py | 2 +-
.../0019_2_10_0_add_new_executor_field_to_db.py | 2 +-
...2_10_0_added_dagpriorityparsingrequest_table.py | 2 +-
.../0043_3_0_0_remove_scheduler_lock_column.py | 2 +-
.../versions/0047_3_0_0_add_dag_versioning.py | 2 +-
...task_instance_trigger_timeout_to_utcdatetime.py | 2 +-
..._3_0_0_remove_pickled_data_from_dagrun_table.py | 2 +-
...3_0_0_add_new_task_instance_field_scheduled_.py | 2 +-
.../0059_3_0_0_remove_external_trigger_field.py | 2 +-
...4_3_1_0_add_last_parse_duration_to_dag_model.py | 2 +-
...3_2_0_replace_asset_trigger_table_with_asset.py | 2 +-
...0_replace_deadline_inline_callback_with_fkey.py | 6 +-
...0_3_2_0_add_timetable_type_to_dag_table_for_.py | 2 +-
...127_3_4_0_add_idx_asset_event_partition_key.py} | 29 +-
airflow-core/src/airflow/models/asset.py | 13 +-
airflow-core/src/airflow/models/dag.py | 4 +-
airflow-core/src/airflow/models/dagrun.py | 164 +-
airflow-core/src/airflow/models/serialized_dag.py | 27 +-
airflow-core/src/airflow/models/taskinstance.py | 29 +-
airflow-core/src/airflow/models/taskmap.py | 16 +-
airflow-core/src/airflow/models/trigger.py | 11 +-
airflow-core/src/airflow/plugins_manager.py | 39 +-
airflow-core/src/airflow/provider.yaml.schema.json | 48 +
.../src/airflow/secrets/local_filesystem.py | 1 +
airflow-core/src/airflow/serialization/decoders.py | 23 +-
.../airflow/serialization/definitions/taskgroup.py | 25 +-
airflow-core/src/airflow/settings.py | 7 +-
airflow-core/src/airflow/ti_deps/dep_context.py | 31 +
.../src/airflow/ti_deps/deps/trigger_rule_dep.py | 70 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 90 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 407 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 407 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 413 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 407 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 249 +-
.../ui/openapi-gen/requests/services.gen.ts | 425 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 500 ++-
airflow-core/src/airflow/ui/package.json | 48 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 1385 +++----
.../airflow/ui/public/i18n/locales/ar/admin.json | 1 +
.../airflow/ui/public/i18n/locales/ar/assets.json | 20 +-
.../airflow/ui/public/i18n/locales/ar/common.json | 76 +-
.../ui/public/i18n/locales/ar/components.json | 2 +
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 25 +-
.../airflow/ui/public/i18n/locales/ar/dags.json | 11 +
.../ui/public/i18n/locales/ar/dashboard.json | 22 +
.../airflow/ui/public/i18n/locales/ar/hitl.json | 14 +
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 5 -
.../src/airflow/ui/public/i18n/locales/de/dag.json | 5 -
.../airflow/ui/public/i18n/locales/el/admin.json | 32 +-
.../airflow/ui/public/i18n/locales/el/assets.json | 26 +-
.../airflow/ui/public/i18n/locales/el/browse.json | 44 +-
.../airflow/ui/public/i18n/locales/el/common.json | 207 +-
.../ui/public/i18n/locales/el/components.json | 46 +-
.../src/airflow/ui/public/i18n/locales/el/dag.json | 118 +-
.../airflow/ui/public/i18n/locales/el/dags.json | 23 +-
.../ui/public/i18n/locales/el/dashboard.json | 23 +-
.../airflow/ui/public/i18n/locales/el/hitl.json | 18 +
.../airflow/ui/public/i18n/locales/en/assets.json | 5 +-
.../airflow/ui/public/i18n/locales/en/common.json | 9 +-
.../ui/public/i18n/locales/en/components.json | 15 +-
.../src/airflow/ui/public/i18n/locales/en/dag.json | 12 +-
.../airflow/ui/public/i18n/locales/en/dags.json | 10 +-
.../airflow/ui/public/i18n/locales/es/admin.json | 27 +-
.../airflow/ui/public/i18n/locales/es/assets.json | 27 +-
.../airflow/ui/public/i18n/locales/es/browse.json | 45 +-
.../airflow/ui/public/i18n/locales/es/common.json | 120 +-
.../ui/public/i18n/locales/es/components.json | 37 +-
.../src/airflow/ui/public/i18n/locales/es/dag.json | 118 +-
.../airflow/ui/public/i18n/locales/es/dags.json | 10 +
.../ui/public/i18n/locales/es/dashboard.json | 17 +-
.../airflow/ui/public/i18n/locales/es/hitl.json | 17 +-
.../airflow/ui/public/i18n/locales/fr/admin.json | 1 +
.../airflow/ui/public/i18n/locales/fr/assets.json | 17 +
.../airflow/ui/public/i18n/locales/fr/browse.json | 19 +
.../airflow/ui/public/i18n/locales/fr/common.json | 95 +-
.../ui/public/i18n/locales/fr/components.json | 5 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 31 +-
.../airflow/ui/public/i18n/locales/fr/dags.json | 13 +-
.../ui/public/i18n/locales/fr/dashboard.json | 21 +
.../airflow/ui/public/i18n/locales/fr/hitl.json | 14 +
.../airflow/ui/public/i18n/locales/he/admin.json | 1 +
.../airflow/ui/public/i18n/locales/he/assets.json | 17 +
.../airflow/ui/public/i18n/locales/he/common.json | 87 +-
.../ui/public/i18n/locales/he/components.json | 2 +
.../src/airflow/ui/public/i18n/locales/he/dag.json | 27 +-
.../airflow/ui/public/i18n/locales/he/dags.json | 11 +
.../ui/public/i18n/locales/he/dashboard.json | 19 +
.../airflow/ui/public/i18n/locales/he/hitl.json | 14 +
.../airflow/ui/public/i18n/locales/hi/admin.json | 1 +
.../airflow/ui/public/i18n/locales/hi/assets.json | 1 -
.../airflow/ui/public/i18n/locales/hi/common.json | 64 +-
.../ui/public/i18n/locales/hi/components.json | 2 +-
.../src/airflow/ui/public/i18n/locales/hi/dag.json | 5 -
.../airflow/ui/public/i18n/locales/hi/dags.json | 7 +
.../ui/public/i18n/locales/hi/dashboard.json | 6 +
.../airflow/ui/public/i18n/locales/hi/hitl.json | 14 +
.../src/airflow/ui/public/i18n/locales/hu/dag.json | 5 -
.../airflow/ui/public/i18n/locales/ko/assets.json | 5 +-
.../airflow/ui/public/i18n/locales/ko/common.json | 9 +-
.../ui/public/i18n/locales/ko/components.json | 2 +
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 12 +-
.../airflow/ui/public/i18n/locales/ko/dags.json | 12 +-
.../airflow/ui/public/i18n/locales/nl/assets.json | 17 +
.../airflow/ui/public/i18n/locales/nl/browse.json | 18 +
.../airflow/ui/public/i18n/locales/nl/common.json | 64 +-
.../ui/public/i18n/locales/nl/components.json | 24 +-
.../src/airflow/ui/public/i18n/locales/nl/dag.json | 105 +-
.../airflow/ui/public/i18n/locales/nl/dags.json | 25 +-
.../ui/public/i18n/locales/nl/dashboard.json | 14 +
.../airflow/ui/public/i18n/locales/nl/hitl.json | 14 +
.../airflow/ui/public/i18n/locales/pl/admin.json | 1 +
.../airflow/ui/public/i18n/locales/pl/assets.json | 23 +-
.../airflow/ui/public/i18n/locales/pl/common.json | 76 +-
.../ui/public/i18n/locales/pl/components.json | 2 +
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 31 +-
.../airflow/ui/public/i18n/locales/pl/dags.json | 13 +-
.../ui/public/i18n/locales/pl/dashboard.json | 22 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 14 +
.../src/airflow/ui/public/i18n/locales/tr/dag.json | 5 -
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 5 -
.../ui/public/i18n/locales/zh-TW/common.json | 5 +-
.../ui/public/i18n/locales/zh-TW/components.json | 2 +
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 4 +-
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 6 +-
airflow-core/src/airflow/ui/rules/i18n.js | 2 +-
.../ui/src/components/Assets/AssetEvent.test.tsx | 48 +
.../ui/src/components/Assets/AssetEvent.tsx | 17 +-
.../src/components/Banner/BackfillBanner.test.tsx | 92 +
.../ui/src/components/Banner/BackfillBanner.tsx | 8 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 21 +-
.../Clear/TaskInstance/runOnLatestVersion.test.ts | 17 +-
.../Clear/TaskInstance/runOnLatestVersion.ts | 3 +-
.../ui/src/components/ConfirmationModal.tsx | 8 +-
.../airflow/ui/src/components/DurationChart.tsx | 278 +-
.../src/airflow/ui/src/components/Graph/Edge.tsx | 7 +-
.../ui/src/components/Graph/TaskLink.test.tsx | 49 +
.../airflow/ui/src/components/Graph/TaskLink.tsx | 7 +-
.../ui/src/components/Graph/TaskNode.test.tsx | 100 +
.../airflow/ui/src/components/Graph/TaskNode.tsx | 40 +-
.../ui/src/components/Graph/elkGraphUtils.test.ts | 56 +
.../ui/src/components/Graph/elkGraphUtils.ts | 8 +-
.../airflow/ui/src/components/Graph/nodeColors.ts | 85 +
.../ui/src/components/Graph/reactflowUtils.test.ts | 118 +
.../ui/src/components/Graph/reactflowUtils.ts | 107 +
.../airflow/ui/src/components/JsonEditor.test.tsx | 86 +
.../src/airflow/ui/src/components/JsonEditor.tsx | 23 +-
.../TaskInstance/MarkTaskInstanceAsDialog.test.tsx | 90 +
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 1 -
.../src/components/SlowestTaskInstancesChart.tsx | 161 +
.../src/airflow/ui/src/components/TaskName.tsx | 2 -
.../TriggerDag/TriggerDAGAdvancedOptions.tsx | 38 +-
.../components/TriggerDag/TriggerDAGForm.test.tsx | 90 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 14 +-
.../ui/src/components/renderStructuredLog.test.tsx | 41 +
.../ui/src/components/renderStructuredLog.tsx | 16 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 34 +-
.../airflow/ui/src/constants/localStorage.test.ts | 51 +
.../src/airflow/ui/src/constants/localStorage.ts | 19 +-
.../src/airflow/ui/src/constants/searchParams.ts | 7 +-
.../src/airflow/ui/src/constants/sortParams.ts | 8 +-
.../ui/src/context/groups/GroupsProvider.tsx | 4 +-
.../airflow/ui/src/hooks/useNearViewport.test.tsx | 217 ++
.../src/airflow/ui/src/hooks/useNearViewport.ts | 148 +
.../ui/src/layouts/Details/DetailsLayout.tsx | 418 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 20 +-
.../layouts/Details/Gantt/GanttTimeline.test.tsx | 7 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 9 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 34 +-
.../airflow/ui/src/layouts/Details/Grid/Bar.tsx | 12 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 47 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 14 +-
.../layouts/Details/Grid/TaskInstancesColumn.tsx | 15 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 19 +-
.../Details/Grid/gridHover.css} | 21 +-
.../layouts/Details/Grid/useGridCrosshairHover.ts | 95 +
.../airflow/ui/src/layouts/Details/GridFilters.tsx | 8 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 78 +-
.../src/airflow/ui/src/layouts/Nav/AdminButton.tsx | 23 +-
.../airflow/ui/src/layouts/Nav/BrowseButton.tsx | 23 +-
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 1 +
.../airflow/ui/src/layouts/Nav/NavButton.test.tsx | 114 +
.../src/airflow/ui/src/layouts/Nav/NavButton.tsx | 37 +-
.../src/airflow/ui/src/layouts/Nav/PluginMenus.tsx | 7 +-
.../airflow/ui/src/layouts/Nav/SecurityButton.tsx | 30 +-
airflow-core/src/airflow/ui/src/main.tsx | 3 +
.../src/airflow/ui/src/mocks/handlers/dags.ts | 33 +-
.../src/airflow/ui/src/pages/Asset/AssetGraph.tsx | 15 +-
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 4 +
.../src/pages/Asset/CreateAssetEventModal.test.tsx | 222 ++
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 34 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 84 +-
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 219 ++
.../ui/src/pages/Dag/Backfills/Backfills.test.tsx | 395 ++
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 56 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 32 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 31 +-
.../ui/src/pages/Dag/Calendar/CalendarLegend.tsx | 73 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 72 +-
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 14 +-
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 11 +-
.../ui/src/pages/Dag/Calendar/LegendIcon.tsx | 64 +
.../src/pages/Dag/Calendar/calendarUtils.test.ts | 67 +-
.../ui/src/pages/Dag/Calendar/calendarUtils.ts | 54 +-
.../src/airflow/ui/src/pages/Dag/Calendar/types.ts | 6 +
.../ui/src/pages/Dag/DeadlineAlertsBadge.test.tsx | 89 +
.../ui/src/pages/Dag/DeadlineAlertsBadge.tsx | 13 +-
.../ui/src/pages/Dag/Overview/DeadlineRow.tsx | 20 +-
.../ui/src/pages/Dag/Overview/Overview.test.tsx | 68 +
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 80 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 24 +-
.../ui/src/pages/DagRuns/DagRunsFilters.tsx | 6 +
.../airflow/ui/src/pages/DagsList/DagCard.test.tsx | 131 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 87 +-
.../ui/src/pages/DagsList/DagCardActions.tsx | 39 +
.../ui/src/pages/DagsList/DagRunStateCounts.tsx | 84 +-
.../DagsList/DagsFilters/DagsFilterSelect.tsx | 83 +
.../DagsList/DagsFilters/DagsFilters.test.tsx | 80 +-
.../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 94 +-
.../src/pages/DagsList/DagsFilters/TagFilter.tsx | 60 +-
.../src/pages/DagsList/DagsFilters/TeamFilter.tsx | 80 +
.../DagsList/DagsFilters/TimetableTypeFilter.tsx | 58 +
.../ui/src/pages/DagsList/DagsList.test.tsx | 39 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 29 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 5 +-
.../ui/src/pages/GroupTaskInstance/Header.tsx | 4 +-
airflow-core/src/airflow/ui/src/pages/Iframe.tsx | 17 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 144 +
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 70 +-
.../airflow/ui/src/pages/Run/DeadlineStatus.tsx | 23 +-
.../ui/src/pages/Run/DeadlineStatusModal.tsx | 16 +-
.../src/airflow/ui/src/pages/Run/Header.test.tsx | 94 +
.../src/airflow/ui/src/pages/Run/Header.tsx | 2 +-
.../ui/src/pages/Task/Overview/Overview.test.tsx | 63 +
.../ui/src/pages/Task/Overview/Overview.tsx | 42 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 23 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 7 +
.../ui/src/queries/useDagTimetableTypesInfinite.ts | 68 +
.../src/airflow/ui/src/queries/useDags.tsx | 12 +-
.../src/airflow/ui/src/queries/useGridRuns.ts | 25 +-
.../src/airflow/ui/src/queries/useGridStructure.ts | 25 +-
.../ui/src/queries/useGridTISummaries.test.tsx | 93 +
.../airflow/ui/src/queries/useGridTISummaries.ts | 19 +-
.../src/airflow/ui/src/queries/useTrigger.ts | 4 +-
airflow-core/src/airflow/ui/src/router.tsx | 2 +
airflow-core/src/airflow/ui/src/theme.ts | 6 +
.../src/airflow/ui/src/utils/datetimeUtils.test.ts | 67 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 60 +-
.../src/airflow/ui/src/utils/deadlines.test.ts | 52 +
airflow-core/src/airflow/ui/src/utils/deadlines.ts | 44 +
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
airflow-core/src/airflow/ui/src/utils/logs.test.ts | 21 +-
airflow-core/src/airflow/ui/src/utils/logs.ts | 5 +
.../src/airflow/ui/src/utils/median.test.ts | 51 +
.../hover/HoverProvider.tsx => utils/median.ts} | 18 +-
.../Context.ts => utils/partitionKey.test.ts} | 19 +-
.../hover/index.ts => utils/partitionKey.ts} | 6 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 3 +
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 13 +-
airflow-core/src/airflow/utils/db.py | 21 +-
airflow-core/src/airflow/utils/db_cleanup.py | 134 +-
airflow-core/src/airflow/utils/db_manager.py | 8 +
airflow-core/src/airflow/utils/sqlalchemy.py | 52 +
airflow-core/tests/integration/otel/test_otel.py | 200 +-
.../tests/unit/always/test_project_structure.py | 4 +-
.../tests/unit/api/common/test_mark_tasks.py | 9 +-
.../api_fastapi/auth/managers/models/__init__.py | 2 -
.../auth/managers/models/test_base_user.py | 18 +-
.../auth/managers/test_base_auth_manager.py | 50 +-
.../unit/api_fastapi/common/test_exceptions.py | 60 +-
.../unit/api_fastapi/common/test_parameters.py | 53 +
.../core_api/datamodels/test_plugins.py} | 18 +-
.../core_api/routes/public/test_assets.py | 157 +
.../core_api/routes/public/test_backfills.py | 168 +
.../core_api/routes/public/test_connections.py | 65 +
.../core_api/routes/public/test_dag_parsing.py | 11 +-
.../core_api/routes/public/test_dag_run.py | 302 +-
.../core_api/routes/public/test_dags.py | 2 +-
.../core_api/routes/public/test_event_logs.py | 36 +-
.../core_api/routes/public/test_hitl.py | 1 +
.../core_api/routes/public/test_import_error.py | 327 +-
.../api_fastapi/core_api/routes/public/test_job.py | 17 +
.../core_api/routes/public/test_plugins.py | 88 +-
.../core_api/routes/public/test_task_instances.py | 159 +
.../api_fastapi/core_api/routes/ui/test_assets.py | 286 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 159 +-
.../core_api/routes/ui/test_deadlines.py | 83 +-
.../core_api/routes/ui/test_dependencies.py | 364 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 33 +
.../routes/ui/test_partitioned_dag_runs.py | 161 +-
.../core_api/routes/ui/test_structure.py | 509 +--
.../core_api/services/public/test_event_logs.py | 75 +
.../unit/api_fastapi/core_api/test_security.py | 8 +
.../unit/api_fastapi/execution_api/test_app.py | 18 +-
.../versions/head/test_asset_events.py | 351 ++
.../execution_api/versions/head/test_dag_runs.py | 26 +
.../versions/head/test_task_instances.py | 60 +-
.../execution_api/versions/head/test_xcoms.py | 2 +-
.../unit/api_fastapi/logging/test_decorators.py | 31 +
airflow-core/tests/unit/assets/test_manager.py | 49 +
.../tests/unit/cli/commands/test_asset_command.py | 2 +
.../unit/cli/commands/test_cheat_sheet_command.py | 18 +-
.../unit/cli/commands/test_command_deprecations.py | 12 +
.../tests/unit/cli/commands/test_config_command.py | 33 +
.../tests/unit/cli/commands/test_db_command.py | 17 +
.../unit/cli/commands/test_plugins_command.py | 1 +
.../cli/commands/test_rotate_fernet_key_command.py | 2 +-
airflow-core/tests/unit/cli/test_utils.py | 51 +-
airflow-core/tests/unit/core/test_configuration.py | 68 +-
.../tests/unit/core/test_sqlalchemy_config.py | 24 +
.../bundles/test_dag_bundle_manager.py | 56 +
.../tests/unit/dag_processing/test_manager.py | 84 +-
.../tests/unit/dag_processing/test_processor.py | 94 +-
.../tests/unit/executors/test_base_executor.py | 30 +
.../tests/unit/executors/test_workloads.py | 55 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 813 +++-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 240 +-
.../tests/unit/listeners/class_listener.py | 14 +
.../tests/unit/logging/test_logging_config.py | 63 +
airflow-core/tests/unit/models/test_dag.py | 27 +
airflow-core/tests/unit/models/test_dagrun.py | 270 +-
.../tests/unit/models/test_mappedoperator.py | 79 +
.../tests/unit/models/test_serialized_dag.py | 198 +-
.../tests/unit/models/test_taskinstance.py | 274 +-
.../tests/unit/plugins/test_plugins_manager.py | 77 +-
.../unit/ti_deps/deps/test_trigger_rule_dep.py | 242 ++
airflow-core/tests/unit/utils/test_db_cleanup.py | 428 +-
airflow-core/tests/unit/utils/test_db_manager.py | 8 +
airflow-core/tests/unit/utils/test_log_handlers.py | 7 +-
airflow-core/tests/unit/utils/test_sqlalchemy.py | 63 +
airflow-core/tests/unit/utils/test_task_group.py | 142 +-
airflow-ctl-tests/pyproject.toml | 2 +-
.../airflowctl_tests/test_airflowctl_commands.py | 12 +-
airflow-ctl/docs/conf.py | 5 +-
airflow-ctl/docs/howto/index.rst | 14 +
airflow-ctl/docs/images/command_hashes.txt | 6 +-
airflow-ctl/docs/images/output_dags.svg | 138 +-
airflow-ctl/docs/images/output_main.svg | 142 +-
airflow-ctl/docs/images/output_taskinstances.svg | 109 +
airflow-ctl/docs/images/output_tasks.svg | 109 +
airflow-ctl/docs/spelling_wordlist.txt | 1 +
airflow-ctl/pyproject.toml | 6 +-
airflow-ctl/src/airflowctl/api/client.py | 14 +
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 416 +-
airflow-ctl/src/airflowctl/api/operations.py | 610 ++-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 215 +-
.../src/airflowctl/ctl/commands/dag_command.py | 248 +-
.../src/airflowctl/ctl/commands/task_command.py | 151 +
airflow-ctl/src/airflowctl/ctl/help_texts.yaml | 9 +
.../tests/airflow_ctl/api/test_operations.py | 394 +-
.../ctl/commands/test_connections_command.py | 4 +-
.../airflow_ctl/ctl/commands/test_dag_command.py | 436 ++-
.../airflow_ctl/ctl/commands/test_task_command.py | 633 +++
.../ctl/commands/test_variable_command.py | 5 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 97 +-
airflow-e2e-tests/docker/openlineage-compat-db.yml | 48 +
airflow-e2e-tests/docker/ts.yml | 42 +
airflow-e2e-tests/pyproject.toml | 2 +-
.../tests/airflow_e2e_tests/conftest.py | 285 +-
.../tests/airflow_e2e_tests/constants.py | 22 +-
.../airflow_e2e_tests/ts_sdk_tests/__init__.py | 2 -
.../ts_sdk_tests/test_ts_sdk_dag.py | 134 +
chart/README.md | 2 +-
chart/docs/production-guide.rst | 123 +-
chart/newsfragments/65666.significant.rst | 3 -
chart/newsfragments/65852.significant.rst | 1 +
chart/newsfragments/66671.significant.rst | 3 +
chart/newsfragments/67681.significant.rst | 3 -
chart/newsfragments/69481.significant.rst | 2 +-
chart/pyproject.toml | 2 +-
chart/templates/_helpers.yaml | 62 +-
chart/templates/flower/flower-httproute.yaml | 70 +
chart/templates/flower/flower-ingress.yaml | 3 +
.../templates/triggerer/triggerer-deployment.yaml | 3 +
chart/templates/workers/worker-deployment.yaml | 3 +
.../helm_tests/airflow_aux/test_airflow_common.py | 95 +
.../airflow_aux/test_basic_helm_chart.py | 44 +-
.../airflow_aux/test_pod_template_file.py | 33 +
.../helm_tests/other/test_httproute_flower.py | 413 ++
chart/tests/helm_tests/other/test_keda.py | 44 +
chart/values.schema.json | 228 +-
chart/values.yaml | 76 +-
clients/python/pyproject.toml | 2 +-
contributing-docs/03_contributors_quick_start.rst | 20 +-
.../03a_contributors_quick_start_beginners.rst | 4 +-
contributing-docs/05_pull_requests.rst | 30 +
contributing-docs/08_static_code_checks.rst | 3 +-
contributing-docs/14_metadata_database_updates.rst | 6 +-
contributing-docs/27_cli_implementation_guide.rst | 2 +-
contributing-docs/30_new_language_sdk.rst | 29 +
contributing-docs/mprocs/MPROCS_QUICK_REFERENCE.md | 8 +
contributing-docs/testing/airflow_ctl_tests.rst | 2 +-
contributing-docs/testing/integration_tests.rst | 2 +-
.../testing/task_sdk_integration_tests.rst | 6 +-
contributing-docs/testing/unit_tests.rst | 4 +-
dev/README.md | 12 +-
dev/README_RELEASE_AIRFLOW.md | 5 +-
dev/README_RELEASE_PROVIDERS.md | 88 +-
dev/assign_cherry_picked_prs_with_milestone.py | 1 -
dev/breeze/doc/03_developer_tasks.rst | 17 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 44 +-
dev/breeze/doc/images/output_build-docs.svg | 60 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
dev/breeze/doc/images/output_ci-image_build.svg | 104 +-
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
dev/breeze/doc/images/output_ci-image_load.svg | 22 +-
dev/breeze/doc/images/output_ci-image_load.txt | 2 +-
.../doc/images/output_ci_selective-check.svg | 46 +-
.../doc/images/output_ci_selective-check.txt | 2 +-
...tput_release-management_add-back-references.svg | 16 +-
...tput_release-management_add-back-references.txt | 2 +-
.../output_release-management_publish-docs.svg | 16 +-
.../output_release-management_publish-docs.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 18 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
.../images/output_testing_airflow-e2e-tests.svg | 2 +-
.../images/output_testing_airflow-e2e-tests.txt | 2 +-
.../images/output_workflow-run_publish-docs.svg | 16 +-
.../images/output_workflow-run_publish-docs.txt | 2 +-
dev/breeze/pyproject.toml | 4 +-
.../src/airflow_breeze/commands/ci_commands.py | 14 +
.../airflow_breeze/commands/ci_commands_config.py | 1 +
.../airflow_breeze/commands/ci_image_commands.py | 16 +
.../commands/ci_image_commands_config.py | 2 +
.../commands/common_image_options.py | 11 +
.../airflow_breeze/commands/developer_commands.py | 8 +-
.../commands/developer_commands_config.py | 1 +
.../airflow_breeze/commands/kubernetes_commands.py | 158 +-
.../commands/release_management_commands.py | 32 +-
.../airflow_breeze/commands/testing_commands.py | 8 +
.../src/airflow_breeze/commands/ui_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 15 +-
.../airflow_breeze/params/common_build_params.py | 10 +
.../src/airflow_breeze/params/shell_params.py | 19 +
.../utils/constraints_version_check.py | 211 +-
.../airflow_breeze/utils/docker_command_utils.py | 88 +-
dev/breeze/src/airflow_breeze/utils/github.py | 6 +-
.../src/airflow_breeze/utils/selective_checks.py | 164 +-
dev/breeze/tests/conftest.py | 8 -
dev/breeze/tests/test_build_ci_params.py | 57 +
dev/breeze/tests/test_constraints_version_check.py | 169 +
dev/breeze/tests/test_developer_commands.py | 68 +
dev/breeze/tests/test_docker_command_utils.py | 164 +
.../tests/test_kubernetes_lang_sdk_commands.py | 244 +-
.../tests/test_release_management_commands.py | 86 +
dev/breeze/tests/test_selective_checks.py | 556 ++-
dev/breeze/tests/test_shell_params.py | 36 +
dev/breeze/tests/test_ui_commands.py | 17 +
dev/breeze/uv.lock | 564 +--
dev/mypy/pyproject.toml | 2 +-
dev/pyproject.toml | 2 +-
dev/react-plugin-tools/README.md | 8 +
dev/react-plugin-tools/bootstrap.py | 23 +-
.../react_plugin_template/ai-agent-rules/README.md | 43 +
.../ai-agent-rules/airflow-plugin.md} | 48 +-
.../ai-agent-rules/react-typescript.md} | 49 +-
.../ai-agent-rules/testing.md} | 42 +-
dev/registry/extract_parameters.py | 26 +-
dev/registry/pyproject.toml | 2 +-
dev/registry/registry_tools/types.py | 16 +
dev/registry/tests/test_extract_parameters.py | 24 +
dev/skill-evals/eval.py | 6 +-
dev/skill-evals/last-eval-hash.txt | 2 +-
dev/update_github_branch_config.py | 117 +
devel-common/pyproject.toml | 4 +-
devel-common/src/tests_common/pytest_plugin.py | 181 +-
.../tests_common/test_utils/integration_setup.py | 201 +
.../tests/unit/tests_common/test_pytest_plugin.py | 463 +++
docker-stack-docs/changelog.rst | 7 +
docker-stack-docs/pyproject.toml | 2 +-
docker-tests/pyproject.toml | 2 +-
docs/spelling_wordlist.txt | 13 +
generated/PYPI_README.md | 2 +-
generated/known_airflow_exceptions.txt | 2 +-
generated/provider_metadata.json | 452 ++-
go-sdk/README.md | 3 +
.../adr/0003-coordinator-protocol-msgpack-ipc.md | 14 +-
go-sdk/cmd/airflow-go-pack/pack.go | 1 +
go-sdk/cmd/airflow-go-pack/validate.go | 75 +
go-sdk/cmd/airflow-go-pack/validate_test.go | 142 +
go-sdk/go.mod | 10 +-
go-sdk/go.sum | 36 +-
java-sdk/README.md | 4 +-
.../org/apache/airflow/sdk/BuilderProcessor.kt | 25 +-
.../kotlin/org/apache/airflow/sdk/BuilderTest.kt | 83 +-
.../main/kotlin/org/apache/airflow/sdk/Client.kt | 16 +
.../main/kotlin/org/apache/airflow/sdk/Context.kt | 76 +-
.../main/kotlin/org/apache/airflow/sdk/Server.kt | 29 +-
.../org/apache/airflow/sdk/execution/Comm.kt | 170 +-
.../org/apache/airflow/sdk/execution/Frame.kt | 18 +-
.../org/apache/airflow/sdk/execution/Logger.kt | 5 +
.../kotlin/org/apache/airflow/sdk/ClientTest.kt | 12 +
.../kotlin/org/apache/airflow/sdk/ContextTest.kt | 128 +
.../kotlin/org/apache/airflow/sdk/ServerTest.kt | 142 +
.../org/apache/airflow/sdk/execution/CommTest.kt | 210 +-
kubernetes-tests/lang_sdk/README.md | 11 +
kubernetes-tests/lang_sdk/go_example/go.mod | 6 +-
kubernetes-tests/lang_sdk/go_example/go.sum | 36 +-
kubernetes-tests/pyproject.toml | 2 +-
.../test_kubernetes_pod_operator.py | 1 +
providers-summary-docs/pyproject.toml | 2 +-
providers/.last_release_date.txt | 2 +-
providers/.pre-commit-config.yaml | 17 +-
providers/airbyte/README.rst | 6 +-
providers/airbyte/docs/changelog.rst | 13 +-
providers/airbyte/docs/index.rst | 6 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 6 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
providers/akeyless/README.rst | 6 +-
providers/akeyless/docs/changelog.rst | 18 +
providers/akeyless/docs/index.rst | 6 +-
providers/akeyless/provider.yaml | 3 +-
providers/akeyless/pyproject.toml | 6 +-
.../src/airflow/providers/akeyless/__init__.py | 2 +-
.../alibaba/cloud/sensors/test_analyticdb_spark.py | 2 +-
providers/amazon/README.rst | 6 +-
providers/amazon/docs/changelog.rst | 50 +
providers/amazon/docs/executors/batch-executor.rst | 2 +-
providers/amazon/docs/executors/ecs-executor.rst | 2 +-
.../amazon/docs/executors/lambda-executor.rst | 2 +-
providers/amazon/docs/index.rst | 6 +-
providers/amazon/docs/operators/dms.rst | 32 +
providers/amazon/docs/operators/dynamodb.rst | 1 +
providers/amazon/docs/operators/ecr.rst | 90 +
providers/amazon/docs/operators/emr/emr.rst | 17 +
providers/amazon/docs/operators/glue.rst | 75 +-
.../docs/operators/redshift/redshift_data.rst | 13 +-
providers/amazon/provider.yaml | 17 +-
providers/amazon/pyproject.toml | 8 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/auth_manager/aws_auth_manager.py | 3 +
.../amazon/aws/auth_manager/routes/login.py | 2 +-
.../providers/amazon/aws/hooks/redshift_data.py | 2 +-
.../providers/amazon/aws/hooks/redshift_sql.py | 37 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 2 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 36 +
.../providers/amazon/aws/log/s3_task_handler.py | 26 +
.../providers/amazon/aws/operators/appflow.py | 63 +-
.../providers/amazon/aws/operators/athena.py | 17 +-
.../providers/amazon/aws/operators/bedrock.py | 16 +-
.../providers/amazon/aws/operators/datasync.py | 28 +-
.../airflow/providers/amazon/aws/operators/dms.py | 137 +-
.../airflow/providers/amazon/aws/operators/ecr.py | 231 ++
.../airflow/providers/amazon/aws/operators/ecs.py | 23 +-
.../airflow/providers/amazon/aws/operators/emr.py | 41 +
.../airflow/providers/amazon/aws/operators/glue.py | 4 +-
.../providers/amazon/aws/operators/glue_crawler.py | 255 +-
.../amazon/aws/operators/redshift_cluster.py | 122 +-
.../airflow/providers/amazon/aws/operators/s3.py | 8 +-
.../amazon/aws/operators/step_function.py | 6 +-
.../providers/amazon/aws/sensors/dynamodb.py | 41 +-
.../airflow/providers/amazon/aws/transfers/base.py | 15 +-
.../providers/amazon/aws/transfers/mongo_to_s3.py | 8 +-
.../amazon/aws/transfers/s3_to_redshift.py | 37 +-
.../airflow/providers/amazon/aws/triggers/dms.py | 129 +-
.../providers/amazon/aws/triggers/dynamodb.py | 168 +
.../airflow/providers/amazon/aws/triggers/ecs.py | 11 +-
.../amazon/aws/triggers/redshift_cluster.py | 54 +
.../airflow/providers/amazon/aws/waiters/dms.json | 122 +
.../providers/amazon/aws/waiters/redshift.json | 55 +
.../airflow/providers/amazon/get_provider_info.py | 16 +
.../aws/example_bedrock_retrieve_and_generate.py | 19 +
.../amazon/tests/system/amazon/aws/example_dms.py | 193 +-
.../amazon/tests/system/amazon/aws/example_ecr.py | 99 +
.../amazon/tests/system/amazon/aws/example_glue.py | 65 +-
.../tests/system/amazon/aws/example_s3_to_sql.py | 1 +
.../tests/system/amazon/aws/example_sql_to_s3.py | 1 +
.../amazon/aws/auth_manager/routes/test_login.py | 11 +-
.../aws/executors/batch/test_batch_executor.py | 2 +
.../amazon/aws/executors/ecs/test_ecs_executor.py | 2 +
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 6 +
.../amazon/tests/unit/amazon/aws/hooks/test_dms.py | 1 -
.../unit/amazon/aws/hooks/test_redshift_sql.py | 43 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 32 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 102 +
.../unit/amazon/aws/log/test_s3_task_handler.py | 83 +-
.../unit/amazon/aws/operators/test_appflow.py | 39 +
.../tests/unit/amazon/aws/operators/test_athena.py | 35 +
.../unit/amazon/aws/operators/test_bedrock.py | 40 +
.../unit/amazon/aws/operators/test_datasync.py | 37 +-
.../tests/unit/amazon/aws/operators/test_dms.py | 255 +-
.../tests/unit/amazon/aws/operators/test_ecr.py | 208 +
.../tests/unit/amazon/aws/operators/test_ecs.py | 74 +
.../amazon/aws/operators/test_emr_add_steps.py | 137 +
.../tests/unit/amazon/aws/operators/test_glue.py | 27 +
.../unit/amazon/aws/operators/test_glue_crawler.py | 198 +-
.../amazon/aws/operators/test_redshift_cluster.py | 153 +-
.../tests/unit/amazon/aws/operators/test_s3.py | 2 +-
.../amazon/aws/operators/test_step_function.py | 2 +-
.../tests/unit/amazon/aws/sensors/test_dynamodb.py | 60 +-
.../tests/unit/amazon/aws/transfers/test_base.py | 17 +
.../unit/amazon/aws/transfers/test_mongo_to_s3.py | 26 +-
.../amazon/aws/transfers/test_s3_to_redshift.py | 23 +-
.../tests/unit/amazon/aws/triggers/test_dms.py | 153 +
.../unit/amazon/aws/triggers/test_dynamodb.py | 175 +
.../tests/unit/amazon/aws/triggers/test_ecs.py | 68 +-
.../amazon/aws/triggers/test_redshift_cluster.py | 36 +-
.../tests/unit/amazon/aws/waiters/test_dms.py | 101 +
providers/anthropic/README.rst | 6 +-
providers/anthropic/docs/changelog.rst | 20 +
providers/anthropic/docs/connections.rst | 10 +-
providers/anthropic/docs/index.rst | 6 +-
providers/anthropic/docs/operators/anthropic.rst | 2 +-
providers/anthropic/provider.yaml | 3 +-
providers/anthropic/pyproject.toml | 6 +-
.../src/airflow/providers/anthropic/__init__.py | 2 +-
.../airflow/providers/anthropic/operators/agent.py | 8 +-
.../tests/unit/anthropic/operators/test_agent.py | 44 +-
.../airflow/providers/apache/beam/hooks/beam.py | 2 +-
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
.../flink/operators/test_flink_kubernetes.py | 2 +-
.../apache/flink/sensors/test_flink_kubernetes.py | 3 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 28 +
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 17 +-
providers/apache/hive/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
.../providers/apache/hive/get_provider_info.py | 5 +
.../apache/hive/sensors/hive_partition.py | 4 +-
.../apache/hive/sensors/metastore_partition.py | 53 +-
.../apache/hive/sensors/named_hive_partition.py | 5 +-
.../hive/tests/unit/apache/hive/hooks/test_hive.py | 3 +-
.../tests/unit/apache/hive/operators/test_hive.py | 3 +-
.../hive/sensors/test_metastore_partition.py | 51 +-
.../hive/sensors/test_named_hive_partition.py | 32 +
.../apache/hive/transfers/test_hive_to_mysql.py | 3 +-
.../apache/hive/transfers/test_mysql_to_hive.py | 2 +-
.../apache/impala/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/kafka/README.rst | 7 +-
providers/apache/kafka/docs/changelog.rst | 21 +
providers/apache/kafka/docs/configurations-ref.rst | 120 +
providers/apache/kafka/docs/index.rst | 7 +-
.../apache/kafka/docs/message-queues/index.rst | 44 +
providers/apache/kafka/docs/sensors.rst | 9 +
providers/apache/kafka/provider.yaml | 129 +-
providers/apache/kafka/pyproject.toml | 9 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
.../providers/apache/kafka/get_provider_info.py | 104 +
.../airflow/providers/apache/kafka/hooks/base.py | 16 +
.../providers/apache/kafka/hooks/consume.py | 7 +-
.../providers/apache/kafka/operators/produce.py | 4 +-
.../providers/apache/kafka/plugins/__init__.py} | 2 -
.../apache/kafka/plugins/event_producer.py | 473 +++
.../integration/apache/kafka/plugins/__init__.py} | 2 -
.../apache/kafka/plugins/dags/__init__.py} | 2 -
.../apache/kafka/plugins/dags/demo_dag.py | 31 +-
.../apache/kafka/plugins/test_event_producer.py | 167 +
.../tests/unit/apache/kafka/hooks/test_base.py | 29 +
.../tests/unit/apache/kafka/hooks/test_consume.py | 28 +-
.../tests/unit/apache/kafka/hooks/test_produce.py | 16 +
.../unit/apache/kafka/operators/test_produce.py | 18 +
.../tests/unit/apache/kafka/plugins/__init__.py} | 2 -
.../apache/kafka/plugins/test_event_producer.py | 538 +++
.../tests/unit/apache/livy/operators/test_livy.py | 3 +-
.../tests/unit/apache/livy/sensors/test_livy.py | 2 +-
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 28 +-
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/docs/operators.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../providers/apache/spark/hooks/spark_submit.py | 55 +-
.../apache/spark/operators/spark_submit.py | 330 +-
.../unit/apache/spark/decorators/test_pyspark.py | 2 +-
.../unit/apache/spark/hooks/test_spark_submit.py | 152 +-
.../unit/apache/spark/operators/test_spark_jdbc.py | 2 +-
.../apache/spark/operators/test_spark_pyspark.py | 2 +-
.../unit/apache/spark/operators/test_spark_sql.py | 2 +-
.../apache/spark/operators/test_spark_submit.py | 2 +-
.../apache/tinkerpop/operators/test_gremlin.py | 2 +-
.../tests/unit/arangodb/sensors/test_arangodb.py | 2 +-
providers/atlassian/jira/README.rst | 6 +-
providers/atlassian/jira/docs/changelog.rst | 13 +
providers/atlassian/jira/docs/index.rst | 6 +-
providers/atlassian/jira/provider.yaml | 15 +-
providers/atlassian/jira/pyproject.toml | 6 +-
.../airflow/providers/atlassian/jira/__init__.py | 2 +-
.../providers/atlassian/jira/get_provider_info.py | 7 +
.../airflow/providers/atlassian/jira/hooks/jira.py | 1 -
.../unit/atlassian/jira/operators/test_jira.py | 2 +-
.../tests/unit/atlassian/jira/sensors/test_jira.py | 2 +-
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 30 +
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 5 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
.../airflow/providers/celery/cli/celery_command.py | 21 +-
.../celery/executors/celery_kubernetes_executor.py | 7 +
.../providers/celery/executors/default_celery.py | 21 +-
.../airflow/providers/celery/get_provider_info.py | 2 +-
.../src/airflow/providers/celery/version_compat.py | 9 +-
.../tests/unit/celery/cli/test_celery_command.py | 59 +
.../unit/celery/executors/test_celery_executor.py | 26 +
.../executors/test_celery_kubernetes_executor.py | 21 +
providers/clickhousedb/README.rst | 6 +-
providers/clickhousedb/docs/changelog.rst | 14 +
providers/clickhousedb/docs/index.rst | 6 +-
providers/clickhousedb/provider.yaml | 3 +-
providers/clickhousedb/pyproject.toml | 6 +-
.../src/airflow/providers/clickhousedb/__init__.py | 2 +-
.../unit/clickhousedb/hooks/test_clickhouse.py | 9 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 49 +-
.../kubernetes/docs/connections/kubernetes.rst | 11 +
providers/cncf/kubernetes/docs/index.rst | 6 +-
providers/cncf/kubernetes/docs/operators.rst | 52 +
providers/cncf/kubernetes/provider.yaml | 77 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../providers/cncf/kubernetes/cli/definition.py | 12 +-
.../cncf/kubernetes/cli/kubernetes_command.py | 45 +-
.../kubernetes/executors/kubernetes_executor.py | 456 ++-
.../executors/kubernetes_executor_utils.py | 111 +-
.../executors/local_kubernetes_executor.py | 7 +
.../providers/cncf/kubernetes/get_provider_info.py | 39 +
.../providers/cncf/kubernetes/hooks/kubernetes.py | 73 +-
.../providers/cncf/kubernetes/kube_client.py | 102 +
.../providers/cncf/kubernetes/kube_config.py | 7 +
.../cncf/kubernetes/kubernetes_helper_functions.py | 11 +-
.../providers/cncf/kubernetes/operators/kueue.py | 5 +-
.../providers/cncf/kubernetes/operators/pod.py | 146 +-
.../cncf/kubernetes/operators/resource.py | 4 +
.../cncf/kubernetes/utils/xcom_sidecar.py | 3 +
.../cncf/kubernetes/cli/test_kubernetes_command.py | 180 +
.../decorators/test_kubernetes_commons.py | 19 +
.../executors/test_kubernetes_executor.py | 877 ++++-
.../executors/test_local_kubernetes_executor.py | 21 +
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 34 +
.../kubernetes/log_handlers/test_log_handlers.py | 12 +-
.../unit/cncf/kubernetes/operators/test_job.py | 3 +-
.../unit/cncf/kubernetes/operators/test_kueue.py | 15 +
.../unit/cncf/kubernetes/operators/test_pod.py | 347 +-
.../cncf/kubernetes/operators/test_resource.py | 9 +-
.../kubernetes/operators/test_spark_kubernetes.py | 3 +-
.../kubernetes/sensors/test_spark_kubernetes.py | 3 +-
.../unit/cncf/kubernetes/test_kube_client.py} | 31 +-
.../cncf/kubernetes/utils/test_xcom_sidecar.py | 71 +
providers/cohere/docs/.latest-doc-only-change.txt | 2 +-
.../providers/cohere/operators/embedding.py | 7 +-
.../tests/unit/cohere/operators/test_embedding.py | 26 +
providers/common/ai/README.rst | 26 +-
providers/common/ai/docs/changelog.rst | 56 +
providers/common/ai/docs/connections/mcp.rst | 8 +-
.../common/ai/docs/connections/pydantic_ai.rst | 11 +-
providers/common/ai/docs/hitl_review.rst | 6 +-
providers/common/ai/docs/hooks/index.rst | 4 +
providers/common/ai/docs/hooks/langchain.rst | 2 +-
providers/common/ai/docs/index.rst | 41 +-
providers/common/ai/docs/operators/agent.rst | 51 +-
.../common/ai/docs/operators/document_loader.rst | 9 +-
providers/common/ai/docs/operators/index.rst | 2 +-
.../ai/docs/operators/llamaindex_retrieval.rst | 2 +-
providers/common/ai/docs/operators/llm.rst | 12 +-
providers/common/ai/docs/operators/llm_branch.rst | 4 +-
.../common/ai/docs/operators/llm_file_analysis.rst | 15 +-
providers/common/ai/docs/operators/llm_sql.rst | 11 +
providers/common/ai/docs/quickstart.rst | 92 +
providers/common/ai/docs/retry_policies.rst | 28 +-
providers/common/ai/docs/self_hosted_models.rst | 378 ++
providers/common/ai/docs/toolsets.rst | 91 +-
providers/common/ai/provider.yaml | 23 +-
providers/common/ai/pyproject.toml | 18 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../providers/common/ai/decorators/llm_branch.py | 2 +-
.../airflow/providers/common/ai/durable/storage.py | 16 +-
.../common/ai/example_dags/example_agent.py | 46 +
.../ai/example_dags/example_agent_capabilities.py | 34 +
.../common/ai/example_dags/example_quickstart.py} | 26 +-
.../providers/common/ai/get_provider_info.py | 4 +-
.../providers/common/ai/hooks/pydantic_ai.py | 6 +-
.../airflow/providers/common/ai/mixins/approval.py | 8 +-
.../airflow/providers/common/ai/operators/agent.py | 102 +-
.../common/ai/operators/document_loader.py | 55 +-
.../providers/common/ai/operators/llm_branch.py | 2 +
.../common/ai/operators/llm_schema_compare.py | 2 +
.../providers/common/ai/operators/llm_sql.py | 28 +-
.../providers/common/ai/plugins/hitl_review.py | 43 +-
.../airflow/providers/common/ai/policies/retry.py | 30 +-
.../providers/common/ai/toolsets/datafusion.py | 7 +-
.../airflow/providers/common/ai/toolsets/hook.py | 30 +-
.../common/ai/toolsets/langchain_bridge.py | 42 +-
.../airflow/providers/common/ai/toolsets/skills.py | 20 +-
.../airflow/providers/common/ai/toolsets/sql.py | 50 +-
.../providers/common/ai/utils/file_analysis.py | 5 +-
.../providers/common/ai/utils/output_type.py | 20 +-
.../providers/common/ai/utils/sql_validation.py | 72 +-
.../providers/common/ai/utils/tool_definition.py | 74 +-
.../tests/unit/common/ai/durable/test_storage.py | 29 +-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 34 +-
.../tests/unit/common/ai/mixins/test_approval.py | 13 +-
.../tests/unit/common/ai/operators/test_agent.py | 153 +-
.../common/ai/operators/test_document_loader.py | 50 +-
.../ai/tests/unit/common/ai/operators/test_llm.py | 19 +
.../unit/common/ai/operators/test_llm_branch.py | 9 +
.../common/ai/operators/test_llm_schema_compare.py | 5 +
.../tests/unit/common/ai/operators/test_llm_sql.py | 125 +-
.../unit/common/ai/plugins/test_hitl_review.py | 77 +-
.../ai/tests/unit/common/ai/policies/test_retry.py | 44 +
.../unit/common/ai/toolsets/test_datafusion.py | 19 +
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 59 +-
.../common/ai/toolsets/test_langchain_bridge.py | 46 +
.../tests/unit/common/ai/toolsets/test_skills.py | 50 +
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 115 +
.../unit/common/ai/utils/test_file_analysis.py | 24 +
.../tests/unit/common/ai/utils/test_output_type.py | 15 +-
.../unit/common/ai/utils/test_sql_validation.py | 118 +-
.../unit/common/ai/utils/test_tool_definition.py | 134 +-
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 12 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
.../providers/common/compat/connection/__init__.py | 17 +-
.../common/compat/security/access_view.py | 24 +-
.../common/compat/connection/test_connection.py | 26 +-
.../common/compat/security/test_access_view.py | 60 +
providers/common/dataquality/.gitignore | 1 +
providers/common/dataquality/LICENSE | 201 +
providers/common/dataquality/NOTICE | 5 +
.../dataquality/README.rst} | 36 +-
.../dataquality}/docs/changelog.rst | 21 +-
.../dataquality/docs/commits.rst} | 27 +-
.../common/dataquality/docs/conf.py | 15 +-
.../{ssh => common/dataquality}/docs/index.rst | 47 +-
.../docs/installing-providers-from-sources.rst} | 22 +-
.../dataquality/docs/security.rst} | 22 +-
.../common/{compat => dataquality}/provider.yaml | 49 +-
.../dataquality}/pyproject.toml | 20 +-
.../dataquality/src/airflow/__init__.py} | 3 +-
.../dataquality/src/airflow/providers/__init__.py} | 3 +-
.../src/airflow/providers/common/__init__.py} | 3 +-
.../providers/common/dataquality}/__init__.py | 2 +-
.../common/dataquality/get_provider_info.py | 21 +-
.../dataquality/tests/conftest.py} | 3 +-
.../dataquality/tests/system/__init__.py} | 3 +-
.../dataquality/tests/system/common/__init__.py} | 3 +-
.../tests/system/common/dataquality/__init__.py} | 2 -
.../dataquality/tests/unit/__init__.py} | 3 +-
.../dataquality/tests/unit/common/__init__.py} | 3 +-
.../tests/unit/common/dataquality/__init__.py} | 2 -
.../tests/unit/common/dataquality/test_example.py | 15 +-
.../common/io/docs/.latest-doc-only-change.txt | 2 +-
.../messaging/docs/.latest-doc-only-change.txt | 2 +-
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 13 +-
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/docs/operators.rst | 29 +
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 37 +-
.../airflow/providers/common/sql/operators/sql.py | 76 +
.../system/common/sql/example_generic_transfer.py | 2 +-
.../system/common/sql/example_sql_bulk_load.py | 101 +
.../common/sql/example_sql_column_table_check.py | 2 +-
.../sql/tests/unit/common/sql/hooks/test_sql.py | 92 +
.../common/sql/operators/test_generic_transfer.py | 2 +-
.../tests/unit/common/sql/operators/test_sql.py | 84 +
providers/databricks/README.rst | 12 +-
providers/databricks/docs/changelog.rst | 23 +
.../databricks/docs/connections/databricks.rst | 13 +
providers/databricks/docs/index.rst | 12 +-
.../databricks/docs/operators/repos_create.rst | 2 +-
.../databricks/docs/operators/repos_delete.rst | 2 +-
.../databricks/docs/operators/repos_update.rst | 2 +-
providers/databricks/docs/operators/run_now.rst | 13 +-
providers/databricks/docs/operators/submit_run.rst | 13 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 12 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/hooks/databricks.py | 5 +-
.../providers/databricks/hooks/databricks_base.py | 85 +-
.../providers/databricks/hooks/databricks_sql.py | 44 +-
.../providers/databricks/operators/databricks.py | 33 +-
.../databricks/operators/databricks_repos.py | 18 +-
.../databricks/operators/databricks_sql.py | 13 +-
.../providers/databricks/sensors/databricks.py | 9 +-
.../providers/databricks/triggers/databricks.py | 8 +-
.../unit/databricks/hooks/test_databricks_base.py | 198 +-
.../unit/databricks/hooks/test_databricks_sql.py | 38 +-
.../databricks/operators/test_databricks_copy.py | 43 +-
.../unit/databricks/sensors/test_databricks.py | 12 +
.../dbt/cloud/docs/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/dbt/cloud/hooks/dbt.py | 45 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 6 +-
.../cloud/tests/unit/dbt/cloud/hooks/test_dbt.py | 101 +
.../tests/unit/dbt/cloud/operators/test_dbt.py | 21 +
.../tests/unit/dbt/cloud/utils/test_openlineage.py | 3 +-
.../tests/unit/dingding/operators/test_dingding.py | 2 +-
.../unit/discord/operators/test_discord_webhook.py | 2 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 12 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
.../airflow/providers/docker/operators/docker.py | 12 +-
.../providers/docker/operators/docker_swarm.py | 12 +-
.../tests/unit/docker/operators/test_docker.py | 38 +-
.../unit/docker/operators/test_docker_swarm.py | 19 +
providers/edge3/.pre-commit-config.yaml | 1 +
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 28 +
providers/edge3/docs/deployment.rst | 5 +-
providers/edge3/docs/edge_executor.rst | 27 +
providers/edge3/docs/index.rst | 6 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 8 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../src/airflow/providers/edge3/cli/definition.py | 7 +
.../airflow/providers/edge3/cli/edge_command.py | 23 +-
.../airflow/providers/edge3/models/edge_worker.py | 63 +-
.../providers/edge3/plugins/www/package.json | 69 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 3477 +++++++++--------
.../edge3/worker_api/v2-edge-generated.yaml | 5 +
.../edge3/tests/unit/edge3/cli/test_definition.py | 11 +-
.../tests/unit/edge3/cli/test_edge_command.py | 77 +-
.../edge3/tests/unit/edge3/cli/test_worker.py | 48 +
.../tests/unit/edge3/models/test_edge_worker.py | 143 +
.../unit/edge3/worker_api/routes/test_worker.py | 17 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 12 +
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../providers/elasticsearch/log/es_task_handler.py | 28 +-
.../unit/elasticsearch/log/test_es_task_handler.py | 53 +-
providers/fab/.pre-commit-config.yaml | 1 +
providers/fab/README.rst | 6 +-
providers/fab/docs/changelog.rst | 30 +
providers/fab/docs/index.rst | 6 +-
providers/fab/docs/upgrading.rst | 6 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 10 +-
.../providers/3rd-party-licenses/LICENSES-ui.txt | 2 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 12 +-
.../providers/fab/auth_manager/middleware.py | 11 +
.../providers/fab/auth_manager/models/__init__.py | 3 +
.../fab/auth_manager/security_manager/override.py | 2 +
.../fab/src/airflow/providers/fab/www/package.json | 10 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 394 +-
.../providers/fab/www/security/permissions.py | 1 +
.../fab/auth_manager/models/test_user_model.py | 7 +
.../tests/unit/fab/auth_manager/test_middleware.py | 13 +
providers/ftp/tests/unit/ftp/operators/test_ftp.py | 5 +-
providers/google/README.rst | 6 +-
providers/google/docs/changelog.rst | 35 +
providers/google/docs/index.rst | 6 +-
providers/google/docs/operators/cloud/bigquery.rst | 13 +-
providers/google/provider.yaml | 15 +-
providers/google/pyproject.toml | 6 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/hooks/cloud_batch.py | 4 +-
.../providers/google/cloud/hooks/dataform.py | 2 +
.../airflow/providers/google/cloud/links/base.py | 3 +-
.../google/cloud/links/cloud_functions.py | 4 +-
.../google/cloud/links/cloud_storage_transfer.py | 4 +-
.../providers/google/cloud/links/compute.py | 4 +-
.../google/cloud/links/data_loss_prevention.py | 4 +-
.../providers/google/cloud/links/datafusion.py | 8 +-
.../providers/google/cloud/log/gcs_task_handler.py | 27 +
.../providers/google/cloud/openlineage/mixins.py | 116 +-
.../providers/google/cloud/operators/bigquery.py | 2 +-
.../google/cloud/operators/cloud_composer.py | 4 +-
.../providers/google/cloud/operators/compute.py | 209 +-
.../google/cloud/operators/dataproc_metastore.py | 3 +-
.../providers/google/cloud/operators/gcs.py | 16 +-
.../providers/google/cloud/operators/gen_ai.py | 39 +-
.../google/cloud/transfers/bigquery_to_postgres.py | 13 +-
.../google/cloud/transfers/gcs_to_bigquery.py | 2 +
.../airflow/providers/google/cloud/triggers/gcs.py | 2 +-
.../providers/google/common/hooks/base_google.py | 7 +-
.../providers/google/common/links/storage.py | 3 +-
.../airflow/providers/google/get_provider_info.py | 8 +
.../google/cloud/dataflow/resources/wordcount.go | 180 +-
.../google/cloud/dataform/example_dataform.py | 56 +-
.../unit/google/cloud/hooks/test_cloud_batch.py | 2 +-
.../tests/unit/google/cloud/hooks/test_dataform.py | 23 +-
.../unit/google/cloud/log/test_gcs_task_handler.py | 83 +
.../cloud/log/test_stackdriver_task_handler.py | 2 +-
.../unit/google/cloud/openlineage/test_mixins.py | 390 +-
.../unit/google/cloud/operators/test_bigquery.py | 10 +
.../test_cloud_storage_transfer_service.py | 3 +-
.../unit/google/cloud/operators/test_compute.py | 902 +++--
.../tests/unit/google/cloud/operators/test_gcs.py | 4 +-
.../unit/google/cloud/operators/test_gen_ai.py | 210 +-
.../cloud/transfers/test_bigquery_to_postgres.py | 51 +-
.../google/cloud/transfers/test_gcs_to_bigquery.py | 31 +
.../operators/test_bid_manager.py | 2 +-
.../operators/test_campaign_manager.py | 2 +-
.../operators/test_display_video.py | 2 +-
providers/hashicorp/README.rst | 6 +-
providers/hashicorp/docs/changelog.rst | 18 +
providers/hashicorp/docs/index.rst | 6 +-
.../docs/secrets-backends/hashicorp-vault.rst | 18 +
providers/hashicorp/provider.yaml | 3 +-
providers/hashicorp/pyproject.toml | 6 +-
.../src/airflow/providers/hashicorp/__init__.py | 2 +-
.../airflow/providers/hashicorp/secrets/vault.py | 149 +-
.../tests/unit/hashicorp/secrets/test_vault.py | 283 +-
providers/http/README.rst | 8 +-
providers/http/docs/changelog.rst | 18 +
providers/http/docs/index.rst | 8 +-
providers/http/docs/triggers.rst | 44 +-
providers/http/provider.yaml | 3 +-
providers/http/pyproject.toml | 8 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
.../http/src/airflow/providers/http/hooks/http.py | 3 +-
.../informatica/docs/.latest-doc-only-change.txt | 1 +
providers/jdbc/docs/.latest-doc-only-change.txt | 2 +-
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 16 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 8 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../providers/keycloak/auth_manager/constants.py | 8 +
.../keycloak/auth_manager/keycloak_auth_manager.py | 29 +-
.../keycloak/auth_manager/routes/login.py | 62 +-
.../providers/keycloak/auth_manager/user.py | 13 +-
.../keycloak/auth_manager/datamodels/__init__.py} | 2 -
.../keycloak/auth_manager/datamodels/test_token.py | 120 +
.../keycloak/auth_manager/routes/test_login.py | 52 +
.../auth_manager/test_keycloak_auth_manager.py | 32 +-
providers/microsoft/azure/README.rst | 8 +-
providers/microsoft/azure/docs/changelog.rst | 35 +
providers/microsoft/azure/docs/index.rst | 8 +-
providers/microsoft/azure/docs/logging/index.rst | 2 +-
providers/microsoft/azure/provider.yaml | 8 +-
providers/microsoft/azure/pyproject.toml | 8 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/fs/msgraph.py | 6 +
.../providers/microsoft/azure/get_provider_info.py | 4 +
.../providers/microsoft/azure/hooks/batch.py | 3 +-
.../microsoft/azure/hooks/data_factory.py | 46 +-
.../providers/microsoft/azure/hooks/msgraph.py | 19 +-
.../microsoft/azure/log/wasb_task_handler.py | 33 +-
.../microsoft/azure/operators/data_factory.py | 2 +-
.../providers/microsoft/azure/operators/synapse.py | 4 +-
.../providers/microsoft/azure/sensors/compute.py | 8 +-
.../tests/unit/microsoft/azure/fs/test_msgraph.py | 18 +
.../microsoft/azure/hooks/test_data_factory.py | 73 +-
.../unit/microsoft/azure/hooks/test_msgraph.py | 23 +
.../microsoft/azure/log/test_wasb_task_handler.py | 79 +-
.../microsoft/azure/operators/test_data_factory.py | 29 +-
.../unit/microsoft/azure/operators/test_synapse.py | 49 +-
.../unit/microsoft/azure/sensors/test_compute.py | 28 +-
.../unit/microsoft/azure/sensors/test_wasb.py | 3 +-
.../mssql/docs/.latest-doc-only-change.txt | 2 +-
.../tests/integration/mongo/sensors/test_mongo.py | 2 +-
.../mongo/tests/unit/mongo/sensors/test_mongo.py | 2 +-
providers/mysql/docs/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/neo4j/operators/neo4j.py | 31 +-
.../neo4j/tests/unit/neo4j/operators/test_neo4j.py | 18 +-
providers/openai/README.rst | 10 +-
providers/openai/docs/changelog.rst | 36 +
providers/openai/docs/index.rst | 10 +-
providers/openai/docs/operators/openai.rst | 20 +-
providers/openai/provider.yaml | 5 +-
providers/openai/pyproject.toml | 14 +-
.../src/airflow/providers/openai/__init__.py | 2 +-
.../airflow/providers/openai/get_provider_info.py | 2 +-
providers/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 25 +
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/docs/spark.rst | 47 +
providers/openlineage/docs/troubleshooting.rst | 44 +
providers/openlineage/provider.yaml | 23 +-
providers/openlineage/pyproject.toml | 6 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../src/airflow/providers/openlineage/conf.py | 6 +
.../providers/openlineage/get_provider_info.py | 7 +
.../providers/openlineage/plugins/listener.py | 123 +-
.../airflow/providers/openlineage/utils/utils.py | 73 +-
.../unit/openlineage/plugins/test_execution.py | 2 +-
.../unit/openlineage/plugins/test_listener.py | 259 +-
.../tests/unit/openlineage/test_conf.py | 17 +
.../tests/unit/openlineage/utils/test_utils.py | 59 +
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 12 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/opensearch/log/os_task_handler.py | 28 +-
.../unit/opensearch/log/test_os_task_handler.py | 52 +-
.../tests/unit/opsgenie/operators/test_opsgenie.py | 2 +-
.../providers/papermill/operators/papermill.py | 8 +-
.../unit/papermill/operators/test_papermill.py | 15 +-
providers/pgvector/README.rst | 6 +-
providers/pgvector/docs/changelog.rst | 18 +
providers/pgvector/docs/index.rst | 6 +-
providers/pgvector/provider.yaml | 3 +-
providers/pgvector/pyproject.toml | 7 +-
.../src/airflow/providers/pgvector/__init__.py | 2 +-
.../providers/pgvector/operators/pgvector.py | 21 +-
.../tests/unit/pgvector/operators/test_pgvector.py | 57 +-
providers/postgres/README.rst | 5 +-
providers/postgres/docs/changelog.rst | 36 +
providers/postgres/docs/index.rst | 5 +-
providers/postgres/provider.yaml | 2 +-
providers/postgres/pyproject.toml | 24 +-
.../airflow/providers/postgres/hooks/postgres.py | 42 +-
.../tests/unit/postgres/hooks/test_postgres.py | 21 +
.../unit/postgres/test_provider_dependencies.py | 46 +
providers/presto/docs/.latest-doc-only-change.txt | 2 +-
.../qdrant/operators/test_qdrant_ingest.py | 2 +-
providers/redis/docs/.latest-doc-only-change.txt | 2 +-
.../redis/operators/test_redis_publish.py | 2 +-
.../integration/redis/sensors/test_redis_key.py | 2 +-
.../redis/sensors/test_redis_pub_sub.py | 2 +-
.../unit/redis/operators/test_redis_publish.py | 2 +-
.../tests/unit/redis/sensors/test_redis_key.py | 2 +-
.../tests/unit/redis/sensors/test_redis_pub_sub.py | 2 +-
providers/samba/docs/.latest-doc-only-change.txt | 2 +-
providers/sftp/README.rst | 10 +-
providers/sftp/docs/changelog.rst | 15 +-
providers/sftp/docs/index.rst | 10 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 10 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
.../unit/sftp/decorators/sensors/test_sftp.py | 2 +-
.../sftp/tests/unit/sftp/operators/test_sftp.py | 6 +-
providers/snowflake/docs/changelog.rst | 13 +-
providers/snowflake/docs/operators/snowflake.rst | 50 +
.../docs/operators/snowflake_cortex_agent.rst | 66 +
providers/snowflake/provider.yaml | 10 +-
.../providers/snowflake/get_provider_info.py | 6 +
.../airflow/providers/snowflake/hooks/snowflake.py | 2 +-
.../snowflake/hooks/snowflake_cortex_agent.py | 5 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 2 +-
.../providers/snowflake/operators/snowflake.py | 132 +-
.../snowflake/operators/snowflake_cortex_agent.py | 140 +
.../snowflake/operators/snowpark_containers.py | 10 +-
.../providers/snowflake/utils/openlineage.py | 2 +-
.../snowflake/example_snowflake_cortex_agent.py} | 64 +-
.../unit/snowflake/decorators/test_snowpark.py | 3 +-
.../tests/unit/snowflake/hooks/test_snowflake.py | 3 +-
.../snowflake/hooks/test_snowflake_cortex_agent.py | 3 +
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 4 +-
.../unit/snowflake/operators/test_snowflake.py | 342 +-
.../operators/test_snowflake_cortex_agent.py | 105 +
.../unit/snowflake/operators/test_snowpark.py | 2 +-
.../operators/test_snowpark_containers.py | 3 +-
.../tests/unit/snowflake/utils/test_openlineage.py | 3 +-
providers/sqlite/docs/.latest-doc-only-change.txt | 2 +-
providers/ssh/README.rst | 8 +-
providers/ssh/docs/changelog.rst | 14 +-
providers/ssh/docs/index.rst | 8 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 8 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 5 +-
.../ssh/src/airflow/providers/ssh/operators/ssh.py | 7 +-
.../providers/ssh/operators/ssh_remote_job.py | 6 +-
.../src/airflow/providers/ssh/utils/remote_job.py | 8 +-
providers/ssh/tests/unit/ssh/operators/test_ssh.py | 32 +
.../unit/ssh/operators/test_ssh_remote_job.py | 60 +
.../ssh/tests/unit/ssh/utils/test_remote_job.py | 48 +-
.../airflow/providers/standard/decorators/bash.py | 1 -
.../airflow/providers/standard/operators/bash.py | 5 +-
.../airflow/providers/standard/operators/hitl.py | 33 +-
.../providers/standard/operators/trigger_dagrun.py | 2 +-
.../providers/standard/sensors/date_time.py | 28 +-
.../standard/decorators/test_python_virtualenv.py | 2 +-
.../tests/unit/standard/operators/test_bash.py | 25 +-
.../standard/operators/test_branch_operator.py | 2 +-
.../tests/unit/standard/operators/test_hitl.py | 18 +-
.../operators/test_latest_only_operator.py | 2 +-
.../unit/standard/operators/test_trigger_dagrun.py | 9 +
.../tests/unit/standard/operators/test_weekday.py | 3 +-
.../tests/unit/standard/sensors/test_date_time.py | 85 +-
.../unit/standard/triggers/test_external_task.py | 2 +-
.../tests/unit/standard/triggers/test_temporal.py | 6 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 19 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
.../teradata/transfers/teradata_to_teradata.py | 4 +-
.../providers/teradata/utils/encryption_utils.py | 9 +-
.../airflow/providers/teradata/utils/tpt_util.py | 16 +-
.../transfers/test_teradata_to_teradata.py | 19 +
.../unit/teradata/utils/test_encryption_utils.py | 14 +-
.../tests/unit/teradata/utils/test_tpt_util.py | 28 +
providers/trino/docs/.latest-doc-only-change.txt | 2 +-
providers/vertica/docs/.latest-doc-only-change.txt | 2 +-
providers/weaviate/README.rst | 8 +-
providers/weaviate/docs/changelog.rst | 23 +
providers/weaviate/docs/index.rst | 8 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 8 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
.../providers/weaviate/operators/weaviate.py | 7 +-
.../system/weaviate/example_weaviate_cohere.py | 3 +-
.../example_weaviate_dynamic_mapping_dag.py | 9 +-
.../system/weaviate/example_weaviate_openai.py | 3 +-
.../system/weaviate/example_weaviate_operator.py | 9 +-
.../system/weaviate/example_weaviate_using_hook.py | 7 +-
.../weaviate/example_weaviate_vectorizer_dag.py | 4 +-
.../example_weaviate_without_vectorizer_dag.py | 3 +-
.../tests/unit/weaviate/operators/test_weaviate.py | 15 +
.../tests/integration/ydb/operators/test_ydb.py | 2 +-
pyproject.toml | 34 +-
registry/package.json | 2 +-
registry/pnpm-lock.yaml | 10 +-
registry/src/_data/types.json | 10 +
registry/src/css/main.css | 2 +
registry/src/css/tokens.css | 2 +
reproducible_build.yaml | 4 +-
scripts/ci/analyze_ci_job_durations.py | 276 +-
scripts/ci/docker-compose/backend-postgres.yml | 4 +-
scripts/ci/docker-compose/integration-kafka.yml | 4 +
scripts/ci/docker-compose/local.yml | 3 +
scripts/ci/docker-compose/remove-sources.yml | 1 +
scripts/ci/docker-compose/tests-sources.yml | 1 +
scripts/ci/prek/breeze_command_walker.py | 66 +
scripts/ci/prek/check_ci_workflows_in_sync.py | 7 +-
scripts/ci/prek/check_documented_commands.py | 333 ++
scripts/ci/prek/check_extra_packages_ref.py | 2 +-
scripts/ci/prek/check_go_example_mod_tidy.py | 126 +
scripts/ci/prek/check_imports_in_providers.py | 2 +-
.../prek/check_metrics_synced_with_the_registry.py | 299 +-
scripts/ci/prek/check_migration_patterns.py | 52 +-
scripts/ci/prek/check_provider_conn_fields.py | 56 +-
scripts/ci/prek/check_provider_yaml_files.py | 53 +-
scripts/ci/prek/common_prek_utils.py | 43 +-
scripts/ci/prek/extract_permissions.py | 1 +
scripts/ci/prek/migration_reference.py | 4 +-
scripts/ci/prek/mypy_folder.py | 3 +-
scripts/ci/prek/ruff_format.py | 2 +-
...un_mypy_full_dist_local_venv_or_breeze_in_ci.py | 3 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 4 +-
scripts/ci/prek/update_tested_versions.py | 209 +
scripts/ci/prek/validate_operators_init.py | 380 +-
.../ci/prek/validate_operators_init_exemptions.txt | 29 +
.../ci/testing/run_integration_tests_with_retry.sh | 5 +
scripts/docker/install_os_dependencies.sh | 35 +
.../in_container/run_capture_airflowctl_help.py | 2 +
scripts/in_container/run_generate_constraints.py | 144 +-
scripts/in_container/run_migration_reference.py | 19 +-
.../in_container/run_provider_yaml_files_check.py | 85 +-
scripts/pyproject.toml | 2 +-
.../test_check_conn_fields_match_form_widgets.py | 31 +-
.../ci/prek/test_check_documented_commands.py | 212 +
.../ci/prek/test_check_go_example_mod_tidy.py | 99 +
.../test_check_metrics_synced_with_the_registry.py | 319 ++
.../tests/ci/prek/test_check_migration_patterns.py | 67 +-
.../ci/prek/test_check_provider_yaml_files.py | 84 +
scripts/tests/ci/prek/test_common_prek_utils.py | 56 +
.../tests/ci/prek/test_generate_agent_skills.py | 2 +-
.../tests/ci/prek/test_update_tested_versions.py | 123 +
.../tests/ci/prek/test_validate_operators_init.py | 310 ++
scripts/tests/ci/test_analyze_ci_job_durations.py | 233 +-
.../tests/in_container/__init__.py | 3 +-
.../in_container/test_run_generate_constraints.py | 111 +
scripts/tests/test_react_plugin_bootstrap.py | 83 +
scripts/tools/setup_breeze | 2 +-
shared/configuration/pyproject.toml | 2 +-
.../src/airflow_shared/configuration/parser.py | 2 +-
shared/dagnode/pyproject.toml | 4 +-
shared/dagnode/src/airflow_shared/dagnode/node.py | 38 +
shared/listeners/pyproject.toml | 4 +-
shared/logging/pyproject.toml | 4 +-
.../logging/src/airflow_shared/logging/remote.py | 20 +-
.../src/airflow_shared/logging/structlog.py | 29 +-
shared/logging/tests/logging/test_structlog.py | 13 +
shared/module_loading/pyproject.toml | 2 +-
shared/observability/pyproject.toml | 4 +-
.../observability/metrics/datadog_logger.py | 44 +-
.../observability/metrics/metrics_template.yaml | 53 +-
.../airflow_shared/observability/metrics/stats.py | 19 +-
.../observability/metrics/statsd_logger.py | 12 +-
.../observability/metrics/validators.py | 1 -
.../observability/traces/__init__.py | 37 +-
.../observability/metrics/test_otel_logger.py | 4 +-
.../tests/observability/metrics/test_stats.py | 91 +-
.../tests/observability/test_traces.py | 78 +-
shared/plugins_manager/pyproject.toml | 2 +-
.../plugins_manager/plugins_manager.py | 14 +-
.../tests/plugins_manager/test_plugins_manager.py | 16 +
shared/providers_discovery/pyproject.toml | 4 +-
shared/secrets_backend/pyproject.toml | 2 +-
.../src/airflow_shared/secrets_backend/base.py | 7 +
.../tests/secrets_backend/test_base.py | 15 +
shared/secrets_masker/pyproject.toml | 2 +-
shared/serialization/pyproject.toml | 2 +-
shared/state/pyproject.toml | 2 +-
shared/template_rendering/pyproject.toml | 2 +-
shared/timezones/pyproject.toml | 2 +-
task-sdk-integration-tests/docker-compose.yaml | 2 +-
task-sdk-integration-tests/pyproject.toml | 2 +-
task-sdk/docs/api.rst | 4 +
task-sdk/docs/resumable-job-mixin.rst | 8 +
task-sdk/pyproject.toml | 6 +-
task-sdk/src/airflow/sdk/api/client.py | 6 +
.../src/airflow/sdk/api/datamodels/_generated.py | 106 +-
.../airflow/sdk/coordinators/node/coordinator.py | 45 +-
.../airflow/sdk/definitions/asset/decorators.py | 7 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 11 +-
.../sdk/definitions/decorators/__init__.pyi | 6 +
task-sdk/src/airflow/sdk/definitions/taskgroup.py | 39 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 4 +
.../execution_time/connection_test_supervisor.py | 13 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 46 +-
.../airflow/sdk/execution_time/email_backend.py | 92 +
.../airflow/sdk/execution_time/schema/schema.json | 542 +--
.../src/airflow/sdk/execution_time/supervisor.py | 4 +
.../src/airflow/sdk/execution_time/task_runner.py | 67 +-
task-sdk/src/airflow/sdk/log.py | 7 +-
task-sdk/tests/conftest.py | 2 +
task-sdk/tests/task_sdk/api/test_client.py | 103 +
task-sdk/tests/task_sdk/bases/test_hook.py | 2 +
.../task_sdk/coordinators/node/test_coordinator.py | 96 +-
.../task_sdk/definitions/test_asset_decorators.py | 38 +
.../tests/task_sdk/definitions/test_callback.py | 2 +-
.../tests/task_sdk/definitions/test_connection.py | 11 +-
.../tests/task_sdk/definitions/test_taskgroup.py | 3 +-
.../execution_time/test_callback_supervisor.py | 22 +-
.../tests/task_sdk/execution_time/test_comms.py | 1 +
.../test_connection_test_supervisor.py | 112 +
.../tests/task_sdk/execution_time/test_context.py | 143 +-
.../task_sdk/execution_time/test_context_cache.py | 17 +-
.../task_sdk/execution_time/test_email_backend.py | 86 +
.../tests/task_sdk/execution_time/test_secrets.py | 3 +
.../task_sdk/execution_time/test_supervisor.py | 188 +-
.../task_sdk/execution_time/test_task_runner.py | 174 +-
ts-sdk/.pre-commit-config.yaml | 65 +
ts-sdk/README.md | 48 +-
ts-sdk/example/.gitignore | 1 +
ts-sdk/example/README.md | 19 +-
ts-sdk/example/package.json | 2 +-
ts-sdk/package.json | 12 +
ts-sdk/pnpm-lock.yaml | 289 +-
.../ci/prek/{ts_sdk_lint.py => compile_ts_sdk.py} | 6 +-
ts-sdk/scripts/ci/prek/ts_sdk_lint.py | 0
.../hover/Context.ts => ts-sdk/src/cli/main.ts | 16 +-
ts-sdk/src/cli/pack.ts | 225 ++
ts-sdk/src/coordinator/log-channel.ts | 95 +-
ts-sdk/src/coordinator/manifest.ts | 44 +
ts-sdk/src/coordinator/runtime.ts | 16 +-
ts-sdk/src/generated/supervisor.ts | 206 +-
.../tests/cli/fixtures/empty-entry.ts | 7 +-
.../tests/cli/fixtures/entry.ts | 15 +-
.../tests/cli/fixtures/noisy-entry.ts | 14 +-
ts-sdk/tests/cli/pack.test.ts | 190 +
ts-sdk/tests/coordinator/log-channel.test.ts | 188 +-
ts-sdk/tests/coordinator/runtime-manifest.test.ts | 61 +
uv.lock | 4103 ++++++++++----------
1576 files changed, 66418 insertions(+), 18119 deletions(-)