This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a change to branch ci-upgrade-main
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 3c69b879fda Regenerate API datamodels for the upgraded code generator
omit 17ade15b362 [main] CI: Upgrade important CI environment
add c58a05d6e90 Improve BigQuery-to-SQL column lineage rendering (#70816)
add a8a2904be59 Refactor latest DagRun load options for consistency
(#67911)
add d4581aecace Honor FORWARDED_ALLOW_IPS when the API server runs under
gunicorn (#71429)
add 98eaca0ebaa Add teams verify CLI command (#70947)
add 786dd79c284 Keep ZIP-archived Dags active when dag_discovery_safe_mode
is False (#68518)
add 316dc6d82e7 Dispatch the highest priority tasks first in the executor
(#70942)
add bc78f0436b3 Add performance_target parameter to
DatabricksSubmitRunOperator (#71374)
add 1fe59d6ff37 Add myself to code-owners on the common.ai provider
(#71717)
add f03b3bb5ee3 Fix deadline serialization, repr, and prune edge cases
(#70421)
add 64f24194f88 Remove non-committers from CODEOWNERS (#71724)
add 263fafcec05 Add Databricks SQL warehouse lifecycle operators (#70088)
add 39ea27cb778 Ignore the magpie snapshot symlink in git worktrees
(#71727)
add e99d6c6f025 Require team names to be lower case with no doubled
underscores (#70886)
add baa1bf6d65d Add IcebergTableSnapshotTrigger for event-driven
scheduling (#71387)
add b997d2b3485 Add LLMSchemaCompareOperator to the common-ai operator
index table (#71738)
add 0cb0081d7be Make DMS system-test databases non-public (#71733)
add f5ec36107f9 Fix cleared tasks getting stuck when a Dag run has no
version (#71696)
add eaf5fc19ce7 allow deadline alert UUID references in serialized Dag
schema (#70148)
add 7c34d3097eb Prevent a broken job from stalling AWS Batch executor sync
(#71380)
add 42f1301fece Increase padding bottom to make last section clickable.
(#71679)
add 7004bf9711d Halve external vault API lookup requests per airflow
secret lookup (#71701)
add 04e98ca2cac Fix stale flag name in Airflow translations agent skill
(#71332)
add f8b8461e819 Make SparkSubmitOperator durable execution inert below
Airflow 3.3 (#71534)
add 84454220b3c Stop dag processor from warning on every file path
normalized for stats (#71091)
add 068b621a1d3 Bump `azure-batch>=15.0.0` (#71071)
add b09ec5c7e9a Probe AOSS index readiness as the Knowledge Base role in
Bedrock RAG system test (#71745)
add c91b476f6d1 Fix incorrect documented defaults for
MwaaTriggerDagRunOperator waiter params (#71740)
add dfdb925e1bc UI: Stop using React.FC and the React type namespace
(#71563)
add 3968cf014f7 i18n(Ko): add missing translations in assets.json (Aug 18)
(#71760)
add 2f4625a7d4d Improve DAG authorization filtering performance (#71722)
add 372b8ed40a2 Serve logs from scheduler if any executor is LocalExecutor
(#71283)
add 7b94de7d4d3 Validate issuer and audience of Azure AD id_tokens in FAB
auth manager (#71735)
add f01520cbd1b Scope /assets/events to the Dags the caller may read
(#71741)
add 0815a27eae7 Add terminationGracePeriodSeconds support for PgBouncer in
Helm chart (#71237)
add 45fa44f0215 UI: Avoid missing task instance links (#71762)
add 9ef2b27b931 Fix datetime pickers unusable on Firefox and Safari
(#71627)
add 2e659852cc4 Complete French UI translations (#71666)
add 2571c71ac2d Improve-arabic-translations (#71519)
add 3864d8f5a54 Build pgbouncer-exporter image from a pinned commit rather
than a tag (#71746)
add 3dcdcb8002f API: Return asset events for Dag Runs without a start date
(#71379)
add f549b34c682 Stop variables export/import from silently corrupting
values (#70944)
add 4670c047f44 Stop airflow config update from writing a backup during
dry-run (#70979)
add c8553925af8 UI: Allow scoping plugin tabs to specific Dags and tasks
(#69148)
add f558ff13273 Stop discarding a MeterProvider configured via
OTEL_CONFIG_FILE (#71529)
add bd3dca49c15 fix(providers/google): support sovereign console links
(#70001)
add ed68491d8be Prepare Cloud Batch jobs before template rendering (#70835)
add 1f82ed8aea9 UI: Unify list page filters and table header controls
(#71731)
add ae54b2be5ee Fix asset events test for Dag runs without start date
(#71799)
add 2bdec91c2d2 [main] CI: Upgrade important CI environment
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (3c69b879fda)
\
N -- N -- N refs/heads/ci-upgrade-main (2bdec91c2d2)
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/SKILL.md | 10 +-
.github/CODEOWNERS | 14 +-
.gitignore | 8 +-
.pre-commit-config.yaml | 4 +-
Dockerfile | 2 +-
Dockerfile.ci | 2 +-
.../administration-and-deployment/dag-bundles.rst | 4 +
.../docs/administration-and-deployment/plugins.rst | 79 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/dags.rst | 2 +-
airflow-core/docs/howto/run-behind-proxy.rst | 8 +-
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/newsfragments/68518.bugfix.rst | 1 +
airflow-core/newsfragments/69148.feature.rst | 1 +
airflow-core/newsfragments/70886.significant.rst | 19 +
airflow-core/newsfragments/70947.feature.rst | 1 +
.../api_fastapi/auth/managers/base_auth_manager.py | 9 +-
.../auth/managers/simple/ui/rules/core.js | 37 +
.../auth/managers/simple/ui/rules/typescript.js | 10 +
.../auth/managers/simple/ui/src/alert/Alert.tsx | 10 +-
.../managers/simple/ui/src/alert/ErrorAlert.tsx | 3 +-
.../managers/simple/ui/src/login/LoginForm.tsx | 4 +-
.../api_fastapi/core_api/datamodels/assets.py | 2 +-
.../api_fastapi/core_api/datamodels/plugins.py | 18 +
.../core_api/openapi/v2-rest-api-generated.yaml | 55 +-
.../api_fastapi/core_api/routes/public/assets.py | 3 +
.../src/airflow/api_fastapi/core_api/security.py | 21 +
.../execution_api/datamodels/asset_event.py | 2 +-
.../src/airflow/api_fastapi/gunicorn_app.py | 18 +-
airflow-core/src/airflow/cli/cli_config.py | 7 +
.../src/airflow/cli/commands/config_command.py | 20 +-
.../src/airflow/cli/commands/scheduler_command.py | 7 +-
.../src/airflow/cli/commands/team_command.py | 84 ++-
.../src/airflow/cli/commands/variable_command.py | 5 +-
.../src/airflow/config_templates/config.yml | 13 +-
.../src/airflow/dag_processing/collection.py | 40 +-
airflow-core/src/airflow/dag_processing/manager.py | 22 +-
.../src/airflow/executors/base_executor.py | 7 +-
.../versions/0131_3_4_0_lower_case_team_names.py | 108 +++
airflow-core/src/airflow/models/dagbag.py | 5 +-
airflow-core/src/airflow/models/deadline.py | 11 +-
airflow-core/src/airflow/models/deadline_alert.py | 7 +-
airflow-core/src/airflow/models/serialized_dag.py | 6 +
airflow-core/src/airflow/models/taskinstance.py | 53 +-
airflow-core/src/airflow/models/team.py | 21 +
airflow-core/src/airflow/plugins_manager.py | 85 +++
airflow-core/src/airflow/serialization/decoders.py | 7 +-
.../airflow/serialization/definitions/deadline.py | 10 +-
airflow-core/src/airflow/serialization/schema.json | 7 +
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 110 ++-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 15 +-
.../airflow/ui/public/i18n/locales/ar/assets.json | 4 +
.../airflow/ui/public/i18n/locales/ar/common.json | 41 +
.../ui/public/i18n/locales/ar/components.json | 13 +-
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 9 +-
.../airflow/ui/public/i18n/locales/ar/dags.json | 8 +-
.../airflow/ui/public/i18n/locales/en/common.json | 9 +-
.../airflow/ui/public/i18n/locales/en/dags.json | 8 +
.../airflow/ui/public/i18n/locales/fr/assets.json | 5 +-
.../airflow/ui/public/i18n/locales/fr/common.json | 5 +
.../ui/public/i18n/locales/fr/components.json | 13 +-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 9 +-
.../airflow/ui/public/i18n/locales/fr/dags.json | 4 +-
.../airflow/ui/public/i18n/locales/ko/assets.json | 10 +-
airflow-core/src/airflow/ui/rules/core.js | 37 +
airflow-core/src/airflow/ui/rules/typescript.js | 10 +
.../src/airflow/ui/src/components/AnsiRenderer.tsx | 9 +-
.../ui/src/components/Assets/AssetEvents.tsx | 86 +--
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 30 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 32 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 26 +-
.../Clear/TaskInstance/runOnLatestVersion.test.ts | 14 +
.../Clear/TaskInstance/runOnLatestVersion.ts | 21 +-
.../src/airflow/ui/src/components/ConfigForm.tsx | 7 +-
.../airflow/ui/src/components/DAGWarningsModal.tsx | 10 +-
.../src/components/DagActions/RunBackfillForm.tsx | 5 +-
.../ui/src/components/DataTable/DataTable.test.tsx | 84 ++-
.../ui/src/components/DataTable/DataTable.tsx | 83 +-
.../ui/src/components/DateTimeInput.test.tsx | 106 ++-
.../airflow/ui/src/components/DateTimeInput.tsx | 247 ++++--
.../src/airflow/ui/src/components/DeleteDialog.tsx | 5 +-
.../ui/src/components/FilterBar/FilterBar.test.tsx | 169 ++++-
.../ui/src/components/FilterBar/FilterBar.tsx | 106 +--
.../ui/src/components/FilterBar/FilterPill.tsx | 136 ++--
.../ui/src/components/FilterBar/defaultIcons.tsx | 17 +-
.../filters/BooleanFilter.tsx} | 25 +-
.../components/FilterBar/filters/DateFilter.tsx | 3 +-
.../src/components/FilterBar/filters/DateInput.tsx | 9 +-
.../FilterBar/filters/DateRangeFilter.test.tsx | 3 +-
.../FilterBar/filters/DateRangeFilter.tsx | 22 +-
.../FilterBar/filters/DateRangeInputs.tsx | 7 +-
.../FilterBar/filters/MultiSelectFilter.tsx} | 32 +-
.../FilterBar/filters/MultiSelectPill.tsx | 176 +++++
.../components/FilterBar/filters/SelectFilter.tsx | 42 +-
.../components/FilterBar/filters/TagsFilter.tsx | 57 ++
.../FilterBar/filters/TextSearchFilter.tsx | 4 +-
.../FilterBar/filters/TimetableTypeFilter.tsx | 55 ++
.../airflow/ui/src/components/FilterBar/index.ts | 4 +
.../airflow/ui/src/components/FilterBar/types.ts | 22 +-
.../airflow/ui/src/components/FilterBar/utils.ts | 23 +
.../src/components/FlexibleForm/FlexibleForm.tsx | 4 +-
.../ui/src/components/Graph/TaskLink.test.tsx | 19 +
.../airflow/ui/src/components/Graph/TaskLink.tsx | 66 +-
.../ui/src/components/Graph/TaskNode.test.tsx | 44 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 4 +
.../airflow/ui/src/components/LimitedItemsList.tsx | 6 +-
.../airflow/ui/src/components/MatchModeToggle.tsx | 58 ++
.../src/airflow/ui/src/components/SearchBar.tsx | 3 +
.../ui/src/components/SearchDags/SearchDags.tsx | 8 +-
.../SearchDags/SearchDagsDropdownIndicator.tsx | 2 +-
.../src/airflow/ui/src/components/StateBadge.tsx | 4 +-
.../src/airflow/ui/src/components/StatsCard.tsx | 3 +-
.../src/components/TriggerDag/TriggerDAGModal.tsx | 6 +-
.../ui/src/components/renderStructuredLog.tsx | 12 +-
.../ui/src/components/ui/ActionBar/BarContent.tsx | 4 +-
.../src/airflow/ui/src/components/ui/Alert.tsx | 10 +-
.../ui/src/components/ui/Breadcrumb/Root.tsx | 12 +-
.../src/airflow/ui/src/components/ui/Checkbox.tsx | 10 +-
.../src/airflow/ui/src/components/ui/Clipboard.tsx | 16 +-
.../ui/src/components/ui/Dialog/Content.tsx | 4 +-
.../airflow/ui/src/components/ui/IconButton.tsx | 4 +-
.../ui/src/components/ui/InputWithAddon.tsx | 6 +-
.../airflow/ui/src/components/ui/LazyClipboard.tsx | 6 +-
.../ui/src/components/ui/Menu/MenuContent.tsx | 4 +-
.../airflow/ui/src/components/ui/NumberInput.tsx | 4 +-
.../ui/src/components/ui/Pagination/Items.tsx | 3 +-
.../airflow/ui/src/components/ui/Popover/Arrow.tsx | 4 +-
.../ui/src/components/ui/Popover/CloseTrigger.tsx | 14 +-
.../ui/src/components/ui/Popover/Content.tsx | 6 +-
.../src/airflow/ui/src/components/ui/RadioCard.tsx | 6 +-
.../ui/src/components/ui/Select/Content.tsx | 4 +-
.../ui/src/components/ui/Select/ItemGroup.tsx | 4 +-
.../ui/src/components/ui/Select/ValueText.tsx | 4 +-
.../src/airflow/ui/src/components/ui/Switch.tsx | 10 +-
.../src/airflow/ui/src/components/ui/Tag.tsx | 6 +-
.../src/airflow/ui/src/components/ui/Tooltip.tsx | 11 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 163 ++--
.../src/airflow/ui/src/hooks/useDateRangeFilter.ts | 32 +-
.../src/airflow/ui/src/hooks/useMatchMode.ts | 60 ++
.../ui/src/hooks/usePluginAppliesToContext.test.ts | 147 ++++
.../ui/src/hooks/usePluginAppliesToContext.ts | 76 ++
.../airflow/ui/src/hooks/usePluginTabs.test.tsx | 121 +++
.../src/airflow/ui/src/hooks/usePluginTabs.tsx | 52 +-
.../airflow/ui/src/hooks/useRequiredActionTabs.ts | 4 +-
.../airflow/ui/src/hooks/useScopedPluginViews.ts | 47 ++
.../ui/src/layouts/Details/Grid/GridTI.test.tsx | 36 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 19 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 6 +-
.../airflow/ui/src/layouts/Nav/LanguageModal.tsx | 3 +-
.../ui/src/layouts/Nav/LanguageSelector.tsx | 4 +-
.../src/airflow/ui/src/layouts/Nav/LogoutModal.tsx | 3 +-
.../airflow/ui/src/layouts/Nav/TimezoneModal.tsx | 3 +-
.../ui/src/layouts/Nav/TimezoneSelector.tsx | 4 +-
.../ui/src/layouts/Nav/TokenGenerationModal.tsx | 4 +-
airflow-core/src/airflow/ui/src/main.tsx | 3 +
.../ui/src/pages/Asset/AssetPanelButtons.tsx | 3 +-
.../Asset/AssetStateStore/AssetStateStore.tsx | 17 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 51 +-
.../ui/src/pages/Connections/Connections.tsx | 24 +-
.../ui/src/pages/Dag/Overview/Overview.test.tsx | 18 +
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 8 +-
.../src/airflow/ui/src/pages/Dag/Tasks/Tasks.tsx | 8 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 20 +-
.../ui/src/pages/DagRuns/DagRunsFilters.tsx | 10 +-
.../DagsList/DagsFilters/DagsFilterSelect.tsx | 83 --
.../DagsList/DagsFilters/DagsFilters.test.tsx | 83 +-
.../src/pages/DagsList/DagsFilters/DagsFilters.tsx | 230 +-----
.../pages/DagsList/DagsFilters/FavoriteFilter.tsx | 61 --
.../pages/DagsList/DagsFilters/PausedFilter.tsx | 40 -
.../pages/DagsList/DagsFilters/RunStateSelect.tsx | 87 ---
.../src/pages/DagsList/DagsFilters/TagFilter.tsx | 83 --
.../src/pages/DagsList/DagsFilters/TeamFilter.tsx | 80 --
.../DagsList/DagsFilters/TimetableTypeFilter.tsx | 58 --
.../ui/src/pages/DagsList/DagsList.test.tsx | 14 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 50 +-
.../ui/src/pages/DagsList/usePausedDefault.ts | 57 ++
.../ui/src/pages/DagsList/useTagFilter.test.tsx | 245 ------
.../airflow/ui/src/pages/DagsList/useTagFilter.ts | 50 --
.../pages/Dashboard/Stats/DagImportErrorsModal.tsx | 6 +-
.../Dashboard/Stats/PluginImportErrorsModal.tsx | 12 +-
.../src/airflow/ui/src/pages/Deadlines/index.tsx | 16 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 21 +-
.../ui/src/pages/HITLTaskInstances/HITLFilters.tsx | 19 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Jobs.tsx | 16 +-
.../src/airflow/ui/src/pages/Pools/Pools.tsx | 86 ++-
.../ui/src/pages/Task/Overview/Overview.test.tsx | 18 +
.../ui/src/pages/Task/Overview/Overview.tsx | 8 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 1 +
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 2 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 15 +-
.../ui/src/pages/TaskStateStore/TaskStateStore.tsx | 15 +-
.../src/pages/Variables/ImportVariablesButton.tsx | 2 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 48 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 41 +-
.../src/airflow/ui/src/pages/XCom/XComFilters.tsx | 9 +-
.../ui/src/queries/useGridTISummaries.test.tsx | 4 +-
.../airflow/ui/src/queries/useTogglePause.test.tsx | 4 +-
.../airflow/ui/src/utils/pluginAppliesTo.test.ts | 225 ++++++
.../src/airflow/ui/src/utils/pluginAppliesTo.ts | 155 ++++
.../ui/src/utils/useFiltersHandler.test.tsx | 142 ++++
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 25 +
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 48 +-
.../src/airflow/ui/tests/e2e/pages/DagsPage.ts | 38 +-
.../airflow/ui/tests/e2e/specs/backfill.spec.ts | 17 +-
.../airflow/ui/tests/e2e/specs/dags-list.spec.ts | 4 +-
airflow-core/src/airflow/utils/db.py | 34 +-
.../core_api/routes/public/test_assets.py | 139 +++-
.../core_api/routes/public/test_dag_run.py | 39 +-
.../core_api/routes/public/test_plugins.py | 50 +-
.../versions/head/test_asset_events.py | 24 +
.../tests/unit/cli/commands/test_config_command.py | 23 +
.../unit/cli/commands/test_gunicorn_monitor.py | 43 +-
.../unit/cli/commands/test_plugins_command.py | 6 +-
.../unit/cli/commands/test_scheduler_command.py | 2 +
.../tests/unit/cli/commands/test_team_command.py | 149 ++++
.../unit/cli/commands/test_variable_command.py | 34 +
.../tests/unit/dag_processing/test_manager.py | 101 +++
.../tests/unit/executors/test_base_executor.py | 23 +
.../migrations/test_0131_lower_case_team_names.py | 138 ++++
airflow-core/tests/unit/models/test_cleartasks.py | 179 ++++-
airflow-core/tests/unit/models/test_deadline.py | 17 +
.../tests/unit/models/test_deadline_alert.py | 30 +
.../tests/unit/models/test_prune_deadlines.py | 126 ++++
.../tests/unit/models/test_serialized_dag.py | 97 +++
airflow-core/tests/unit/plugins/test_plugin.py | 6 +-
.../tests/unit/plugins/test_plugins_manager.py | 132 ++++
.../test_deadline_reference_registry.py | 82 ++
airflow-core/tests/unit/utils/test_db.py | 35 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 57 +-
.../tests/airflow_ctl/api/test_operations.py | 22 +-
chart/dockerfiles/pgbouncer-exporter/Dockerfile | 8 +-
.../pgbouncer-exporter/build_and_push.sh | 7 +
.../templates/pgbouncer/pgbouncer-deployment.yaml | 1 +
chart/tests/helm_tests/other/test_pgbouncer.py | 14 +
chart/values.schema.json | 7 +
chart/values.yaml | 6 +
dev/breeze/doc/ci/02_images.md | 2 +-
.../commands/release_management_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
dev/breeze/uv.lock | 68 +-
.../react_plugin_template/eslint.config.js | 34 +
.../react_plugin_template/src/main.tsx | 3 +-
devel-common/pyproject.toml | 4 +-
devel-common/src/tests_common/test_utils/dag.py | 6 +-
docs/spelling_wordlist.txt | 2 +
generated/known_airflow_exceptions.txt | 2 +-
.../amazon/aws/executors/batch/batch_executor.py | 37 +-
.../providers/amazon/aws/executors/batch/utils.py | 14 +
.../airflow/providers/amazon/aws/operators/mwaa.py | 4 +-
.../aws/example_bedrock_retrieve_and_generate.py | 36 +-
.../amazon/tests/system/amazon/aws/example_dms.py | 113 ++-
.../system/amazon/aws/example_dms_serverless.py | 53 +-
.../aws/executors/batch/test_batch_executor.py | 168 +++++
providers/apache/iceberg/provider.yaml | 5 +
.../providers/apache/iceberg/get_provider_info.py | 6 +
.../providers/apache/iceberg/triggers}/__init__.py | 0
.../providers/apache/iceberg/triggers/iceberg.py | 170 +++++
.../providers/apache/iceberg/version_compat.py | 2 +
.../example_iceberg_table_snapshot_watcher.py | 28 +-
.../unit/apache/iceberg/triggers}/__init__.py | 0
.../unit/apache/iceberg/triggers/test_iceberg.py | 275 +++++++
providers/apache/spark/docs/operators.rst | 15 +-
.../apache/spark/operators/spark_submit.py | 37 +-
.../apache/spark/operators/test_spark_submit.py | 26 +-
providers/common/ai/docs/operators/index.rst | 3 +
providers/databricks/docs/operators/submit_run.rst | 1 +
providers/databricks/docs/operators/warehouse.rst | 55 ++
providers/databricks/provider.yaml | 2 +
.../src/airflow/providers/databricks/exceptions.py | 4 +
.../providers/databricks/get_provider_info.py | 6 +-
.../providers/databricks/hooks/databricks.py | 73 ++
.../providers/databricks/operators/databricks.py | 11 +
.../providers/databricks/operators/warehouse.py | 156 ++++
.../example_databricks_sql_warehouse.py} | 45 +-
.../tests/unit/databricks/hooks/test_databricks.py | 63 ++
.../unit/databricks/operators/test_databricks.py | 21 +
.../unit/databricks/operators/test_warehouse.py | 406 ++++++++++
.../providers/edge3/plugins/www/eslint.config.js | 34 +
.../plugins/www/src/components/StateBadge.tsx | 4 +-
.../www/src/components/WorkerStateBadge.tsx | 4 +-
.../www/src/components/WorkerSysinfoBadge.tsx | 4 +-
.../edge3/plugins/www/src/components/ui/Alert.tsx | 10 +-
.../plugins/www/src/components/ui/InputGroup.tsx | 8 +-
.../www/src/components/ui/Select/Content.tsx | 4 +-
.../www/src/components/ui/Select/ValueText.tsx | 4 +-
.../providers/edge3/plugins/www/src/main.tsx | 3 +-
.../fab/auth_manager/security_manager/override.py | 60 +-
.../auth_manager/security_manager/test_override.py | 93 ++-
.../airflow/providers/google/cloud/bundles/gcs.py | 2 +-
.../google/cloud/log/stackdriver_task_handler.py | 6 +-
.../google/cloud/operators/cloud_batch.py | 10 +-
.../google/cloud/transfers/bigquery_to_sql.py | 57 +-
.../tests/unit/google/cloud/bundles/test_gcs.py | 11 +
.../cloud/log/test_stackdriver_task_handler.py | 5 +-
.../google/cloud/operators/test_cloud_batch.py | 63 +-
.../cloud/transfers/test_bigquery_to_mssql.py | 8 +-
.../cloud/transfers/test_bigquery_to_mysql.py | 8 +-
.../cloud/transfers/test_bigquery_to_postgres.py | 13 +-
.../hashicorp/_internal_client/vault_client.py | 98 ++-
.../src/airflow/providers/hashicorp/hooks/vault.py | 6 +-
.../_internal_client/test_vault_client.py | 117 +--
.../tests/unit/hashicorp/hooks/test_vault.py | 96 ++-
.../tests/unit/hashicorp/secrets/test_vault.py | 4 +-
providers/microsoft/azure/README.rst | 2 +-
providers/microsoft/azure/docs/changelog.rst | 28 +
providers/microsoft/azure/docs/index.rst | 2 +-
providers/microsoft/azure/pyproject.toml | 4 +-
.../providers/microsoft/azure/hooks/batch.py | 126 ++--
.../providers/microsoft/azure/operators/batch.py | 53 +-
.../providers/microsoft/azure/triggers/batch.py | 15 +-
.../tests/unit/microsoft/azure/hooks/test_batch.py | 274 +++----
.../unit/microsoft/azure/operators/test_batch.py | 125 ++-
.../unit/microsoft/azure/triggers/test_batch.py | 36 +-
pyproject.toml | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
.../ci/prek/validate_operators_init_exemptions.txt | 1 -
scripts/tools/setup_breeze | 2 +-
.../observability/metrics/otel_logger.py | 23 +-
.../observability/metrics/test_otel_logger.py | 59 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 4 +-
.../airflow/sdk/execution_time/schema/schema.json | 13 +-
task-sdk/tests/task_sdk/api/test_client.py | 30 +-
ts-sdk/src/generated/supervisor.ts | 2 +-
uv.lock | 840 +++++++++++++--------
327 files changed, 9199 insertions(+), 3193 deletions(-)
create mode 100644 airflow-core/newsfragments/68518.bugfix.rst
create mode 100644 airflow-core/newsfragments/69148.feature.rst
create mode 100644 airflow-core/newsfragments/70886.significant.rst
create mode 100644 airflow-core/newsfragments/70947.feature.rst
create mode 100644
airflow-core/src/airflow/migrations/versions/0131_3_4_0_lower_case_team_names.py
copy airflow-core/src/airflow/ui/src/components/{ui/RouterLink.tsx =>
FilterBar/filters/BooleanFilter.tsx} (56%)
rename
airflow-core/src/airflow/ui/src/{pages/DagsList/DagsFilters/RequiredActionFilter.tsx
=> components/FilterBar/filters/MultiSelectFilter.tsx} (59%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/MultiSelectPill.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/TagsFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/TimetableTypeFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/MatchModeToggle.tsx
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useMatchMode.ts
create mode 100644
airflow-core/src/airflow/ui/src/hooks/usePluginAppliesToContext.test.ts
create mode 100644
airflow-core/src/airflow/ui/src/hooks/usePluginAppliesToContext.ts
create mode 100644 airflow-core/src/airflow/ui/src/hooks/usePluginTabs.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/hooks/useScopedPluginViews.ts
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/DagsFilterSelect.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/FavoriteFilter.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/PausedFilter.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/RunStateSelect.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/TagFilter.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/TeamFilter.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/DagsFilters/TimetableTypeFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/usePausedDefault.ts
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/useTagFilter.test.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/useTagFilter.ts
create mode 100644
airflow-core/src/airflow/ui/src/utils/pluginAppliesTo.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/pluginAppliesTo.ts
create mode 100644
airflow-core/src/airflow/ui/src/utils/useFiltersHandler.test.tsx
create mode 100644
airflow-core/tests/unit/migrations/test_0131_lower_case_team_names.py
create mode 100644 airflow-core/tests/unit/models/test_prune_deadlines.py
copy {airflow-core/src/airflow/api/common =>
providers/apache/iceberg/src/airflow/providers/apache/iceberg/triggers}/__init__.py
(100%)
create mode 100644
providers/apache/iceberg/src/airflow/providers/apache/iceberg/triggers/iceberg.py
copy airflow-core/tests/system/example_empty.py =>
providers/apache/iceberg/tests/system/apache/iceberg/example_iceberg_table_snapshot_watcher.py
(66%)
copy {airflow-core/src/airflow/api/common =>
providers/apache/iceberg/tests/unit/apache/iceberg/triggers}/__init__.py (100%)
create mode 100644
providers/apache/iceberg/tests/unit/apache/iceberg/triggers/test_iceberg.py
create mode 100644 providers/databricks/docs/operators/warehouse.rst
create mode 100644
providers/databricks/src/airflow/providers/databricks/operators/warehouse.py
copy providers/{alibaba/tests/system/alibaba/example_oss_bucket.py =>
databricks/tests/system/databricks/example_databricks_sql_warehouse.py} (50%)
create mode 100644
providers/databricks/tests/unit/databricks/operators/test_warehouse.py