This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 7e34777e52e [main] CI: Upgrade important CI environment
add 80797faf6d0 Fix incorrect documented defaults in Amazon operators and
sensors (#72315)
add 06c58123d6e Reuse Java SDK E2E Dag runs across assertions (#71812)
add 328730cbcd9 Add Azure Analysis Services model refresh support (#71350)
add a3b5b0be783 Reduce per-task DB round trips in the asset dependency
graph API (#71915)
add 08e428ca8ab Fix db migrate failure to Airflow 2.9.2 under PyMySQL
driver (#70235)
add aead4430729 Load the correct DAG version when a task starts from a
trigger (#69988)
add 1a5b65144f4 Clarify `@task` decorated callable errors when extra
positional arguments are passed. (#69157)
add 8e8f8266a53 Record six recurring non-issue shapes in the security
model (#72239)
add adaaf3a01ec Fix hierarchical_alphabetical sort order breaking the
graph and grid (#72137)
add ddc423bbd84 Fix mark-failed KeyError for removed-task TIs (#72338)
(#72394)
add fb8779b7dd1 Fix misleading error for malformed version in airflow db
downgrade (#72331)
add 123b1be6585 Remove unused legacy action logging helper (#72324)
add 4c3ffe8a2f1 i18n(ko): add missing translations(Sep 1) (#72372)
add 2da70dc8d0e Upgrade react-resizable-panels to v4 (#70820)
add b3bcf9f89dd Support a regex for the API's CORS allowed origins (#71778)
add 33d99159929 Improve documentation for the KafkaEventProducer plugin
(#71085)
add 61e8bb8f7a8 Bump the eslint group across 1 directory with 2 updates
(#72525)
add fb512efe2ac Add asset state store commands to airflowctl (#70771)
add 5c40e732444 Prevent Dag-existence disclosure on partitioned dag runs
listing (#72640)
add 4c32caa92ba Trace the dag-processor job instead of its parent process
with memray (#72367)
add 42bbe8d5916 Fix deferrable autofix inserting a forbidden conf import
in providers (#72366)
add baa949fd4b0 Fix Dag metrics dropped when a tag contains invalid
characters (#72364)
add 1be286ecfe4 Fix a bad retry env var taking down the whole airflowctl
CLI (#72429)
add ed90dbb161a Stop Breeze from hanging on unresponsive Docker (#72439)
add 10d9349bccc Document Colima and DOCKER_HOST setup for Breeze
contributors (#72431)
add 093c1cacc72 Fix airflowctl list argument parsing (#72454)
add 688dff54a08 Flag deprecated expose_config=non-sensitive-only in config
lint (#72507)
add 35c1b6830a8 Bump the github-actions-updates group with 4 updates
(#72539)
add ec71f28f2db Show which processes hold the Breeze UI dev ports when
start-airflow fails (#72564)
add 74d7ffabebe Fix the prek cache key so the jobs that read it can hit it
(#72489)
add 437f1b2cc91 Fix GoogleDriveHook.get_file_id parent query operand order
(#72541) (#72543)
add ab6c60c964b Pin devel dependencies to uv.lock in provider compat CI
jobs (#72581)
add 9260ec0dd12 Keep provider_config_fallback_defaults.cfg in sync with
provider.yaml (#72549)
add 8d16905d77e Bump the uv-dependency-updates group across 1 directory
with 8 updates (#72667)
add 31117014f3c Fix Dag scheduling stall after switching to a coarser cron
(#72498)
add 9c96e91c79b Close German Translation Gaps 2026-09-07 (#72630)
add 884c6577070 Java SDK: Document char is not supported for XCom
parameters (#70239)
add 5677af31e96 Migrate anthropic provider to use anthropic 1.x SDK
(#72094)
add dfa9bea7946 Install apache-magpie from its plugin marketplace (#72673)
add d1d0c351c7c Bump webpack (#72653)
add a88aaff4199 Fix breeze --include-mypy-volume not mounting the mypy
cache volume (#72569)
add 0b064f58663 Remove 值 from passwordToggle translations (#72684)
add eb0cf61f7a0 Add deferrable mode to SnowparkContainerJobOperator
(#70103)
add 7e4b35198ac Bump the core-ui-package-updates group across 1 directory
with 17 updates (#72632)
add e47ee93d74a Bump eslint-plugin-unicorn (#72532)
add e88a264e156 Add SSL cipher list option to the api server (#71645)
add d675437ccdf Add an allowlist config option for Kafka connection string
callbacks (#72208)
add 165b4956988 Distinguish empty plugin folder from plugin load failures
in logs (#72432)
add 39a5b937bdc Restore LIMIT 1 on single-row XCom lookups (#72554)
add c9a62d2f835 Fix Firefox multi-line drag selection in task log view
(#72034)
add 80db0f249fd Backfills UI filters (#71467)
add f28c8ce2737 Remove unregistered duplicate shared-library import prek
script (#72686)
add 4277ca890df Fix collection error and timeout assertion in Snowpark
container tests (#72709)
add a93e9a2e5fb Sync the browser URL with navigation inside iframe views
(#72196)
add 7d5fe632a62 Indent the Dag code fixtures in the version inflation
checker tests (#72181)
add 8850c326bdc Stop agent scratch directories from breaking the
boring-cyborg check (#72642)
add b916de6dab0 UI: Label Dag active runs accurately (#72371)
add 3c26d48ab49 Remove unused Breeze uv timeout and WSL helpers (#72704)
add 12bc0146bb7 Invalidate cached Microsoft Graph request adapter on 401
Unauthorized (#72688)
add d6b45d8e2f4 Resolve the caller from the explicit credential, not the
session cookie (#72225)
add 77cf38b1bc4 Keep MSGraph pagination offset across paginated pages
(#71986)
add 391578af620 Add a command to take a prepared provider back out of a
release (#71836)
add 2d717899a98 Fix Configuration page e2e test failing when the first
option has no value (#72724)
add 98f420e701f Add external access integrations to
SnowparkContainerJobOperator (#72602)
add 9de99f8d29c Allow airflow jobs check --allow-multiple with --limit 0
(#72677)
add 3cf889148a4 Shorten Managed Kafka cluster ID in system tests (#72084)
add 65900463b9b Add Google system test resource cleanup script (#68930)
add ee80d4349d0 Remove redundant ML Engine system test (#72321)
add 88043d0782e Improve Dag run metrics (#70013)
add cb3f5871592 fix ui connection test with null host and port (#72348)
add c1211c48593 Make SQLAlchemy an optional dependency for JDBC and YDB
providers (#72373)
add 67522f253bd Retry prek hook installation when a toolchain download
fails (#72382)
add f424641d05e Change DAG processed log when no action required (#72308)
add 881515b328b Change warning to RemovedInAirflow4Warning and remove
redundant mock setup from test. (#72396)
add 00b1568f452 Restructure spark durable execution docs for all cluster
managers (#72325)
add 5d3e6362601 Improve Java SDK quick start setup (#72440)
add af0704ed5b2 replaced airflow.utils.state (#72446)
add 671ad9dceb8 Fix models selection in genai tests (#72323)
add 6da84b1a458 Add performance_target to Databricks RunNow and CreateJobs
operators (#72148)
add 8daf7b102f8 Add CreateCustomJobOperator for VertexAI service (#71875)
add bb9cc304181 Document DAG.test() behavior change in the Airflow 2.7.0
release notes (#72485)
add 20fb83c2dd1 Fix ExternalTaskSensor example Dag never finding its
parent task (#72480)
add 72f6173c1b2 Fix KubernetesPodOperator XCom loss when container_logs is
a string (#72502)
add 118da9db7ef Fix XCom sidecar helper mutating the caller's pod volumes
(#72522)
add e56fcdffac6 Skip GCS folder-marker keys in GCSToS3Operator (#72497)
add 8416112c589 Fix dead Docker Desktop networking links in the
docker-compose guide (#72467)
add 05cab1db9da Fix template fields check never running against provider
modules (#71386)
add a4320d95df4 Replace generic AirflowException in AzureBatchOperator
input validation (#71981)
add 2e61fa116de Added missing Russian translations x2 (#70502)
add 6751b29429b Bump common-compat lower bound for akeyless, hashicorp and
smtp (#72503)
add 40851502035 Fix HttpOperator deferrable pagination returning only the
last page
add 83149aaf222 Validate DatabricksSQLStatementsSensor exclusivity at
__init__ (#70831)
add f75b69ea028 Bump the ui-plugin-template-package-updates group across 1
directory with 9 updates (#72526)
add edd44b90aee Ignore Amazon Linux preview AMIs in get_latest_ami_id
(#72520)
add 35e7a70cd37 Make Helm chart version optional in bug reports (#72545)
add d5a161024b5 Declare allow_driver_in_extra in the ODBC provider
configuration metadata (#72547)
add caef4f804dc Do not forward an empty ca_certs to the OpenSearch log
client (#72552)
add 98d8b6e1f39 Fix test_get_task_states_with_task_group_id_and_task_id to
actually cover its name (#72294)
add dadef4e9123 Fix flaky bundle version lock concurrency tests (#72572)
add f1f7b8c2cce Drop the redundant re-validation round trip in airflowctl
list pagination (#71928)
add 4dd620f48d8 Fix XCom slice endpoint for crossed bounds (#72584)
add 17ffe26979e Add drift tripwires for common.ai Vertex model prefix
(#72152)
add 754ba31050e Add support for sending emails through Microsoft Graph
(#71565)
add f51b8cfe5b5 [main] CI: Upgrade important CI environment
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 (7e34777e52e)
\
N -- N -- N refs/heads/ci-upgrade-main (f51b8cfe5b5)
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:
.agents/skills/magpie-setup/SKILL.md | 431 ------
.agents/skills/magpie-setup/adopt.md | 1470 ------------------
.agents/skills/magpie-setup/agents.md | 199 ---
.agents/skills/magpie-setup/overrides.md | 136 --
.agents/skills/magpie-setup/skill-sources.md | 278 ----
.agents/skills/magpie-setup/unadopt.md | 418 ------
.agents/skills/magpie-setup/upgrade.md | 807 ----------
.agents/skills/magpie-setup/verify.md | 787 ----------
.agents/skills/magpie-setup/worktree-init.md | 285 ----
.../prepare-providers-documentation/SKILL.md | 22 +
.apache-magpie-overrides/README.md | 6 +-
.apache-magpie.lock | 6 -
.claude/skills/magpie-setup | 1 -
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 2 -
.github/actions/install-prek/action.yml | 46 +-
.github/skills/magpie-setup | 1 -
.github/workflows/basic-tests.yml | 1 -
.github/workflows/ci-amd.yml | 2 -
.github/workflows/ci-arm.yml | 2 -
.github/workflows/ci-image-checks.yml | 3 +-
.github/workflows/codeql-analysis.yml | 6 +-
.github/workflows/generate-constraints.yml | 13 +-
.github/workflows/prod-image-build.yml | 6 +-
.github/workflows/publish-docs-to-s3.yml | 2 +-
.github/workflows/registry-backfill.yml | 4 +-
.github/workflows/registry-build.yml | 2 +-
.github/workflows/test-providers.yml | 26 +-
.github/workflows/upgrade-check.yml | 2 -
.gitignore | 37 +-
.pre-commit-config.yaml | 29 +-
AGENTS.md | 47 +-
Dockerfile | 2 +-
Dockerfile.ci | 8 +-
README.md | 37 +-
RELEASE_NOTES.rst | 11 +
.../logging-monitoring/check-health.rst | 4 +
.../docs/authoring-and-scheduling/deferring.rst | 3 +-
.../authoring-and-scheduling/event-scheduling.rst | 33 +
.../language-sdks/java.rst | 216 ++-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/cli-and-env-variables-ref.rst | 1 -
airflow-core/docs/howto/docker-compose/index.rst | 2 +-
airflow-core/docs/howto/set-config.rst | 1 -
airflow-core/docs/security/api.rst | 11 +
airflow-core/docs/security/security_model.rst | 101 ++
airflow-core/newsfragments/70013.feature.rst | 1 +
airflow-core/newsfragments/72225.significant.rst | 27 +
airflow-core/src/airflow/api/common/mark_tasks.py | 1 +
.../auth/managers/simple/ui/package.json | 2 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 72 +-
.../src/airflow/api_fastapi/common/parameters.py | 22 +
.../src/airflow/api_fastapi/core_api/app.py | 4 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 190 +++
.../core_api/routes/public/connections.py | 39 +-
.../api_fastapi/core_api/routes/public/dags.py | 2 +-
.../api_fastapi/core_api/routes/public/xcom.py | 2 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 25 +-
.../core_api/routes/ui/partitioned_dag_runs.py | 12 +-
.../src/airflow/api_fastapi/core_api/security.py | 18 +-
.../core_api/services/ui/dependencies.py | 56 +-
.../api_fastapi/execution_api/routes/xcoms.py | 18 +-
.../src/airflow/api_fastapi/gunicorn_app.py | 4 +
airflow-core/src/airflow/cli/cli_config.py | 6 +
.../src/airflow/cli/commands/api_server_command.py | 14 +
.../src/airflow/cli/commands/config_command.py | 7 +
.../airflow/cli/commands/dag_processor_command.py | 8 +-
.../src/airflow/cli/commands/db_command.py | 8 +
.../src/airflow/cli/commands/jobs_command.py | 7 +-
.../src/airflow/config_templates/config.yml | 34 +
.../provider_config_fallback_defaults.cfg | 11 +-
airflow-core/src/airflow/dag_processing/manager.py | 2 +-
.../src/airflow/jobs/scheduler_job_runner.py | 32 +-
.../src/airflow/jobs/triggerer_job_runner.py | 22 +-
...nconsistency_between_ORM_and_migration_files.py | 132 +-
airflow-core/src/airflow/models/dagbag.py | 8 +
airflow-core/src/airflow/models/taskinstance.py | 2 +-
airflow-core/src/airflow/plugins_manager.py | 11 +-
.../airflow/serialization/definitions/taskgroup.py | 14 +
airflow-core/src/airflow/timetables/interval.py | 25 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 27 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 48 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 48 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 48 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 48 +-
.../ui/openapi-gen/requests/services.gen.ts | 43 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 25 +
airflow-core/src/airflow/ui/package.json | 40 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 536 +++----
.../airflow/ui/public/i18n/locales/ca/common.json | 1 +
.../airflow/ui/public/i18n/locales/de/common.json | 34 +-
.../ui/public/i18n/locales/de/components.json | 4 +
.../airflow/ui/public/i18n/locales/de/dags.json | 8 +
.../airflow/ui/public/i18n/locales/en/common.json | 4 +
.../airflow/ui/public/i18n/locales/es/common.json | 1 +
.../airflow/ui/public/i18n/locales/fr/common.json | 1 +
.../airflow/ui/public/i18n/locales/ko/common.json | 25 +
.../ui/public/i18n/locales/ko/components.json | 4 +
.../airflow/ui/public/i18n/locales/pt/common.json | 1 +
.../airflow/ui/public/i18n/locales/ru/admin.json | 27 +-
.../airflow/ui/public/i18n/locales/ru/assets.json | 21 +-
.../airflow/ui/public/i18n/locales/ru/browse.json | 20 +
.../airflow/ui/public/i18n/locales/ru/common.json | 226 ++-
.../ui/public/i18n/locales/ru/components.json | 60 +-
.../src/airflow/ui/public/i18n/locales/ru/dag.json | 116 +-
.../airflow/ui/public/i18n/locales/ru/dags.json | 36 +-
.../ui/public/i18n/locales/ru/dashboard.json | 29 +-
.../airflow/ui/public/i18n/locales/ru/hitl.json | 21 +-
.../airflow/ui/public/i18n/locales/ru/tasks.json | 8 +-
.../ui/public/i18n/locales/zh-TW/components.json | 4 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 46 +-
.../ui/src/constants/reprocessBehaviourParams.ts | 6 +-
.../src/airflow/ui/src/constants/searchParams.ts | 12 +
.../src/airflow/ui/src/hooks/useIframeUrlSync.ts | 170 +++
.../ui/src/layouts/Details/DetailsLayout.tsx | 47 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 9 +-
.../src/airflow/ui/src/mocks/handlers/backfills.ts | 86 ++
.../src/airflow/ui/src/mocks/handlers/index.ts | 2 +
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 37 +-
.../ui/src/pages/Dag/Backfills/Backfills.test.tsx | 21 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 59 +-
.../Dag/Backfills/BackfillsDateFilter.test.tsx | 52 +
.../src/pages/Dag/Backfills/BackfillsFilters.tsx | 48 +
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 11 +
.../src/airflow/ui/src/pages/Dag/Header.tsx | 2 +-
.../src/airflow/ui/src/pages/ExternalView.tsx | 1 +
.../src/airflow/ui/src/pages/Iframe.test.tsx | 99 ++
airflow-core/src/airflow/ui/src/pages/Iframe.tsx | 21 +-
.../src/airflow/ui/src/pages/Security.test.tsx | 93 ++
airflow-core/src/airflow/ui/src/pages/Security.tsx | 74 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 8 +-
airflow-core/src/airflow/ui/src/router.tsx | 2 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 6 +
.../ui/tests/e2e/pages/ConfigurationPage.ts | 6 +
.../ui/tests/e2e/specs/configuration.spec.ts | 12 +-
.../ui/tests/e2e/specs/iframe-url-sync.spec.ts | 86 ++
.../tests/unit/api/common/test_mark_tasks.py | 19 +
.../core_api/routes/public/test_connections.py | 62 +
.../core_api/routes/public/test_xcom.py | 16 +-
.../core_api/routes/ui/test_backfills.py | 85 +-
.../core_api/routes/ui/test_dependencies.py | 72 +
.../routes/ui/test_partitioned_dag_runs.py | 27 +
.../tests/unit/api_fastapi/core_api/test_app.py | 22 +
.../unit/api_fastapi/core_api/test_security.py | 42 +
.../versions/head/test_task_instances.py | 2 +
.../execution_api/versions/head/test_xcoms.py | 81 +
.../unit/cli/commands/test_api_server_command.py | 43 +
.../tests/unit/cli/commands/test_config_command.py | 16 +
.../cli/commands/test_dag_processor_command.py | 17 +
.../tests/unit/cli/commands/test_db_command.py | 29 +-
.../unit/cli/commands/test_gunicorn_monitor.py | 44 +
.../tests/unit/cli/commands/test_jobs_command.py | 17 +
.../tests/unit/dag_processing/bundles/test_base.py | 75 +-
.../tests/unit/jobs/test_schedule_change_stall.py | 173 +++
airflow-core/tests/unit/jobs/test_scheduler_job.py | 47 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 88 +-
airflow-core/tests/unit/models/test_dagrun.py | 5 +-
.../tests/unit/models/test_taskinstance.py | 24 +-
.../tests/unit/plugins/test_plugins_manager.py | 23 +
.../unit/timetables/test_interval_timetable.py | 125 +-
.../utils/test_dag_version_inflation_checker.py | 567 +++----
airflow-core/tests/unit/utils/test_task_group.py | 32 +-
.../airflowctl_tests/test_airflowctl_commands.py | 6 +
airflow-ctl/docs/cli-and-env-variables-ref.rst | 7 +
airflow-ctl/docs/images/command_hashes.txt | 2 +-
airflow-ctl/docs/images/output_assets.svg | 166 ++-
airflow-ctl/src/airflowctl/api/client.py | 28 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 2 +-
airflow-ctl/src/airflowctl/api/operations.py | 39 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 3 +-
.../src/airflowctl/ctl/commands/config_command.py | 7 +
airflow-ctl/src/airflowctl/ctl/help_texts.yaml | 5 +
airflow-ctl/tests/airflow_ctl/api/test_client.py | 48 +
.../tests/airflow_ctl/api/test_operations.py | 75 +-
.../ctl/commands/test_config_command.py | 37 +
.../tests/airflow_ctl/ctl/test_cli_config.py | 8 +
.../java_sdk_tests/test_java_sdk_dag.py | 392 ++---
contributing-docs/03_contributors_quick_start.rst | 21 +-
contributing-docs/25_maintainer_pr_triage.md | 30 +-
dev/README_RELEASE_PROVIDERS.md | 58 +
dev/breeze/doc/01_installation.rst | 21 +-
dev/breeze/doc/03_developer_tasks.rst | 6 +-
dev/breeze/doc/ci/02_images.md | 2 +-
...e-management_prepare-provider-documentation.svg | 78 +-
...e-management_prepare-provider-documentation.txt | 2 +-
dev/breeze/doc/images/output_run.svg | 26 +-
dev/breeze/doc/images/output_run.txt | 2 +-
dev/breeze/pyproject.toml | 2 +-
.../src/airflow_breeze/commands/common_options.py | 7 -
.../airflow_breeze/commands/developer_commands.py | 3 +
.../commands/developer_commands_config.py | 1 +
.../commands/release_management_commands.py | 25 +-
.../commands/release_management_commands_config.py | 1 +
.../src/airflow_breeze/commands/ui_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../prepare_providers/provider_documentation.py | 45 +-
.../airflow_breeze/utils/docker_command_utils.py | 43 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 2 +-
dev/breeze/src/airflow_breeze/utils/platforms.py | 62 -
dev/breeze/src/airflow_breeze/utils/run_utils.py | 53 +-
dev/breeze/tests/test_developer_commands.py | 34 +-
dev/breeze/tests/test_docker_command_utils.py | 58 +
dev/breeze/tests/test_provider_documentation.py | 83 +-
dev/breeze/tests/test_run_utils.py | 97 +-
dev/breeze/tests/test_shell_params.py | 10 +-
dev/breeze/uv.lock | 89 +-
.../react_plugin_template/package.json | 18 +-
.../react_plugin_template/pnpm-lock.yaml | 1564 ++++++++++----------
dev/skill-evals/last-eval-hash.txt | 2 +-
devel-common/pyproject.toml | 4 +-
.../src/tests_common/test_utils/asserts.py | 40 +-
devel-common/src/tests_common/test_utils/config.py | 2 +-
docs/spelling_wordlist.txt | 1 +
generated/known_airflow_exceptions.txt | 9 +-
providers/akeyless/README.rst | 2 +-
providers/akeyless/docs/index.rst | 2 +-
providers/akeyless/pyproject.toml | 2 +-
.../providers/amazon/aws/operators/bedrock.py | 2 +-
.../airflow/providers/amazon/aws/operators/glue.py | 2 +-
.../airflow/providers/amazon/aws/operators/sqs.py | 2 +-
.../providers/amazon/aws/sensors/bedrock.py | 4 +-
.../providers/amazon/aws/transfers/gcs_to_s3.py | 35 +
.../amazon/tests/system/amazon/aws/utils/ec2.py | 24 +-
.../unit/amazon/aws/transfers/test_gcs_to_s3.py | 67 +
providers/anthropic/README.rst | 20 +-
providers/anthropic/docs/connections.rst | 3 +-
providers/anthropic/docs/index.rst | 20 +-
providers/anthropic/pyproject.toml | 17 +-
.../airflow/providers/anthropic/hooks/anthropic.py | 28 +-
.../tests/unit/anthropic/hooks/test_anthropic.py | 41 +-
providers/apache/kafka/docs/configurations-ref.rst | 23 +-
providers/apache/kafka/docs/connections/kafka.rst | 12 +
providers/apache/kafka/provider.yaml | 22 +
.../providers/apache/kafka/get_provider_info.py | 14 +-
.../airflow/providers/apache/kafka/hooks/base.py | 55 +-
.../tests/unit/apache/kafka/hooks/test_base.py | 55 +
.../tests/unit/apache/kafka/hooks/test_consume.py | 3 +
.../tests/unit/apache/kafka/hooks/test_produce.py | 3 +
providers/apache/spark/docs/operators.rst | 90 +-
.../providers/cncf/kubernetes/operators/pod.py | 5 +-
.../cncf/kubernetes/utils/xcom_sidecar.py | 6 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 22 +
.../cncf/kubernetes/utils/test_xcom_sidecar.py | 17 +
.../providers/common/ai/plugins/hitl_review.py | 2 +-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 99 +-
.../databricks/docs/operators/jobs_create.rst | 1 +
providers/databricks/docs/operators/run_now.rst | 1 +
.../providers/databricks/operators/databricks.py | 33 +-
.../providers/databricks/sensors/databricks.py | 13 +-
.../unit/databricks/operators/test_databricks.py | 29 +
.../unit/databricks/sensors/test_databricks.py | 93 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 128 +-
providers/google/provider.yaml | 1 +
.../google/cloud/hooks/vertex_ai/custom_job.py | 71 +-
.../providers/google/cloud/links/vertex_ai.py | 11 +
.../google/cloud/operators/vertex_ai/custom_job.py | 123 ++
.../providers/google/cloud/triggers/vertex_ai.py | 67 +
.../airflow/providers/google/get_provider_info.py | 1 +
.../airflow/providers/google/suite/hooks/drive.py | 2 +-
.../gen_ai/example_gen_ai_gemini_batch_api.py | 16 +-
.../gen_ai/example_gen_ai_generative_model.py | 116 +-
.../example_gen_ai_generative_model_tuning.py | 84 +-
.../tests/system/google/cloud/gen_ai/llm_models.py | 46 +
.../gemini_batch_embeddings_requests.jsonl | 4 +-
.../managed_kafka/example_managed_kafka_cluster.py | 2 +-
.../example_managed_kafka_consumer_group.py | 2 +-
.../managed_kafka/example_managed_kafka_topic.py | 2 +-
.../google/cloud/ml_engine/example_mlengine.py | 297 ----
.../example_vertex_ai_create_custom_job.py | 134 ++
.../system/google/resources_cleanup/.airflowignore | 4 +
.../__init__.py => resources_cleanup/.gitignore} | 9 +
.../system/google/resources_cleanup/README.md | 140 ++
.../system/google/resources_cleanup}/__init__.py | 0
.../__init__.py | 0
.../__main__.py | 138 ++
.../commands}/__init__.py | 0
.../commands/cmd_delete.py | 209 +++
.../commands/cmd_list.py | 100 ++
.../commands/cmd_list_asset_types.py | 124 ++
.../commands/cmd_tree.py | 195 +++
.../constants.py | 90 ++
.../handlers/__init__.py | 67 +
.../handlers/_base.py | 90 ++
.../handlers/ai.py | 260 ++++
.../handlers/bq.py | 64 +
.../handlers/composer.py | 49 +
.../handlers/compute.py | 51 +
.../handlers/dataflow.py | 44 +
.../handlers/dataform.py | 71 +
.../handlers/dataplex.py | 59 +
.../handlers/dataproc.py | 73 +
.../handlers/dataproc_metastore.py | 49 +
.../handlers/dlp.py | 45 +
.../handlers/kafka.py | 47 +
.../handlers/kubernetes_engine.py | 22 +-
.../handlers/logging.py | 28 +-
.../handlers/ray.py | 72 +
.../handlers/spanner.py | 75 +
.../handlers/sqladmin.py | 54 +
.../handlers/storage.py | 46 +
.../helpers.py | 230 +++
.../templates}/__init__.py | 0
.../templates/base.html | 145 ++
.../templates/macros.html | 37 +
.../templates/resource_name.html | 26 +-
.../templates/resources.html | 26 +-
.../google/resources_cleanup/config}/__init__.py | 0
.../google/resources_cleanup/tests}/__init__.py | 0
.../cloud/hooks/vertex_ai/test_custom_job.py | 202 ++-
.../unit/google/cloud/operators/test_vertex_ai.py | 49 +
.../unit/google/cloud/triggers/test_vertex_ai.py | 30 +
.../unit/google/resources_cleanup}/__init__.py | 0
.../unit/google/resources_cleanup/conftest.py | 64 +
.../google/resources_cleanup/test_cmd_delete.py | 234 +++
.../unit/google/resources_cleanup/test_cmd_list.py | 104 ++
.../resources_cleanup/test_cmd_list_asset_types.py | 118 ++
.../unit/google/resources_cleanup/test_cmd_tree.py | 159 ++
.../unit/google/resources_cleanup/test_helpers.py | 250 ++++
.../resources_cleanup/test_logging_handler.py | 50 +
.../google/resources_cleanup/test_ray_handler.py | 23 +-
.../tests/unit/google/suite/hooks/test_drive.py | 74 +
providers/hashicorp/README.rst | 2 +-
providers/hashicorp/docs/index.rst | 2 +-
providers/hashicorp/pyproject.toml | 2 +-
.../src/airflow/providers/http/operators/http.py | 40 +-
.../http/tests/unit/http/operators/test_http.py | 85 +-
providers/jdbc/docs/index.rst | 1 +
providers/jdbc/pyproject.toml | 4 +
.../jdbc/src/airflow/providers/jdbc/hooks/jdbc.py | 12 +-
providers/jdbc/tests/unit/jdbc/hooks/test_jdbc.py | 12 +
.../azure/docs/connections/analysis_services.rst | 63 +
providers/microsoft/azure/docs/email-backend.rst | 72 +
providers/microsoft/azure/docs/index.rst | 2 +
.../microsoft/azure/docs/notifications/index.rst | 27 +
.../microsoft/azure/docs/notifications/msgraph.rst | 65 +
.../azure/docs/operators/analysis_services.rst | 85 ++
providers/microsoft/azure/provider.yaml | 40 +
.../providers/microsoft/azure/exceptions.py | 60 +
.../providers/microsoft/azure/get_provider_info.py | 42 +
.../microsoft/azure/hooks/analysis_services.py | 300 ++++
.../providers/microsoft/azure/hooks/msgraph.py | 307 +++-
.../microsoft/azure/notifications}/__init__.py | 0
.../microsoft/azure/notifications/msgraph.py | 131 ++
.../microsoft/azure/operators/analysis_services.py | 136 ++
.../providers/microsoft/azure/operators/batch.py | 30 +-
.../providers/microsoft/azure/operators/msgraph.py | 10 +-
.../microsoft/azure/sensors/analysis_services.py | 98 ++
.../microsoft/azure/triggers/analysis_services.py | 182 +++
.../azure/example_azure_analysis_services.py | 80 +
.../azure/hooks/test_analysis_services.py | 500 +++++++
.../unit/microsoft/azure/hooks/test_msgraph.py | 416 +++++-
.../microsoft/azure/notifications}/__init__.py | 0
.../microsoft/azure/notifications/test_msgraph.py | 113 ++
.../azure/operators/test_analysis_services.py | 218 +++
.../unit/microsoft/azure/operators/test_batch.py | 110 +-
.../unit/microsoft/azure/operators/test_msgraph.py | 39 +-
.../unit/microsoft/azure/resources/messages.json | 2 +-
.../microsoft/azure/resources/second_messages.json | 1 +
.../{next_messages.json => third_messages.json} | 2 +-
.../azure/sensors/test_analysis_services.py | 122 ++
.../tests/unit/microsoft/azure/test_exceptions.py | 61 +
.../azure/triggers/test_analysis_services.py | 336 +++++
.../{amazon => odbc}/docs/configurations-ref.rst | 0
providers/odbc/docs/connections/odbc.rst | 2 +-
providers/odbc/docs/index.rst | 1 +
providers/odbc/provider.yaml | 14 +
.../airflow/providers/odbc/get_provider_info.py | 14 +
providers/odbc/tests/unit/odbc/hooks/test_odbc.py | 16 +
.../providers/opensearch/log/os_task_handler.py | 5 +
.../unit/opensearch/log/test_os_task_handler.py | 23 +
providers/smtp/README.rst | 2 +-
providers/smtp/docs/index.rst | 2 +-
providers/smtp/pyproject.toml | 2 +-
providers/snowflake/docs/changelog.rst | 5 +
.../docs/operators/snowpark_containers.rst | 8 +
providers/snowflake/provider.yaml | 1 +
.../providers/snowflake/get_provider_info.py | 5 +-
.../snowflake/operators/snowpark_containers.py | 158 +-
.../snowflake/triggers/snowpark_containers.py | 166 +++
.../snowflake/utils/snowpark_containers.py | 52 +
.../operators/test_snowpark_containers.py | 170 +++
.../snowflake/triggers/test_snowpark_containers.py | 205 +++
.../snowflake/utils/test_snowpark_containers.py | 16 +-
.../example_external_task_marker_dag.py | 11 +-
providers/ydb/docs/index.rst | 17 +
providers/ydb/pyproject.toml | 8 +
.../ydb/src/airflow/providers/ydb/hooks/ydb.py | 15 +-
providers/ydb/tests/unit/ydb/hooks/test_ydb.py | 29 +
pyproject.toml | 2 +-
reproducible_build.yaml | 4 +-
scripts/ci/prek/boring_cyborg.py | 3 +-
scripts/ci/prek/check_core_imports_in_shared.py | 105 --
scripts/ci/prek/check_deferrable_default.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
.../check_provider_config_fallback_defaults.py | 200 +++
scripts/ci/prek/ruff_format.py | 2 +-
scripts/cov/core_coverage.py | 1 -
scripts/docker/entrypoint_ci.sh | 6 +-
scripts/in_container/run_template_fields_check.py | 37 +-
.../tests/ci/prek/test_check_deferrable_default.py | 96 ++
...test_check_provider_config_fallback_defaults.py | 227 +++
scripts/tools/setup_breeze | 2 +-
.../observability/metrics/metrics_template.yaml | 14 +-
.../airflow_shared/observability/metrics/stats.py | 14 +-
.../tests/observability/metrics/test_stats.py | 25 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
task-sdk/src/airflow/sdk/bases/decorator.py | 45 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 4 +-
task-sdk/tests/task_sdk/bases/test_decorator.py | 30 +
uv.lock | 924 ++++++------
411 files changed, 17719 insertions(+), 8821 deletions(-)
delete mode 100644 .agents/skills/magpie-setup/SKILL.md
delete mode 100644 .agents/skills/magpie-setup/adopt.md
delete mode 100644 .agents/skills/magpie-setup/agents.md
delete mode 100644 .agents/skills/magpie-setup/overrides.md
delete mode 100644 .agents/skills/magpie-setup/skill-sources.md
delete mode 100644 .agents/skills/magpie-setup/unadopt.md
delete mode 100644 .agents/skills/magpie-setup/upgrade.md
delete mode 100644 .agents/skills/magpie-setup/verify.md
delete mode 100644 .agents/skills/magpie-setup/worktree-init.md
delete mode 100644 .apache-magpie.lock
delete mode 120000 .claude/skills/magpie-setup
delete mode 120000 .github/skills/magpie-setup
create mode 100644 airflow-core/newsfragments/70013.feature.rst
create mode 100644 airflow-core/newsfragments/72225.significant.rst
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useIframeUrlSync.ts
create mode 100644 airflow-core/src/airflow/ui/src/mocks/handlers/backfills.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillsDateFilter.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillsFilters.tsx
create mode 100644 airflow-core/src/airflow/ui/src/pages/Iframe.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/pages/Security.test.tsx
create mode 100644
airflow-core/src/airflow/ui/tests/e2e/specs/iframe-url-sync.spec.ts
create mode 100644 airflow-core/tests/unit/jobs/test_schedule_change_stall.py
create mode 100644
providers/google/tests/system/google/cloud/gen_ai/llm_models.py
delete mode 100644
providers/google/tests/system/google/cloud/ml_engine/example_mlengine.py
create mode 100644
providers/google/tests/system/google/cloud/vertex_ai/example_vertex_ai_create_custom_job.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/.airflowignore
rename providers/google/tests/system/google/{cloud/ml_engine/__init__.py =>
resources_cleanup/.gitignore} (90%)
create mode 100644
providers/google/tests/system/google/resources_cleanup/README.md
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/resources_cleanup}/__init__.py (100%)
copy {airflow-core/src/airflow/api/common =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup}/__init__.py
(100%)
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/__main__.py
copy {airflow-core/src/airflow/api/common =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/commands}/__init__.py
(100%)
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/commands/cmd_delete.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/commands/cmd_list.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/commands/cmd_list_asset_types.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/commands/cmd_tree.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/constants.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/__init__.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/_base.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/ai.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/bq.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/composer.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/compute.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/dataflow.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/dataform.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/dataplex.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/dataproc.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/dataproc_metastore.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/dlp.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/kafka.py
copy airflow-core/src/airflow/utils/log/action_logger.py =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/kubernetes_engine.py
(54%)
copy airflow-core/src/airflow/utils/log/action_logger.py =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/logging.py
(53%)
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/ray.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/spanner.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/sqladmin.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/handlers/storage.py
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/helpers.py
copy {airflow-core/src/airflow/api/common =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/templates}/__init__.py
(100%)
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/templates/base.html
create mode 100644
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/templates/macros.html
copy .apache-magpie-overrides/README.md =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/templates/resource_name.html
(52%)
copy .apache-magpie-overrides/README.md =>
providers/google/tests/system/google/resources_cleanup/airflow_google_provider_resource_cleanup/templates/resources.html
(52%)
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/resources_cleanup/config}/__init__.py
(100%)
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/resources_cleanup/tests}/__init__.py (100%)
copy {airflow-core/src/airflow/api/common =>
providers/google/tests/unit/google/resources_cleanup}/__init__.py (100%)
create mode 100644
providers/google/tests/unit/google/resources_cleanup/conftest.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_cmd_delete.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_cmd_list.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_cmd_list_asset_types.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_cmd_tree.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_helpers.py
create mode 100644
providers/google/tests/unit/google/resources_cleanup/test_logging_handler.py
copy airflow-core/src/airflow/utils/log/action_logger.py =>
providers/google/tests/unit/google/resources_cleanup/test_ray_handler.py (57%)
create mode 100644
providers/microsoft/azure/docs/connections/analysis_services.rst
create mode 100644 providers/microsoft/azure/docs/email-backend.rst
create mode 100644 providers/microsoft/azure/docs/notifications/index.rst
create mode 100644 providers/microsoft/azure/docs/notifications/msgraph.rst
create mode 100644
providers/microsoft/azure/docs/operators/analysis_services.rst
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/exceptions.py
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/hooks/analysis_services.py
copy {airflow-core/src/airflow/_shared =>
providers/microsoft/azure/src/airflow/providers/microsoft/azure/notifications}/__init__.py
(100%)
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/notifications/msgraph.py
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/operators/analysis_services.py
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/sensors/analysis_services.py
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/triggers/analysis_services.py
create mode 100644
providers/microsoft/azure/tests/system/microsoft/azure/example_azure_analysis_services.py
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/hooks/test_analysis_services.py
copy {airflow-core/src/airflow/_shared =>
providers/microsoft/azure/tests/unit/microsoft/azure/notifications}/__init__.py
(100%)
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/notifications/test_msgraph.py
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/operators/test_analysis_services.py
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/resources/second_messages.json
rename
providers/microsoft/azure/tests/unit/microsoft/azure/resources/{next_messages.json
=> third_messages.json} (95%)
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/sensors/test_analysis_services.py
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/test_exceptions.py
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/triggers/test_analysis_services.py
copy providers/{amazon => odbc}/docs/configurations-ref.rst (100%)
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/triggers/snowpark_containers.py
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/utils/snowpark_containers.py
create mode 100644
providers/snowflake/tests/unit/snowflake/triggers/test_snowpark_containers.py
rename airflow-core/src/airflow/utils/log/action_logger.py =>
providers/snowflake/tests/unit/snowflake/utils/test_snowpark_containers.py (69%)
delete mode 100644 scripts/ci/prek/check_core_imports_in_shared.py
create mode 100755 scripts/ci/prek/check_provider_config_fallback_defaults.py
create mode 100644 scripts/tests/ci/prek/test_check_deferrable_default.py
create mode 100644
scripts/tests/ci/prek/test_check_provider_config_fallback_defaults.py