This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a change to branch bump-infrastructure-actions-tags
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit ee1dfa39cbe Stop suppressing ref-version-mismatch for the allowlist
check
omit 55d377a701f Pin apache/infrastructure-actions to its released tags
add bce20ff30bb Catch lang-SDK Go example module drift before it reaches
main (#70568)
add f840a821380 Make deadline reads and serialization robust to
dynamic/malformed intervals (#68919)
add 87ac18b0b94 UI: Add a slowest tasks chart to the Dag Overview (#70305)
add 4d5bb4bd82f Bump the fab-ui-package-updates group across 1 directory
with 3 updates (#70604)
add 3a163392825 Bump the auth-ui-package-updates group across 1 directory
with 6 updates (#70607)
add fc7da80c665 Bump @testing-library/jest-dom (#70609)
add 6575b3fdc4e Fix asset state store writes forbidden under FAB auth
manager (#70478)
add d7a921ede7f Bump the uv-dependency-updates group in /dev/breeze with 3
updates (#70606)
add 3c54ec32c97 Bump the github-actions-updates group with 5 updates
(#70617)
add 0eca3240914 Clarify provider release testing status issue creation
instructions (#70356)
add 30506688167 Support schema-qualified table names in db clean (#70147)
add b12df0525d7 Add IMPORT_ERRORS_ALL permission for import errors of
files with no registered Dag (#69790)
add c6449eb429f Build the docs CI image once and let the registry share it
(#70618)
add f31f5e4319c Remove unneeded forward-reference quotes from a type alias
(#70580)
add 6be11331c2e Bump swagger-ui-dist (#70598)
add 68c06c9ff7a Bump the react group across 1 directory with 2 updates
(#70603)
add 9595a58c01e Honour the selected Python version when building docs
(#70642)
add 88f95c706eb Document how to rotate the Fernet key with the Helm chart
(#70242)
add 1e7f553598e UI: Wire advanced-search toggle for Grid Triggering User
filter (#70567)
add dc75103d64c Allow configuring key names in database credential secrets
(#69954)
add c94f178ccdb Add Microsoft to INTHEWILD.md (#70575)
add 78b88db5aba Regenerate UI client and fix deadline alerts with no fixed
interval (#70637)
add 443b9199cb8 Review and update constraint dependencies (#70652)
add e272ae7f977 Fix #60763: Deactivate legacy DAGs with NULL bundle_name
during upgrade from 2.x to 3.x (#61019)
add ea7f1cfbee7 Copy 2.11.2 release notes to main (#70648)
add 9e5b7701f8d Fix asset event scheduling race condition and consistency
(#62501)
add 2c1035a9732 Speed up Trigger.clean_unused query to prevent Triggerer
crashes (#68244)
add ebe6c58d42e Fix triggerer CrashLoopBackOff when json_logs is enabled
(#68584)
add d9d8fdb3a19 Speed up docs publishes by reusing the previously built CI
image (#70650)
add d6cb0084de9 [AIP-94] Mark backfill create as migrated to airflowctl
(#68536)
add 703a0570c84 Add opt-in concurrent pod creation to KubernetesExecutor
(#68480)
add b43a87e58fc Run UI compile checks in CI when only an OpenAPI spec
changes (#70643)
add 602e74a22a6 Clarify AssetAlias usage (#67392)
add f346e6449c6 Skip the docs CI image build when that ref was already
built (#70675)
add f388d4292b6 Fix mypy arg-type error in Redshift Data get_primary_keys
(#70677)
add 44e5982e29d Wait for vector index to stabilize in
`example_bedrock_retrieve_and_generate` (#70649)
add eed1a39135b Rename StepFunctionStartExecutionOperator's input field to
match its constructor argument (#70544)
add 2d959316012 Tidy taskgroup topo-sort tests; note why grid group_dict
is uncached (#70590)
add 4601fb0b8c9 Add the Taiwanese Mandarin string for variable-interval
deadlines (#70655)
add 00897381170 Fix registry publish silently skipping for some docs
publishers (#70645)
add f54c8eef484 UI: Add timetable type filter to Dag list (#69728)
add e3d060b7f64 Guard the backfill dag-runs list query count and tidy test
params (#70126)
add fd0ec61c503 Consolidate UI Dependency Graphs (#69833)
add d8074062e6e Show backfill Dag runs in the UI (#70159)
add 0cdb8cc4a1a Move keycloak JWT tokens to separate cookies (#70550)
add c9f06bc42b6 Fix OpenLineage team_name access and other failing paths
(#70626)
add 2c6e210a29e Upgrade UI dependencies (patch/minor and dev-tooling
bumps) (#70546)
add 690d43da8c4 Hide run-on-latest-version option for non-versioned
bundles (#70427)
add fa812e1da07 Bump eslint (#70697)
add 658bd8a2885 Add tests for Keycloak token models (#70689)
add 221da637bd2 Breeze: Make postgres driver explicit and version-aware
(#70496)
add 8596a0fb643 Decouple SparkSubmitOperator resumable deployment backends
(#68679)
add 682cf06525c Revert AWS services toolset for common AI provider
(#70695)
add a15ef5081d9 Make Redshift system-test clusters non-public in
sql_to_s3/s3_to_sql (#70705)
add ffe077e8cd3 Add `DmsReloadTablesOperator` (#70569)
add 13d7df70ecd Fix DbtCloudRunJobOperator having false failures during
deferred polling (#70581)
add 07f5458df87 Add airflowctl dags clear command (#68706)
add abd837a382c Java SDK: Change coordinator comm to use multiplexing
(#69254)
add dbb5c7ffff9 Fail Neo4jOperator argument mistakes at Dag parse time
(#70508)
add b3014293344 Raise the datamodel-code-generator floor for the codegen
toolchain (#70670)
add d1bd535107d Restore Dag-parse-time validation for Databricks Repos
operator arguments (#70551)
add f781f8b8785 Keep S3DeleteObjectsOperator validation in __init__,
narrow to ValueError (#70359)
add 4cb967fd5c2 Add /ui/assets endpoint with last-event sort and use it in
the Assets list (#69940)
add 4f6186db09f Fix trigger kwargs decoding for asset watcher triggers
(#65992)
add 193b2e36b06 Document jwt_secret _secret and LocalFilesystemBackend
config support (#67940)
add ee8bb6d2649 Docs: clarify Databricks retry_delay uses exponential
backoff (#68622)
add 3fb080bf487 Add run_type tag to dagrun.duration.failed timeout metric
(#67765)
add d11422ee0c6 Fix getsection() dropping env-var overrides on
lazy-registered provider sections (#68895)
add 84ac434aaa1 Improve SQLite test DB health checks (#68021)
add f5f431378f1 Document effect of state-store cleanup for operators with
durable execution (#70721)
add 3de732ab9b2 Fix BashOperator script detection after templating (#70369)
add 724aaade2f6 Bump structlog>=26.1.0 and croniter>=6.2.2 to fix memory
leaks (#70694)
add ba105ea98b6 Add metrics for how often a dag gets serialised. (#68906)
add a69ef4c4928 Add airflowctl tasks failed-deps command (#69397)
add 521ad026ee4 cli: Fix TypeError in 'airflow db shell' when database
name is missing (#68913)
add ee5f3798e8d Emit GCSListObjectsOperator delimiter deprecation warning
after rendering (#70533)
add 13a3cd73173 i18n(ko): add missing translations(Jul 22) (#70211)
add 9fecfd5d995 Fix config update --option/--ignore-option never matching
options (#70240)
add 9481c8e2239 Fix KubernetesPodOperator dry_run requiring live
Kubernetes API client (#70234)
add f0d50bdb178 [AIP-94] Mark tasks CLI commands as migrated to airflowctl
(#69274)
add bc033da913d Handle ValueError for `trigger_dag_run` API request
(#67601)
add 20b9a85c557 Add custom metrics section in metrics docs (#69371)
add 61a0779687d Keep HTTPRoute schema definitions consistent (#70673)
add eca48163048 Add `--min-completed-minutes` to `cleanup-pods` to prevent
KPO race condition (#70595)
add 77838ed374f Validate common AI tool-call arguments to enable
pydantic-ai retries (#70096)
add 9f887794ef7 Fix incorrect code samples in the Deadline Alerts docs
(#70709)
add b74616b500e Helm: Scope KEDA_DB_CONN to worker and triggerer pods
(#70213)
add c86ba34f508 Documenting effect if task state store cleanup for KPO
(#70722)
add 92489784eeb Fix airflowctl failed-deps test fixture missing required
fields (#70776)
add cea9e6efdb5 Document effect of state-store cleanup in
ResumableJobMixin (#70718)
add e9dadbced43 Remove duplicate code (#70785)
add ecd4d951da1 Avoid duplicate trigger-rule upstream-count queries per
scheduling pass (#67672)
add 9d07d7c47ba Bump the edge-ui-package-updates group across 1 directory
with 31 updates (#70616)
add 4338fb82c38 i18n(Ko): add missing translations (Jul 30) (#70767)
add ce469bd89b2 i18n(ko): add missing translations(Jul 30) (#70765)
add 694e5b50352 Redact secrets from LLMRetryPolicy classification prompts
(#70229)
add fbac2f5ce19 Add a Retry Policies category to the provider registry
(#70499)
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 ece27bba4a5 Regenerate stale provider dependencies instead of silently
using them (#70955)
add 8572ede43d1 Show user display names for triggered runs and HITL
responses (#70836)
add 3cfbbe6b055 Replace external hclog-slog adapter with an in-tree one in
the Go SDK (#70918)
add 109c257919f Drop stale type:ignore[override] on
ExecutionAPISecretsBackend (#68415)
add 40ced09754f Guard 2 to 3+ migration against custom Dag bundle configs
using startup-based initialization (#63185)
add 2db44cdcfce Stop dumping every Dag to stdout when syncing FAB
permissions (#70939)
add b3cc48d5ab2 Make serde errors for unsupported types a bit more
actionable (#70974)
add 548181679d7 Match providers to Explore categories by integration name,
not just id (#70498)
add b316afb44dc Show larger dag run and task instance counts on the
dashboard (#70892)
add a14105b2592 UI: Refresh task details immediately when switching tasks
(#70789)
add 115eb43aba8 Build docs and registry CI images separately so docs stay
on default Python (#70959)
add 0bda2ffece9 Relax types-paramiko to support version 5 (#71009)
add d4449b22444 Bump @types/node (#70870)
add 679cfca77ab Scan Go SDK dependencies for known vulnerabilities in CI
(#70915)
add eb076fee446 Limit Dependabot Go module updates to security advisories
only (#70914)
add 32be8fa754e Detect duplicate remote-logging schemes in provider.yaml
check (#70921)
add 09e49b4cae5 Avoid backlink noise when notifying PRs of uv.lock
conflicts (#71001)
add fb99b1dc0e0 Fix pytest class-scoped fixture deprecation warning in
extract_permissions tests (#71002)
add a1a2e94679f Make provider release changelog entries read for users,
not for us (#70948)
add fc8d6d8b619 Mask nested entities when writing bulk audit-log entries
(#70890)
add ed87a1a024a Refuse a separator-bearing secret id before the team
scoped lookup (#70902)
add 1baee0bf987 Do not import the stored path when rebuilding a Callback
from serialized data (#70704)
add 381339d5e7f Record the relaxed types-paramiko bound in uv.lock (#71039)
add bbb3c066109 Support require_approval in LLMBranchOperator (#70651)
add 79db9950006 Release TI lock before asset listener callbacks (#70951)
add b99aa145c40 Add regression test for SERVER_TERMINATED precedence over
retry (#70774)
add ee2e15e5e51 Update description on What is Airflow (#70547)
add b968192cd3a Mask list-shaped Variable values on deserialization
(#70891)
add 26d53bd1e84 Resolve the constraints a release ships instead of tagging
whatever exists (#71040)
add f0c13dc5f94 Fix task callbacks being skipped when
`TriggerDagRunOperator` gets a 404 (#70719)
add 64002a40580 Explicitly rollback on task state update exception (#71076)
add 22096909486 Only refuse team scoped like secret ids when multi_team is
on (#71078)
add a6265b77cf5 Resolve backfill_id in the access dependency with the type
the routes declare (#70889)
add f81459835ad Resolve the Dag's team when authorizing a Dag found by
lookup (#70893)
add d41ac7b6d21 Hide team scoped values of options registered as sensitive
(#70755)
add 8a15796a93c Add OpensearchRemoteLogIO.from_config and register
opensearch scheme (#70295)
add a424a811da8 Fix typos in README_RELEASE_PYTHON_CLIENT (#71089)
add 0aeec0c7962 Render multi-branch review choices as a multi-select
(#71046)
add b5414588d3e Fix airflowctl list operations ignoring the requested
offset (#70989)
add 562cc3e243c Separate JWT secret env var from the standard Airflow
environment helper (#70896)
add 2731cc29e4c Spark: Fix missing space in YARN waitAppCompletion error
message (#71055)
add 75d57f429e1 UI: Keep task try history consistent when switching tasks
(#70711)
add 9d4245ae51e Stop auto-scrolling task logs while the user is selecting
text (#70594)
add 16df29a4513 UI: Highlight selected Grid task square (#70451)
add 64683c9c84e Document the 409 from XCom create and drop a duplicated
condition (#70992)
add e98b9b3664d chore: rebase onto main to retrigger CI (#70538)
add 44acf383e47 Reference asset events from asset_dag_run_queue (#70972)
add b23fa6b7a95 Allow opentelemetry-exporter-prometheus pre-release in
candidate constraints resolution (#71110)
add 3a08a3d7792 Restrict exception-node deserialization to known classes
without importing the stored name (#68511)
add 64dd235970a Refresh the image cache on canary pushes, not only on the
schedule (#71137)
add a058f7d54eb Only refuse team-scoped-looking env var ids when
multi_team is on (#71079)
add c37ba12f1c1 Resolve release constraints against PyPI providers only
(#71140)
add 5f77c84133f Revert "Limit pandas to < 3 for DataFrame XComs (#70791)"
(#71100)
add 6145746438c Fix orphaned subprocesses and supervisor crash on
heartbeat 409 (#65738)
add f69c195aa7a Bump cryptography (#71139)
add 9a85faa9c55 Fix provider distribution builds failing with flit 4
(#71118)
add 24c00690ab1 Add vatsrahul1001 to the release-constraints workflow
allowlist (#71152)
add dd1f84ab203 Respect retries when a deferrable trigger ends a task with
TaskFailedEvent (#69821)
add fb459dec507 Keep not-ready providers out of the all extra (#71165)
add 4091ccf786b Add support for pandas 3 based xcoms in airflow (#71103)
add e69c1881b32 Refresh the image registry cache in a workflow that cannot
be cancelled (#71171)
add 2b7a0be359c Fail task instances whose stored next_kwargs cannot be
processed (#70685)
add 5af8d6b899e Allow opentelemetry-semantic-conventions pre-release in
constraints resolution (#71177)
add 1b246e8c1eb Complete the Traditional Chinese UI translations (#71019)
add 22ab0dc7dc4 Fix snowflake provider installs picking an unimportable
pyOpenSSL (#71145)
add 2d0ec09fe45 Fix some docs and test gaps following up multi team secret
refusal (#71106)
add 20f6aa09fca Fix ambiguous git refspec when pushing release-candidate
constraints (#71181)
add 2e0b22a2f9e Align Dag Runs docs with Airflow 3 trigger timetable
defaults (#70167)
add 448c1511ad2 Keep task log text selection alive while scrolling (#71148)
add 7b0eae51e0a Add BaseDeadlineReference and deadline_reference to the
SDK public interface (#70706)
add 5ead3bbc575 remove gropus claim from access tokens in the Keycloak
client created by KeycloakAuthManager cli (#71093)
add 52133f167b0 Allow opting out of forwarding Dag-level parameters in
DatabricksRunNowOperator (#70130)
add dc0e0bb084d Add on_kill() to DatabricksTaskBaseOperator to cancel runs
on task kill (#69442)
add b2a195a4a2a Add more provider module categories to the provider page
(#70190)
add 55b35f739c5 Prepare providers release 2026-08-06 (#71219)
add 43384c7d8bc Show which LLM providers each Common AI connection type
reaches (#70497)
add f6c19e476db Stop Dependabot from raising Go SDK PRs against v3-3-test
(#71223)
add de5c8196de5 Fix release dry-run aborting on a workflow run it never
dispatched (#71131)
add ddef168d1fe Give each mypy prek hook its own file list in CI (#70654)
add 4a6f11c55ab Bump the react group across 1 directory with 2 updates
(#71021)
add c0f6a60cdcb Update changelog with better wording (#71161)
add 3dd13702095 UI: Fix preventRunningTasks showing as raw i18n key in
Clear Task dialogs (#71045)
add f3a093d0b99 Bump the ui-plugin-template-package-updates group across 1
directory with 4 updates (#71027)
add 7781dfb9a99 Fix broken translation guide links in the i18n README
(#71179)
add b6e7c2088c9 Support Monaco Editor 0.56 public exports (#70937)
add 30f782cd67d Fix copying task logs dropping rows that scrolled out of
view (#71156)
add 299ca2c8580 Fix malformed GitDagBundle error message for missing
repository path (#70622)
add 86e86bd07d0 Fix missing _team_name on DagRun before some listener
calls (#70760)
add 858df9991d0 Bump ruff to 0.16.0 and pin the base lint rule set (#70725)
add 61f028989c0 [AIP-94] airflowctl jobs: add check command (#68534)
add e24f5294645 Add indexes on serialized_dag and dag_code (#69391)
add e8ba9507034 Add Databricks-native retry settings to task operators
(#69182)
add 787e323ca46 Support custom redaction and message length cap in
LLMRetryPolicy (#70830)
add ee643dffc40 Use sqlite3.sqlite_version_info instead of hand-parsing
the version string (#71115)
add 5ed6f8f3217 Improve confirmation output when connections are added via
cli (#71215)
add 5b04b42936f Avoid scheduler crash when periodic maintenance actions
fail (#69487)
add 805a37cc03c Clarify template field validator guidance (#71210)
add 2c9d91ef341 Workaround bug in google-claude-aiplatform evaluation
extra (Python 3.15) (#71273)
add 274011b4372 Prevent agent checks from starting local servers (#71239)
add b4394c1ff0c Eliminate trust policy race by migrating emr_eks test to
Pod Identity (#71207)
add 2b5fa228b55 Bump mermaid (#71264)
add 66149464031 Bump globals (#71291)
add b41b7db1ffb Fix version_added for the concurrent pod creation options
(#71157)
add 3d087a8e1d2 Prepare providers release 2026-08-08 (#71310)
add 3c37b4794f8 Fix Keycloak access for individual roles (#70906)
add fd0f7e263bf Add auth_protocol support to SambaHook for Kerberos
authentication #29590 (#64643)
add c014b912d4b Bound SQL toolset query results by size, not just row
count (#71317)
add ef54cd661c4 Fix deactivation of stale zip-packaged DAGs (#70586)
add 7790df7e2d4 add test_create_default and test_update in
test_operations.py (#71301)
add c7d7d704680 Use latest Google Ads API version by default (#71280)
add f47e7c8ddb0 Rename airflowctl assets get-by-alias to get-alias (#70453)
add 1f529f3837a Fix misspelled variable in CI migration test DB manager
export (#71334)
add f9b72d8ee44 Pin providers in constraints to the versions published in
PyPI (#71324)
add 6a0c3a6b260 Breeze: Fail when UI development ports are already in use
(#71241)
add 739c8070cf1 Validate provider metadata list entries instead of
ignoring them (#71104)
add 2e423d41071 Bump the uv-dependency-updates group across 1 directory
with 3 updates (#71297)
add 7e00142467f Bump the github-actions-updates group across 1 directory
with 8 updates (#71302)
add 9ec73bab050 Fix Java Beam SDK example to target Java 11 (#71218)
add 9c7fd6eb3ab Update provider metadata after the 2026-08-06 providers
release (#71338)
add ca31bc2e11f Catch general Exception when initializing a dag bundle
(#71355)
add 3160334d0ae Add HdfsRemoteLogIO.from_config and register hdfs remote
logging scheme (#71278)
add fe5107f1f8d Fix Grid view failing to load large Dags on MySQL (#71342)
add 7cdb9ad47af Fix 500 when combining last-run and any-run Dag state
filters (#71366)
add 54018baa191 Add backward-walk coverage for cursor-based pagination
(#71365)
add a37c358ade2 Disable separate Keycloak JWTs for Airflow v3.2- (#70981)
add 2ece6fd2928 Fix Airflow JWT getting cleared in /login_callback (#71077)
add 8b78cd38b34 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#71005)
add 4260b163366 Bump the auth-ui-package-updates group across 1 directory
with 7 updates (#71227)
add 8c16340ca49 Fix dynamic glue rule set recommendations sensor config
(#71117)
add 0ffa24abc6c Clarify that DAG.access_control is only read by the FAB
auth manager (#71260)
add 3260046a46e Include Bedrock ingestion job failure reasons in the error
message (#71124)
add 643a0fa29a6 Keep task log selection stable while dragging (#71155)
add dcd651c32ab Fix executor validation error referencing non-existent
[core] executors (#71336)
add 68ba707b32c Bump the core-ui-package-updates group across 1 directory
with 12 updates (#71298)
add 198944a3ce3 Support certificate auth for Microsoft Graph filesystem
(#71362)
add 655740bb982 Add new index for trigger (#69038)
add d3c02bbb2cb Harden TypeScript SDK dependency installation (#71394)
add d8cfc951f7e Convert check-sdk-imports to capture occurences than files
(#71212)
add 4d3a247fc41 Multi Team: Automatically create and assign team default
pools (#69768)
add a3b1e13827f Eager-load Assets list relationships with selectinload and
refresh it after new events (#70997)
add 76abfb9a891 Add TypeScript SDK dependency security checks (#71397)
add 956b7f866aa Verify Java SDK build dependencies (#71400)
add d1e5f1a6134 Fix Calendar view hanging for Dags with high-frequency
cron schedules (#71263)
add 576c6530784 Update providers metadata 2026-08-10 (#71385)
add 1637347c128 Bump the auth-ui-package-updates group across 1 directory
with 6 updates (#71410)
add e8b81132f88 Bump eslint-plugin-unicorn (#71412)
add a9c35b24ef1 Always tag providers from the wave tag during release
(#71431)
add fdbf56053cd Bump the edge-ui-package-updates group across 1 directory
with 14 updates (#71420)
add 84a211b5d22 UI: Show owning team on Dag, Dag Run, and Task Instance
detail pages (#70312)
add e3671dd24e1 Keep Dag run execution API endpoints working for older
Task SDK clients (#70138)
add bf4861f0c95 Pin apache/infrastructure-actions to its released tags
add b405e64245b Stop suppressing ref-version-mismatch for the allowlist
check
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 (ee1dfa39cbe)
\
N -- N -- N refs/heads/bump-infrastructure-actions-tags
(b405e64245b)
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:
.../prepare-providers-documentation/SKILL.md | 70 +-
.../actions/build_ci_image_with_cache/action.yml | 224 ++
.github/actions/migration_tests/action.yml | 4 +-
.../actions/prepare_breeze_and_image/action.yml | 13 +-
.github/dependabot.yml | 47 +-
.github/workflows/additional-ci-image-checks.yml | 65 +-
.github/workflows/airflow-e2e-tests.yml | 4 +-
.github/workflows/basic-tests.yml | 4 +-
.github/workflows/ci-amd.yml | 18 +-
.github/workflows/ci-arm.yml | 18 +-
.github/workflows/ci-image-build.yml | 198 +-
.github/workflows/ci-image-checks.yml | 2 +-
.github/workflows/codeql-analysis.yml | 8 +-
.github/workflows/generate-constraints.yml | 34 +-
.github/workflows/java-sdk-release-verify.yml | 44 +-
.github/workflows/k8s-tests.yml | 2 +-
.github/workflows/publish-docs-to-s3.yml | 105 +-
.github/workflows/recheck-old-bug-report.yml | 2 +-
.github/workflows/refresh-constraints.yml | 72 +
.github/workflows/refresh-image-registry-cache.yml | 145 +
.github/workflows/registry-backfill.yml | 6 +-
.github/workflows/registry-build.yml | 113 +-
.github/workflows/registry-tests.yml | 2 +-
.github/workflows/release-constraints.yml | 277 ++
.github/workflows/stale.yml | 4 +-
...stry-tests.yml => ts-sdk-dependency-review.yml} | 40 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.github/workflows/update-constraints-on-push.yml | 18 +-
.pre-commit-config.yaml | 20 +-
AGENTS.md | 7 +-
COMMITTERS.rst | 2 +-
INTHEWILD.md | 1 +
ISSUE_TRIAGE_PROCESS.rst | 2 +-
README.md | 4 +-
RELEASE_NOTES.rst | 27 +
airflow-core/.pre-commit-config.yaml | 106 +-
.../logging-monitoring/metrics.rst | 71 +-
.../docs/authoring-and-scheduling/assets.rst | 10 +-
.../docs/core-concepts/auth-manager/index.rst | 37 +-
airflow-core/docs/core-concepts/dag-run.rst | 98 +-
airflow-core/docs/core-concepts/multi-team.rst | 5 +
airflow-core/docs/howto/deadline-alerts.rst | 27 +-
airflow-core/docs/howto/set-config.rst | 1 +
airflow-core/docs/howto/usage-cli.rst | 6 +
airflow-core/docs/index.rst | 6 +-
airflow-core/docs/migrations-ref.rst | 9 +-
.../docs/security/deprecated_permissions.rst | 20 +-
.../local-filesystem-secrets-backend.rst | 47 +-
airflow-core/newsfragments/62501.bugfix.rst | 1 +
airflow-core/newsfragments/63185.significant.rst | 3 +
airflow-core/newsfragments/67672.improvement.rst | 1 +
airflow-core/newsfragments/67765.bugfix.rst | 1 +
airflow-core/newsfragments/69675.bugfix.rst | 1 +
airflow-core/newsfragments/69768.feature.rst | 1 +
airflow-core/newsfragments/69790.feature.rst | 1 +
airflow-core/newsfragments/69821.bugfix.rst | 1 +
airflow-core/newsfragments/70240.bugfix.rst | 1 +
airflow-core/newsfragments/70708.bugfix.rst | 1 +
airflow-core/newsfragments/70755.significant.rst | 29 +
airflow-core/newsfragments/70759.significant.rst | 24 +
airflow-core/newsfragments/70972.significant.rst | 13 +
airflow-core/newsfragments/71103.significant.rst | 33 +
airflow-core/pyproject.toml | 6 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 63 +-
.../auth/managers/models/resource_details.py | 7 +
.../auth/managers/simple/simple_auth_manager.py | 17 +-
.../auth/managers/simple/ui/package.json | 40 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 1019 +++----
.../src/airflow/api_fastapi/common/db/assets.py | 54 +
.../src/airflow/api_fastapi/common/db/dag_runs.py | 6 +-
.../src/airflow/api_fastapi/common/db/dags.py | 37 +-
.../api_fastapi/common/db/task_instances.py | 5 +-
.../src/airflow/api_fastapi/common/parameters.py | 20 +-
.../api_fastapi/core_api/datamodels/assets.py | 29 +
.../api_fastapi/core_api/datamodels/dags.py | 1 +
.../api_fastapi/core_api/datamodels/ui/common.py | 1 +
.../api_fastapi/core_api/datamodels/ui/dags.py | 7 +
.../core_api/datamodels/ui/dashboard.py | 4 +-
.../api_fastapi/core_api/datamodels/ui/deadline.py | 31 +-
.../core_api/datamodels/ui/structure.py | 2 -
.../api_fastapi/core_api/openapi/_private_ui.yaml | 567 +++-
.../core_api/openapi/v2-rest-api-generated.yaml | 11 +
.../api_fastapi/core_api/routes/public/assets.py | 8 +-
.../core_api/routes/public/backfills.py | 2 +-
.../api_fastapi/core_api/routes/public/config.py | 4 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 15 +-
.../api_fastapi/core_api/routes/public/dags.py | 4 +-
.../api_fastapi/core_api/routes/public/hitl.py | 2 +-
.../core_api/routes/public/import_error.py | 65 +-
.../core_api/routes/public/task_instances.py | 7 +-
.../api_fastapi/core_api/routes/public/xcom.py | 8 +-
.../api_fastapi/core_api/routes/ui/assets.py | 97 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 48 +-
.../api_fastapi/core_api/routes/ui/dashboard.py | 88 +-
.../api_fastapi/core_api/routes/ui/deadlines.py | 24 +-
.../api_fastapi/core_api/routes/ui/dependencies.py | 2 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 14 +-
.../api_fastapi/core_api/routes/ui/structure.py | 91 +-
.../src/airflow/api_fastapi/core_api/security.py | 85 +-
.../api_fastapi/core_api/services/public/config.py | 5 +
.../api_fastapi/core_api/services/ui/calendar.py | 6 +-
.../core_api/services/ui/connections.py | 4 +-
.../api_fastapi/core_api/services/ui/dag_run.py | 4 +-
.../core_api/services/ui/dependencies.py | 486 ++-
.../api_fastapi/core_api/services/ui/structure.py | 185 --
.../airflow/api_fastapi/execution_api/AGENTS.md | 4 +-
.../execution_api/datamodels/taskinstance.py | 4 +
.../api_fastapi/execution_api/routes/dag_runs.py | 8 +
.../execution_api/routes/task_instances.py | 26 +-
.../execution_api/routes/task_state_store.py | 6 +-
.../execution_api/versions/v2026_06_30.py | 33 +-
.../src/airflow/api_fastapi/logging/decorators.py | 59 +-
airflow-core/src/airflow/assets/manager.py | 149 +-
.../src/airflow/cli/commands/asset_command.py | 2 +-
.../src/airflow/cli/commands/backfill_command.py | 2 +
.../src/airflow/cli/commands/config_command.py | 5 +-
.../src/airflow/cli/commands/connection_command.py | 28 +-
.../src/airflow/cli/commands/db_command.py | 6 +
.../src/airflow/cli/commands/jobs_command.py | 2 +
.../src/airflow/cli/commands/task_command.py | 3 +
.../src/airflow/cli/commands/team_command.py | 65 +-
airflow-core/src/airflow/configuration.py | 11 +-
.../src/airflow/dag_processing/bundles/manager.py | 232 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 30 +-
airflow-core/src/airflow/dag_processing/manager.py | 50 +-
.../src/airflow/jobs/scheduler_job_runner.py | 219 +-
.../src/airflow/jobs/triggerer_job_runner.py | 2 +-
.../0128_3_4_0_add_asset_event_id_to_adrq.py | 205 ++
...3_4_0_add_indexes_on_serialized_dag_and_dag_.py | 55 +
.../0130_3_4_0_add_new_index_for_trigger.py} | 41 +-
airflow-core/src/airflow/models/asset.py | 15 +-
airflow-core/src/airflow/models/dag.py | 83 +-
airflow-core/src/airflow/models/dagbundle.py | 6 +
airflow-core/src/airflow/models/dagcode.py | 3 +-
airflow-core/src/airflow/models/dagrun.py | 24 +-
airflow-core/src/airflow/models/pool.py | 4 +
airflow-core/src/airflow/models/serialized_dag.py | 6 +-
airflow-core/src/airflow/models/taskinstance.py | 14 +-
airflow-core/src/airflow/models/trigger.py | 172 +-
airflow-core/src/airflow/provider.yaml.schema.json | 81 +-
airflow-core/src/airflow/provider_info.schema.json | 42 +-
.../src/airflow/secrets/environment_variables.py | 26 +-
.../src/airflow/secrets/local_filesystem.py | 1 +
airflow-core/src/airflow/serialization/decoders.py | 23 +-
.../airflow/serialization/serialized_objects.py | 36 +-
airflow-core/src/airflow/ti_deps/dep_context.py | 31 +
.../src/airflow/ti_deps/deps/trigger_rule_dep.py | 42 +-
airflow-core/src/airflow/ui/eslint.config.js | 1 -
.../src/airflow/ui/openapi-gen/queries/common.ts | 44 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 76 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 76 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 76 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 76 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 105 +-
.../ui/openapi-gen/requests/services.gen.ts | 88 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 119 +-
airflow-core/src/airflow/ui/package.json | 74 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 1982 ++++++-------
airflow-core/src/airflow/ui/public/i18n/README.md | 40 +-
.../airflow/ui/public/i18n/locales/en/assets.json | 5 +-
.../airflow/ui/public/i18n/locales/en/common.json | 4 +
.../ui/public/i18n/locales/en/components.json | 13 +-
.../src/airflow/ui/public/i18n/locales/en/dag.json | 9 +-
.../airflow/ui/public/i18n/locales/en/dags.json | 4 +-
.../airflow/ui/public/i18n/locales/it/dags.json | 1 +
.../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 | 14 +-
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 9 +-
.../airflow/ui/public/i18n/locales/ko/dags.json | 10 +-
.../airflow/ui/public/i18n/locales/th/dags.json | 1 +
.../ui/public/i18n/locales/zh-TW/assets.json | 5 +-
.../ui/public/i18n/locales/zh-TW/common.json | 4 +
.../ui/public/i18n/locales/zh-TW/components.json | 15 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 9 +-
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 4 +-
airflow-core/src/airflow/ui/rules/core.js | 1 -
airflow-core/src/airflow/ui/rules/i18n.js | 4 +-
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 -
.../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/FlexibleForm/FieldBool.tsx | 2 +
.../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/reactflowUtils.test.ts | 118 +
.../ui/src/components/Graph/reactflowUtils.ts | 105 +
.../src/components/MonacoEditor/configureMonaco.ts | 39 +-
.../components/MonacoEditor/pythonFStrings.test.ts | 4 +-
.../src/components/SlowestTaskInstancesChart.tsx | 161 +
.../airflow/ui/src/components/StoreValueCell.tsx | 1 -
.../ui/src/components/TaskTrySelect.test.tsx | 264 ++
.../airflow/ui/src/components/TaskTrySelect.tsx | 13 +-
.../airflow/ui/src/components/TeamName.test.tsx | 60 +
.../src/airflow/ui/src/components/TeamName.tsx | 27 +-
.../ui/src/components/renderStructuredLog.tsx | 1 +
.../airflow/ui/src/components/ui/Select/Item.tsx | 1 -
.../src/airflow/ui/src/constants/filterConfigs.tsx | 17 +-
.../airflow/ui/src/constants/localStorage.test.ts | 51 +
.../src/airflow/ui/src/constants/localStorage.ts | 19 +-
.../src/airflow/ui/src/constants/searchParams.ts | 6 +-
.../ui/src/context/groups/GroupsProvider.tsx | 4 +-
.../src/airflow/ui/src/hooks/useShowTeam.ts | 15 +-
.../src/airflow/ui/src/i18n/config.test.ts | 22 +-
airflow-core/src/airflow/ui/src/i18n/config.ts | 18 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 34 +-
.../ui/src/layouts/Details/Grid/GridTI.test.tsx | 114 +
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 20 +-
.../ui/src/layouts/Details/Grid/constants.ts | 4 +
.../ui/src/layouts/Details/PanelButtons.tsx | 65 +-
airflow-core/src/airflow/ui/src/main.tsx | 3 +
.../src/airflow/ui/src/mocks/handlers/dags.ts | 26 +-
.../src/airflow/ui/src/pages/Asset/AssetGraph.tsx | 15 +-
.../src/pages/Asset/CreateAssetEventModal.test.tsx | 17 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 8 +-
.../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 +-
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 1 -
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 1 -
.../ui/src/pages/Dag/DeadlineAlertsBadge.test.tsx | 89 +
.../ui/src/pages/Dag/DeadlineAlertsBadge.tsx | 13 +-
.../src/airflow/ui/src/pages/Dag/Details.tsx | 12 +
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 37 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 11 +
.../ui/src/pages/Dag/Overview/DeadlineRow.tsx | 20 +-
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 31 +
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 8 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 7 +-
.../DagsList/DagsFilters/DagsFilterSelect.tsx | 83 +
.../DagsList/DagsFilters/DagsFilters.test.tsx | 80 +-
.../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 70 +-
.../src/pages/DagsList/DagsFilters/TagFilter.tsx | 60 +-
.../src/pages/DagsList/DagsFilters/TeamFilter.tsx | 5 +-
.../DagsList/DagsFilters/TimetableTypeFilter.tsx | 58 +
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 11 +-
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 19 +-
.../HistoricalMetrics/HistoricalMetrics.tsx | 4 +-
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 5 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 14 +-
.../airflow/ui/src/pages/Run/DeadlineStatus.tsx | 23 +-
.../ui/src/pages/Run/DeadlineStatusModal.tsx | 16 +-
.../src/airflow/ui/src/pages/Run/Details.tsx | 12 +
.../src/airflow/ui/src/pages/Run/Header.test.tsx | 21 +
.../src/airflow/ui/src/pages/Run/Header.tsx | 11 +
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 12 +
.../ui/src/pages/TaskInstance/Header.test.tsx | 78 +
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 11 +
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 313 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 150 +-
.../pages/TaskInstance/Logs/logSelection.test.ts | 564 ++++
.../ui/src/pages/TaskInstance/Logs/logSelection.ts | 271 ++
.../ui/src/pages/TaskInstance/Logs/utils.test.ts | 78 +-
.../ui/src/pages/TaskInstance/Logs/utils.ts | 13 +
.../src/pages/TaskInstance/TaskInstance.test.tsx | 144 +
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 1 +
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 8 +-
.../ui/src/queries/useDagTimetableTypesInfinite.ts | 68 +
.../src/airflow/ui/src/queries/useDags.tsx | 3 +
.../src/airflow/ui/src/queries/useGridRuns.ts | 11 +-
.../src/airflow/ui/src/queries/useGridStructure.ts | 11 +-
.../src/airflow/ui/src/queries/useLogs.test.ts | 58 +
.../src/airflow/ui/src/queries/useLogs.tsx | 52 +-
airflow-core/src/airflow/ui/src/router.tsx | 1 +
airflow-core/src/airflow/ui/src/theme.ts | 1 -
.../src/airflow/ui/src/utils/datetimeUtils.test.ts | 17 +
.../src/airflow/ui/src/utils/datetimeUtils.ts | 7 +
.../src/airflow/ui/src/utils/deadlines.test.ts | 52 +
airflow-core/src/airflow/ui/src/utils/deadlines.ts | 44 +
.../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 -
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 2 +
airflow-core/src/airflow/ui/src/vite-env.d.ts | 9 +-
.../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 -
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 13 +-
.../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/db.py | 21 +-
airflow-core/src/airflow/utils/db_cleanup.py | 90 +-
airflow-core/src/airflow/utils/db_manager.py | 8 +
airflow-core/src/airflow/utils/email.py | 2 +-
airflow-core/src/airflow/utils/event_scheduler.py | 24 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 4 +-
.../tests/unit/always/test_project_structure.py | 1 -
airflow-core/tests/unit/always/test_secrets.py | 2 +
.../always/test_secrets_environment_variables.py | 207 ++
.../managers/simple/test_simple_auth_manager.py | 27 +
.../auth/managers/test_base_auth_manager.py | 70 +-
.../tests/unit/api_fastapi/common/test_cursors.py | 53 +
.../core_api/routes/public/test_assets.py | 112 +-
.../core_api/routes/public/test_backfills.py | 32 +-
.../core_api/routes/public/test_config.py | 64 +
.../core_api/routes/public/test_dag_run.py | 64 +
.../core_api/routes/public/test_dags.py | 36 +-
.../core_api/routes/public/test_event_logs.py | 89 +-
.../core_api/routes/public/test_hitl.py | 20 +
.../core_api/routes/public/test_import_error.py | 327 +-
.../core_api/routes/public/test_task_instances.py | 45 +
.../api_fastapi/core_api/routes/ui/test_assets.py | 321 +-
.../core_api/routes/ui/test_calendar.py | 39 +
.../api_fastapi/core_api/routes/ui/test_dags.py | 111 +
.../core_api/routes/ui/test_dashboard.py | 66 +-
.../core_api/routes/ui/test_deadlines.py | 150 +-
.../core_api/routes/ui/test_dependencies.py | 364 ++-
.../core_api/routes/ui/test_structure.py | 490 +--
.../core_api/services/ui/test_dag_run.py} | 33 +-
.../unit/api_fastapi/core_api/test_security.py | 108 +-
.../execution_api/versions/head/test_dag_runs.py | 26 +
.../versions/head/test_task_instances.py | 137 +
.../versions/head/test_task_state_store.py | 26 +
.../versions/v2026_06_30/test_dag_runs.py | 90 +
.../unit/api_fastapi/logging/test_decorators.py | 150 +
airflow-core/tests/unit/assets/test_manager.py | 156 +-
.../unit/cli/commands/test_command_deprecations.py | 10 +-
.../tests/unit/cli/commands/test_config_command.py | 33 +
.../unit/cli/commands/test_connection_command.py | 18 +-
.../tests/unit/cli/commands/test_db_command.py | 17 +
.../cli/commands/test_rotate_fernet_key_command.py | 2 +-
.../tests/unit/cli/commands/test_team_command.py | 106 +-
airflow-core/tests/unit/core/test_configuration.py | 49 +
.../bundles/test_dag_bundle_manager.py | 1269 +++++++-
.../tests/unit/dag_processing/test_dagbag.py | 76 +-
.../tests/unit/dag_processing/test_manager.py | 333 ++-
.../tests/unit/dag_processing/test_processor.py | 8 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 617 +++-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 150 +-
...9_add_indexes_on_serialized_dag_and_dag_code.py | 55 +
airflow-core/tests/unit/models/test_dag.py | 116 +-
airflow-core/tests/unit/models/test_deadline.py | 39 +
airflow-core/tests/unit/models/test_pool.py | 3 +
.../tests/unit/models/test_serialized_dag.py | 85 +-
.../tests/unit/models/test_taskinstance.py | 34 +
airflow-core/tests/unit/models/test_team.py | 130 +
airflow-core/tests/unit/models/test_trigger.py | 143 +-
.../unit/serialization/test_dag_serialization.py | 121 +-
.../unit/ti_deps/deps/test_trigger_rule_dep.py | 242 ++
.../tests/unit/timetables/test_assets_timetable.py | 5 +-
airflow-core/tests/unit/utils/test_db_cleanup.py | 110 +
airflow-core/tests/unit/utils/test_db_manager.py | 8 +
airflow-core/tests/unit/utils/test_email.py | 19 +
.../tests/unit/utils/test_event_scheduler.py | 33 +
airflow-core/tests/unit/utils/test_task_group.py | 11 +-
.../airflowctl_tests/test_airflowctl_commands.py | 4 +
airflow-ctl/docs/images/command_hashes.txt | 10 +-
airflow-ctl/docs/images/output_assets.svg | 128 +-
airflow-ctl/docs/images/output_dags.svg | 138 +-
airflow-ctl/docs/images/output_jobs.svg | 66 +-
airflow-ctl/docs/images/output_taskinstances.svg | 74 +-
airflow-ctl/docs/images/output_tasks.svg | 74 +-
airflow-ctl/pyproject.toml | 4 +-
airflow-ctl/src/airflowctl/api/client.py | 3 -
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 392 ++-
airflow-ctl/src/airflowctl/api/operations.py | 93 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 145 +-
.../src/airflowctl/ctl/commands/dag_command.py | 166 +-
.../src/airflowctl/ctl}/commands/jobs_command.py | 43 +-
.../src/airflowctl/ctl/commands/task_command.py | 52 +
airflow-ctl/src/airflowctl/ctl/help_texts.yaml | 5 +-
airflow-ctl/tests/airflow_ctl/api/test_client.py | 46 +
.../tests/airflow_ctl/api/test_operations.py | 266 +-
.../ctl/commands/test_connections_command.py | 4 +-
.../airflow_ctl/ctl/commands/test_dag_command.py | 314 +-
.../airflow_ctl/ctl/commands/test_jobs_command.py | 115 +
.../airflow_ctl/ctl/commands/test_task_command.py | 349 +++
.../ctl/commands/test_variable_command.py | 5 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 2 +
chart/.pre-commit-config.yaml | 7 +
chart/README.md | 2 +-
chart/docs/production-guide.rst | 86 +
chart/templates/_helpers.yaml | 71 +-
.../api-server/api-server-deployment.yaml | 5 +-
.../dag-processor/dag-processor-deployment.yaml | 4 +-
.../templates/scheduler/scheduler-deployment.yaml | 5 +-
.../templates/triggerer/triggerer-deployment.yaml | 7 +-
chart/templates/workers/worker-deployment.yaml | 11 +-
.../helm_tests/airflow_aux/test_airflow_common.py | 156 +-
chart/tests/helm_tests/other/test_keda.py | 44 +
chart/values.schema.json | 834 +++---
chart/values.yaml | 11 +
contributing-docs/08_static_code_checks.rst | 2 +-
contributing-docs/18_contribution_workflow.rst | 2 +-
.../23_provider_hook_migration_to_yaml.rst | 26 +
contributing-docs/30_new_language_sdk.rst | 161 +-
.../testing/task_sdk_integration_tests.rst | 2 +-
dev/MANUALLY_BUILDING_IMAGES.md | 6 +-
...UALLY_GENERATING_IMAGE_CACHE_AND_CONSTRAINTS.md | 78 +-
dev/README_RELEASE_AIRFLOW.md | 57 +-
dev/README_RELEASE_PROVIDERS.md | 123 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 4 +-
dev/breeze/doc/09_release_management_tasks.rst | 21 +
dev/breeze/doc/ci/04_selective_checks.md | 14 +-
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 +-
...elease-management_classify-provider-changes.svg | 16 +-
...elease-management_classify-provider-changes.txt | 2 +-
...put_release-management_generate-constraints.svg | 54 +-
...put_release-management_generate-constraints.txt | 2 +-
...management_generate-issue-content-providers.svg | 16 +-
...management_generate-issue-content-providers.txt | 2 +-
...ease-management_generate-providers-metadata.svg | 18 +-
...ease-management_generate-providers-metadata.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 16 +-
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 16 +-
...e-management_prepare-provider-documentation.txt | 2 +-
.../output_setup_check-all-params-in-groups.svg | 24 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 2 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_workflow-run.svg | 14 +-
dev/breeze/doc/images/output_workflow-run.txt | 2 +-
.../output_workflow-run_release-constraints.svg | 138 +
.../output_workflow-run_release-constraints.txt | 1 +
dev/breeze/pyproject.toml | 8 +-
.../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 | 5 +
.../airflow_breeze/commands/kubernetes_commands.py | 54 +-
.../commands/release_candidate_command.py | 31 +-
.../src/airflow_breeze/commands/release_command.py | 48 +-
.../commands/release_management_commands.py | 4 +
.../commands/release_management_commands_config.py | 1 +
.../airflow_breeze/commands/workflow_commands.py | 44 +
.../commands/workflow_commands_config.py | 12 +-
dev/breeze/src/airflow_breeze/global_constants.py | 1 +
.../airflow_breeze/params/common_build_params.py | 10 +
.../src/airflow_breeze/params/shell_params.py | 19 +
.../prepare_providers/provider_distributions.py | 2 +-
.../src/airflow_breeze/utils/gh_workflow_utils.py | 9 +
.../airflow_breeze/utils/provider_dependencies.py | 20 +-
.../airflow_breeze/utils/release_constraints.py | 62 +
dev/breeze/src/airflow_breeze/utils/run_utils.py | 22 +-
.../src/airflow_breeze/utils/selective_checks.py | 16 +-
dev/breeze/tests/test_build_ci_params.py | 57 +
dev/breeze/tests/test_developer_commands.py | 77 +
.../breeze/tests/test_gh_workflow_utils.py | 34 +-
.../tests/test_kubernetes_lang_sdk_commands.py | 9 +
dev/breeze/tests/test_provider_dependencies.py | 81 +
dev/breeze/tests/test_release_command.py | 57 +-
dev/breeze/tests/test_release_constraints.py | 91 +
dev/breeze/tests/test_run_utils.py | 68 +
dev/breeze/tests/test_selective_checks.py | 97 +-
dev/breeze/tests/test_shell_params.py | 36 +
dev/breeze/uv.lock | 176 +-
.../react_plugin_template/package.json | 44 +-
.../react_plugin_template/pnpm-lock.yaml | 2822 +++++++++---------
dev/registry/extract_metadata.py | 6 +-
dev/registry/extract_parameters.py | 101 +-
dev/registry/extract_versions.py | 74 +-
dev/registry/pyproject.toml | 2 +-
dev/registry/registry_contract_models.py | 1 +
dev/registry/registry_tools/types.py | 77 +
dev/registry/tests/test_extract_metadata.py | 56 +
dev/registry/tests/test_extract_parameters.py | 99 +
dev/registry/tests/test_extract_versions.py | 161 +
.../tests/test_registry_contract_models.py | 19 +
dev/registry/tests/test_types.py | 26 +
dev/skill-evals/last-eval-hash.txt | 2 +-
devel-common/pyproject.toml | 4 +-
devel-common/src/tests_common/pytest_plugin.py | 181 +-
.../tests/unit/tests_common/test_pytest_plugin.py | 463 +++
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 2 +-
generated/known_airflow_exceptions.txt | 12 +-
generated/known_sdk_imports_in_core.txt | 44 +
generated/provider_metadata.json | 184 ++
go-sdk/bundle/bundlev1/bundlev1server/server.go | 2 +-
go-sdk/edge/commands/root.go | 1 -
go-sdk/go.mod | 5 +-
go-sdk/go.sum | 16 -
go-sdk/pkg/config/config.go | 37 +-
go-sdk/pkg/logging/hclogslog/hclogslog.go | 146 +
go-sdk/pkg/logging/hclogslog/hclogslog_test.go | 182 ++
java-sdk/README.md | 22 +
java-sdk/build.gradle.kts | 9 +
java-sdk/buildSrc/build.gradle.kts | 7 +
.../main/kotlin/airflow-jvm-conventions.gradle.kts | 4 -
java-sdk/gradle/verification-metadata.xml | 3029 +++++++++++++++++++
java-sdk/plugin/build.gradle.kts | 4 -
.../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 | 8 +-
.../kotlin/org/apache/airflow/sdk/ServerTest.kt | 142 +
.../org/apache/airflow/sdk/execution/CommTest.kt | 210 +-
java-sdk/settings.gradle.kts | 14 +
kubernetes-tests/lang_sdk/README.md | 6 +
kubernetes-tests/lang_sdk/go_example/go.mod | 3 -
kubernetes-tests/lang_sdk/go_example/go.sum | 16 -
.../howto/create-custom-providers.rst | 2 +-
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/akeyless/docs/index.rst | 8 +-
providers/akeyless/pyproject.toml | 2 +-
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 | 8 +-
providers/amazon/docs/changelog.rst | 58 +-
providers/amazon/docs/index.rst | 8 +-
providers/amazon/docs/logging/s3-task-handler.rst | 20 +
providers/amazon/docs/operators/dms.rst | 32 +
.../docs/operators/redshift/redshift_data.rst | 7 +
providers/amazon/provider.yaml | 18 +-
providers/amazon/pyproject.toml | 8 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../amazon/aws/auth_manager/aws_auth_manager.py | 3 +
.../providers/amazon/aws/hooks/redshift_data.py | 2 +-
.../providers/amazon/aws/log/s3_task_handler.py | 7 +
.../airflow/providers/amazon/aws/operators/dms.py | 141 +-
.../airflow/providers/amazon/aws/operators/eks.py | 44 +-
.../amazon/aws/operators/redshift_data.py | 8 +
.../airflow/providers/amazon/aws/operators/s3.py | 8 +-
.../providers/amazon/aws/operators/sagemaker.py | 18 +-
.../amazon/aws/operators/step_function.py | 6 +-
.../amazon/aws/secrets/secrets_manager.py | 61 +-
.../amazon/aws/secrets/systems_manager.py | 61 +-
.../providers/amazon/aws/sensors/bedrock.py | 27 +-
.../airflow/providers/amazon/aws/triggers/dms.py | 129 +-
.../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/aws/waiters/dms.json | 122 +
.../airflow/providers/amazon/get_provider_info.py | 7 +
.../aws/example_bedrock_retrieve_and_generate.py | 19 +
.../amazon/tests/system/amazon/aws/example_dms.py | 193 +-
.../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 -
.../tests/system/amazon/aws/example_emr_eks.py | 181 +-
...xample_glue_data_quality_with_recommendation.py | 10 +
.../tests/system/amazon/aws/example_s3_to_sql.py | 1 +
.../tests/system/amazon/aws/example_sql_to_s3.py | 1 +
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 6 +
.../amazon/tests/unit/amazon/aws/hooks/test_dms.py | 1 -
.../unit/amazon/aws/log/test_s3_task_handler.py | 53 +
.../tests/unit/amazon/aws/operators/test_dms.py | 255 +-
.../tests/unit/amazon/aws/operators/test_eks.py | 119 +
.../amazon/aws/operators/test_redshift_data.py | 41 +
.../tests/unit/amazon/aws/operators/test_s3.py | 2 +-
.../aws/operators/test_sagemaker_notebook.py | 19 +
.../aws/operators/test_sagemaker_processing.py | 15 +-
.../amazon/aws/operators/test_step_function.py | 2 +-
.../amazon/aws/secrets/test_secrets_manager.py | 94 +-
.../amazon/aws/secrets/test_systems_manager.py | 104 +-
.../tests/unit/amazon/aws/sensors/test_bedrock.py | 18 +-
.../unit/amazon/aws/transfers/test_sql_to_s3.py | 10 +-
.../tests/unit/amazon/aws/triggers/test_dms.py | 153 +
.../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 +
.../tests/unit/amazon/aws/waiters/test_dms.py | 101 +
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/beam/docs/changelog.rst | 2 +-
providers/apache/hdfs/README.rst | 6 +-
providers/apache/hdfs/docs/changelog.rst | 13 +
providers/apache/hdfs/docs/index.rst | 6 +-
providers/apache/hdfs/provider.yaml | 7 +-
providers/apache/hdfs/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hdfs/__init__.py | 2 +-
.../providers/apache/hdfs/get_provider_info.py | 6 +
.../providers/apache/hdfs/log/hdfs_task_handler.py | 26 +
.../unit/apache/hdfs/log/test_hdfs_task_handler.py | 82 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 20 +-
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 6 +-
.../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 | 15 +-
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 | 19 +
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 8 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../apache/spark/operators/spark_submit.py | 329 ++-
.../apache/spark/operators/test_spark_submit.py | 5 +-
providers/arangodb/README.rst | 6 +-
providers/arangodb/docs/changelog.rst | 15 +-
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/asana/docs/changelog.rst | 2 +-
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 13 +-
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/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 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 41 +-
providers/cncf/kubernetes/docs/index.rst | 7 +-
providers/cncf/kubernetes/docs/kubernetes_rbac.rst | 179 ++
providers/cncf/kubernetes/docs/operators.rst | 9 +
providers/cncf/kubernetes/provider.yaml | 28 +-
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 | 272 +-
.../executors/kubernetes_executor_utils.py | 111 +-
.../providers/cncf/kubernetes/get_provider_info.py | 14 +
.../providers/cncf/kubernetes/hooks/kubernetes.py | 69 +-
.../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/pod.py | 19 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 6 +-
.../cncf/kubernetes/cli/test_kubernetes_command.py | 180 ++
.../executors/test_kubernetes_executor.py | 513 +++-
.../unit/cncf/kubernetes/hooks/test_kubernetes.py | 24 +
.../unit/cncf/kubernetes/operators/test_pod.py | 28 +
.../tests/unit/cncf/kubernetes/test_kube_client.py | 29 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 20 +
providers/cohere/README.rst | 6 +-
providers/cohere/docs/changelog.rst | 20 +-
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 | 39 +-
providers/common/ai/docs/examples.rst | 4 +-
providers/common/ai/docs/index.rst | 5 +-
providers/common/ai/docs/operators/llm_branch.rst | 34 +
providers/common/ai/docs/retry_policies.rst | 72 +-
providers/common/ai/docs/toolsets.rst | 159 +-
providers/common/ai/provider.yaml | 38 +-
providers/common/ai/pyproject.toml | 11 +-
.../providers/common/ai/decorators/llm_branch.py | 11 +-
.../common/ai/example_dags/example_aws_toolset.py | 54 -
.../common/ai/example_dags/example_llm_branch.py | 35 +
.../providers/common/ai/get_provider_info.py | 24 +
.../airflow/providers/common/ai/mixins/approval.py | 68 +-
.../airflow/providers/common/ai/operators/llm.py | 9 +-
.../providers/common/ai/operators/llm_branch.py | 74 +-
.../providers/common/ai/operators/llm_sql.py | 9 +-
.../airflow/providers/common/ai/policies/retry.py | 75 +-
.../providers/common/ai/toolsets/__init__.py | 10 +-
.../airflow/providers/common/ai/toolsets/aws.py | 509 ----
.../providers/common/ai/toolsets/datafusion.py | 46 +-
.../airflow/providers/common/ai/toolsets/hook.py | 30 +-
.../common/ai/toolsets/langchain_bridge.py | 42 +-
.../airflow/providers/common/ai/toolsets/sql.py | 132 +-
.../providers/common/ai/utils/query_results.py | 156 +
.../providers/common/ai/utils/tool_definition.py | 74 +-
.../unit/common/ai/decorators/test_llm_branch.py | 19 +
.../tests/unit/common/ai/mixins/test_approval.py | 74 +
.../unit/common/ai/operators/test_llm_branch.py | 348 ++-
.../ai/tests/unit/common/ai/policies/test_retry.py | 168 ++
.../ai/tests/unit/common/ai/toolsets/test_aws.py | 359 ---
.../unit/common/ai/toolsets/test_datafusion.py | 31 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 59 +-
.../common/ai/toolsets/test_langchain_bridge.py | 46 +
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 299 +-
.../unit/common/ai/utils/test_query_results.py | 162 +
.../unit/common/ai/utils/test_tool_definition.py | 134 +-
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 14 +-
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 | 31 +-
.../common/compat/security/test_access_view.py | 64 +
.../common/io/docs/.latest-doc-only-change.txt | 2 +-
providers/common/io/docs/xcom_backend.rst | 4 +-
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 27 +-
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../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 | 8 +-
providers/databricks/docs/changelog.rst | 25 +-
providers/databricks/docs/index.rst | 8 +-
providers/databricks/docs/operators/notebook.rst | 38 +
.../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 | 15 +-
providers/databricks/docs/operators/submit_run.rst | 6 +
providers/databricks/docs/operators/task.rst | 27 +
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 8 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../providers/databricks/hooks/databricks.py | 5 +-
.../providers/databricks/hooks/databricks_base.py | 5 +-
.../providers/databricks/operators/databricks.py | 360 ++-
.../databricks/operators/databricks_repos.py | 46 +-
.../providers/databricks/triggers/databricks.py | 109 +-
.../unit/databricks/operators/test_databricks.py | 768 ++++-
.../databricks/operators/test_databricks_repos.py | 29 +-
.../unit/databricks/triggers/test_databricks.py | 201 ++
providers/datadog/docs/changelog.rst | 2 +-
providers/dbt/cloud/README.rst | 6 +-
providers/dbt/cloud/docs/changelog.rst | 22 +-
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 +-
.../src/airflow/providers/dbt/cloud/hooks/dbt.py | 45 +-
.../cloud/tests/unit/dbt/cloud/hooks/test_dbt.py | 101 +
providers/dingding/docs/changelog.rst | 2 +-
providers/discord/docs/changelog.rst | 2 +-
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 13 +-
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 | 25 +
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 | 66 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 3121 ++++++++++----------
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 24 +-
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 | 6 +-
providers/exasol/docs/changelog.rst | 14 +-
providers/exasol/docs/index.rst | 6 +-
providers/exasol/provider.yaml | 3 +-
providers/exasol/pyproject.toml | 6 +-
.../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 | 25 +
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 | 19 +-
.../fab/auth_manager/security_manager/override.py | 4 +-
.../fab/src/airflow/providers/fab/www/package.json | 10 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 412 ++-
.../providers/fab/www/security/permissions.py | 2 +
providers/ftp/docs/changelog.rst | 2 +-
providers/git/README.rst | 6 +-
providers/git/docs/changelog.rst | 16 +
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 | 10 +-
.../git/src/airflow/providers/git/hooks/git.py | 4 +-
providers/git/tests/unit/git/bundles/test_git.py | 62 +-
providers/git/tests/unit/git/hooks/test_git.py | 3 +-
providers/github/docs/changelog.rst | 2 +-
providers/google/README.rst | 9 +-
providers/google/docs/changelog.rst | 45 +-
providers/google/docs/index.rst | 9 +-
providers/google/docs/operators/cloud/bigquery.rst | 6 +
.../google/docs/operators/cloud/cloud_sql.rst | 39 +
.../google-cloud-secret-manager-backend.rst | 46 +
providers/google/provider.yaml | 7 +-
providers/google/pyproject.toml | 14 +-
.../src/airflow/providers/google/ads/hooks/ads.py | 27 +-
.../airflow/providers/google/ads/operators/ads.py | 3 +-
.../providers/google/ads/transfers/ads_to_gcs.py | 3 +-
.../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/gcs.py | 13 +-
.../providers/google/cloud/operators/gen_ai.py | 18 +-
.../google/cloud/secrets/secret_manager.py | 92 +-
.../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 +
.../non_python_src/java_streaming_src/README.MD | 4 +-
.../non_python_src/java_streaming_src/pom.xml | 13 +-
.../google/tests/unit/google/ads/hooks/test_ads.py | 20 +
.../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 +
.../tests/unit/google/cloud/operators/test_gcs.py | 4 +-
.../unit/google/cloud/operators/test_gen_ai.py | 50 +
.../google/cloud/secrets/test_secret_manager.py | 215 +-
.../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/grpc/docs/changelog.rst | 2 +-
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/http/docs/changelog.rst | 2 +-
providers/imap/README.rst | 6 +-
providers/imap/docs/changelog.rst | 14 +-
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/influxdb/docs/changelog.rst | 2 +-
providers/jenkins/docs/changelog.rst | 2 +-
providers/keycloak/README.rst | 8 +-
providers/keycloak/docs/changelog.rst | 33 +
providers/keycloak/docs/index.rst | 8 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 8 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
.../keycloak/auth_manager/cli/commands.py | 6 +-
.../providers/keycloak/auth_manager/constants.py | 6 +
.../keycloak/auth_manager/keycloak_auth_manager.py | 260 +-
.../providers/keycloak/auth_manager/middleware.py | 248 ++
.../keycloak/auth_manager/routes/login.py | 37 +-
.../providers/keycloak/auth_manager/user.py | 13 +-
.../airflow/providers/keycloak/version_compat.py | 2 +
.../keycloak/auth_manager/cli/test_commands.py | 50 +-
.../keycloak/auth_manager/datamodels}/__init__.py | 0
.../keycloak/auth_manager/datamodels/test_token.py | 120 +
.../keycloak/auth_manager/routes/test_login.py | 4 +
.../auth_manager/test_keycloak_auth_manager.py | 293 +-
.../unit/keycloak/auth_manager/test_middleware.py | 373 +++
providers/microsoft/azure/README.rst | 6 +-
providers/microsoft/azure/docs/changelog.rst | 30 +-
.../microsoft/azure/docs/filesystems/msgraph.rst | 8 +-
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/fs/msgraph.py | 64 +-
.../providers/microsoft/azure/get_provider_info.py | 6 +
.../microsoft/azure/log/wasb_task_handler.py | 35 +-
.../providers/microsoft/azure/secrets/key_vault.py | 62 +-
.../microsoft/azure/transfers/local_to_adls.py | 4 +-
.../tests/unit/microsoft/azure/fs/test_msgraph.py | 106 +-
.../microsoft/azure/log/test_wasb_task_handler.py | 153 +
.../unit/microsoft/azure/secrets/test_key_vault.py | 126 +
.../azure/transfers/test_local_to_adls.py | 3 +-
providers/microsoft/mssql/docs/changelog.rst | 2 +-
providers/microsoft/winrm/docs/changelog.rst | 2 +-
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 +-
.../src/airflow/providers/neo4j/operators/neo4j.py | 8 +-
.../neo4j/tests/unit/neo4j/operators/test_neo4j.py | 16 +-
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 +-
.../providers/openlineage/plugins/listener.py | 70 +-
.../airflow/providers/openlineage/utils/utils.py | 97 +-
.../unit/openlineage/plugins/test_listener.py | 161 +-
.../tests/unit/openlineage/utils/test_utils.py | 181 +-
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 17 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/docs/logging/index.rst | 16 +
providers/opensearch/provider.yaml | 7 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/opensearch/get_provider_info.py | 6 +
.../providers/opensearch/log/os_task_handler.py | 46 +-
.../unit/opensearch/log/test_os_task_handler.py | 129 +-
providers/papermill/README.rst | 6 +-
providers/papermill/docs/changelog.rst | 17 +
providers/papermill/docs/index.rst | 6 +-
providers/papermill/provider.yaml | 3 +-
providers/papermill/pyproject.toml | 6 +-
.../src/airflow/providers/papermill/__init__.py | 2 +-
providers/postgres/README.rst | 6 +-
providers/postgres/docs/changelog.rst | 18 +
providers/postgres/docs/index.rst | 6 +-
providers/postgres/provider.yaml | 3 +-
providers/postgres/pyproject.toml | 6 +-
.../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 | 6 +-
providers/presto/docs/changelog.rst | 19 +
providers/presto/docs/index.rst | 6 +-
providers/presto/provider.yaml | 3 +-
providers/presto/pyproject.toml | 6 +-
.../src/airflow/providers/presto/__init__.py | 2 +-
providers/salesforce/README.rst | 6 +-
providers/salesforce/docs/changelog.rst | 14 +
providers/salesforce/docs/index.rst | 6 +-
providers/salesforce/provider.yaml | 3 +-
providers/salesforce/pyproject.toml | 6 +-
.../src/airflow/providers/salesforce/__init__.py | 2 +-
.../tests/unit/salesforce/hooks/test_salesforce.py | 9 +-
providers/samba/docs/index.rst | 11 +-
providers/samba/provider.yaml | 14 +
providers/samba/pyproject.toml | 4 +
.../airflow/providers/samba/get_provider_info.py | 11 +-
.../src/airflow/providers/samba/hooks/samba.py | 55 +-
.../samba/tests/unit/samba/hooks/test_samba.py | 117 +-
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 | 7 +-
providers/snowflake/docs/changelog.rst | 30 +
providers/snowflake/docs/index.rst | 7 +-
providers/snowflake/docs/operators/snowflake.rst | 7 +
providers/snowflake/provider.yaml | 3 +-
providers/snowflake/pyproject.toml | 10 +-
.../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/decorators/bash.py | 1 -
.../airflow/providers/standard/operators/bash.py | 5 +-
.../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_bash.py | 17 +
.../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 | 6 +-
providers/trino/docs/changelog.rst | 19 +
providers/trino/docs/index.rst | 6 +-
providers/trino/provider.yaml | 3 +-
providers/trino/pyproject.toml | 6 +-
.../trino/src/airflow/providers/trino/__init__.py | 2 +-
providers/weaviate/README.rst | 6 +-
providers/weaviate/docs/changelog.rst | 22 +
providers/weaviate/docs/connections.rst | 2 +-
providers/weaviate/docs/index.rst | 6 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 6 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
providers/yandex/README.rst | 6 +-
providers/yandex/docs/changelog.rst | 13 +
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 | 44 +-
.../tests/unit/yandex/secrets/test_lockbox.py | 99 +
pyproject.toml | 19 +-
registry/.eleventy.js | 22 +
registry/README.md | 8 +-
registry/package.json | 2 +-
registry/pnpm-lock.yaml | 10 +-
registry/scripts/build-pagefind-index.mjs | 10 +-
registry/src/_data/exploreCategories.js | 10 +-
registry/src/_data/exploreCategoryProviders.js | 13 +-
registry/src/_data/providerCategoryMap.js | 3 +-
registry/src/_data/providerKeywordMatch.js | 58 +
registry/src/_data/types.json | 35 +
registry/src/css/main.css | 240 ++
registry/src/css/tokens.css | 7 +
registry/src/js/provider-detail.js | 47 +-
registry/src/js/provider-filters.js | 26 +-
registry/src/js/search.js | 8 +-
registry/src/provider-version.njk | 55 +-
registry/src/providers.njk | 4 +-
reproducible_build.yaml | 4 +-
scripts/ci/docker-compose/backend-postgres.yml | 4 +-
scripts/ci/notify_uv_lock_conflicts.py | 18 +-
.../ci/prek/check_airflowctl_command_coverage.py | 2 +-
scripts/ci/prek/check_go_example_mod_tidy.py | 126 +
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_sdk_imports_in_core.py | 210 +-
scripts/ci/prek/check_ti_vs_tis_attributes.py | 2 +
scripts/ci/prek/common_prek_utils.py | 17 +-
scripts/ci/prek/ruff_format.py | 2 +-
...un_mypy_full_dist_local_venv_or_breeze_in_ci.py | 4 +-
.../sort_helm_values_schema_file_type_field.py | 64 +
scripts/ci/prek/update_airflow_pyproject_toml.py | 20 +-
scripts/ci/prek/validate_operators_init.py | 8 +-
.../ci/prek/validate_operators_init_exemptions.txt | 8 -
scripts/in_container/run_generate_constraints.py | 170 +-
.../in_container/run_provider_yaml_files_check.py | 82 +-
.../ci/prek/test_check_go_example_mod_tidy.py | 99 +
.../ci/prek/test_check_sdk_imports_in_core.py | 232 +-
scripts/tests/ci/prek/test_extract_permissions.py | 6 +-
.../tests/ci/prek/test_validate_operators_init.py | 13 +
scripts/tests/ci/test_notify_uv_lock_conflicts.py | 29 +
.../in_container/test_run_generate_constraints.py | 165 +-
.../src/airflow_shared/configuration/parser.py | 126 +-
.../tests/configuration/test_parser.py | 143 +
shared/dagnode/pyproject.toml | 2 +-
shared/listeners/pyproject.toml | 2 +-
shared/logging/pyproject.toml | 2 +-
.../src/airflow_shared/logging/structlog.py | 28 +-
shared/observability/pyproject.toml | 2 +-
.../observability/metrics/metrics_template.yaml | 20 +
shared/providers_discovery/pyproject.toml | 2 +-
task-sdk/docs/api.rst | 4 +
task-sdk/docs/resumable-job-mixin.rst | 8 +
task-sdk/pyproject.toml | 4 +-
task-sdk/src/airflow/sdk/__init__.py | 11 +-
task-sdk/src/airflow/sdk/api/client.py | 6 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 106 +-
task-sdk/src/airflow/sdk/definitions/callback.py | 22 +
task-sdk/src/airflow/sdk/definitions/dag.py | 7 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 52 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 5 +
.../airflow/sdk/execution_time/schema/AGENTS.md | 9 +-
.../airflow/sdk/execution_time/schema/schema.json | 494 ++--
.../sdk/execution_time/secrets/execution_api.py | 4 +-
.../src/airflow/sdk/execution_time/supervisor.py | 69 +-
.../src/airflow/sdk/execution_time/task_runner.py | 98 +-
task-sdk/src/airflow/sdk/serde/__init__.py | 13 +-
.../src/airflow/sdk/serde/serializers/pandas.py | 4 +
task-sdk/tests/conftest.py | 2 +
task-sdk/tests/task_sdk/api/test_client.py | 55 +
task-sdk/tests/task_sdk/bases/test_hook.py | 2 +
.../tests/task_sdk/definitions/test_callback.py | 127 +
.../tests/task_sdk/definitions/test_connection.py | 11 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 4 +-
.../execution_time/test_callback_supervisor.py | 22 +-
.../tests/task_sdk/execution_time/test_comms.py | 1 +
.../tests/task_sdk/execution_time/test_context.py | 85 +-
.../task_sdk/execution_time/test_context_cache.py | 17 +-
.../tests/task_sdk/execution_time/test_secrets.py | 3 +
.../task_sdk/execution_time/test_supervisor.py | 258 +-
.../task_sdk/execution_time/test_task_runner.py | 317 +-
task-sdk/tests/task_sdk/serde/test_serde.py | 18 +-
task-sdk/tests/task_sdk/serde/test_serializers.py | 29 +-
ts-sdk/.pre-commit-config.yaml | 1 +
ts-sdk/README.md | 6 +
ts-sdk/pnpm-lock.yaml | 42 +
.../user.py => ts-sdk/pnpm-workspace.yaml | 30 +-
ts-sdk/src/generated/supervisor.ts | 194 +-
uv.lock | 748 ++---
1194 files changed, 50811 insertions(+), 13400 deletions(-)
create mode 100644 .github/actions/build_ci_image_with_cache/action.yml
create mode 100644 .github/workflows/refresh-constraints.yml
create mode 100644 .github/workflows/refresh-image-registry-cache.yml
create mode 100644 .github/workflows/release-constraints.yml
copy .github/workflows/{registry-tests.yml => ts-sdk-dependency-review.yml}
(53%)
create mode 100644 airflow-core/newsfragments/62501.bugfix.rst
create mode 100644 airflow-core/newsfragments/63185.significant.rst
create mode 100644 airflow-core/newsfragments/67672.improvement.rst
create mode 100644 airflow-core/newsfragments/67765.bugfix.rst
create mode 100644 airflow-core/newsfragments/69675.bugfix.rst
create mode 100644 airflow-core/newsfragments/69768.feature.rst
create mode 100644 airflow-core/newsfragments/69790.feature.rst
create mode 100644 airflow-core/newsfragments/69821.bugfix.rst
create mode 100644 airflow-core/newsfragments/70240.bugfix.rst
create mode 100644 airflow-core/newsfragments/70708.bugfix.rst
create mode 100644 airflow-core/newsfragments/70755.significant.rst
create mode 100644 airflow-core/newsfragments/70759.significant.rst
create mode 100644 airflow-core/newsfragments/70972.significant.rst
create mode 100644 airflow-core/newsfragments/71103.significant.rst
create mode 100644 airflow-core/src/airflow/api_fastapi/common/db/assets.py
delete mode 100644
airflow-core/src/airflow/api_fastapi/core_api/services/ui/structure.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0128_3_4_0_add_asset_event_id_to_adrq.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0129_3_4_0_add_indexes_on_serialized_dag_and_dag_.py
copy airflow-core/{tests/unit/utils/test_event_scheduler.py =>
src/airflow/migrations/versions/0130_3_4_0_add_new_index_for_trigger.py} (53%)
create mode 100644
airflow-core/src/airflow/ui/src/components/Banner/BackfillBanner.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/Graph/TaskLink.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/Graph/reactflowUtils.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/SlowestTaskInstancesChart.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/TaskTrySelect.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/TeamName.test.tsx
copy java-sdk/settings.gradle.kts =>
airflow-core/src/airflow/ui/src/components/TeamName.tsx (61%)
create mode 100644
airflow-core/src/airflow/ui/src/constants/localStorage.test.ts
copy java-sdk/settings.gradle.kts =>
airflow-core/src/airflow/ui/src/hooks/useShowTeam.ts (70%)
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Details/Grid/GridTI.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Backfills/BackfillDagRunsModal.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Backfills/Backfills.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/DeadlineAlertsBadge.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/DagsFilterSelect.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/TimetableTypeFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/Logs/logSelection.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstance/TaskInstance.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/queries/useDagTimetableTypesInfinite.ts
create mode 100644 airflow-core/src/airflow/ui/src/queries/useLogs.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/deadlines.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/deadlines.ts
create mode 100644
airflow-core/tests/unit/always/test_secrets_environment_variables.py
copy airflow-core/tests/unit/{models/test_team.py =>
api_fastapi/core_api/services/ui/test_dag_run.py} (52%)
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2026_06_30/test_dag_runs.py
create mode 100644
airflow-core/tests/unit/migrations/test_0129_add_indexes_on_serialized_dag_and_dag_code.py
copy {airflow-core/src/airflow/cli =>
airflow-ctl/src/airflowctl/ctl}/commands/jobs_command.py (51%)
create mode 100644
airflow-ctl/tests/airflow_ctl/ctl/commands/test_jobs_command.py
create mode 100644
dev/breeze/doc/images/output_workflow-run_release-constraints.svg
create mode 100644
dev/breeze/doc/images/output_workflow-run_release-constraints.txt
create mode 100644 dev/breeze/src/airflow_breeze/utils/release_constraints.py
create mode 100644 dev/breeze/tests/test_build_ci_params.py
create mode 100644 dev/breeze/tests/test_developer_commands.py
copy airflow-core/tests/unit/utils/test_event_scheduler.py =>
dev/breeze/tests/test_gh_workflow_utils.py (51%)
create mode 100644 dev/breeze/tests/test_release_constraints.py
create mode 100644 devel-common/tests/unit/tests_common/test_pytest_plugin.py
create mode 100644 generated/known_sdk_imports_in_core.txt
create mode 100644 go-sdk/pkg/logging/hclogslog/hclogslog.go
create mode 100644 go-sdk/pkg/logging/hclogslog/hclogslog_test.go
create mode 100644 java-sdk/gradle/verification-metadata.xml
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/ServerTest.kt
create mode 100644 providers/cncf/kubernetes/docs/kubernetes_rbac.rst
copy airflow-core/tests/unit/utils/test_event_scheduler.py =>
providers/cncf/kubernetes/tests/unit/cncf/kubernetes/test_kube_client.py (52%)
delete mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_aws_toolset.py
delete mode 100644
providers/common/ai/src/airflow/providers/common/ai/toolsets/aws.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/utils/query_results.py
delete mode 100644
providers/common/ai/tests/unit/common/ai/toolsets/test_aws.py
create mode 100644
providers/common/ai/tests/unit/common/ai/utils/test_query_results.py
copy airflow-core/tests/unit/utils/test_event_scheduler.py =>
providers/common/compat/src/airflow/providers/common/compat/security/access_view.py
(53%)
create mode 100644
providers/common/compat/tests/unit/common/compat/security/test_access_view.py
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
copy {airflow-core/src/airflow/_shared =>
providers/keycloak/tests/unit/keycloak/auth_manager/datamodels}/__init__.py
(100%)
create mode 100644
providers/keycloak/tests/unit/keycloak/auth_manager/datamodels/test_token.py
create mode 100644
providers/keycloak/tests/unit/keycloak/auth_manager/test_middleware.py
create mode 100644 registry/src/_data/providerKeywordMatch.js
create mode 100755 scripts/ci/prek/check_go_example_mod_tidy.py
create mode 100755 scripts/ci/prek/sort_helm_values_schema_file_type_field.py
create mode 100644 scripts/tests/ci/prek/test_check_go_example_mod_tidy.py
copy providers/keycloak/src/airflow/providers/keycloak/auth_manager/user.py =>
ts-sdk/pnpm-workspace.yaml (56%)