This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch
dependabot/npm_and_yarn/airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/vite-7.1.5
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 78d8c70398d Bump vite
add 77cffbbc102 Fix static checks in boring-cyborg.yml (#55441)
add b4f56607481 chore(ui): add bottom padding to DAG list (#55415)
add 1e2f3ab853c feat(i18n): Fill Turkish translation gaps (#55424)
add a036dc17024 Fix scheduler ``serve_logs`` subprocess file descriptor
errors (#55443)
add 23c14622b52 Bump trove-classifiers from 2025.9.8.13 to 2025.9.9.12
(#55418)
add 5783c4e6e53 Bump trove-classifiers from 2025.9.8.13 to 2025.9.9.12 in
/airflow-core (#55421)
add 7c091f3d6ee docs(pre-commit): remove redundant comment (#55428)
add 04537dee693 Make /mnt writeable in publish-docs workflow back (#55450)
add 65e6a1ed0cb Fix: Make Jenkins connection schema visible (#55444)
add c1435186455 Complete Hebrew translation 2025-09-09 (#55383)
add ed0b79b2ad6 i18n(ko): add missing translations (#55379)
add 1b8108bb319 remove the 'provide_authorized_glcoud' from BeamPipeline
operators (#55453)
add 63c9b432c31 Make `apply_function` optional in `AwaitMessageTrigger`
(#55437)
add 9e921a4cce8 Add section in doc about using message payload (#55438)
add 270db0703db Add missing test for aws batch utils (#55407)
add 8756128338e fix(airflowctl): timezone aware and consistent
serialisation for datetime (#55282)
add abdb7880d13 Add Links to Edge React UI (#55356)
add 470eb03a19d Fix the misalignment of gantt view progress bars (#55061)
(#55291)
add f80d3084b45 Add react-dom to default plugin external libraries (#55451)
add 2a1c68684cc Add reusable FilterBar component for date, number, text
input (#54895)
add dd3cfdb0373 Update templating support in Deadline Alert docs (#55429)
add 0f4cc7c1938 Catch 404/401 issues for Bedrock Operators (#55445)
add 10468747fef Update color palette and leverage Chakra semantic tokens
(#53981)
add 6ffcb8d9f8e fix(i18n): move the filter translation for Taiwanese
Mandarin nad Mandarin Chinese (#55472)
add 81c55d827a5 Bump vite from 5.4.19 to 5.4.20 in
/providers/edge3/src/airflow/providers/edge3/plugins/www (#55449)
add bddd9633d7a fix(NeedReviewButton): link to
required_actions?response_received=false instead (#55483)
add 224b50c411d Make the "Toggle Source" log display only hide source
fields, not all fields (#55474)
add 2f04eb2a122 CLI commands for multi team (#55283)
add 585b345ae87 Adjust Edge color scheme after merge of PR 53981 (#55485)
add 2fae0dfb611 Adjust React Template color scheme after merge of PR 53981
(#55486)
add 598c3d98f48 Disable backporting label auto-adding (#55461)
add 3e776cc5642 CI: Bump UV and Ruff (#55480)
add 0b1ea8d66d8 Update providers metadata 2025-09-09 (#55404)
add ee5714b1733 Fix airflowctl test type mapping (#55488)
add 20620c6a325 Fix min version of keycloak after it's been released
(#55491)
add d88f192b4cb Differentiate between triggers and watchers currently
running for better visibility. (#55376)
add 5251ac24b03 [RFC] Feat(ui): Add portuguese translation + CODEOWNER
(#52341)
add 9bc80602156 Add confirmation dialog for exit maintenance action in
Edge Worker Page (#55400)
add fb7aa1190d2 Close French Translation Gap (#55482)
add 23755883e5d Fix `version_compat` for Docker decorator with Airflow
3.0.X (#55447)
add 1c104a7d8dc Once again redact JWT tokens in task logs (#55499)
add 8a13c06a001 fix(airflowctl): enhance API token handling and update CLI
argument list (#55430)
add 69dac08dd1e Fix Python version for PROD images (#55507)
add 13f230c7185 [RFC] Feat(ui): add italian translation + CODEOWNER
(#52342)
add 9a4694cd643 Fix missing reset and filter translations (#55471)
add f97826dffdf Add more error handling in pod_manager consume_logs
(#55479)
add 2788c794f11 Fix grid view to handle long task name (#55332)
add a6352d9fe4b Use httpbingo for example-dag-decorator (#55512)
add c22df6d8059 Make the main branch target to Airflow 3.2 & Task SDK 1.2
(#55493)
add 1455f5af8e5 Make task stdout/stderr output filterable in the Sources
list in the UI (#55508)
add 9385762777c feat: Implemented Filters UI for Asset View (#54640)
add ece5fcd90d3 Add new Filter Bar to Audit Log (#55487)
add 31234528b28 docs(ruff-AIR-rules-usage): remove --preview as it's
stablized after ruff==0.13.0 (#55516)
add 8a51c7351d5 feat: Add shutdown button for edge workers with
confirmation dialog (#55513)
add c9100bbbc60 Fix prod image package
test_required_providers_are_installed, exclude fab for python3.13 (#55518)
add 897d0bfb266 Add CI job to test airflow standalone startup (#55458)
add 1766a9e0d9a Use FilterBar for Asset Event filters (#55522)
add 68236cc2a62 build: upgrade important version (#55519)
add ff5d7f6dfbd Update query client strategy (#55528)
add 30c193b103c fix(hitl): make the user model in HITLDetail consistent
with airflow user model (#55463)
add 09544966741 Introduce e2e testing with testcontainers (#54072)
add a408fbc5bd9 feat: Add delete button for offline edge workers (#55529)
add 6da54433992 Mark React Apps as Experimental for Airflow 3.1 (#55478)
add a697436c835 fix(ui): Connection Form Extras not inferring the correct
type (#55492)
add 0b6c753d371 Remove config loader from react tests (#55541)
add 64139c2cb1e Migrate off Xen-based ECS instances (#55527)
add 20e2b6c7a53 Add autorefresh to Required Actions button (#55543)
add b9f8ed6a0f1 Some small UI polishing for Edge React UI (#55545)
add 46da5ec33ad Add hitl required action count (#55546)
add e41de088064 feat(hitl): get rid off "Fallback to defaults" in HITL
(#55536)
add d4e92e6bb85 Remove FAB provider from expected providers for PROD image
3.13 verification (#55523)
add e6d51eb7cb9 Add no/force color env variables handling to airflow
standalone (#55490)
add 8eb30c69013 Use quotes to python version in github action env (#55556)
add 2d682285350 Feat ol bigquery to postgres operatorfeature: Add
OpenLineage support for BigQueryToPostgresOperator (#55392)
add 318a1f162d9 Unify datetime format in the UI (#55572)
add a64e2485e66 Bump axios from 1.11.0 to 1.12.0 in
/airflow-core/src/airflow/ui (#55551)
add 4c85e279d61 Prevent HITL from emitting reqeust for settled dag and
tasks (#55575)
add 2de2687e101 Move the KubernetesPodOperator
'convert_config_file_to_dict' call (#55064)
add 17810a69a73 Fix dataflow java streaming infinite run (#55209)
add d62f992b167 disable links for beam provider operators using runner
(#55248)
add 87b279b301c Update executor loader cache (#55469)
add 07dd277985f Fix Grid cache invalidation for multi-run task operations
(#55504)
add 11f8cc3de95 Fix trigger job log tests (#55563)
add 4b407ea20ae Add conversion to timedelta type for self.timeout value
for CloudComposerDAGRunSensor (#55570)
add 19ab8780a3c Add Async support for SMTP Notifier (#55308)
add 8844d39ad8a Fix gantt chart rendering issues (#55554)
add 800db4f862d Bump axios (#55552)
add 1e375a6df37 Bump vite
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 (78d8c70398d)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/vite-7.1.5
(1e375a6df37)
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:
.dockerignore | 1 +
.github/CODEOWNERS | 2 +
.github/actions/install-pre-commit/action.yml | 88 +++
.github/actions/install-prek/action.yml | 2 +-
.github/boring-cyborg.yml | 44 +-
.github/workflows/additional-prod-image-tests.yml | 9 +
.github/workflows/airflow-e2e-tests.yml | 123 +++++
.github/workflows/basic-tests.yml | 53 +-
.github/workflows/prod-image-build.yml | 4 +
.github/workflows/publish-docs-to-s3.yml | 5 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.gitignore | 2 +
.pre-commit-config.yaml | 3 +-
Dockerfile | 11 +-
Dockerfile.ci | 3 +-
.../docs/administration-and-deployment/plugins.rst | 3 +
airflow-core/docs/best-practices.rst | 4 +-
airflow-core/docs/conf.py | 12 +-
airflow-core/docs/core-concepts/dags.rst | 4 +-
airflow-core/docs/howto/custom-view-plugin.rst | 7 +
airflow-core/docs/howto/deadline-alerts.rst | 39 +-
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 120 ++--
.../docs/installation/upgrading_to_airflow3.rst | 15 +-
airflow-core/docs/tutorial/hitl.rst | 3 +
airflow-core/newsfragments/55508.feature.rst | 1 +
airflow-core/pyproject.toml | 6 +-
airflow-core/src/airflow/__init__.py | 2 +-
.../auth/managers/simple/ui/package-lock.json | 8 +-
.../auth/managers/simple/ui/package.json | 2 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 28 +-
.../auth/managers/simple/ui/src/login/Login.tsx | 126 +++--
.../managers/simple/ui/src/login/LoginForm.tsx | 6 +-
.../auth/managers/simple/ui/src/main.tsx | 5 +-
.../auth/managers/simple/ui/src/theme.ts | 407 ++++++++++++++
.../src/airflow/api_fastapi/common/parameters.py | 9 +-
.../api_fastapi/core_api/datamodels/hitl.py | 15 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 36 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 55 +-
.../api_fastapi/core_api/routes/public/hitl.py | 16 +-
.../api_fastapi/execution_api/datamodels/hitl.py | 24 +-
.../api_fastapi/execution_api/routes/hitl.py | 5 +-
airflow-core/src/airflow/cli/cli_config.py | 27 +
.../src/airflow/cli/commands/standalone_command.py | 7 +-
.../src/airflow/cli/commands/team_command.py | 152 ++++++
.../airflow/example_dags/example_dag_decorator.py | 4 +-
.../src/airflow/executors/executor_loader.py | 63 ++-
.../src/airflow/jobs/triggerer_job_runner.py | 7 +-
.../0076_3_1_0_add_human_in_the_loop_response.py | 5 +-
airflow-core/src/airflow/models/hitl.py | 96 +++-
airflow-core/src/airflow/models/team.py | 3 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 8 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 12 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 12 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 12 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 12 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 65 +--
.../ui/openapi-gen/requests/services.gen.ts | 8 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 20 +-
airflow-core/src/airflow/ui/package.json | 2 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 27 +-
.../airflow/ui/public/i18n/locales/ar/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ar/common.json | 16 +-
.../ui/public/i18n/locales/ar/components.json | 2 -
.../airflow/ui/public/i18n/locales/ca/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ca/common.json | 15 +-
.../ui/public/i18n/locales/ca/components.json | 2 -
.../airflow/ui/public/i18n/locales/de/admin.json | 1 -
.../airflow/ui/public/i18n/locales/de/common.json | 16 +-
.../ui/public/i18n/locales/de/components.json | 2 -
.../airflow/ui/public/i18n/locales/en/admin.json | 1 -
.../airflow/ui/public/i18n/locales/en/common.json | 16 +-
.../ui/public/i18n/locales/en/components.json | 2 -
.../airflow/ui/public/i18n/locales/es/admin.json | 1 -
.../airflow/ui/public/i18n/locales/es/common.json | 15 +-
.../ui/public/i18n/locales/es/components.json | 2 -
.../airflow/ui/public/i18n/locales/fr/admin.json | 9 +-
.../airflow/ui/public/i18n/locales/fr/common.json | 35 +-
.../ui/public/i18n/locales/fr/components.json | 9 +-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 41 +-
.../ui/public/i18n/locales/fr/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/fr/hitl.json | 12 +
.../airflow/ui/public/i18n/locales/fr/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/he/admin.json | 3 +-
.../airflow/ui/public/i18n/locales/he/common.json | 16 +-
.../ui/public/i18n/locales/he/components.json | 2 -
.../src/airflow/ui/public/i18n/locales/he/dag.json | 3 +-
.../airflow/ui/public/i18n/locales/hi/admin.json | 1 -
.../airflow/ui/public/i18n/locales/hi/common.json | 15 +-
.../ui/public/i18n/locales/hi/components.json | 2 -
.../airflow/ui/public/i18n/locales/hu/admin.json | 1 -
.../airflow/ui/public/i18n/locales/hu/common.json | 15 +-
.../ui/public/i18n/locales/hu/components.json | 2 -
.../airflow/ui/public/i18n/locales/it/admin.json | 182 +++++++
.../ui/public/i18n/locales/{en => it}/assets.json | 2 +-
.../airflow/ui/public/i18n/locales/it/browse.json | 26 +
.../airflow/ui/public/i18n/locales/it/common.json | 339 ++++++++++++
.../ui/public/i18n/locales/it/components.json | 148 +++++
.../src/airflow/ui/public/i18n/locales/it/dag.json | 162 ++++++
.../airflow/ui/public/i18n/locales/it/dags.json | 97 ++++
.../ui/public/i18n/locales/it/dashboard.json | 49 ++
.../airflow/ui/public/i18n/locales/it/hitl.json | 38 ++
.../airflow/ui/public/i18n/locales/it/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/ko/admin.json | 1 -
.../airflow/ui/public/i18n/locales/ko/common.json | 22 +-
.../ui/public/i18n/locales/ko/components.json | 2 -
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 5 +-
.../airflow/ui/public/i18n/locales/ko/hitl.json | 3 +
.../airflow/ui/public/i18n/locales/nl/admin.json | 1 -
.../airflow/ui/public/i18n/locales/nl/common.json | 15 +-
.../ui/public/i18n/locales/nl/components.json | 2 -
.../airflow/ui/public/i18n/locales/pl/admin.json | 1 -
.../airflow/ui/public/i18n/locales/pl/common.json | 16 +-
.../ui/public/i18n/locales/pl/components.json | 2 -
.../airflow/ui/public/i18n/locales/pt/admin.json | 182 +++++++
.../airflow/ui/public/i18n/locales/pt/assets.json | 30 +
.../airflow/ui/public/i18n/locales/pt/browse.json | 26 +
.../airflow/ui/public/i18n/locales/pt/common.json | 339 ++++++++++++
.../ui/public/i18n/locales/pt/components.json | 148 +++++
.../src/airflow/ui/public/i18n/locales/pt/dag.json | 162 ++++++
.../airflow/ui/public/i18n/locales/pt/dags.json | 97 ++++
.../ui/public/i18n/locales/pt/dashboard.json | 49 ++
.../airflow/ui/public/i18n/locales/pt/hitl.json | 38 ++
.../airflow/ui/public/i18n/locales/pt/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/tr/admin.json | 1 -
.../airflow/ui/public/i18n/locales/tr/common.json | 16 +-
.../ui/public/i18n/locales/tr/components.json | 2 -
.../src/airflow/ui/public/i18n/locales/tr/dag.json | 3 +-
.../ui/public/i18n/locales/zh-CN/admin.json | 1 -
.../ui/public/i18n/locales/zh-CN/common.json | 13 +-
.../ui/public/i18n/locales/zh-CN/components.json | 2 -
.../ui/public/i18n/locales/zh-TW/admin.json | 1 -
.../ui/public/i18n/locales/zh-TW/common.json | 16 +-
.../ui/public/i18n/locales/zh-TW/components.json | 2 -
.../src/components/AssetExpression/AssetNode.tsx | 2 +-
.../ui/src/components/Assets/AssetEvents.tsx | 6 +-
.../ui/src/components/Assets/AssetEventsFilter.tsx | 52 ++
.../ui/src/components/Banner/BackfillBanner.tsx | 8 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 2 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 2 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 2 +-
.../ui/src/components/ConfirmationModal.tsx | 2 +-
.../src/components/DagActions/DeleteDagButton.tsx | 2 +-
.../components/DagActions/FavoriteDagButton.tsx | 2 +-
.../src/components/DagActions/RunBackfillForm.tsx | 14 +-
.../components/DataTable/ToggleTableDisplay.tsx | 10 +-
.../airflow/ui/src/components/DateTimeInput.tsx | 3 +-
.../src/airflow/ui/src/components/DeleteDialog.tsx | 2 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 2 +-
.../airflow/ui/src/components/DurationChart.tsx | 30 +-
.../ui/src/components/EditableMarkdownButton.tsx | 6 +-
.../ui/src/components/FilterBar/FilterBar.tsx | 172 ++++++
.../ui/src/components/FilterBar/FilterPill.tsx | 161 ++++++
.../components/FilterBar/defaultIcons.tsx} | 14 +-
.../components/FilterBar/filters/DateFilter.tsx | 54 ++
.../components/FilterBar/filters/NumberFilter.tsx | 112 ++++
.../FilterBar/filters/TextSearchFilter.tsx | 63 +++
.../Dag/Calendar => components/FilterBar}/index.ts | 12 +-
.../airflow/ui/src/components/FilterBar/types.ts | 53 ++
.../ui/src/components/FlexibleForm/FieldBool.tsx | 2 +-
.../src/components/FlexibleForm/FieldSelector.tsx | 14 +-
.../ui/src/components/Graph/DownloadButton.tsx | 5 +-
.../src/airflow/ui/src/components/Graph/Edge.tsx | 9 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 10 +-
.../src/airflow/ui/src/components/HeaderCard.tsx | 3 +-
.../src/airflow/ui/src/components/JsonEditor.tsx | 2 +-
.../src/components/MarkAs/Run/MarkRunAsDialog.tsx | 2 +-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 2 +-
.../ui/src/components/NeedsReviewButton.tsx | 25 +-
.../src/airflow/ui/src/components/PoolBar.tsx | 3 +-
.../ui/src/components/QuickFilterButton.tsx | 3 +-
.../airflow/ui/src/components/ReactMarkdown.tsx | 11 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 4 +-
.../src/components/SearchDags/SearchDagsButton.tsx | 8 +-
.../airflow/ui/src/components/TaskTrySelect.tsx | 2 +-
.../src/airflow/ui/src/components/Time.test.tsx | 9 +-
.../src/airflow/ui/src/components/Time.tsx | 9 +-
.../src/airflow/ui/src/components/TogglePause.tsx | 2 +-
.../airflow/ui/src/components/TrendCountButton.tsx | 12 +-
.../src/components/TriggerDag/TriggerDAGButton.tsx | 3 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 7 +-
.../src/components/TriggerDag/TriggerDAGModal.tsx | 2 +-
.../ui/src/components/renderStructuredLog.tsx | 25 +-
.../airflow/ui/src/components/ui/ActionButton.tsx | 2 +-
.../src/airflow/ui/src/components/ui/Clipboard.tsx | 2 +-
.../ui/src/components/ui/InputWithAddon.tsx | 68 +++
.../ui/src/components/ui/SegmentedControl.tsx | 12 +-
.../ui/src/components/ui/Toaster/Toaster.tsx | 2 +-
.../src/airflow/ui/src/components/ui/index.ts | 1 +
.../src/airflow/ui/src/constants/filterConfigs.tsx | 149 +++++
.../airflow/ui/src/hooks/useRequiredActionTabs.ts | 127 +++++
airflow-core/src/airflow/ui/src/i18n/config.ts | 2 +
.../ui/src/layouts/Details/DetailsLayout.tsx | 2 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 39 +-
.../airflow/ui/src/layouts/Details/Gantt/utils.ts | 22 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 14 +-
.../airflow/ui/src/layouts/Details/Grid/Bar.tsx | 8 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 9 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 4 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 6 +-
.../src/airflow/ui/src/layouts/Details/NavTabs.tsx | 9 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 13 +-
.../ui/src/layouts/Nav/LanguageSelector.tsx | 10 +
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/NavButton.tsx | 18 +-
.../ui/src/layouts/Nav/TimezoneSelector.tsx | 3 +-
.../src/airflow/ui/src/pages/Asset/AssetGraph.tsx | 4 +-
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 9 +
.../ui/src/pages/Asset/CreateAssetEvent.tsx | 2 +-
.../ui/src/pages/Asset/CreateAssetEventModal.tsx | 4 +-
.../src/pages/Connections/AddConnectionButton.tsx | 2 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 6 +-
.../ui/src/pages/Connections/Connections.tsx | 4 +-
.../pages/Connections/DeleteConnectionButton.tsx | 5 +-
.../pages/Connections/DeleteConnectionsButton.tsx | 10 +-
.../airflow/ui/src/pages/Dag/Calendar/Calendar.tsx | 12 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 10 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 24 +-
.../pages/Dag/Calendar/CalendarTooltipContent.tsx | 68 +++
.../src/pages/Dag/Calendar/DailyCalendarView.tsx | 18 +-
.../src/pages/Dag/Calendar/HourlyCalendarView.tsx | 17 +-
.../Dag/Calendar/richTooltipUtils.ts} | 43 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 1 -
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 45 +-
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 8 +-
.../Dag/Tasks/TaskFilters/AttrSelectFilter.tsx | 2 +-
.../Tasks/TaskFilters/AttrSelectFilterMulti.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 4 +-
.../pages/DagsList/DagsFilters/FavoriteFilter.tsx | 2 +-
.../pages/DagsList/DagsFilters/PausedFilter.tsx | 2 +-
.../src/pages/DagsList/DagsFilters/TagFilter.tsx | 2 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 2 +-
.../Dashboard/FavoriteDags/FavoriteDagCard.tsx | 2 +-
.../pages/Dashboard/FavoriteDags/FavoriteDags.tsx | 2 +-
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 2 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 2 +-
.../pages/Dashboard/PoolSummary/PoolSummary.tsx | 2 +-
.../airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 2 +-
.../src/airflow/ui/src/pages/DeleteRunButton.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Error.tsx | 4 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 13 +-
.../airflow/ui/src/pages/Events/EventsFilters.tsx | 268 ++-------
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 7 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 1 +
.../airflow/ui/src/pages/Pools/AddPoolButton.tsx | 2 +-
.../ui/src/pages/Pools/DeletePoolButton.tsx | 2 +-
.../src/airflow/ui/src/pages/Pools/PoolBarCard.tsx | 4 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 4 +-
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 26 +-
.../ui/src/pages/Task/Overview/Overview.tsx | 7 +-
.../src/airflow/ui/src/pages/Task/Task.tsx | 21 +-
.../ui/src/pages/TaskInstance/ExtraLinks.tsx | 2 +-
.../pages/TaskInstance/Logs/ExternalLogLink.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 33 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 4 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 44 +-
.../TaskInstances/DeleteTaskInstanceButton.tsx | 2 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 2 +-
.../src/pages/Variables/DeleteVariablesButton.tsx | 5 +-
.../src/pages/Variables/ImportVariablesButton.tsx | 2 +-
.../ui/src/pages/Variables/ImportVariablesForm.tsx | 6 +-
.../Variables/ManageVariable/AddVariableButton.tsx | 2 +-
.../ManageVariable/DeleteVariableButton.tsx | 5 +-
.../Variables/ManageVariable/VariableForm.tsx | 6 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 11 +-
.../src/airflow/ui/src/pages/XCom/XComFilters.tsx | 236 ++------
.../ui/src/queries/useClearTaskInstances.ts | 9 +-
.../airflow/ui/src/queries/usePatchTaskInstance.ts | 19 +-
airflow-core/src/airflow/ui/src/queryClient.ts | 6 +-
airflow-core/src/airflow/ui/src/theme.ts | 510 ++++++++++++-----
.../src/airflow/ui/src/utils/AppWrapper.tsx | 8 +-
airflow-core/src/airflow/ui/src/utils/TrimText.tsx | 2 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 5 +-
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
airflow-core/src/airflow/ui/src/utils/slots.tsx | 10 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 85 +++
airflow-core/src/airflow/ui/testsSetup.ts | 41 +-
airflow-core/src/airflow/utils/serve_logs/core.py | 7 +-
.../src/airflow/utils/serve_logs/log_server.py | 10 +-
airflow-core/tests/integration/otel/test_otel.py | 4 +-
.../tests/unit/always/test_project_structure.py | 1 -
.../core_api/routes/public/test_hitl.py | 30 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 3 +-
.../execution_api/versions/head/test_hitl.py | 19 +-
.../tests/unit/cli/commands/test_team_command.py | 357 ++++++++++++
.../tests/unit/executors/test_executor_loader.py | 165 ++++++
airflow-core/tests/unit/jobs/test_triggerer_job.py | 35 ++
airflow-ctl/docs/howto/index.rst | 12 +-
airflow-ctl/pyproject.toml | 11 +
.../src/airflowctl}/_shared/timezones | 0
airflow-ctl/src/airflowctl/api/client.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 27 +-
airflow-ctl/src/airflowctl/api/operations.py | 54 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 26 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 13 +-
.../pyproject.toml | 6 +-
.../tests/airflow_e2e_tests}/__init__.py | 0
.../airflow_e2e_tests/basic_tests}/__init__.py | 0
.../basic_tests/test_basic_dag_operations.py | 58 ++
.../basic_tests/test_example_dags.py | 84 +++
.../tests/airflow_e2e_tests/conftest.py | 149 +++++
.../tests/airflow_e2e_tests}/constants.py | 16 +-
.../airflow_e2e_tests/dags/example_xcom_test.py | 12 +-
.../airflow_e2e_tests/e2e_test_utils}/__init__.py | 0
.../airflow_e2e_tests/e2e_test_utils/clients.py | 140 +++++
chart/docs/conf.py | 6 +-
contributing-docs/testing/airflow_e2e_tests.rst | 75 +++
dev/breeze/doc/05_test_commands.rst | 18 +
dev/breeze/doc/ci/02_images.md | 2 +-
dev/breeze/doc/images/output-commands.svg | 44 +-
.../output_setup_check-all-params-in-groups.svg | 18 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 38 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_testing.svg | 18 +-
dev/breeze/doc/images/output_testing.txt | 2 +-
.../images/output_testing_airflow-e2e-tests.svg | 140 +++++
.../images/output_testing_airflow-e2e-tests.txt | 1 +
.../commands/release_management_commands.py | 2 +-
.../airflow_breeze/commands/testing_commands.py | 42 ++
.../commands/testing_commands_config.py | 20 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 5 +
dev/i18n/check_translations_completeness.py | 2 +
.../react_plugin_template/package.json | 2 +-
.../react_plugin_template/src/pages/HomePage.tsx | 2 +-
.../react_plugin_template/src/theme.ts | 510 ++++++++++++-----
.../react_plugin_template/vite.config.ts | 1 +
devel-common/pyproject.toml | 2 +-
.../src/tests_common/test_utils/executor_loader.py | 15 +-
docker-stack-docs/README.md | 10 +-
docker-stack-docs/changelog.rst | 4 +-
docker-stack-docs/conf.py | 3 +-
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../extending/add-apt-packages/Dockerfile | 2 +-
.../add-build-essential-extend/Dockerfile | 2 +-
.../extending/add-providers/Dockerfile | 2 +-
.../add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../extending/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docker-stack-docs/entrypoint.rst | 14 +-
docker-tests/tests/docker_tests/test_prod_image.py | 17 +-
generated/provider_metadata.json | 106 ++++
providers-summary-docs/conf.py | 6 +-
.../providers/amazon/aws/operators/bedrock.py | 36 +-
.../amazon/tests/system/amazon/aws/example_ec2.py | 2 +-
.../amazon/aws/example_sagemaker_endpoint.py | 2 +-
.../amazon/tests/system/amazon/aws/example_ssm.py | 2 +-
.../amazon/tests/system/amazon/aws/utils/ec2.py | 2 +-
.../unit/amazon/aws/executors/batch/test_utils.py | 370 +++++++++++++
.../tests/unit/amazon/aws/hooks/test_sagemaker.py | 10 +-
.../unit/amazon/aws/operators/test_bedrock.py | 98 ++++
.../tests/unit/amazon/aws/operators/test_eks.py | 2 +-
.../aws/operators/test_sagemaker_endpoint.py | 2 +-
.../operators/test_sagemaker_endpoint_config.py | 2 +-
.../aws/operators/test_sagemaker_processing.py | 2 +-
.../aws/operators/test_sagemaker_training.py | 2 +-
.../aws/operators/test_sagemaker_transform.py | 4 +-
.../amazon/aws/operators/test_sagemaker_tuning.py | 2 +-
.../amazon/aws/sensors/test_sagemaker_training.py | 2 +-
.../unit/amazon/aws/utils/eks_test_constants.py | 2 +-
.../providers/apache/beam/operators/beam.py | 65 ++-
.../tests/unit/apache/beam/operators/test_beam.py | 58 +-
.../apache/kafka/triggers/await_message.py | 28 +-
.../apache/kafka/triggers/test_await_message.py | 11 +-
.../providers/cncf/kubernetes/operators/pod.py | 2 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 13 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 4 +
providers/common/messaging/docs/triggers.rst | 35 +-
.../src/airflow/providers/docker/version_compat.py | 12 +-
.../airflow/providers/edge3/models/edge_worker.py | 14 +-
.../providers/edge3/openapi/v2-edge-generated.yaml | 62 +++
.../providers/edge3/plugins/www/dist/main.umd.cjs | 53 +-
.../plugins/www/openapi-gen/queries/common.ts | 2 +
.../plugins/www/openapi-gen/queries/queries.ts | 10 +
.../www/openapi-gen/requests/services.gen.ts | 44 +-
.../plugins/www/openapi-gen/requests/types.gen.ts | 42 ++
.../providers/edge3/plugins/www/package.json | 5 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 241 ++++----
.../www/src/components/MaintenanceExitButton.tsx | 50 +-
...nanceEnterButton.tsx => WorkerDeleteButton.tsx} | 65 +--
.../www/src/components/WorkerOperations.tsx | 17 +-
...nceEnterButton.tsx => WorkerShutdownButton.tsx} | 65 +--
.../www/src/components/WorkerStateBadge.tsx | 33 ++
.../www/src/components/ui/ScrollToAnchor.tsx | 42 +-
.../edge3/plugins/www/src/components/ui/index.ts | 1 +
.../www/src/context/colorMode/useColorMode.tsx | 7 +-
.../edge3/plugins/www/src/pages/JobsPage.tsx | 67 ++-
.../edge3/plugins/www/src/pages/WorkerPage.tsx | 66 ++-
.../providers/edge3/plugins/www/src/theme.ts | 508 ++++++++++++-----
.../providers/edge3/worker_api/routes/ui.py | 54 +-
providers/edge3/www-hash.txt | 2 +-
.../google/cloud/sensors/cloud_composer.py | 2 +-
.../google/cloud/transfers/bigquery_to_mssql.py | 66 ---
.../google/cloud/transfers/bigquery_to_mysql.py | 59 --
.../google/cloud/transfers/bigquery_to_postgres.py | 27 +-
.../google/cloud/transfers/bigquery_to_sql.py | 95 ++++
.../dataflow/example_dataflow_java_streaming.py | 8 +-
.../cloud/transfers/test_bigquery_to_mssql.py | 4 +-
.../cloud/transfers/test_bigquery_to_postgres.py | 194 ++++++-
.../src/airflow/providers/jenkins/hooks/jenkins.py | 6 +-
.../providers/slack/notifications/slack_webhook.py | 7 +-
providers/smtp/pyproject.toml | 1 +
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 322 +++++++++--
.../airflow/providers/smtp/notifications/smtp.py | 101 ++--
providers/smtp/tests/unit/smtp/hooks/test_smtp.py | 604 ++++++++++++++-------
.../tests/unit/smtp/notifications/test_smtp.py | 352 ++++++++----
.../example_dags/example_bash_decorator.py | 1 +
.../standard/example_dags/example_hitl_operator.py | 1 +
.../airflow/providers/standard/operators/hitl.py | 8 +-
.../airflow/providers/standard/triggers/hitl.py | 28 +-
.../tests/unit/standard/operators/test_hitl.py | 57 +-
.../tests/unit/standard/triggers/test_hitl.py | 26 +-
pyproject.toml | 17 +-
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
.../docker/install_airflow_when_building_images.sh | 1 +
scripts/tools/setup_breeze | 2 +-
.../src/airflow_shared/logging/structlog.py | 5 +-
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
task-sdk/src/airflow/sdk/api/client.py | 5 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 54 +-
task-sdk/src/airflow/sdk/execution_time/hitl.py | 16 +-
.../src/airflow/sdk/execution_time/supervisor.py | 14 +-
task-sdk/src/airflow/sdk/log.py | 98 +---
task-sdk/tests/task_sdk/api/test_client.py | 15 +-
.../tests/task_sdk/execution_time/test_hitl.py | 19 +-
.../task_sdk/execution_time/test_supervisor.py | 28 +-
434 files changed, 11366 insertions(+), 3112 deletions(-)
create mode 100644 .github/actions/install-pre-commit/action.yml
create mode 100644 .github/workflows/airflow-e2e-tests.yml
create mode 100644 airflow-core/newsfragments/55508.feature.rst
create mode 100644
airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui/src/theme.ts
create mode 100644 airflow-core/src/airflow/cli/commands/team_command.py
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/fr/tasks.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/it/admin.json
copy airflow-core/src/airflow/ui/public/i18n/locales/{en => it}/assets.json
(96%)
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/it/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/it/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/it/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/it/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/it/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/it/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/it/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/it/tasks.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/pt/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/pt/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/pt/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/pt/tasks.json
create mode 100644
airflow-core/src/airflow/ui/src/components/Assets/AssetEventsFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/FilterBar.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/FilterPill.tsx
copy airflow-core/src/airflow/ui/{rules/levels.js =>
src/components/FilterBar/defaultIcons.tsx} (70%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/DateFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/NumberFilter.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/filters/TextSearchFilter.tsx
copy airflow-core/src/airflow/ui/src/{pages/Dag/Calendar =>
components/FilterBar}/index.ts (71%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FilterBar/types.ts
create mode 100644
airflow-core/src/airflow/ui/src/components/ui/InputWithAddon.tsx
create mode 100644 airflow-core/src/airflow/ui/src/constants/filterConfigs.tsx
create mode 100644
airflow-core/src/airflow/ui/src/hooks/useRequiredActionTabs.ts
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/Calendar/CalendarTooltipContent.tsx
copy airflow-core/src/airflow/ui/src/{components/Stat.tsx =>
pages/Dag/Calendar/richTooltipUtils.ts} (56%)
create mode 100644 airflow-core/src/airflow/ui/src/utils/useFiltersHandler.ts
create mode 100644 airflow-core/tests/unit/cli/commands/test_team_command.py
copy {airflow-core/src/airflow =>
airflow-ctl/src/airflowctl}/_shared/timezones (100%)
copy {task-sdk-tests => airflow-e2e-tests}/pyproject.toml (94%)
copy {airflow-core/src/airflow/_shared =>
airflow-e2e-tests/tests/airflow_e2e_tests}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
airflow-e2e-tests/tests/airflow_e2e_tests/basic_tests}/__init__.py (100%)
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/basic_tests/test_basic_dag_operations.py
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/basic_tests/test_example_dags.py
create mode 100644 airflow-e2e-tests/tests/airflow_e2e_tests/conftest.py
copy {task-sdk-tests/tests/task_sdk_tests =>
airflow-e2e-tests/tests/airflow_e2e_tests}/constants.py (65%)
copy airflow-core/src/airflow/example_dags/example_xcom.py =>
airflow-e2e-tests/tests/airflow_e2e_tests/dags/example_xcom_test.py (94%)
copy {airflow-core/src/airflow/_shared =>
airflow-e2e-tests/tests/airflow_e2e_tests/e2e_test_utils}/__init__.py (100%)
create mode 100644
airflow-e2e-tests/tests/airflow_e2e_tests/e2e_test_utils/clients.py
create mode 100644 contributing-docs/testing/airflow_e2e_tests.rst
create mode 100644 dev/breeze/doc/images/output_testing_airflow-e2e-tests.svg
create mode 100644 dev/breeze/doc/images/output_testing_airflow-e2e-tests.txt
create mode 100644
providers/amazon/tests/unit/amazon/aws/executors/batch/test_utils.py
copy
providers/edge3/src/airflow/providers/edge3/plugins/www/src/components/{MaintenanceEnterButton.tsx
=> WorkerDeleteButton.tsx} (53%)
copy
providers/edge3/src/airflow/providers/edge3/plugins/www/src/components/{MaintenanceEnterButton.tsx
=> WorkerShutdownButton.tsx} (53%)
copy airflow-core/src/airflow/ui/src/utils/useContainerWidth.ts =>
providers/edge3/src/airflow/providers/edge3/plugins/www/src/components/ui/ScrollToAnchor.tsx
(51%)