This is an automated email from the ASF dual-hosted git repository.
mobuchowski pushed a change to branch dbt-cloud-cause
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 7b3285f2992 Update
providers/dbt/cloud/src/airflow/providers/dbt/cloud/operators/dbt.py
omit 4bac5ec5aab dbt cloud: add passing OL ParentRunFacet as dbt Cloud cause
add 25b3b881957 Document GlueJobOperator support for OpenLineage Spark
injection (#69652)
add 6f88f293037 Add API endpoint for backfill dag run entries (#67381)
add 424c4a73cab Update Weaviate examples for client 4.16 API (#67343)
add f7dec02b2a9 Restore pluggable email backend for task failure and retry
alerts (#69877)
add 40311ffe4d7 Add partition_key and partition_key_regexp_pattern filters
for asset events (#64610)
add 2a9d508e0b4 Optionally emit Dag tags as metric tags (#68568)
add ad3244c1f27 Add ADR-0006: no Lang-SDK source display for
mixed-language (@task.stub) Dag (#70059)
add ec08de79ab6 [main] Upgrade important CI environment (#69999)
add ac04a428532 Bump the auth-ui-package-updates group across 1 directory
with 9 updates (#70105)
add 4e01f405a6a Add Asset Tab plugin (#69986)
add 5227a911412 [AIP-94] Add filters and pagination to airflowctl jobs
list (#68616)
add eddaa67f5bc Add AWS services toolset for agents to access 1000+ APIs
(#70087)
add 68d88db25a3 Fix task instance mark success downstream default (#67763)
add 154399c443e Add worker-name filter to `airflow edge list-workers`
(#70095)
add 4be96fbd96a Fix dag.test() dropping defer-time kwargs when trigger
yields an event (#69942)
add c46a4be2a3c TriggerRunner: Add batch trigger creation duration metric
(#68521)
add 2671aebabe0 Bump axios in
/providers/edge3/src/airflow/providers/edge3/plugins/www (#70145)
add 1e7e525b00e Remove airflow.utils dependency from Docker provider
(#69900)
add e024ecf1ace Document that Code view shows only Python source for stub
tasks (#70155)
add a8e4b9d537d Remove deprecated dataset aliases (#70154)
add c1ccc51323e Use canonical serde imports in tests (#70162)
add 16278347df4 Fix flaky static checks caused by migration-reference hook
race (#70170)
add 7a41261811b Add toolset as a provider module category (#70122)
add 6ec5fa06472 Fix toolsets python-modules check for common.ai provider
(#70181)
add c49e1c917ea Harden common.ai SQLToolset allowed_tables against
function/COPY bypass (#70134)
add 480d6fa8132 Sort Dags by latest run after (#69995)
add 834fed92567 Validate documented commands against the Breeze and prek
registries (#70186)
add e9f89d6aceb Add airflowctl tasks states-for-dag-run command (#69366)
add 723b06b38a9 Add optional AI agent rules to React plugin template
(#69994)
add fd0a398491d UI: Complete Spanish UI translations (#68743)
add ae756a97b3c UI: Make duration charts readable at a glance (#70142)
add f3edf4d4c5c Allow multiple routes to show active NavButtons (#69884)
add 1073e4935ee Fix `LLMSQLQueryOperator` not stripping single-line
markdown code fences (#70137)
add 15a4478a99d Bump datamodel-code-generator pin from 0.33.0 to 0.41.0
(#69854)
add 063d5f108da UI: Add team column and filter to Dag list page (#70028)
add 801cef9ba7b Fill Taiwanese Mandarin translation gap (#70194)
add d2ded220386 Format Dataflow wordcount system-test resource with gofmt
(#70174)
add 6255cceb123 Add CloudWatchRemoteLogIO.from_config and register
cloudwatch scheme (#69816)
add 83c0a9c6378 UI: Make the Dag pause toggle distinguishable in dark mode
(#70203)
add 42f68d429d6 Fix HITL review showing altered agent output to reviewers
(#70070)
add ab541253884 Fix stale conn-id fallback assertion for cloudwatch remote
logging (#70210)
add 523a803e906 Better log when spark k8s driver remains in Unknown Phase
(#70176)
add ffe49c77d25 Flag missing conn-fields when hook-only files change in
static checks (#70007)
add d4a4d853e9d Fix duplicate heartbeat-timeout task callbacks (#68008)
add 72d9b5d8243 Add S3RemoteLogIO.from_config and register s3 remote
logging scheme (#69817)
add 532e7d0911c Allow Common AI SQL imports without DataFusion (#69990)
add c173545e8d0 Surface YARN diagnostics for spark on yarn clusters
(#70183)
add b0f8d26481d fix ruff check docs command in FAQ (#70212)
add 373ca8614d5 OpenLineage: add execute_in_thread to emit task events
without forking (#68708)
add 7c03dabdcdd Route SQLAlchemyError through global exception handler
(#69267)
add 5cbb64bf60a Add streaming task log support to KubernetesExecutor
(#69300)
add 38d94ba8188 Move Lang-SDK ADRs from java-sdk/adr to
airflow-core/adr/lang-sdk (#70156)
add e420143333a Support image digest in worker pod template image (#69776)
add ec8da5c25eb Populate dag and note before firing dag run state-change
listeners (#69873)
add 02a956f5cf9 Add Flower HTTPRoute support to Helm chart (#69945)
add 8c205ef4083 Add React plugin support to Dag and task overviews (#69992)
add 8ce7c84fa7b UI: Pass Dag, DagRun, TaskInstance, and Asset objects to
React app plugins (#70149)
add b6d81b94ed9 Call listeners for running task instance when a Dag Run
state is manually set (#69874)
add 74c76cbf02f Document `apply_function` dot notation requirement for
Kafka message queues (#68414)
add 7c272f1ea97 Make psycopg (v3) the default synchronous Postgres driver
(#69526)
add cfe1b37aa06 Fix the google provider dataform system test (#70136)
add 2060ff322b9 Fix NPM vulenaribilities in simple auth manager (#70191)
add a564b789a67 fix: Patch ti note before state so that listeners can see
it (#70247)
add f2802c459fe Preserve Dataform workflow invocation config (#53843)
(#69161)
add 0f0873630af Emit per-statement OpenLineage events for BigQuery script
jobs (#69234)
add b703da5326d Quote file paths in Teradata TPT shell commands and pass
the openssl passphrase via stdin (#69380)
add fecccf8eeb5 Fix Amazon provider log messages to show actual values
(#69967)
add 45a93a1e1fb Make psycopg (v3) the default synchronous Postgres driver
in airflow-core (#69469)
add fcccec2f2d5 Upgrade NPM dependencies in edge provider (#70253)
add cd28fbde0be Fix secrets not masked in Rendered Templates view with
KubernetesPodOperator (#68975)
add 7ef372a4638 Clarify unreleased-feature changes are not breaking in
provider-doc skill (#70255)
add 1fd77cdd428 Make RedshiftDeleteClusterOperator delete reliably during
cluster transitions (#69574)
add 79f2c3c6208 Note the allow-provider-dependency-bump label in
provider-doc release skill (#70257)
add c578603205b Fix conn-fields check crash for nested provider packages
(#70224)
add f44634c2154 Detect stale metrics registry entries in the metrics sync
prek hook (#69578)
add 54d9a8e5fb5 Standardize Alembic migration descriptions and add a style
lint (#69537)
add 104ad12e190 Include spark submit canonical logs in failure exceptions
(#70178)
add ff0ac285658 Run check-provider-yaml-valid when prek scripts or
providers config change (#70230)
add 97515b53c3b [main] Upgrade important CI environment (#70217)
add 41613f2b977 Add airflowctl tasks clear command (#69320)
add 84e520ac6d7 Add changelog-entry quality rules to provider-doc release
skill (#70258)
add 13b6c78afa7 Mark Common Data Quality provider as not-ready (#70275)
add 901d9190d11 Replace `reattach_on_restart` with `durable` execution in
KPO (#69914)
add 58160be43fc Fix Trigger Again showing empty config for the selected
run (#70248)
add a990ce976e7 Allow filtering the Dags list by failed and success runs
in any run state filter (#69875)
add 8c486754a07 Fix failing static checks by regenerating breeze command
output (#70287)
add 0014422047c Document that connection secrets without conn_type remain
supported (#69780)
add 8a065ef7131 Add OpenLineage parent info to EMR Spark steps (#70182)
add 5d8be949ea6 Revert "Make Redshift system-test clusters non-public in
sql_to_s3/s3_to_sql (#69890)" (#70259)
add 1fd0d41824f Mount ts-sdk sources in Breeze container (#70278)
add 42076448cb2 Remove airflow-metadata.yaml sidecar support from
NodeCoordinator (#70273)
add b6cc81c2944 Buffer TS SDK logger output until the log socket connects
(#70085)
add 4db892e6f26 Progressively load interactive elements of Dag Card
(#69806)
add 8e6f28fbd33 Add partition date filters to Dag run API (#68682)
add fd80829617b Move ts-sdk prek hooks to its own config and add compile
hook (#70277)
add 5628e8360dc Mark dags state and next-execution CLI commands as
migrated to airflowctl (#69305)
add 94b9fe33284 UI: Add team column and filter to Dag Run and Task
Instance lists (#70241)
add 993592937ff Prompt release manager about providers that gain changes
mid-wave (#70309)
add bb89adf654b Detect template-field logic in operator __init__ in prek
check (#70297)
add 1efd7cd0e67 Bump moment-timezone from 0.6.2 to 0.6.3 in
/providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates
group across 1 directory (#70308)
add dd029a89953 Stop skipping none_failed_min_one_success tasks in mapped
task groups (#69377)
add 8e63d9bbc77 Prepare providers release 2026-07-22 (#70256)
add 58305d0c09c Define translation agent skill guidelines for Turkish (tr)
locale (#69931)
add 8004f48312d Remove hard-coded deferrable crawler run from example_glue
system test (#70206)
add 832d0a5506a Support cloud URI globs in DocumentLoaderOperator (#70299)
add b33558eaa09 Split airflowctl dags state argument into run_id and
--logical-date (#69915)
add 36005d772dd Bake Node.js and pnpm runtime into breeze CI image (#70285)
add e0f837b1cb1 Add TypeScript SDK guide to language SDKs docs (#70219)
add b25d19102b1 Move template-field validation out of init for Amazon
DataSync operator (#70324)
add 446378da69a Move template-field validation/transformation out of init
for Amazon Bedrock operators (#70306)
add 0af60eb7199 Add missing zh-TW translations for team strings (#70321)
add dca1d97eaf4 Drop unused post_submit_commands copy from
SparkSubmitOperator init (#70323)
add f24e8fe6551 Validate template fields after rendering in common.ai
operators (#70338)
add d4622c770f2 Validate AzureVirtualMachineStateSensor target_state after
rendering (#70329)
add c3e2439b712 [main] Upgrade important CI environment (#70363)
add 1ced91f5387 Strip GlueDataQualityOperator ruleset after rendering
(#70331)
add 030efa6f74a Resolve nested provider paths for conn-fields check from
the real directory tree (#70261)
add 8751c754116 Move SnowparkContainerJobOperator template-field
validation to execute (#70332)
add 26d3bbb6cfc Derive DbtCloudGetJobRunArtifactOperator default file name
after rendering (#70336)
add 220d2199266 Validate KubernetesResourceBaseOperator yaml_conf after
rendering (#70337)
add f7360776e44 Mark KubernetesPodOperator and AgentOperator as durable
capable (#70289)
add 87acced7347 Validate DatabricksCopyIntoOperator template fields after
rendering (#70339)
add 7a531a9dcac Add support for operators that achieve durable execution
manually in registry (#70291)
add a1c27c5d36c Prevent premature validation in Gemini batch job operators
(#70362)
add d713e2d813e Document psycopg3 driver switch for PostgresHook
connections (#70360)
add 80e7e9b0381 Fix Neo4jOperator templated query validation (#70348)
add 378541bd1fe Fix CohereEmbeddingOperator input_text normalization
before rendering (#70325)
add 52e27183bf7 Read HITLOperator subject/body into the summary lazily
(#70345)
add dd869c53bb9 Read fresh Dag bundle state during refresh (#69830)
add 4e652109591 Highlight user-code frames in task log tracebacks (#70294)
add 086361bf3f0 Show the deprecated Neo4jOperator sql query in Rendered
Templates (#70373)
add ee142ce32c9 Fail AzureVirtualMachineStateSensor fast on an invalid
target_state (#70372)
add 25e0f0d252f Adding amoghrajesh as codeowner for registry (#70381)
add 04fd3a9b508 Handle multiple PR references in provider changelog
entries (#70358)
add 2f7f70ba95e Remove noqa:S101 from production code (#70378)
add c42540fca87 Fix MongoToS3Operator aggregate-pipeline detection before
rendering (#70330)
add 47a0324461f UI: Fix task states stuck stale when a run finishes
quickly (#70319)
add e16a0f78cd2 Fix Teradata transfer template field initialization
(#70392)
add b6f72cd1874 Fix WeaviateIngestOperator input_data validation before
rendering (#70326)
add 0d209e60b0c Log check_query_output response via format string in
Snowflake SQL API hook (#67848)
add 8d35eebaca1 Honor verbose logging for Celery workers (#69828)
add ef236c5f39c Bump eslint-plugin-unicorn (#70406)
add 39381ccb2d7 Move template-field checks out of __init__ in Hive sensors
(#70334)
add 4acd42fbe6b Build KubernetesInstallKueueOperator manifest URL after
rendering (#70335)
add d369e6f6996 Validate DatabricksSQLStatementsSensor statement fields
after rendering (#70340)
add 82a2c91d08a Validate Databricks Repos operators' template fields after
rendering (#70341)
add dfabf3b7193 Add team_name tagging to multi team dag metrics (#69943)
add dc42801bde4 real example of CronDataIntervalTimetable and
DeltaDataIntervalTimetable (#70303)
add 7ae64e7ed62 Mark Lang-SDK ADRs 0003-0006 as Accepted (#70157)
add 7dfa42a00b6 Bump the github-actions-updates group with 8 updates
(#70411)
add d31eff5a37e Bump the uv-dependency-updates group in /dev/breeze with 2
updates (#70404)
add e9a36629bf6 Validate ProduceToTopicOperator topic after rendering
(#70333)
add 0378a727e5f Fix template-field validation timing in ssh provider
operators (#70315)
add cd7235aff32 Support multiple paths fallback in VaultBackend (#70006)
add 025b0a14a41 Mark dags list-jobs as migrated to airflowctl (#70153)
add 1c0d8c88213 add ownership (#70443)
add 4d3cd1ec61f Handle DockerOperator mounts after rendering instead of in
__init__ (#70342)
add 963d286d32e Support Paramiko 5 (#69712)
add fba10d463e4 Remove no-op ServerResponseError re-raise blocks in
airflowctl operations (#70376)
add 9b72aed307d Move template-field validation out of
AnthropicAgentSessionOperator __init__ (#70432)
add 3c99701a267 Fix DateTimeSensor crash when target_time renders to a
datetime (#70320)
add 15df3aaac07 Fix incorrect asset queued-event endpoint paths in
airflowctl (#70461)
add 220024580bc Move amazon dms operator template-field validation to
execute() (#70450)
add dbe4627b307 Fix template-field validation in PapermillOperator (#70435)
add 33c2363add0 Move Compute Engine validation out of constructors (#70454)
add 03f45e1d8b7 Fix EcsRunTaskOperator deferred-logs region and template
field init (#70464)
add 55816176d40 Clarify contributing-docs regarding external_db_managers
(#70466)
add 895646bfaa9 Add missing UI translations for Greek(el) (#70467)
add d4a0861867d Add queue parameter to edge list-workers subcommand
(#70436)
add 283d5c38d5c edge3: Exit non-zero when worker admin CLI commands fail
(#70112)
add 018977ec86d Remove stale type-ignore TODO in HTTP hook
run_with_advanced_retry (#67685)
add c4a5f19e67c Add SQLBulkLoadOperator to Common SQL Provider (#69362)
add 91a6a0fe8a8 Allow templated fields in AppFlow operators (#70440)
add 9953e4c49cb Update French (fr) UI translations to 100% coverage
(#70386)
add 38648c3075d Complete Polish translation of the Airflow UI (#70476)
add 6f09cd33ead Simplify api docs on pattern search (#70202)
add d778786fb0c Complete missing Arabic (ar) translations (#70383)
add 66ea88f0bea Fix DAG details active runs count to exclude queued runs
(#69769)
add 861aa9887b1 Bump eslint-plugin-unicorn (#70402)
add 94ffd92afd9 Bump @chakra-ui/react (#70401)
add eeeb6f02a88 reject backslash-after-scheme urls in is_safe_url (#70215)
add 9f8629c5929 Detect linked issues at the end of PR bodies in provider
testing issue (#70396)
add 6bef2b417f0 Validate TriggerDagRunOperator logical_date after template
rendering (#70490)
add a4d56b4dce8 Ignore hidden directories when listing UI translation
locales (#70516)
add 8216231fbd3 Enable provider-based GCS remote logging resolution
(#70504)
add 0f2827e36e5 Fix EcsRunTaskOperator deferred logs read from the wrong
region (#70474)
add 6df6cb32ea5 Add SnowflakeCortexAgentOperator to Snowflake Provider
(#69939)
add 0e046e86090 Warn on suspicious Dag and task IDs at Go SDK build time
(#69965)
add 6a386524d40 Bump the auth-ui-package-updates group across 1 directory
with 10 updates (#70414)
add eefce6d452e Fix flaky Glue OpenLineage test that calls the real AWS
endpoint (#70500)
add 908115a9712 Move AwsToAwsBaseOperator fallback out of init (#70445)
add da4db8e6681 Extract task concurrency evaluation into a dedicated
scheduler helper (#67589)
add 941c083b58f Drop redundant BigQueryInsertJobOperator job ID snapshot
in __init__ (#70494)
add 2c9e09979d2 Anchor spark-submit log trail on actual exception instead
of lines (#70513)
add e1f17e71db4 Resolve S3ToRedshiftOperator connection and kwargs after
template rendering (#70486)
add eab4790cedb dbt cloud: add passing OL ParentRunFacet as dbt Cloud cause
add b025b7cea6f Update
providers/dbt/cloud/src/airflow/providers/dbt/cloud/operators/dbt.py
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 (7b3285f2992)
\
N -- N -- N refs/heads/dbt-cloud-cause (b025b7cea6f)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.agents/skills/airflow-translations/locales/el.md | 67 +-
.agents/skills/airflow-translations/locales/tr.md | 239 ++-
.../prepare-providers-documentation/SKILL.md | 301 ++-
.dockerignore | 1 +
.github/CODEOWNERS | 12 +-
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 8 +-
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/airflow-e2e-tests.yml | 6 +-
.github/workflows/asf-allowlist-check.yml | 2 +-
.github/workflows/backport-cli.yml | 2 +-
.github/workflows/basic-tests.yml | 24 +-
.github/workflows/ci-amd.yml | 30 +-
.github/workflows/ci-arm.yml | 30 +-
.github/workflows/ci-duration-monitor.yml | 4 +-
.github/workflows/ci-image-build.yml | 2 +-
.github/workflows/ci-image-checks.yml | 16 +-
.github/workflows/ci-notification.yml | 8 +-
.github/workflows/codeql-analysis.yml | 10 +-
.github/workflows/e2e-flaky-tests-report.yml | 4 +-
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/generate-constraints.yml | 4 +-
.github/workflows/helm-tests.yml | 4 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/java-sdk-release-verify.yml | 8 +-
.github/workflows/k8s-tests.yml | 8 +-
.github/workflows/kustomize-overlays-tests.yml | 2 +-
.github/workflows/milestone-tag-assistant.yml | 2 +-
.github/workflows/notify-uv-lock-conflicts.yml | 2 +-
.github/workflows/openlineage-e2e-compat-tests.yml | 2 +-
.github/workflows/prod-image-build.yml | 4 +-
.github/workflows/publish-docs-to-s3.yml | 10 +-
.github/workflows/push-image-cache.yml | 4 +-
.github/workflows/registry-backfill.yml | 4 +-
.github/workflows/registry-build.yml | 2 +-
.github/workflows/registry-tests.yml | 2 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 4 +-
.github/workflows/run-unit-tests.yml | 2 +-
.../scheduled-verify-release-calendar.yml | 4 +-
.github/workflows/test-providers.yml | 4 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.../update-constraints-on-push-stable.yml | 10 +-
.github/workflows/update-constraints-on-push.yml | 8 +-
.github/workflows/upgrade-check.yml | 6 +-
.pre-commit-config.yaml | 51 +-
Dockerfile | 35 +-
Dockerfile.ci | 39 +-
airflow-core/.pre-commit-config.yaml | 1 +
.../lang-sdk}/0001-java-sdk-airflow-integration.md | 0
.../adr/lang-sdk}/0002-workload-execution.md | 0
.../adr/lang-sdk}/0003-pure-java-dags.md | 2 +-
.../adr/lang-sdk}/0004-dag-parsing.md | 10 +-
.../adr/lang-sdk}/0005-coordinator-packaging.md | 12 +-
.../lang-sdk/0006-no-lang-sdk-source-display.md | 136 ++
airflow-core/adr/lang-sdk/README.md | 37 +
.../logging-monitoring/logging-tasks.rst | 2 +-
.../modules_management.rst | 2 +-
.../docs/administration-and-deployment/plugins.rst | 29 +-
.../docs/authoring-and-scheduling/assets.rst | 53 +-
.../language-sdks/index.rst | 12 +
.../language-sdks/typescript.rst | 294 +++
.../docs/authoring-and-scheduling/timetable.rst | 20 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/message-queues.rst | 5 +
airflow-core/docs/core-concepts/multi-team.rst | 19 +-
airflow-core/docs/faq.rst | 2 +-
.../docs/howto/docker-compose/docker-compose.yaml | 4 +-
airflow-core/docs/howto/set-up-database.rst | 26 +-
airflow-core/docs/migrations-ref.rst | 38 +-
airflow-core/newsfragments/68521.feature.rst | 1 +
airflow-core/newsfragments/69377.bugfix.rst | 1 +
airflow-core/newsfragments/69469.improvement.rst | 1 +
airflow-core/newsfragments/69874.bugfix.rst | 1 +
airflow-core/newsfragments/69877.bugfix.rst | 1 +
airflow-core/newsfragments/70154.significant.rst | 1 +
airflow-core/pyproject.toml | 2 +-
airflow-core/src/airflow/__init__.py | 5 +-
airflow-core/src/airflow/api/common/mark_tasks.py | 44 +-
airflow-core/src/airflow/api_fastapi/app.py | 17 +-
.../simple/ui/openapi-gen/queries/common.ts | 2 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 2 +-
.../simple/ui/openapi-gen/queries/index.ts | 2 +-
.../ui/openapi-gen/queries/infiniteQueries.ts | 2 +-
.../simple/ui/openapi-gen/queries/prefetch.ts | 2 +-
.../simple/ui/openapi-gen/queries/queries.ts | 2 +-
.../simple/ui/openapi-gen/queries/suspense.ts | 2 +-
.../auth/managers/simple/ui/package.json | 32 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 904 ++++-----
.../src/airflow/api_fastapi/common/db/dags.py | 31 +-
.../src/airflow/api_fastapi/common/exceptions.py | 48 +-
.../src/airflow/api_fastapi/common/parameters.py | 230 ++-
.../src/airflow/api_fastapi/core_api/app.py | 7 -
.../api_fastapi/core_api/datamodels/backfills.py | 22 +
.../api_fastapi/core_api/datamodels/dag_run.py | 1 +
.../api_fastapi/core_api/datamodels/plugins.py | 4 +-
.../core_api/datamodels/task_instances.py | 1 +
.../api_fastapi/core_api/datamodels/ui/dags.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 202 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 1795 ++++++----------
.../api_fastapi/core_api/routes/public/assets.py | 12 +-
.../core_api/routes/public/backfills.py | 39 +
.../api_fastapi/core_api/routes/public/dag_run.py | 79 +-
.../api_fastapi/core_api/routes/public/dags.py | 2 +-
.../api_fastapi/core_api/routes/public/job.py | 4 +
.../core_api/routes/public/task_instances.py | 81 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 17 +-
.../src/airflow/api_fastapi/core_api/security.py | 9 +-
.../core_api/services/public/dag_run.py | 25 +-
.../core_api/services/public/task_instances.py | 32 +-
.../src/airflow/api_fastapi/execution_api/app.py | 2 +
.../execution_api/routes/asset_events.py | 27 +-
.../execution_api/routes/task_instances.py | 14 +-
.../src/airflow/cli/commands/dag_command.py | 3 +
.../src/airflow/cli/commands/task_command.py | 4 +-
.../src/airflow/config_templates/config.yml | 34 +
airflow-core/src/airflow/configuration.py | 12 +-
airflow-core/src/airflow/dag_processing/manager.py | 11 +-
.../src/airflow/executors/base_executor.py | 1 +
.../airflow/executors/workloads/connection_test.py | 3 +
.../src/airflow/jobs/scheduler_job_runner.py | 360 ++--
.../src/airflow/jobs/triggerer_job_runner.py | 18 +-
...03_2_7_0_add_include_deferred_column_to_pool.py | 2 +-
.../0004_2_8_0_add_clear_number_to_dag_run.py | 2 +-
...011_2_9_0_add_dataset_expression_in_dagmodel.py | 2 +-
...2_9_0_adding_adding_max_failure_runs_column_.py | 2 +-
...014_2_9_0_add_display_name_for_dag_and_task_.py | 2 +-
.../0015_2_9_0_update_trigger_kwargs_type.py | 2 +-
...nconsistency_between_ORM_and_migration_files.py | 2 +-
.../0019_2_10_0_add_new_executor_field_to_db.py | 2 +-
...2_10_0_added_dagpriorityparsingrequest_table.py | 2 +-
.../0043_3_0_0_remove_scheduler_lock_column.py | 2 +-
.../versions/0047_3_0_0_add_dag_versioning.py | 2 +-
...task_instance_trigger_timeout_to_utcdatetime.py | 2 +-
..._3_0_0_remove_pickled_data_from_dagrun_table.py | 2 +-
...3_0_0_add_new_task_instance_field_scheduled_.py | 2 +-
.../0059_3_0_0_remove_external_trigger_field.py | 2 +-
...4_3_1_0_add_last_parse_duration_to_dag_model.py | 2 +-
...3_2_0_replace_asset_trigger_table_with_asset.py | 2 +-
...0_replace_deadline_inline_callback_with_fkey.py | 6 +-
...0_3_2_0_add_timetable_type_to_dag_table_for_.py | 2 +-
...127_3_4_0_add_idx_asset_event_partition_key.py} | 28 +-
airflow-core/src/airflow/models/asset.py | 1 +
airflow-core/src/airflow/models/dagrun.py | 66 +-
airflow-core/src/airflow/models/serialized_dag.py | 6 +-
airflow-core/src/airflow/models/taskinstance.py | 6 +-
airflow-core/src/airflow/provider.yaml.schema.json | 24 +
airflow-core/src/airflow/settings.py | 7 +-
.../src/airflow/ti_deps/deps/trigger_rule_dep.py | 28 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 37 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 315 ++-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 315 ++-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 321 ++-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 315 ++-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 139 +-
.../ui/openapi-gen/requests/services.gen.ts | 318 ++-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 358 ++--
airflow-core/src/airflow/ui/package.json | 4 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 134 +-
.../airflow/ui/public/i18n/locales/ar/admin.json | 1 +
.../airflow/ui/public/i18n/locales/ar/assets.json | 20 +-
.../airflow/ui/public/i18n/locales/ar/common.json | 76 +-
.../ui/public/i18n/locales/ar/components.json | 2 +
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 20 +-
.../airflow/ui/public/i18n/locales/ar/dags.json | 11 +
.../ui/public/i18n/locales/ar/dashboard.json | 22 +
.../airflow/ui/public/i18n/locales/ar/hitl.json | 14 +
.../airflow/ui/public/i18n/locales/el/admin.json | 32 +-
.../airflow/ui/public/i18n/locales/el/assets.json | 26 +-
.../airflow/ui/public/i18n/locales/el/browse.json | 44 +-
.../airflow/ui/public/i18n/locales/el/common.json | 207 +-
.../ui/public/i18n/locales/el/components.json | 46 +-
.../src/airflow/ui/public/i18n/locales/el/dag.json | 118 +-
.../airflow/ui/public/i18n/locales/el/dags.json | 23 +-
.../ui/public/i18n/locales/el/dashboard.json | 23 +-
.../airflow/ui/public/i18n/locales/el/hitl.json | 18 +
.../airflow/ui/public/i18n/locales/en/common.json | 5 +-
.../ui/public/i18n/locales/en/components.json | 1 +
.../airflow/ui/public/i18n/locales/en/dags.json | 6 +-
.../airflow/ui/public/i18n/locales/es/admin.json | 27 +-
.../airflow/ui/public/i18n/locales/es/assets.json | 27 +-
.../airflow/ui/public/i18n/locales/es/browse.json | 45 +-
.../airflow/ui/public/i18n/locales/es/common.json | 120 +-
.../ui/public/i18n/locales/es/components.json | 37 +-
.../src/airflow/ui/public/i18n/locales/es/dag.json | 118 +-
.../airflow/ui/public/i18n/locales/es/dags.json | 10 +
.../ui/public/i18n/locales/es/dashboard.json | 17 +-
.../airflow/ui/public/i18n/locales/es/hitl.json | 17 +-
.../airflow/ui/public/i18n/locales/fr/admin.json | 1 +
.../airflow/ui/public/i18n/locales/fr/assets.json | 17 +
.../airflow/ui/public/i18n/locales/fr/browse.json | 19 +
.../airflow/ui/public/i18n/locales/fr/common.json | 95 +-
.../ui/public/i18n/locales/fr/components.json | 5 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 26 +-
.../airflow/ui/public/i18n/locales/fr/dags.json | 13 +-
.../ui/public/i18n/locales/fr/dashboard.json | 21 +
.../airflow/ui/public/i18n/locales/fr/hitl.json | 14 +
.../airflow/ui/public/i18n/locales/pl/admin.json | 1 +
.../airflow/ui/public/i18n/locales/pl/assets.json | 23 +-
.../airflow/ui/public/i18n/locales/pl/common.json | 76 +-
.../ui/public/i18n/locales/pl/components.json | 2 +
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 26 +-
.../airflow/ui/public/i18n/locales/pl/dags.json | 13 +-
.../ui/public/i18n/locales/pl/dashboard.json | 22 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 14 +
.../ui/public/i18n/locales/zh-TW/common.json | 5 +-
.../ui/public/i18n/locales/zh-TW/components.json | 2 +
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 3 -
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 6 +-
.../airflow/ui/src/components/DurationChart.tsx | 278 +--
.../TaskInstance/MarkTaskInstanceAsDialog.test.tsx | 90 +
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 1 -
.../components/TriggerDag/TriggerDAGForm.test.tsx | 46 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 12 +-
.../ui/src/components/renderStructuredLog.test.tsx | 41 +
.../ui/src/components/renderStructuredLog.tsx | 16 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 17 +-
.../src/airflow/ui/src/constants/searchParams.ts | 1 +
.../src/airflow/ui/src/constants/sortParams.ts | 8 +-
.../airflow/ui/src/hooks/useNearViewport.test.tsx | 217 ++
.../src/airflow/ui/src/hooks/useNearViewport.ts | 148 ++
.../src/airflow/ui/src/layouts/Nav/AdminButton.tsx | 23 +-
.../airflow/ui/src/layouts/Nav/BrowseButton.tsx | 23 +-
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 1 +
.../airflow/ui/src/layouts/Nav/NavButton.test.tsx | 114 ++
.../src/airflow/ui/src/layouts/Nav/NavButton.tsx | 37 +-
.../src/airflow/ui/src/layouts/Nav/PluginMenus.tsx | 7 +-
.../airflow/ui/src/layouts/Nav/SecurityButton.tsx | 30 +-
.../src/airflow/ui/src/mocks/handlers/dags.ts | 9 +-
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 4 +
.../ui/src/pages/Dag/Overview/Overview.test.tsx | 68 +
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 49 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 24 +-
.../ui/src/pages/DagRuns/DagRunsFilters.tsx | 6 +
.../airflow/ui/src/pages/DagsList/DagCard.test.tsx | 131 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 87 +-
.../ui/src/pages/DagsList/DagCardActions.tsx | 39 +
.../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 24 +-
.../src/pages/DagsList/DagsFilters/TeamFilter.tsx | 81 +
.../ui/src/pages/DagsList/DagsList.test.tsx | 39 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 26 +-
airflow-core/src/airflow/ui/src/pages/Iframe.tsx | 17 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 144 ++
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 70 +-
.../ui/src/pages/Task/Overview/Overview.test.tsx | 63 +
.../ui/src/pages/Task/Overview/Overview.tsx | 42 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 23 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 7 +
.../src/airflow/ui/src/queries/useDags.tsx | 9 +-
.../ui/src/queries/useGridTISummaries.test.tsx | 93 +
.../airflow/ui/src/queries/useGridTISummaries.ts | 13 +-
airflow-core/src/airflow/ui/src/router.tsx | 1 +
airflow-core/src/airflow/ui/src/theme.ts | 6 +
.../src/airflow/ui/src/utils/datetimeUtils.test.ts | 50 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 50 +
airflow-core/src/airflow/ui/src/utils/logs.test.ts | 21 +-
airflow-core/src/airflow/ui/src/utils/logs.ts | 5 +
.../{RouterWrapper.test.tsx => median.test.ts} | 37 +-
.../groups/useGroups.ts => utils/median.ts} | 18 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 1 +
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 52 +
.../tests/unit/api/common/test_mark_tasks.py | 9 +-
.../unit/api_fastapi/common/test_exceptions.py | 60 +-
.../unit/api_fastapi/common/test_parameters.py | 53 +
.../core_api/datamodels/test_plugins.py | 31 +-
.../core_api/routes/public/test_assets.py | 157 ++
.../core_api/routes/public/test_backfills.py | 167 ++
.../core_api/routes/public/test_dag_run.py | 302 ++-
.../core_api/routes/public/test_dags.py | 2 +-
.../core_api/routes/public/test_hitl.py | 1 +
.../api_fastapi/core_api/routes/public/test_job.py | 17 +
.../core_api/routes/public/test_task_instances.py | 159 ++
.../api_fastapi/core_api/routes/ui/test_dags.py | 66 +-
.../unit/api_fastapi/core_api/test_security.py | 8 +
.../unit/api_fastapi/execution_api/test_app.py | 18 +-
.../versions/head/test_asset_events.py | 351 ++++
.../versions/head/test_task_instances.py | 60 +-
.../execution_api/versions/head/test_xcoms.py | 2 +-
.../tests/unit/cli/commands/test_asset_command.py | 2 +
.../unit/cli/commands/test_command_deprecations.py | 6 +
airflow-core/tests/unit/core/test_configuration.py | 38 +-
.../tests/unit/core/test_sqlalchemy_config.py | 24 +
.../tests/unit/dag_processing/test_manager.py | 28 +
.../tests/unit/dag_processing/test_processor.py | 86 +-
.../tests/unit/executors/test_base_executor.py | 30 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 403 +++-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 67 +-
.../tests/unit/listeners/class_listener.py | 14 +
airflow-core/tests/unit/models/test_dag.py | 27 +
airflow-core/tests/unit/models/test_dagrun.py | 147 +-
.../tests/unit/models/test_mappedoperator.py | 79 +
.../tests/unit/models/test_taskinstance.py | 57 +-
airflow-core/tests/unit/utils/test_log_handlers.py | 7 +-
airflow-core/tests/unit/utils/test_sqlalchemy.py | 63 +
.../airflowctl_tests/test_airflowctl_commands.py | 8 +-
airflow-ctl/docs/conf.py | 5 +-
airflow-ctl/docs/howto/index.rst | 14 +
airflow-ctl/docs/images/command_hashes.txt | 4 +-
airflow-ctl/docs/images/output_main.svg | 142 +-
airflow-ctl/docs/images/output_taskinstances.svg | 97 +
airflow-ctl/docs/images/output_tasks.svg | 105 +
airflow-ctl/docs/spelling_wordlist.txt | 1 +
airflow-ctl/pyproject.toml | 2 +-
airflow-ctl/src/airflowctl/api/client.py | 14 +
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 41 +-
airflow-ctl/src/airflowctl/api/operations.py | 545 ++---
airflow-ctl/src/airflowctl/ctl/cli_config.py | 119 +-
.../src/airflowctl/ctl/commands/dag_command.py | 82 +-
.../src/airflowctl/ctl/commands/task_command.py | 99 +
airflow-ctl/src/airflowctl/ctl/help_texts.yaml | 6 +
.../tests/airflow_ctl/api/test_operations.py | 194 +-
.../airflow_ctl/ctl/commands/test_dag_command.py | 122 +-
.../airflow_ctl/ctl/commands/test_task_command.py | 284 +++
.../tests/airflow_ctl/ctl/test_cli_config.py | 51 +
airflow-e2e-tests/docker/openlineage-compat-db.yml | 48 +
.../tests/airflow_e2e_tests/conftest.py | 9 +-
.../tests/airflow_e2e_tests/constants.py | 5 +
chart/docs/production-guide.rst | 37 +-
chart/templates/_helpers.yaml | 9 +-
chart/templates/flower/flower-httproute.yaml | 70 +
chart/templates/flower/flower-ingress.yaml | 3 +
.../airflow_aux/test_basic_helm_chart.py | 44 +-
.../airflow_aux/test_pod_template_file.py | 33 +
.../test_httproute_flower.py} | 201 +-
chart/values.schema.json | 104 +
chart/values.yaml | 65 +-
contributing-docs/03_contributors_quick_start.rst | 4 +-
contributing-docs/14_metadata_database_updates.rst | 6 +-
contributing-docs/27_cli_implementation_guide.rst | 2 +-
contributing-docs/testing/airflow_ctl_tests.rst | 2 +-
contributing-docs/testing/integration_tests.rst | 2 +-
.../testing/task_sdk_integration_tests.rst | 4 +-
contributing-docs/testing/unit_tests.rst | 4 +-
dev/assign_cherry_picked_prs_with_milestone.py | 1 -
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 7 +-
...elease-management_classify-provider-changes.svg | 16 +-
...elease-management_classify-provider-changes.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 +-
dev/breeze/pyproject.toml | 2 +-
.../commands/release_management_commands.py | 30 +-
.../src/airflow_breeze/commands/ui_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../airflow_breeze/utils/docker_command_utils.py | 1 +
dev/breeze/src/airflow_breeze/utils/github.py | 6 +-
.../src/airflow_breeze/utils/selective_checks.py | 8 +-
.../tests/test_release_management_commands.py | 86 +
dev/breeze/tests/test_selective_checks.py | 61 +-
dev/breeze/tests/test_ui_commands.py | 17 +
dev/breeze/uv.lock | 166 +-
dev/react-plugin-tools/README.md | 8 +
dev/react-plugin-tools/bootstrap.py | 23 +-
.../react_plugin_template/ai-agent-rules/README.md | 43 +
.../ai-agent-rules/airflow-plugin.md | 17 +-
.../ai-agent-rules/react-typescript.md | 18 +-
.../ai-agent-rules/testing.md | 13 +-
dev/registry/extract_parameters.py | 26 +-
dev/registry/registry_tools/types.py | 8 +
dev/registry/tests/test_extract_parameters.py | 24 +
devel-common/pyproject.toml | 4 +-
docs/spelling_wordlist.txt | 6 +
go-sdk/README.md | 3 +
.../adr/0003-coordinator-protocol-msgpack-ipc.md | 14 +-
go-sdk/cmd/airflow-go-pack/pack.go | 1 +
go-sdk/cmd/airflow-go-pack/validate.go | 75 +
go-sdk/cmd/airflow-go-pack/validate_test.go | 142 ++
java-sdk/README.md | 4 +-
providers/.last_release_date.txt | 2 +-
providers/.pre-commit-config.yaml | 13 +-
providers/airbyte/README.rst | 6 +-
providers/airbyte/docs/changelog.rst | 13 +-
providers/airbyte/docs/index.rst | 6 +-
providers/airbyte/provider.yaml | 3 +-
providers/airbyte/pyproject.toml | 6 +-
.../src/airflow/providers/airbyte/__init__.py | 2 +-
providers/akeyless/README.rst | 6 +-
providers/akeyless/docs/changelog.rst | 18 +
providers/akeyless/docs/index.rst | 6 +-
providers/akeyless/provider.yaml | 3 +-
providers/akeyless/pyproject.toml | 6 +-
.../src/airflow/providers/akeyless/__init__.py | 2 +-
providers/amazon/README.rst | 6 +-
providers/amazon/docs/changelog.rst | 50 +
providers/amazon/docs/executors/batch-executor.rst | 2 +-
providers/amazon/docs/executors/ecs-executor.rst | 2 +-
.../amazon/docs/executors/lambda-executor.rst | 2 +-
providers/amazon/docs/index.rst | 6 +-
providers/amazon/docs/operators/emr/emr.rst | 17 +
providers/amazon/docs/operators/glue.rst | 6 -
providers/amazon/provider.yaml | 9 +-
providers/amazon/pyproject.toml | 6 +-
.../src/airflow/providers/amazon/__init__.py | 2 +-
.../providers/amazon/aws/hooks/redshift_sql.py | 37 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 2 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 36 +
.../providers/amazon/aws/log/s3_task_handler.py | 26 +
.../providers/amazon/aws/operators/appflow.py | 63 +-
.../providers/amazon/aws/operators/bedrock.py | 16 +-
.../providers/amazon/aws/operators/datasync.py | 28 +-
.../airflow/providers/amazon/aws/operators/dms.py | 7 +-
.../airflow/providers/amazon/aws/operators/ecs.py | 23 +-
.../airflow/providers/amazon/aws/operators/emr.py | 41 +
.../airflow/providers/amazon/aws/operators/glue.py | 4 +-
.../amazon/aws/operators/redshift_cluster.py | 122 +-
.../providers/amazon/aws/sensors/dynamodb.py | 2 +-
.../airflow/providers/amazon/aws/transfers/base.py | 15 +-
.../providers/amazon/aws/transfers/mongo_to_s3.py | 8 +-
.../amazon/aws/transfers/s3_to_redshift.py | 37 +-
.../airflow/providers/amazon/aws/triggers/ecs.py | 11 +-
.../amazon/aws/triggers/redshift_cluster.py | 54 +
.../providers/amazon/aws/waiters/redshift.json | 55 +
.../airflow/providers/amazon/get_provider_info.py | 7 +
.../amazon/tests/system/amazon/aws/example_glue.py | 10 -
.../tests/system/amazon/aws/example_s3_to_sql.py | 1 -
.../tests/system/amazon/aws/example_sql_to_s3.py | 1 -
.../unit/amazon/aws/hooks/test_redshift_sql.py | 43 +-
.../amazon/tests/unit/amazon/aws/hooks/test_s3.py | 32 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 102 +
.../unit/amazon/aws/log/test_s3_task_handler.py | 83 +-
.../unit/amazon/aws/operators/test_appflow.py | 39 +
.../unit/amazon/aws/operators/test_bedrock.py | 40 +
.../unit/amazon/aws/operators/test_datasync.py | 37 +-
.../tests/unit/amazon/aws/operators/test_dms.py | 36 +-
.../tests/unit/amazon/aws/operators/test_ecs.py | 74 +
.../amazon/aws/operators/test_emr_add_steps.py | 137 ++
.../tests/unit/amazon/aws/operators/test_glue.py | 27 +
.../amazon/aws/operators/test_redshift_cluster.py | 153 +-
.../tests/unit/amazon/aws/sensors/test_dynamodb.py | 6 +-
.../tests/unit/amazon/aws/transfers/test_base.py | 17 +
.../unit/amazon/aws/transfers/test_mongo_to_s3.py | 26 +-
.../amazon/aws/transfers/test_s3_to_redshift.py | 23 +-
.../tests/unit/amazon/aws/triggers/test_ecs.py | 68 +-
.../amazon/aws/triggers/test_redshift_cluster.py | 36 +-
providers/anthropic/README.rst | 6 +-
providers/anthropic/docs/changelog.rst | 20 +
providers/anthropic/docs/index.rst | 6 +-
providers/anthropic/provider.yaml | 3 +-
providers/anthropic/pyproject.toml | 6 +-
.../src/airflow/providers/anthropic/__init__.py | 2 +-
.../airflow/providers/anthropic/operators/agent.py | 8 +-
.../tests/unit/anthropic/operators/test_agent.py | 44 +-
.../apache/druid/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/hive/README.rst | 6 +-
providers/apache/hive/docs/changelog.rst | 28 +
providers/apache/hive/docs/index.rst | 6 +-
providers/apache/hive/provider.yaml | 3 +-
providers/apache/hive/pyproject.toml | 6 +-
.../src/airflow/providers/apache/hive/__init__.py | 2 +-
.../apache/hive/sensors/hive_partition.py | 4 +-
.../apache/hive/sensors/named_hive_partition.py | 5 +-
.../hive/sensors/test_named_hive_partition.py | 32 +
.../apache/impala/docs/.latest-doc-only-change.txt | 2 +-
providers/apache/kafka/README.rst | 7 +-
providers/apache/kafka/docs/changelog.rst | 21 +
providers/apache/kafka/docs/index.rst | 6 +-
.../apache/kafka/docs/message-queues/index.rst | 44 +
providers/apache/kafka/docs/sensors.rst | 9 +
providers/apache/kafka/provider.yaml | 3 +-
providers/apache/kafka/pyproject.toml | 6 +-
.../src/airflow/providers/apache/kafka/__init__.py | 2 +-
.../providers/apache/kafka/operators/produce.py | 4 +-
.../unit/apache/kafka/operators/test_produce.py | 18 +
providers/apache/spark/README.rst | 6 +-
providers/apache/spark/docs/changelog.rst | 28 +-
providers/apache/spark/docs/index.rst | 6 +-
providers/apache/spark/provider.yaml | 3 +-
providers/apache/spark/pyproject.toml | 6 +-
.../src/airflow/providers/apache/spark/__init__.py | 2 +-
.../providers/apache/spark/hooks/spark_submit.py | 55 +-
.../apache/spark/operators/spark_submit.py | 1 -
.../unit/apache/spark/hooks/test_spark_submit.py | 152 +-
providers/atlassian/jira/README.rst | 6 +-
providers/atlassian/jira/docs/changelog.rst | 13 +
providers/atlassian/jira/docs/index.rst | 6 +-
providers/atlassian/jira/provider.yaml | 15 +-
providers/atlassian/jira/pyproject.toml | 6 +-
.../airflow/providers/atlassian/jira/__init__.py | 2 +-
.../providers/atlassian/jira/get_provider_info.py | 7 +
.../airflow/providers/atlassian/jira/hooks/jira.py | 1 -
providers/celery/README.rst | 6 +-
providers/celery/docs/changelog.rst | 30 +
providers/celery/docs/index.rst | 6 +-
providers/celery/provider.yaml | 5 +-
providers/celery/pyproject.toml | 6 +-
.../src/airflow/providers/celery/__init__.py | 2 +-
.../airflow/providers/celery/cli/celery_command.py | 3 +
.../celery/executors/celery_kubernetes_executor.py | 7 +
.../providers/celery/executors/default_celery.py | 21 +-
.../airflow/providers/celery/get_provider_info.py | 2 +-
.../tests/unit/celery/cli/test_celery_command.py | 33 +
.../unit/celery/executors/test_celery_executor.py | 26 +
.../executors/test_celery_kubernetes_executor.py | 21 +
providers/clickhousedb/README.rst | 6 +-
providers/clickhousedb/docs/changelog.rst | 14 +
providers/clickhousedb/docs/index.rst | 6 +-
providers/clickhousedb/provider.yaml | 3 +-
providers/clickhousedb/pyproject.toml | 6 +-
.../src/airflow/providers/clickhousedb/__init__.py | 2 +-
providers/cncf/kubernetes/README.rst | 6 +-
providers/cncf/kubernetes/docs/changelog.rst | 37 +-
providers/cncf/kubernetes/docs/index.rst | 6 +-
providers/cncf/kubernetes/docs/operators.rst | 37 +
providers/cncf/kubernetes/provider.yaml | 3 +-
providers/cncf/kubernetes/pyproject.toml | 6 +-
.../airflow/providers/cncf/kubernetes/__init__.py | 2 +-
.../kubernetes/executors/kubernetes_executor.py | 37 +-
.../executors/local_kubernetes_executor.py | 7 +
.../providers/cncf/kubernetes/operators/kueue.py | 5 +-
.../providers/cncf/kubernetes/operators/pod.py | 105 +-
.../cncf/kubernetes/operators/resource.py | 4 +
.../decorators/test_kubernetes_commons.py | 18 +
.../executors/test_kubernetes_executor.py | 59 +-
.../executors/test_local_kubernetes_executor.py | 21 +
.../kubernetes/log_handlers/test_log_handlers.py | 12 +-
.../unit/cncf/kubernetes/operators/test_kueue.py | 15 +
.../unit/cncf/kubernetes/operators/test_pod.py | 262 ++-
.../cncf/kubernetes/operators/test_resource.py | 8 +
providers/cohere/docs/.latest-doc-only-change.txt | 2 +-
.../providers/cohere/operators/embedding.py | 7 +-
.../tests/unit/cohere/operators/test_embedding.py | 26 +
providers/common/ai/README.rst | 25 +-
providers/common/ai/docs/changelog.rst | 56 +
providers/common/ai/docs/examples.rst | 4 +-
providers/common/ai/docs/index.rst | 15 +-
.../common/ai/docs/operators/document_loader.rst | 9 +-
providers/common/ai/docs/operators/llm_sql.rst | 6 +
providers/common/ai/docs/toolsets.rst | 137 +-
providers/common/ai/provider.yaml | 15 +-
providers/common/ai/pyproject.toml | 19 +-
.../ai/src/airflow/providers/common/ai/__init__.py | 2 +-
.../common/ai/example_dags/example_agent.py | 10 +
.../common/ai/example_dags/example_aws_toolset.py | 54 +
.../airflow/providers/common/ai/operators/agent.py | 17 +-
.../common/ai/operators/document_loader.py | 53 +-
.../providers/common/ai/operators/llm_sql.py | 28 +-
.../providers/common/ai/plugins/hitl_review.py | 43 +-
.../providers/common/ai/toolsets/__init__.py | 10 +-
.../airflow/providers/common/ai/toolsets/aws.py | 509 +++++
.../airflow/providers/common/ai/toolsets/sql.py | 43 +-
.../providers/common/ai/utils/sql_validation.py | 72 +-
.../tests/unit/common/ai/operators/test_agent.py | 21 +-
.../common/ai/operators/test_document_loader.py | 45 +-
.../tests/unit/common/ai/operators/test_llm_sql.py | 125 +-
.../unit/common/ai/plugins/test_hitl_review.py | 75 +-
.../ai/tests/unit/common/ai/toolsets/test_aws.py | 359 ++++
.../ai/tests/unit/common/ai/toolsets/test_sql.py | 97 +
.../unit/common/ai/utils/test_sql_validation.py | 118 +-
providers/common/compat/README.rst | 6 +-
providers/common/compat/docs/changelog.rst | 12 +
providers/common/compat/docs/index.rst | 6 +-
providers/common/compat/provider.yaml | 3 +-
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
providers/common/dataquality/provider.yaml | 2 +-
.../common/io/docs/.latest-doc-only-change.txt | 2 +-
.../messaging/docs/.latest-doc-only-change.txt | 2 +-
providers/common/sql/README.rst | 6 +-
providers/common/sql/docs/changelog.rst | 13 +-
providers/common/sql/docs/index.rst | 6 +-
providers/common/sql/docs/operators.rst | 29 +
providers/common/sql/provider.yaml | 3 +-
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 37 +-
.../airflow/providers/common/sql/operators/sql.py | 76 +
...sql_insert_rows.py => example_sql_bulk_load.py} | 71 +-
.../sql/tests/unit/common/sql/hooks/test_sql.py | 92 +
.../tests/unit/common/sql/operators/test_sql.py | 84 +
providers/databricks/README.rst | 10 +-
providers/databricks/docs/changelog.rst | 23 +
providers/databricks/docs/index.rst | 6 +-
providers/databricks/provider.yaml | 3 +-
providers/databricks/pyproject.toml | 6 +-
.../src/airflow/providers/databricks/__init__.py | 2 +-
.../databricks/operators/databricks_repos.py | 28 +-
.../databricks/operators/databricks_sql.py | 13 +-
.../providers/databricks/sensors/databricks.py | 9 +-
.../databricks/operators/test_databricks_copy.py | 43 +-
.../databricks/operators/test_databricks_repos.py | 29 +-
.../unit/databricks/sensors/test_databricks.py | 12 +
.../dbt/cloud/docs/.latest-doc-only-change.txt | 2 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 6 +-
.../tests/unit/dbt/cloud/operators/test_dbt.py | 21 +
providers/docker/README.rst | 6 +-
providers/docker/docs/changelog.rst | 12 +
providers/docker/docs/index.rst | 6 +-
providers/docker/provider.yaml | 3 +-
providers/docker/pyproject.toml | 6 +-
.../src/airflow/providers/docker/__init__.py | 2 +-
.../airflow/providers/docker/operators/docker.py | 12 +-
.../providers/docker/operators/docker_swarm.py | 12 +-
.../tests/unit/docker/operators/test_docker.py | 38 +-
.../unit/docker/operators/test_docker_swarm.py | 19 +
providers/edge3/.pre-commit-config.yaml | 1 +
providers/edge3/README.rst | 6 +-
providers/edge3/docs/changelog.rst | 28 +
providers/edge3/docs/deployment.rst | 5 +-
providers/edge3/docs/index.rst | 6 +-
providers/edge3/provider.yaml | 3 +-
providers/edge3/pyproject.toml | 6 +-
.../edge3/src/airflow/providers/edge3/__init__.py | 2 +-
.../src/airflow/providers/edge3/cli/definition.py | 7 +
.../airflow/providers/edge3/cli/edge_command.py | 23 +-
.../airflow/providers/edge3/models/edge_worker.py | 38 +-
.../providers/edge3/plugins/www/package.json | 11 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 521 ++---
.../edge3/worker_api/v2-edge-generated.yaml | 5 +
.../edge3/tests/unit/edge3/cli/test_definition.py | 11 +-
.../tests/unit/edge3/cli/test_edge_command.py | 77 +-
.../edge3/tests/unit/edge3/cli/test_worker.py | 36 +
.../tests/unit/edge3/models/test_edge_worker.py | 81 +-
providers/elasticsearch/README.rst | 6 +-
providers/elasticsearch/docs/changelog.rst | 12 +
providers/elasticsearch/docs/index.rst | 6 +-
providers/elasticsearch/provider.yaml | 3 +-
providers/elasticsearch/pyproject.toml | 6 +-
.../airflow/providers/elasticsearch/__init__.py | 2 +-
providers/fab/.pre-commit-config.yaml | 1 +
providers/fab/README.rst | 6 +-
providers/fab/docs/changelog.rst | 30 +
providers/fab/docs/index.rst | 6 +-
providers/fab/provider.yaml | 3 +-
providers/fab/pyproject.toml | 6 +-
.../providers/3rd-party-licenses/LICENSES-ui.txt | 2 +-
.../fab/src/airflow/providers/fab/__init__.py | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 8 +-
providers/google/README.rst | 6 +-
providers/google/docs/changelog.rst | 35 +
providers/google/docs/index.rst | 6 +-
providers/google/provider.yaml | 7 +-
providers/google/pyproject.toml | 6 +-
.../src/airflow/providers/google/__init__.py | 2 +-
.../providers/google/cloud/hooks/dataform.py | 2 +
.../providers/google/cloud/log/gcs_task_handler.py | 27 +
.../providers/google/cloud/openlineage/mixins.py | 116 +-
.../providers/google/cloud/operators/bigquery.py | 2 +-
.../providers/google/cloud/operators/compute.py | 209 +-
.../providers/google/cloud/operators/gen_ai.py | 39 +-
.../google/cloud/transfers/bigquery_to_postgres.py | 13 +-
.../airflow/providers/google/get_provider_info.py | 6 +
.../google/cloud/dataflow/resources/wordcount.go | 180 +-
.../google/cloud/dataform/example_dataform.py | 56 +-
.../tests/unit/google/cloud/hooks/test_dataform.py | 23 +-
.../unit/google/cloud/log/test_gcs_task_handler.py | 83 +
.../unit/google/cloud/openlineage/test_mixins.py | 390 +++-
.../unit/google/cloud/operators/test_bigquery.py | 10 +
.../unit/google/cloud/operators/test_compute.py | 899 +++++---
.../unit/google/cloud/operators/test_gen_ai.py | 210 +-
.../cloud/transfers/test_bigquery_to_postgres.py | 51 +-
providers/hashicorp/README.rst | 6 +-
providers/hashicorp/docs/changelog.rst | 18 +
providers/hashicorp/docs/index.rst | 6 +-
.../docs/secrets-backends/hashicorp-vault.rst | 18 +
providers/hashicorp/provider.yaml | 3 +-
providers/hashicorp/pyproject.toml | 6 +-
.../src/airflow/providers/hashicorp/__init__.py | 2 +-
.../airflow/providers/hashicorp/secrets/vault.py | 116 +-
.../tests/unit/hashicorp/secrets/test_vault.py | 182 +-
providers/http/README.rst | 8 +-
providers/http/docs/changelog.rst | 18 +
providers/http/docs/index.rst | 8 +-
providers/http/provider.yaml | 3 +-
providers/http/pyproject.toml | 8 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
.../http/src/airflow/providers/http/hooks/http.py | 1 -
.../informatica/docs/.latest-doc-only-change.txt | 1 +
providers/jdbc/docs/.latest-doc-only-change.txt | 2 +-
providers/keycloak/README.rst | 6 +-
providers/keycloak/docs/changelog.rst | 16 +
providers/keycloak/docs/index.rst | 6 +-
providers/keycloak/provider.yaml | 3 +-
providers/keycloak/pyproject.toml | 6 +-
.../src/airflow/providers/keycloak/__init__.py | 2 +-
providers/microsoft/azure/README.rst | 6 +-
providers/microsoft/azure/docs/changelog.rst | 35 +
providers/microsoft/azure/docs/index.rst | 6 +-
providers/microsoft/azure/provider.yaml | 3 +-
providers/microsoft/azure/pyproject.toml | 6 +-
.../airflow/providers/microsoft/azure/__init__.py | 2 +-
.../providers/microsoft/azure/sensors/compute.py | 8 +-
.../unit/microsoft/azure/sensors/test_compute.py | 28 +-
.../mssql/docs/.latest-doc-only-change.txt | 2 +-
providers/mysql/docs/.latest-doc-only-change.txt | 2 +-
.../src/airflow/providers/neo4j/operators/neo4j.py | 23 +-
.../neo4j/tests/unit/neo4j/operators/test_neo4j.py | 18 +-
providers/openai/README.rst | 8 +-
providers/openai/docs/changelog.rst | 43 +-
providers/openai/docs/index.rst | 6 +-
providers/openai/provider.yaml | 3 +-
providers/openai/pyproject.toml | 6 +-
.../src/airflow/providers/openai/__init__.py | 2 +-
providers/openlineage/README.rst | 6 +-
providers/openlineage/docs/changelog.rst | 25 +
providers/openlineage/docs/index.rst | 6 +-
providers/openlineage/docs/spark.rst | 47 +
providers/openlineage/docs/troubleshooting.rst | 44 +
providers/openlineage/provider.yaml | 23 +-
providers/openlineage/pyproject.toml | 6 +-
.../src/airflow/providers/openlineage/__init__.py | 2 +-
.../src/airflow/providers/openlineage/conf.py | 6 +
.../providers/openlineage/get_provider_info.py | 7 +
.../providers/openlineage/plugins/listener.py | 53 +-
.../unit/openlineage/plugins/test_listener.py | 98 +
.../tests/unit/openlineage/test_conf.py | 17 +
providers/opensearch/README.rst | 6 +-
providers/opensearch/docs/changelog.rst | 12 +
providers/opensearch/docs/index.rst | 6 +-
providers/opensearch/provider.yaml | 3 +-
providers/opensearch/pyproject.toml | 6 +-
.../src/airflow/providers/opensearch/__init__.py | 2 +-
.../providers/papermill/operators/papermill.py | 8 +-
.../unit/papermill/operators/test_papermill.py | 13 +-
providers/pgvector/README.rst | 6 +-
providers/pgvector/docs/changelog.rst | 18 +
providers/pgvector/docs/index.rst | 6 +-
providers/pgvector/provider.yaml | 3 +-
providers/pgvector/pyproject.toml | 7 +-
.../src/airflow/providers/pgvector/__init__.py | 2 +-
.../providers/pgvector/operators/pgvector.py | 21 +-
.../tests/unit/pgvector/operators/test_pgvector.py | 57 +-
providers/postgres/README.rst | 5 +-
providers/postgres/docs/changelog.rst | 36 +
providers/postgres/docs/index.rst | 5 +-
providers/postgres/provider.yaml | 2 +-
providers/postgres/pyproject.toml | 24 +-
.../airflow/providers/postgres/hooks/postgres.py | 42 +-
.../tests/unit/postgres/hooks/test_postgres.py | 21 +
.../unit/postgres/test_provider_dependencies.py | 46 +
providers/presto/docs/.latest-doc-only-change.txt | 2 +-
providers/redis/docs/.latest-doc-only-change.txt | 2 +-
providers/samba/docs/.latest-doc-only-change.txt | 2 +-
providers/sftp/README.rst | 10 +-
providers/sftp/docs/changelog.rst | 15 +-
providers/sftp/docs/index.rst | 10 +-
providers/sftp/provider.yaml | 3 +-
providers/sftp/pyproject.toml | 10 +-
.../sftp/src/airflow/providers/sftp/__init__.py | 2 +-
providers/snowflake/docs/changelog.rst | 13 +-
.../docs/operators/snowflake_cortex_agent.rst | 66 +
providers/snowflake/provider.yaml | 4 +-
.../providers/snowflake/get_provider_info.py | 2 +
.../providers/snowflake/hooks/snowflake_sql_api.py | 2 +-
.../snowflake/operators/snowflake_cortex_agent.py | 140 ++
.../snowflake/operators/snowpark_containers.py | 10 +-
...er_job.py => example_snowflake_cortex_agent.py} | 34 +-
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 4 +-
.../operators/test_snowflake_cortex_agent.py | 105 +
.../operators/test_snowpark_containers.py | 3 +-
providers/sqlite/docs/.latest-doc-only-change.txt | 2 +-
providers/ssh/README.rst | 8 +-
providers/ssh/docs/changelog.rst | 14 +-
providers/ssh/docs/index.rst | 8 +-
providers/ssh/provider.yaml | 3 +-
providers/ssh/pyproject.toml | 8 +-
.../ssh/src/airflow/providers/ssh/__init__.py | 2 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 5 +-
.../ssh/src/airflow/providers/ssh/operators/ssh.py | 7 +-
.../providers/ssh/operators/ssh_remote_job.py | 6 +-
providers/ssh/tests/unit/ssh/operators/test_ssh.py | 32 +
.../unit/ssh/operators/test_ssh_remote_job.py | 60 +
.../airflow/providers/standard/operators/hitl.py | 33 +-
.../providers/standard/operators/trigger_dagrun.py | 2 +-
.../providers/standard/sensors/date_time.py | 28 +-
.../tests/unit/standard/operators/test_hitl.py | 18 +-
.../unit/standard/operators/test_trigger_dagrun.py | 9 +
.../tests/unit/standard/sensors/test_date_time.py | 85 +-
providers/teradata/README.rst | 6 +-
providers/teradata/docs/changelog.rst | 19 +
providers/teradata/docs/index.rst | 6 +-
providers/teradata/provider.yaml | 3 +-
providers/teradata/pyproject.toml | 6 +-
.../src/airflow/providers/teradata/__init__.py | 2 +-
.../teradata/transfers/teradata_to_teradata.py | 4 +-
.../providers/teradata/utils/encryption_utils.py | 9 +-
.../airflow/providers/teradata/utils/tpt_util.py | 16 +-
.../transfers/test_teradata_to_teradata.py | 19 +
.../unit/teradata/utils/test_encryption_utils.py | 14 +-
.../tests/unit/teradata/utils/test_tpt_util.py | 28 +
providers/trino/docs/.latest-doc-only-change.txt | 2 +-
providers/vertica/docs/.latest-doc-only-change.txt | 2 +-
providers/weaviate/README.rst | 8 +-
providers/weaviate/docs/changelog.rst | 23 +
providers/weaviate/docs/index.rst | 8 +-
providers/weaviate/provider.yaml | 3 +-
providers/weaviate/pyproject.toml | 8 +-
.../src/airflow/providers/weaviate/__init__.py | 2 +-
.../providers/weaviate/operators/weaviate.py | 7 +-
.../system/weaviate/example_weaviate_cohere.py | 3 +-
.../example_weaviate_dynamic_mapping_dag.py | 9 +-
.../system/weaviate/example_weaviate_openai.py | 3 +-
.../system/weaviate/example_weaviate_operator.py | 9 +-
.../system/weaviate/example_weaviate_using_hook.py | 7 +-
.../weaviate/example_weaviate_vectorizer_dag.py | 4 +-
.../example_weaviate_without_vectorizer_dag.py | 3 +-
.../tests/unit/weaviate/operators/test_weaviate.py | 15 +
pyproject.toml | 2 +-
registry/src/_data/types.json | 5 +
registry/src/css/main.css | 1 +
registry/src/css/tokens.css | 1 +
scripts/ci/docker-compose/backend-postgres.yml | 4 +-
scripts/ci/docker-compose/local.yml | 3 +
scripts/ci/prek/breeze_command_walker.py | 66 +
scripts/ci/prek/check_documented_commands.py | 333 +++
scripts/ci/prek/check_imports_in_providers.py | 2 +-
.../prek/check_metrics_synced_with_the_registry.py | 162 +-
scripts/ci/prek/check_migration_patterns.py | 52 +-
scripts/ci/prek/check_provider_conn_fields.py | 12 +-
scripts/ci/prek/check_provider_yaml_files.py | 53 +-
scripts/ci/prek/common_prek_utils.py | 2 +-
scripts/ci/prek/migration_reference.py | 4 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/validate_operators_init.py | 327 ++-
.../ci/prek/validate_operators_init_exemptions.txt | 39 +
scripts/docker/install_os_dependencies.sh | 35 +
.../in_container/run_capture_airflowctl_help.py | 2 +
scripts/in_container/run_migration_reference.py | 19 +-
.../in_container/run_provider_yaml_files_check.py | 36 +-
.../test_check_conn_fields_match_form_widgets.py | 8 +-
.../ci/prek/test_check_documented_commands.py | 212 ++
.../test_check_metrics_synced_with_the_registry.py | 129 ++
.../tests/ci/prek/test_check_migration_patterns.py | 67 +-
.../ci/prek/test_check_provider_yaml_files.py | 84 +
.../tests/ci/prek/test_validate_operators_init.py | 206 ++
scripts/tests/test_react_plugin_bootstrap.py | 83 +
scripts/tools/setup_breeze | 2 +-
.../observability/metrics/datadog_logger.py | 44 +-
.../observability/metrics/metrics_template.yaml | 26 +-
.../airflow_shared/observability/metrics/stats.py | 19 +-
.../observability/metrics/statsd_logger.py | 5 +-
.../observability/metrics/validators.py | 1 -
.../observability/metrics/test_otel_logger.py | 4 +-
.../tests/observability/metrics/test_stats.py | 84 +-
.../plugins_manager/plugins_manager.py | 6 +-
.../src/airflow_shared/secrets_backend/base.py | 7 +
.../tests/secrets_backend/test_base.py | 15 +
task-sdk-integration-tests/docker-compose.yaml | 2 +-
task-sdk/docs/api.rst | 4 +
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/api/client.py | 6 +
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
.../airflow/sdk/coordinators/node/coordinator.py | 29 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 11 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 4 +
.../execution_time/connection_test_supervisor.py | 13 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 46 +-
.../airflow/sdk/execution_time/email_backend.py | 92 +
.../airflow/sdk/execution_time/schema/schema.json | 48 +
.../src/airflow/sdk/execution_time/supervisor.py | 4 +
.../src/airflow/sdk/execution_time/task_runner.py | 67 +-
task-sdk/tests/task_sdk/api/test_client.py | 89 +
.../task_sdk/coordinators/node/test_coordinator.py | 62 +-
.../tests/task_sdk/definitions/test_callback.py | 2 +-
.../test_connection_test_supervisor.py | 112 +
.../tests/task_sdk/execution_time/test_context.py | 93 +
.../task_sdk/execution_time/test_email_backend.py | 86 +
.../task_sdk/execution_time/test_supervisor.py | 108 +-
.../task_sdk/execution_time/test_task_runner.py | 165 +-
ts-sdk/.pre-commit-config.yaml | 65 +
ts-sdk/README.md | 18 +-
.../ci/prek/{ts_sdk_lint.py => compile_ts_sdk.py} | 6 +-
ts-sdk/scripts/ci/prek/ts_sdk_lint.py | 0
ts-sdk/src/coordinator/log-channel.ts | 62 +-
ts-sdk/src/coordinator/runtime.ts | 7 +-
ts-sdk/src/generated/supervisor.ts | 12 +-
ts-sdk/tests/coordinator/log-channel.test.ts | 77 +-
uv.lock | 2144 ++++++++++----------
876 files changed, 27276 insertions(+), 8437 deletions(-)
rename {java-sdk/adr =>
airflow-core/adr/lang-sdk}/0001-java-sdk-airflow-integration.md (100%)
rename {java-sdk/adr => airflow-core/adr/lang-sdk}/0002-workload-execution.md
(100%)
rename {java-sdk/adr => airflow-core/adr/lang-sdk}/0003-pure-java-dags.md (99%)
rename {java-sdk/adr => airflow-core/adr/lang-sdk}/0004-dag-parsing.md (97%)
rename {java-sdk/adr =>
airflow-core/adr/lang-sdk}/0005-coordinator-packaging.md (94%)
create mode 100644 airflow-core/adr/lang-sdk/0006-no-lang-sdk-source-display.md
create mode 100644 airflow-core/adr/lang-sdk/README.md
create mode 100644
airflow-core/docs/authoring-and-scheduling/language-sdks/typescript.rst
create mode 100644 airflow-core/newsfragments/68521.feature.rst
create mode 100644 airflow-core/newsfragments/69377.bugfix.rst
create mode 100644 airflow-core/newsfragments/69469.improvement.rst
create mode 100644 airflow-core/newsfragments/69874.bugfix.rst
create mode 100644 airflow-core/newsfragments/69877.bugfix.rst
create mode 100644 airflow-core/newsfragments/70154.significant.rst
copy
airflow-core/src/airflow/migrations/versions/{0126_3_4_0_add_index_on_asset_uri.py
=> 0127_3_4_0_add_idx_asset_event_partition_key.py} (64%)
create mode 100644
airflow-core/src/airflow/ui/src/components/MarkAs/TaskInstance/MarkTaskInstanceAsDialog.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/hooks/useNearViewport.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useNearViewport.ts
create mode 100644
airflow-core/src/airflow/ui/src/layouts/Nav/NavButton.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Overview/Overview.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagCardActions.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/TeamFilter.tsx
create mode 100644 airflow-core/src/airflow/ui/src/pages/ReactPlugin.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Task/Overview/Overview.test.tsx
copy airflow-core/src/airflow/ui/src/utils/{RouterWrapper.test.tsx =>
median.test.ts} (52%)
copy airflow-core/src/airflow/ui/src/{context/groups/useGroups.ts =>
utils/median.ts} (70%)
copy ts-sdk/example/dags/typescript_example.py =>
airflow-core/tests/unit/api_fastapi/core_api/datamodels/test_plugins.py (66%)
create mode 100644 airflow-ctl/docs/images/output_taskinstances.svg
create mode 100644 airflow-ctl/docs/images/output_tasks.svg
create mode 100644 airflow-ctl/docs/spelling_wordlist.txt
create mode 100644 airflow-ctl/src/airflowctl/ctl/commands/task_command.py
create mode 100644
airflow-ctl/tests/airflow_ctl/ctl/commands/test_task_command.py
create mode 100644 airflow-e2e-tests/docker/openlineage-compat-db.yml
create mode 100644 chart/templates/flower/flower-httproute.yaml
copy chart/tests/helm_tests/{apiserver/test_httproute_apiserver.py =>
other/test_httproute_flower.py} (61%)
create mode 100644
dev/react-plugin-tools/react_plugin_template/ai-agent-rules/README.md
copy devel-common/src/tests_common/test_utils/README.md =>
dev/react-plugin-tools/react_plugin_template/ai-agent-rules/airflow-plugin.md
(52%)
copy devel-common/src/tests_common/test_utils/README.md =>
dev/react-plugin-tools/react_plugin_template/ai-agent-rules/react-typescript.md
(54%)
copy devel-common/src/tests_common/test_utils/README.md =>
dev/react-plugin-tools/react_plugin_template/ai-agent-rules/testing.md (62%)
create mode 100644 go-sdk/cmd/airflow-go-pack/validate.go
create mode 100644 go-sdk/cmd/airflow-go-pack/validate_test.go
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_aws_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/toolsets/aws.py
create mode 100644
providers/common/ai/tests/unit/common/ai/toolsets/test_aws.py
copy providers/common/sql/tests/system/common/sql/{example_sql_insert_rows.py
=> example_sql_bulk_load.py} (62%)
create mode 100644 providers/informatica/docs/.latest-doc-only-change.txt
create mode 100644
providers/postgres/tests/unit/postgres/test_provider_dependencies.py
create mode 100644
providers/snowflake/docs/operators/snowflake_cortex_agent.rst
create mode 100644
providers/snowflake/src/airflow/providers/snowflake/operators/snowflake_cortex_agent.py
copy
providers/snowflake/tests/system/snowflake/{example_snowpark_container_job.py
=> example_snowflake_cortex_agent.py} (63%)
create mode 100644
providers/snowflake/tests/unit/snowflake/operators/test_snowflake_cortex_agent.py
create mode 100644 scripts/ci/prek/breeze_command_walker.py
create mode 100755 scripts/ci/prek/check_documented_commands.py
mode change 100644 => 100755 scripts/ci/prek/check_migration_patterns.py
create mode 100644 scripts/ci/prek/validate_operators_init_exemptions.txt
create mode 100644 scripts/tests/ci/prek/test_check_documented_commands.py
create mode 100644 scripts/tests/ci/prek/test_check_provider_yaml_files.py
create mode 100644 scripts/tests/ci/prek/test_validate_operators_init.py
create mode 100644 scripts/tests/test_react_plugin_bootstrap.py
create mode 100644 task-sdk/src/airflow/sdk/execution_time/email_backend.py
create mode 100644 task-sdk/tests/task_sdk/execution_time/test_email_backend.py
create mode 100644 ts-sdk/.pre-commit-config.yaml
copy ts-sdk/scripts/ci/prek/{ts_sdk_lint.py => compile_ts_sdk.py} (87%)
mode change 100644 => 100755
mode change 100644 => 100755 ts-sdk/scripts/ci/prek/ts_sdk_lint.py