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 7996da357c1 [main] CI: Upgrade important CI environment
add bcefdf945c6 Fix duplicate 'the' typo in Task SDK integration test docs
(#70806)
add 745b1de1027 Reset task try when switching Graph tasks (#70780)
add a2b0ad54e75 Fix insecure HTTP links in documentation (#70680)
add d69a0646551 Bump openlineage libraries to 1.52 in openlineage provider
(#70773)
add dae79110b88 Upgrade UI dependencies (major bumps) (#70777)
add 445549aad5e Fix wtforms-mocking condition (#70811)
add 8ef95e77a62 Fix flaky secrets masking test in LLMRetryPolicy (#70823)
add 222db00c174 i18n(Ko):Add missing translations in components.json
(#70764)
add 2f9eb829973 Fix openlineage team name handling, add dag_version_data
and TI note (#70772)
add 36e7d02a40c Deprecating `poll_interval` in `ExternalTaskSensor` for
`poke_interval` (#68997)
add f2ccc0fe7db Implement bulk authorization methods in
KeycloakAuthManager (#70647)
add deb320ca56f Don't fail on dynamic glue rule set reccomendations
(#70801)
add b765336c538 Add Language SDK conformance spec to contributor guide
(#70717)
add a1b8f16d89a Add `type` field sort prek hook for Helm
`values.schema.json` file (#70796)
add c7e4d7ca573 Bump the uv-dependency-updates group in /dev/breeze with 5
updates (#70850)
add 25c100c870a Emit GCSToGCSOperator deprecation warnings after rendering
(#70449)
add 1c1f5744dfe Fix SQL value checks for negative expected values (#69893)
add 204ba78cc1f Fix SQL check tolerance for negative expected values
(#69736)
add 3b547d729e0 Quote remote job paths in posix ssh command builders
(#70091)
add 7ec2faa5fa9 Bump the auth-ui-package-updates group across 1 directory
with 2 updates (#70846)
add 1cf35f42c6d Use ValueError for unsupported recursive glob in ADLS
upload (#70540)
add e80a6bc70cc Use built-in exceptions for Postgres hook input validation
(#70537)
add 8c08850420d Use ValueError when no ArangoDB collection operation is
specified (#70539)
add f588901b2bb Update system test to the latest api version of google-ads
(#69865)
add fabe74d37d4 Fix no-op assertion in MaxCompute run_sql test (#69406)
add ec02c6d4efd Fix AwaitMessageTriggerFunctionSensor not honoring timeout
(#69639)
add 5cc898f8743 Escape attachment filename in Content-Disposition header
(#69435)
add 3abf9ca59c8 WaitSensor: make time_to_wait templated (#70480)
add 927d4ad83cb Check imap attachment symlink on the resolved destination
path (#69194)
add 41eff9bd37c Fix flaky test_command_timeout_fail in SSH provider
(#65864)
add 0f185b6a7ae Fix KafkaBaseHook.test_connection missing oauth_cb for
managed Kafka (#69507)
add a6699a40ac2 Prevent deferrable KubernetesPodOperator log parsing from
blocking the triggerer event loop (#69661)
add 4572e0b42f5 Fix AirbyteJobSensor marking a cancelled job as success in
deferrable mode (#69786)
add 36d0cc7bd68 Bump the edge-ui-package-updates group across 1 directory
with 3 updates (#70848)
add 664e2a8b579 Fix asset event extra filter matching wrong events for
dotted keys on SQLite (#69675)
add 8652f21c328 Stop batching major version bumps in the edge UI
Dependabot group (#70865)
add dd4d2f9ef7c Add CloudSQLNoOperationInProgressSensor for parallel admin
ops (#68151)
add 79fa2e62221 Bump the github-actions-updates group across 1 directory
with 4 updates (#70857)
add 7ae9d588dc9 Fix duplicated task logs in the WASB log handler (#70860)
add a75366e1828 Rewrite SnowparkContainerJobOperator exclusivity check and
move back to __init__ (#70874)
add dfaff482594 Gate audit log rows not tied to a Dag on a dedicated
AccessView (#70759)
add e0cac1f6b2d Only resolve a team namespaced environment secret for its
own team (#70736)
add 2874061932b Revert DMS provision checks to __init__ with is not None
polarity (#70634)
add 087b2e9fe4c Apply SageMaker operator template-field checks after
rendering (#70485)
add 0d5c54b6be9 Retry EKS resource deletion on transient
ResourceInUseException (#70260)
add e6341f3e748 Delay BigQueryToMsSqlOperator source table parsing (#70493)
add 154e3c8cdfc Fix BteqOperator declaring template_fields as a bare
string (#70862)
add cdedaf3fc69 Fix encrypted private keys in async SFTP hook (#70858)
add 0b3aaccfa01 Apply the team scope in the Google Secret Manager backend
(#70869)
add 7333cad2832 Revert Dataform workflow invocation dict normalization
(#69161) (#70395)
add 5efa9a1c8bf Make the HITLOperator summary extension point public
(#70391)
add 81446f3f698 Bump the ui-plugin-template-package-updates group across 1
directory with 22 updates (#70611)
add 802ffa7b3c6 Drop colored logging from the Go SDK edge worker (#70824)
add 915e61cc40d Do not show @timestamp in logs in UI (#70790)
add e7ffeb7c39b reject mixed-separator path traversal in imap attachment
names (#70665)
add b20f1a47d01 Fail deferred Cloud Composer tasks when the GCP operation
errors (#70430)
add 9a28876d514 Validate Gemini batch results_folder in the worker that
writes results (#70393)
add 600d99867cc Use private key when pulling submodules (#62938)
add 6669e7eed8d Fix AwaitMessageTrigger crash on tombstone messages when
apply_function is unset (#69665)
add f8f53e0e94d Add ElasticsearchRemoteLogIO.from_config and register
elasticsearch scheme (#70525)
add 1a3f32aa9e3 Add OSSRemoteLogIO.from_config and register oss remote
logging scheme (#70682)
add 251a9281006 Register Stackdriver remote task logging handler (#70549)
add 41a3be7076e Refuse the team agnostic fall-through for a team scoped
Key Vault secret name (#70876)
add a472c83d715 Add WasbRemoteLogIO.from_config and register wasb remote
logging scheme (#70301)
add 0191b1199ea Refuse the team agnostic fall-through for a team scoped
AWS secret name (#70878)
add 3b2445a25fa Fix SQLColumnCheckOperator crash on non-numeric column
bounds (#70895)
add 415cb70f877 Limit pandas to < 3 for DataFrame XComs (#70791)
add 31a5f3a5491 Bump boto3 in /dev/breeze in the uv-dependency-updates
group (#70871)
add 6aa7cd9eba7 Remove no-op exception re-raise and parser override in
airflowctl (#70903)
add 9a0d1d3334e Fix duplicated and incorrect words in documentation
(#70868)
add eef1b970acd Fix airflowctl showing a traceback instead of the server
error on 5xx (#70841)
add 81462283eaf Assert the refusal log with getMessage so the compat tests
pass (#70905)
add 9d3b20c4d2f Fix SSHRemoteJobOperator cleanup failing with custom
remote_base_dir (#69885)
add ff5a90c6f79 Support setting an S3 object ACL for remote task logs
(#70394)
add e7737ff9bb1 Fix Kafka consumer not being closed on error in
ConsumeFromTopicOperator (#69641)
add 4b9c3b54a7b Validate trigger events in Openai deferrable tasks (#69506)
add d9b7eb0f8a4 Cancel the Redshift statement when a user kills the
deferred task (#69676)
add 16b4e621711 Give each task its own start trigger arguments in standard
sensors (#70888)
add a1824804d11 Reconnect to the running Livy batch on retry instead of
resubmitting (#68956)
add b2d1d8183dc Use monotonic clock for OpenAIBatchTrigger polling timeout
(#69534)
add cfe3f0bbd70 Apply the ambiguous-id refusal to get_config in the Key
Vault backend (#70899)
add 0d877a1a768 Refuse the team agnostic fall-through for a team scoped
Lockbox secret name (#70877)
add 0b313f9a3fe Document Kubernetes RBAC permissions (#68716)
add b528a941546 Fix operators declaring template_fields/template_ext as
bare strings (#70916)
add c146f20f301 Strip only the literal properties/ prefix from GA property
link IDs (#70919)
add 67706f6843e Clarify Elasticsearch remote-logging scheme needs Airflow
3.3.0+ (#70920)
add f656510a147 Fix broken OpenAI batch trigger test blocking main (#70938)
add acb4dde004f Drop coloredcobra dependency from the Go SDK edge worker
(#70917)
add 607df554985 Add KeycloakJWTMiddleware to KeycloakAuthManager (#70800)
add c1639315cce Prepare providers release 2026-08-01 (#70932)
add 66444504c4e Correct the uv.lock versions and keycloak changelog after
the 2026-08-01 wave (#70952)
add bdc7bde97be Fix leaked triggerer thread in
test_trigger_logger_fd_closed_when_removed (#70941)
add 6fb2c61aa16 UI: Align boolean controls in Trigger Dag form (#70713)
add 30006eb9f8c Fix Dag run duration stats crash on PostgreSQL 14+ (#70833)
add 1b3121d03b6 Limit deadline alerts endpoint to the latest serialized
Dag row (#70804)
add 8541668cd49 Fix the deadline_reference decorator's no-parentheses form
(#70708)
add 4899e904185 Fix task state store Execution API rejecting keys that
contain slashes (#69178)
add 468a89840a9 [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 (7996da357c1)
\
N -- N -- N refs/heads/ci-upgrade-main (468a89840a9)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 6 +
.github/workflows/asf-allowlist-check.yml | 2 +-
.github/workflows/basic-tests.yml | 8 +-
.github/workflows/ci-image-build.yml | 16 +-
.github/workflows/ci-image-checks.yml | 4 +-
.github/workflows/prod-image-build.yml | 2 +-
.github/workflows/publish-docs-to-s3.yml | 6 +-
.github/workflows/recheck-old-bug-report.yml | 2 +-
.github/workflows/stale.yml | 4 +-
COMMITTERS.rst | 2 +-
Dockerfile | 4 +-
Dockerfile.ci | 4 +-
ISSUE_TRIAGE_PROCESS.rst | 2 +-
README.md | 2 +-
airflow-core/docs/howto/deadline-alerts.rst | 7 +
airflow-core/newsfragments/69675.bugfix.rst | 1 +
airflow-core/newsfragments/70708.bugfix.rst | 1 +
airflow-core/newsfragments/70759.significant.rst | 24 +
airflow-core/newsfragments/70791.significant.rst | 35 +
.../api_fastapi/auth/managers/base_auth_manager.py | 48 +-
.../auth/managers/models/resource_details.py | 4 +
.../auth/managers/simple/simple_auth_manager.py | 7 +-
.../auth/managers/simple/ui/package.json | 4 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 218 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 8 +
.../api_fastapi/core_api/routes/ui/deadlines.py | 22 +-
.../src/airflow/api_fastapi/core_api/security.py | 64 +-
.../core_api/services/ui/connections.py | 4 +-
.../api_fastapi/core_api/services/ui/dag_run.py | 4 +-
.../execution_api/routes/task_state_store.py | 6 +-
.../execution_api/versions/v2026_06_30.py | 6 +-
.../src/airflow/secrets/environment_variables.py | 38 +-
airflow-core/src/airflow/ui/eslint.config.js | 1 -
.../src/airflow/ui/openapi-gen/queries/common.ts | 5 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 6 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 6 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 6 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 6 +-
.../ui/openapi-gen/requests/services.gen.ts | 2 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 1 +
airflow-core/src/airflow/ui/package.json | 18 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 463 +---
.../ui/public/i18n/locales/ko/components.json | 13 +-
airflow-core/src/airflow/ui/rules/core.js | 1 -
airflow-core/src/airflow/ui/rules/i18n.js | 2 -
airflow-core/src/airflow/ui/rules/i18next.js | 1 -
airflow-core/src/airflow/ui/rules/perfectionist.js | 1 -
airflow-core/src/airflow/ui/rules/prettier.js | 1 -
airflow-core/src/airflow/ui/rules/react.js | 1 -
airflow-core/src/airflow/ui/rules/stylistic.js | 1 -
airflow-core/src/airflow/ui/rules/typescript.js | 1 -
airflow-core/src/airflow/ui/rules/unicorn.js | 1 -
.../ui/src/components/FlexibleForm/FieldBool.tsx | 2 +
.../Graph/TaskLink.test.tsx} | 36 +-
.../airflow/ui/src/components/Graph/TaskLink.tsx | 7 +-
.../airflow/ui/src/components/StoreValueCell.tsx | 1 -
.../airflow/ui/src/components/ui/Select/Item.tsx | 1 -
.../src/airflow/ui/src/i18n/config.test.ts | 2 +-
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 1 -
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 1 -
airflow-core/src/airflow/ui/src/theme.ts | 1 -
.../airflow/ui/src/utils/detectLanguage.test.ts | 1 -
airflow-core/src/airflow/ui/src/utils/logs.ts | 2 -
airflow-core/src/airflow/ui/src/utils/slots.tsx | 1 -
.../airflow/ui/tests/e2e/fixtures/asset-data.ts | 1 -
.../ui/tests/e2e/fixtures/audit-log-data.ts | 1 -
.../airflow/ui/tests/e2e/fixtures/calendar-data.ts | 1 -
.../airflow/ui/tests/e2e/fixtures/dag-runs-data.ts | 1 -
.../ui/tests/e2e/fixtures/dashboard-data.ts | 1 -
.../src/airflow/ui/tests/e2e/fixtures/data.ts | 2 -
.../src/airflow/ui/tests/e2e/fixtures/pom.ts | 1 -
.../ui/tests/e2e/fixtures/task-instances-data.ts | 1 -
.../src/airflow/ui/tests/e2e/fixtures/xcom-data.ts | 1 -
.../airflow/ui/tests/e2e/utils/api/backfills.ts | 1 -
.../src/airflow/ui/tests/e2e/utils/api/dag-runs.ts | 1 -
.../src/airflow/ui/tests/e2e/utils/api/hitl.ts | 1 -
.../airflow/ui/tests/e2e/utils/api/variables.ts | 1 -
.../src/airflow/ui/tests/e2e/utils/shared.ts | 1 -
.../src/airflow/ui/tests/e2e/utils/ui/waits.ts | 1 -
airflow-core/src/airflow/utils/email.py | 2 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 4 +-
.../always/test_secrets_environment_variables.py | 144 +
.../managers/simple/test_simple_auth_manager.py | 27 +
.../auth/managers/test_base_auth_manager.py | 20 +
.../core_api/routes/public/test_assets.py | 65 +
.../core_api/routes/public/test_event_logs.py | 89 +-
.../core_api/routes/ui/test_deadlines.py | 67 +
.../core_api/services/ui/test_dag_run.py} | 43 +-
.../unit/api_fastapi/core_api/test_security.py | 57 +-
.../versions/head/test_task_state_store.py | 26 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 27 +-
airflow-core/tests/unit/models/test_deadline.py | 39 +
airflow-core/tests/unit/utils/test_email.py | 19 +
airflow-ctl/src/airflowctl/api/client.py | 3 -
airflow-ctl/src/airflowctl/api/operations.py | 22 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 4 -
airflow-ctl/tests/airflow_ctl/api/test_client.py | 46 +
chart/.pre-commit-config.yaml | 7 +
chart/README.md | 2 +-
chart/values.schema.json | 478 ++--
contributing-docs/18_contribution_workflow.rst | 2 +-
contributing-docs/30_new_language_sdk.rst | 161 +-
.../testing/task_sdk_integration_tests.rst | 2 +-
dev/breeze/doc/ci/02_images.md | 4 +-
.../airflow_breeze/commands/kubernetes_commands.py | 54 +-
.../commands/release_management_commands.py | 4 +-
dev/breeze/src/airflow_breeze/global_constants.py | 4 +-
.../tests/test_kubernetes_lang_sdk_commands.py | 9 +
dev/breeze/uv.lock | 80 +-
.../react_plugin_template/package.json | 44 +-
.../react_plugin_template/pnpm-lock.yaml | 2820 ++++++++++----------
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 2 +-
generated/known_airflow_exceptions.txt | 7 +-
go-sdk/edge/commands/root.go | 1 -
go-sdk/go.mod | 4 +-
go-sdk/go.sum | 14 -
go-sdk/pkg/config/config.go | 37 +-
kubernetes-tests/lang_sdk/README.md | 6 +
kubernetes-tests/lang_sdk/go_example/go.mod | 2 -
kubernetes-tests/lang_sdk/go_example/go.sum | 14 -
providers/.last_release_date.txt | 2 +-
providers/airbyte/README.rst | 6 +-
providers/airbyte/docs/changelog.rst | 11 +
providers/airbyte/docs/index.rst | 6 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 6 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
.../airflow/providers/airbyte/sensors/airbyte.py | 25 +-
.../tests/unit/airbyte/sensors/test_airbyte.py | 34 +
providers/alibaba/README.rst | 6 +-
providers/alibaba/docs/changelog.rst | 14 +
providers/alibaba/docs/index.rst | 6 +-
providers/alibaba/provider.yaml | 7 +-
providers/alibaba/pyproject.toml | 6 +-
.../src/airflow/providers/alibaba/__init__.py | 2 +-
.../alibaba/cloud/log/oss_task_handler.py | 26 +
.../airflow/providers/alibaba/get_provider_info.py | 6 +
.../unit/alibaba/cloud/hooks/test_maxcompute.py | 18 +-
.../alibaba/cloud/log/test_oss_task_handler.py | 83 +-
providers/amazon/README.rst | 16 +-
providers/amazon/docs/changelog.rst | 52 +
providers/amazon/docs/index.rst | 16 +-
providers/amazon/docs/logging/s3-task-handler.rst | 20 +
providers/amazon/provider.yaml | 18 +-
providers/amazon/pyproject.toml | 23 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../providers/amazon/aws/log/s3_task_handler.py | 7 +
.../airflow/providers/amazon/aws/operators/dms.py | 11 +-
.../airflow/providers/amazon/aws/operators/eks.py | 44 +-
.../amazon/aws/operators/redshift_data.py | 8 +
.../providers/amazon/aws/operators/sagemaker.py | 18 +-
.../amazon/aws/secrets/secrets_manager.py | 55 +-
.../amazon/aws/secrets/systems_manager.py | 55 +-
.../airflow/providers/amazon/aws/triggers/eks.py | 30 +-
.../providers/amazon/aws/triggers/redshift_data.py | 31 +
.../airflow/providers/amazon/aws/utils/__init__.py | 42 +-
.../airflow/providers/amazon/get_provider_info.py | 7 +
.../aws/example_eks_with_fargate_in_one_step.py | 5 -
.../amazon/aws/example_eks_with_fargate_profile.py | 5 -
.../aws/example_eks_with_nodegroup_in_one_step.py | 4 -
.../amazon/aws/example_eks_with_nodegroups.py | 4 -
...xample_glue_data_quality_with_recommendation.py | 5 +
.../unit/amazon/aws/log/test_s3_task_handler.py | 53 +
.../tests/unit/amazon/aws/operators/test_dms.py | 36 +-
.../tests/unit/amazon/aws/operators/test_eks.py | 119 +
.../amazon/aws/operators/test_redshift_data.py | 41 +
.../aws/operators/test_sagemaker_notebook.py | 19 +
.../aws/operators/test_sagemaker_processing.py | 15 +-
.../amazon/aws/secrets/test_secrets_manager.py | 68 +-
.../amazon/aws/secrets/test_systems_manager.py | 80 +-
.../tests/unit/amazon/aws/triggers/test_eks.py | 44 +
.../unit/amazon/aws/triggers/test_redshift_data.py | 81 +
.../tests/unit/amazon/aws/utils/test_utils.py | 66 +
providers/anthropic/README.rst | 6 +-
providers/anthropic/docs/changelog.rst | 11 +
providers/anthropic/docs/index.rst | 6 +-
providers/anthropic/provider.yaml | 3 +-
providers/anthropic/pyproject.toml | 6 +-
.../src/airflow/providers/anthropic/__init__.py | 2 +-
providers/apache/hdfs/README.rst | 18 +-
providers/apache/hdfs/docs/changelog.rst | 12 +
providers/apache/hdfs/docs/index.rst | 18 +-
providers/apache/hdfs/provider.yaml | 3 +-
providers/apache/hdfs/pyproject.toml | 21 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
providers/apache/hive/README.rst | 18 +-
providers/apache/hive/docs/changelog.rst | 17 +
providers/apache/hive/docs/index.rst | 18 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 21 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
providers/apache/kafka/README.rst | 6 +-
providers/apache/kafka/docs/changelog.rst | 15 +
providers/apache/kafka/docs/index.rst | 6 +-
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 6 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
.../airflow/providers/apache/kafka/hooks/base.py | 27 +-
.../providers/apache/kafka/operators/consume.py | 112 +-
.../providers/apache/kafka/sensors/kafka.py | 10 +
.../apache/kafka/triggers/await_message.py | 13 +-
.../tests/unit/apache/kafka/hooks/test_base.py | 25 +-
.../unit/apache/kafka/operators/test_consume.py | 42 +
.../tests/unit/apache/kafka/sensors/test_kafka.py | 22 +
.../apache/kafka/triggers/test_await_message.py | 72 +
providers/apache/livy/README.rst | 6 +-
providers/apache/livy/docs/changelog.rst | 13 +
providers/apache/livy/docs/index.rst | 6 +-
providers/apache/livy/provider.yaml | 3 +-
providers/apache/livy/pyproject.toml | 6 +-
.../src/airflow/providers/apache/livy/__init__.py | 2 +-
.../providers/apache/livy/operators/livy.py | 66 +-
.../tests/unit/apache/livy/operators/test_livy.py | 127 +-
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 18 +
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
providers/arangodb/README.rst | 6 +-
providers/arangodb/docs/changelog.rst | 13 +
providers/arangodb/docs/index.rst | 6 +-
providers/arangodb/provider.yaml | 3 +-
providers/arangodb/pyproject.toml | 6 +-
.../src/airflow/providers/arangodb/__init__.py | 2 +-
.../providers/arangodb/operators/arangodb.py | 4 +-
.../tests/unit/arangodb/operators/test_arangodb.py | 12 +
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 11 +
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 3 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
providers/clickhousedb/docs/changelog.rst | 1 +
providers/clickhousedb/provider.yaml | 2 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 38 +
providers/cncf/kubernetes/docs/index.rst | 7 +-
providers/cncf/kubernetes/docs/kubernetes_rbac.rst | 179 ++
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 9 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 6 +-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 24 +
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 20 +
providers/cohere/README.rst | 6 +-
providers/cohere/docs/changelog.rst | 18 +
providers/cohere/docs/index.rst | 6 +-
providers/cohere/provider.yaml | 3 +-
providers/cohere/pyproject.toml | 6 +-
.../src/airflow/providers/cohere/__init__.py | 2 +-
providers/common/ai/README.rst | 5 +-
providers/common/ai/docs/changelog.rst | 25 +-
providers/common/ai/provider.yaml | 2 +-
.../ai/tests/unit/common/ai/policies/test_retry.py | 4 +-
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 +-
.../common/compat/security/access_view.py | 10 +-
.../common/compat/security/test_access_view.py | 28 +-
.../common/io/docs/.latest-doc-only-change.txt | 2 +-
providers/common/io/docs/xcom_backend.rst | 4 +-
providers/common/sql/README.rst | 14 +-
providers/common/sql/docs/changelog.rst | 24 +
providers/common/sql/docs/index.rst | 14 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 21 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../airflow/providers/common/sql/operators/sql.py | 56 +-
.../tests/unit/common/sql/operators/test_sql.py | 76 +
providers/databricks/README.rst | 18 +-
providers/databricks/docs/changelog.rst | 22 +
providers/databricks/docs/index.rst | 18 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 21 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 20 +
providers/dbt/cloud/docs/index.rst | 6 +-
providers/dbt/cloud/provider.yaml | 3 +-
providers/dbt/cloud/pyproject.toml | 6 +-
.../src/airflow/providers/dbt/cloud/__init__.py | 2 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 11 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 24 +
providers/edge3/docs/index.rst | 6 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 6 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../providers/edge3/example_dags/win_notepad.py | 2 +-
.../providers/edge3/example_dags/win_test.py | 2 +-
.../providers/edge3/plugins/www/package.json | 4 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 184 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 22 +
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/docs/logging/index.rst | 11 +
providers/elasticsearch/provider.yaml | 7 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
.../providers/elasticsearch/get_provider_info.py | 6 +
.../providers/elasticsearch/log/es_task_handler.py | 30 +-
.../unit/elasticsearch/log/test_es_task_handler.py | 70 +-
providers/exasol/README.rst | 18 +-
providers/exasol/docs/changelog.rst | 11 +
providers/exasol/docs/index.rst | 18 +-
providers/exasol/provider.yaml | 3 +-
providers/exasol/pyproject.toml | 21 +-
.../src/airflow/providers/exasol/__init__.py | 2 +-
providers/fab/README.rst | 8 +-
providers/fab/docs/auth-manager/access-control.rst | 6 +-
providers/fab/docs/changelog.rst | 24 +
providers/fab/docs/index.rst | 8 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 8 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 13 +-
.../fab/auth_manager/security_manager/override.py | 1 +
.../providers/fab/www/security/permissions.py | 1 +
providers/git/README.rst | 6 +-
providers/git/docs/changelog.rst | 11 +
providers/git/docs/index.rst | 6 +-
providers/git/provider.yaml | 3 +-
providers/git/pyproject.toml | 6 +-
.../git/src/airflow/providers/git/__init__.py | 2 +-
.../git/src/airflow/providers/git/bundles/git.py | 8 +-
providers/git/tests/unit/git/bundles/test_git.py | 58 +
providers/google/README.rst | 12 +-
providers/google/docs/changelog.rst | 36 +-
providers/google/docs/index.rst | 12 +-
.../google/docs/operators/cloud/cloud_sql.rst | 39 +
.../google-cloud-secret-manager-backend.rst | 42 +
providers/google/provider.yaml | 7 +-
providers/google/pyproject.toml | 15 +-
.../src/airflow/providers/google/ads/hooks/ads.py | 8 +-
.../providers/google/cloud/hooks/cloud_sql.py | 32 +
.../providers/google/cloud/hooks/dataform.py | 2 -
.../google/cloud/log/stackdriver_task_handler.py | 38 +-
.../providers/google/cloud/operators/gen_ai.py | 18 +-
.../google/cloud/secrets/secret_manager.py | 85 +-
.../providers/google/cloud/sensors/cloud_sql.py | 147 +
.../google/cloud/transfers/bigquery_to_mssql.py | 22 +-
.../google/cloud/transfers/bigquery_to_sql.py | 11 +-
.../providers/google/cloud/transfers/gcs_to_gcs.py | 40 +-
.../google/cloud/triggers/cloud_composer.py | 7 +-
.../providers/google/cloud/triggers/cloud_sql.py | 81 +-
.../airflow/providers/google/get_provider_info.py | 10 +-
.../operators/analytics_admin.py | 2 +-
.../google/tests/system/google/ads/example_ads.py | 2 +-
.../google/cloud/cloud_sql/example_cloud_sql.py | 11 +
.../unit/google/cloud/hooks/test_cloud_sql.py | 20 +
.../tests/unit/google/cloud/hooks/test_dataform.py | 23 +-
.../cloud/log/test_stackdriver_task_handler.py | 63 +
.../unit/google/cloud/operators/test_gen_ai.py | 50 +
.../google/cloud/secrets/test_secret_manager.py | 193 +-
.../unit/google/cloud/sensors/test_cloud_sql.py | 127 +
.../cloud/transfers/test_bigquery_to_mssql.py | 53 +
.../unit/google/cloud/transfers/test_gcs_to_gcs.py | 63 +-
.../google/cloud/triggers/test_cloud_composer.py | 59 +
.../unit/google/cloud/triggers/test_cloud_sql.py | 82 +-
.../operators/test_analytics_admin.py | 25 +
providers/hashicorp/README.rst | 6 +-
providers/hashicorp/docs/changelog.rst | 20 +
providers/hashicorp/docs/index.rst | 6 +-
providers/hashicorp/provider.yaml | 3 +-
providers/hashicorp/pyproject.toml | 6 +-
.../src/airflow/providers/hashicorp/__init__.py | 2 +-
providers/http/docs/.latest-doc-only-change.txt | 2 +-
providers/imap/README.rst | 6 +-
providers/imap/docs/changelog.rst | 12 +
providers/imap/docs/index.rst | 6 +-
providers/imap/provider.yaml | 3 +-
providers/imap/pyproject.toml | 6 +-
.../imap/src/airflow/providers/imap/__init__.py | 2 +-
.../imap/src/airflow/providers/imap/hooks/imap.py | 28 +-
providers/imap/tests/unit/imap/hooks/test_imap.py | 64 +-
providers/keycloak/README.rst | 8 +-
providers/keycloak/docs/changelog.rst | 23 +
providers/keycloak/docs/index.rst | 8 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 8 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../providers/keycloak/auth_manager/constants.py | 6 +-
.../keycloak/auth_manager/keycloak_auth_manager.py | 255 +-
.../providers/keycloak/auth_manager/middleware.py | 246 ++
.../keycloak/auth_manager/routes/login.py | 15 -
.../airflow/providers/keycloak/version_compat.py | 1 +
.../keycloak/auth_manager/routes/test_login.py | 2 +
.../auth_manager/test_keycloak_auth_manager.py | 243 +-
.../unit/keycloak/auth_manager/test_middleware.py | 372 +++
providers/microsoft/azure/README.rst | 6 +-
providers/microsoft/azure/docs/changelog.rst | 25 +
providers/microsoft/azure/docs/index.rst | 6 +-
providers/microsoft/azure/provider.yaml | 7 +-
providers/microsoft/azure/pyproject.toml | 6 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/get_provider_info.py | 6 +
.../microsoft/azure/log/wasb_task_handler.py | 35 +-
.../providers/microsoft/azure/secrets/key_vault.py | 56 +-
.../microsoft/azure/transfers/local_to_adls.py | 4 +-
.../microsoft/azure/log/test_wasb_task_handler.py | 153 ++
.../unit/microsoft/azure/secrets/test_key_vault.py | 102 +
.../azure/transfers/test_local_to_adls.py | 3 +-
providers/neo4j/README.rst | 6 +-
providers/neo4j/docs/changelog.rst | 13 +
providers/neo4j/docs/index.rst | 6 +-
providers/neo4j/provider.yaml | 3 +-
providers/neo4j/pyproject.toml | 6 +-
.../neo4j/src/airflow/providers/neo4j/__init__.py | 2 +-
providers/openai/README.rst | 6 +-
providers/openai/docs/changelog.rst | 44 +
providers/openai/docs/index.rst | 6 +-
providers/openai/provider.yaml | 3 +-
providers/openai/pyproject.toml | 6 +-
.../src/airflow/providers/openai/__init__.py | 2 +-
.../src/airflow/providers/openai/exceptions.py | 4 +
.../src/airflow/providers/openai/hooks/openai.py | 26 +-
.../airflow/providers/openai/operators/openai.py | 8 +-
.../airflow/providers/openai/triggers/openai.py | 89 +-
.../openai/tests/unit/openai/hooks/test_openai.py | 39 +-
.../tests/unit/openai/operators/test_openai.py | 40 +
.../tests/unit/openai/triggers/test_openai.py | 133 +-
providers/openlineage/README.rst | 4 +-
providers/openlineage/docs/changelog.rst | 11 +-
providers/openlineage/docs/index.rst | 4 +-
providers/openlineage/provider.yaml | 2 +-
providers/openlineage/pyproject.toml | 4 +-
.../airflow/providers/openlineage/utils/utils.py | 35 +-
.../tests/unit/openlineage/utils/test_utils.py | 154 +-
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 | 8 +-
.../unit/opensearch/log/test_os_task_handler.py | 8 +-
providers/papermill/README.rst | 18 +-
providers/papermill/docs/changelog.rst | 16 +
providers/papermill/docs/index.rst | 18 +-
providers/papermill/provider.yaml | 3 +-
providers/papermill/pyproject.toml | 21 +-
.../src/airflow/providers/papermill/__init__.py | 2 +-
providers/postgres/README.rst | 14 +-
providers/postgres/docs/changelog.rst | 17 +
providers/postgres/docs/index.rst | 14 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 21 +-
.../src/airflow/providers/postgres/__init__.py | 2 +-
.../airflow/providers/postgres/hooks/postgres.py | 7 +-
.../tests/unit/postgres/hooks/test_postgres.py | 4 +-
providers/presto/README.rst | 18 +-
providers/presto/docs/changelog.rst | 18 +
providers/presto/docs/index.rst | 18 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 21 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/salesforce/README.rst | 18 +-
providers/salesforce/docs/changelog.rst | 12 +
providers/salesforce/docs/index.rst | 18 +-
providers/salesforce/provider.yaml | 3 +-
providers/salesforce/pyproject.toml | 21 +-
.../src/airflow/providers/salesforce/__init__.py | 2 +-
providers/sftp/README.rst | 6 +-
providers/sftp/docs/changelog.rst | 17 +
providers/sftp/docs/index.rst | 6 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 6 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 6 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 5 +-
providers/smtp/README.rst | 6 +-
providers/smtp/docs/changelog.rst | 11 +
providers/smtp/docs/index.rst | 6 +-
providers/smtp/provider.yaml | 3 +-
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 2 +-
providers/smtp/tests/unit/smtp/hooks/test_smtp.py | 20 +
providers/snowflake/README.rst | 12 +-
providers/snowflake/docs/changelog.rst | 28 +
providers/snowflake/docs/index.rst | 12 +-
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 21 +-
.../src/airflow/providers/snowflake/__init__.py | 2 +-
.../snowflake/operators/snowpark_containers.py | 4 +-
.../operators/test_snowpark_containers.py | 11 +-
providers/ssh/README.rst | 6 +-
providers/ssh/docs/changelog.rst | 21 +
providers/ssh/docs/index.rst | 6 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 6 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
.../providers/ssh/operators/ssh_remote_job.py | 4 +-
.../src/airflow/providers/ssh/utils/remote_job.py | 52 +-
providers/ssh/tests/unit/ssh/hooks/test_ssh.py | 49 +-
.../unit/ssh/operators/test_ssh_remote_job.py | 24 +
.../ssh/tests/unit/ssh/utils/test_remote_job.py | 53 +-
providers/standard/README.rst | 6 +-
providers/standard/docs/changelog.rst | 38 +
providers/standard/docs/index.rst | 6 +-
providers/standard/provider.yaml | 3 +-
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
.../airflow/providers/standard/operators/hitl.py | 24 +-
.../providers/standard/sensors/date_time.py | 13 +-
.../providers/standard/sensors/external_task.py | 41 +-
.../providers/standard/sensors/filesystem.py | 17 +-
.../src/airflow/providers/standard/sensors/time.py | 9 +-
.../providers/standard/sensors/time_delta.py | 21 +-
.../tests/unit/standard/operators/test_hitl.py | 11 +
.../tests/unit/standard/sensors/test_date_time.py | 32 +
.../standard/sensors/test_external_task_sensor.py | 145 +
.../tests/unit/standard/sensors/test_filesystem.py | 25 +
.../tests/unit/standard/sensors/test_time.py | 19 +
.../tests/unit/standard/sensors/test_time_delta.py | 25 +
providers/telegram/README.rst | 6 +-
providers/telegram/docs/changelog.rst | 12 +
providers/telegram/docs/index.rst | 6 +-
providers/telegram/provider.yaml | 3 +-
providers/telegram/pyproject.toml | 6 +-
.../src/airflow/providers/telegram/__init__.py | 2 +-
.../providers/telegram/operators/telegram.py | 2 +-
.../tests/unit/telegram/operators/test_telegram.py | 17 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 16 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
.../airflow/providers/teradata/operators/bteq.py | 3 +-
.../tests/unit/teradata/operators/test_bteq.py | 3 +-
providers/trino/README.rst | 18 +-
providers/trino/docs/changelog.rst | 18 +
providers/trino/docs/index.rst | 18 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 21 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
providers/weaviate/README.rst | 18 +-
providers/weaviate/docs/changelog.rst | 21 +
providers/weaviate/docs/connections.rst | 2 +-
providers/weaviate/docs/index.rst | 18 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 21 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
providers/yandex/README.rst | 6 +-
providers/yandex/docs/changelog.rst | 12 +
providers/yandex/docs/index.rst | 6 +-
providers/yandex/provider.yaml | 3 +-
providers/yandex/pyproject.toml | 6 +-
.../src/airflow/providers/yandex/__init__.py | 2 +-
.../airflow/providers/yandex/secrets/lockbox.py | 38 +-
.../tests/unit/yandex/secrets/test_lockbox.py | 73 +
pyproject.toml | 2 +-
scripts/ci/install_breeze.sh | 2 +-
... => sort_helm_values_schema_file_type_field.py} | 67 +-
.../ci/prek/validate_operators_init_exemptions.txt | 4 -
scripts/tools/setup_breeze | 2 +-
task-sdk/pyproject.toml | 15 +-
task-sdk/src/airflow/sdk/api/client.py | 6 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 46 +-
.../src/airflow/sdk/serde/serializers/pandas.py | 45 +
task-sdk/tests/task_sdk/api/test_client.py | 41 +
task-sdk/tests/task_sdk/serde/test_serializers.py | 28 +
uv.lock | 1322 ++++-----
575 files changed, 11787 insertions(+), 4697 deletions(-)
create mode 100644 airflow-core/newsfragments/69675.bugfix.rst
create mode 100644 airflow-core/newsfragments/70708.bugfix.rst
create mode 100644 airflow-core/newsfragments/70759.significant.rst
create mode 100644 airflow-core/newsfragments/70791.significant.rst
copy airflow-core/src/airflow/ui/src/{pages/Dag/Code/FileLocation.test.tsx =>
components/Graph/TaskLink.test.tsx} (55%)
create mode 100644
airflow-core/tests/unit/always/test_secrets_environment_variables.py
copy
airflow-core/{src/airflow/migrations/versions/0008_2_8_1_refactor_dag_run_indexes.py
=> tests/unit/api_fastapi/core_api/services/ui/test_dag_run.py} (52%)
create mode 100644 providers/cncf/kubernetes/docs/kubernetes_rbac.rst
create mode 100644
providers/google/src/airflow/providers/google/cloud/sensors/cloud_sql.py
create mode 100644
providers/google/tests/unit/google/cloud/sensors/test_cloud_sql.py
create mode 100644
providers/keycloak/src/airflow/providers/keycloak/auth_manager/middleware.py
create mode 100644
providers/keycloak/tests/unit/keycloak/auth_manager/test_middleware.py
copy scripts/ci/prek/{check_init_in_tests.py =>
sort_helm_values_schema_file_type_field.py} (50%)