This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch fix/download-warning-toasts-wire-dispatch
in repository https://gitbox.apache.org/repos/asf/superset.git
omit d14bf892843 test(dashboard,explore): assert toast callbacks reach
downloadAsImage/downloadAsPdf
omit 09e21e12f2f fix(i18n): regenerate messages.pot for the download-toasts
row/chart wording change
omit e655ce87b5b fix(utils): dedupe the image-download-failed toast message
omit 0ca6f973b80 fix(dashboard,utils): address remaining bito review nits
on download toasts
omit ee99528068c fix(dashboard): thread addInfoToast into
forceLoadAllCharts so the batching toast renders
omit aeb7a4674ca test(utils): fix invalid resolves.not.toThrow() assertion
in downloadAsPdf test
omit 01f00ac514d test(utils): reset domToPdf module mock between
downloadAsPdf tests
omit d7f5319e037 fix(dashboard,explore): thread addWarningToast into
forceLoadAllCharts timeout path
omit 3aaa2beb9b3 test(dashboard): assert real addWarningToast callback in
SliceHeaderControls tests
omit eb8ee537411 fix(dashboard): surface warning toast when PDF generation
fails
omit 95545149990 fix(dashboard): update SliceHeaderControls tests for new
addWarningToast arg
omit 65495a0c6cb fix(dashboard,explore): wire addWarningToast into
downloadAsImage/downloadAsPdf callers
add 8ab7a85a3d7 chore(e2e): remove Cypress infrastructure (#44829)
add ee39954adb6 fix(oauth2): refresh a token rejected when a connection
opens (#44765)
add e5ec22ab3e9 feat(table): add multi-level column header groups (#43938)
add a12d1b8e127 fix(mcp): enforce tool deadlines without blocking the
server (#44581)
add 0a0a1974c50 test(playwright): select existing dashboards without
creating duplicates (#44856)
add 33292f249da feat(mcp): support tab-scoped dashboard layouts (#44797)
add 4ae8fe71225 fix: size 'Drill to detail' table header correctly (#44807)
add 2c72d4d4fee fix(mcp): use DEFAULT_PAGE_SIZE constant in list_charts
test (#44786)
add 446853004a4 fix(mcp): keep a bubble chart's colors and row limit
across updates (#44618)
add 217e4c0223f fix(frontend): use html2canvas for chart image export on
Safari (#44529)
add c82f97b69d6 chore(deps): bump deck.gl and luma.gl from 9.2.5 to 9.4.0
in /superset-frontend (#42608)
add abdf2e6c702 fix(home): redirect users without an ID before rendering
(#44456)
add 3f6d4cd6896 chore(deps-dev): update google-cloud-storage requirement
from >=1.37 to >=3.14.1 (#44693)
add 6a832cb2102 fix(mcp): enforce dashboard filter scope on dataset, SQL
and chart tool calls (#44800)
add e7702020344 fix(postprocessing): preserve NULL index values through
pivot() (#43547) (#43693)
add f7badeb095b fix(mcp): execute_sql request limit caps, never raises, an
explicit SQL LIMIT (#44604)
add db56168a861 ci: require babel-extract to pass before merging master
(#44543)
add 342a8f1e4e0 fix(mcp): report a chart's live dataset id and name
(#44681)
add afa4947cb39 fix(dashboard,explore): wire addWarningToast into
downloadAsImage/downloadAsPdf callers
add 02f2af0c0df fix(dashboard): update SliceHeaderControls tests for new
addWarningToast arg
add e9e15f515af fix(dashboard): surface warning toast when PDF generation
fails
add 8c2aea2c1cc test(dashboard): assert real addWarningToast callback in
SliceHeaderControls tests
add b12a6840926 fix(dashboard,explore): thread addWarningToast into
forceLoadAllCharts timeout path
add cdfe679d250 test(utils): reset domToPdf module mock between
downloadAsPdf tests
add 97d25446523 test(utils): fix invalid resolves.not.toThrow() assertion
in downloadAsPdf test
add 3fa15c207a5 fix(dashboard): thread addInfoToast into
forceLoadAllCharts so the batching toast renders
add e36f10af3ff fix(dashboard,utils): address remaining bito review nits
on download toasts
add ea21e694cff fix(utils): dedupe the image-download-failed toast message
add ab67a809c08 fix(i18n): regenerate messages.pot for the download-toasts
row/chart wording change
add fdfde2bba59 test(dashboard,explore): assert toast callbacks reach
downloadAsImage/downloadAsPdf
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 (d14bf892843)
\
N -- N -- N refs/heads/fix/download-warning-toasts-wire-dispatch
(fdfde2bba59)
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:
.asf.yaml | 1 +
.cursor/rules/dev-standard.mdc | 4 +-
.dockerignore | 1 -
.envrc.example | 1 -
.github/labeler.yml | 2 -
.github/workflows/bashlib.sh | 130 +-
.github/workflows/caches.js | 6 -
.github/workflows/superset-e2e.yml | 203 +-
.github/workflows/superset-translations.yml | 2 +
.pre-commit-config.yaml | 3 +-
AGENTS.md | 10 +-
Makefile | 8 -
UPDATING.md | 26 +
docker-compose.yml | 2 -
docker/.env | 2 -
docker/.env-local.example | 1 -
docker/docker-bootstrap.sh | 7 -
docker/docker-entrypoint-initdb.d/cypress-init.sh | 28 -
docker/docker-init.sh | 31 +-
docker/pythonpath_dev/superset_config.py | 13 -
docs/admin_docs/configuration/mcp-server.mdx | 238 +
docs/developer_docs/api.mdx | 5 +
.../contributing/development-setup.md | 8 +-
docs/developer_docs/contributing/howtos.md | 30 +-
.../guidelines/frontend-style-guidelines.md | 2 +-
docs/developer_docs/testing/e2e-testing.md | 28 +-
docs/developer_docs/testing/overview.md | 2 +-
docs/developer_docs/testing/testing-guidelines.md | 31 +-
docs/docs/quickstart.mdx | 3 +
.../creating-your-first-dashboard.mdx | 20 +
pyproject.toml | 2 +-
scripts/cypress_run.py | 167 -
scripts/docker-compose-up.sh | 4 -
superset-core/src/superset_core/queries/types.py | 3 +
superset-frontend/.gitignore | 2 -
superset-frontend/babel.config.js | 2 +-
superset-frontend/cypress-base/.eslintrc | 41 -
superset-frontend/cypress-base/.gitignore | 4 -
superset-frontend/cypress-base/cypress.config.ts | 84 -
.../cypress-base/cypress/fixtures/charts.json | 38 -
.../cypress-base/cypress/fixtures/dashboards.json | 46 -
.../cypress-base/cypress/support/e2e.ts | 455 -
.../cypress-base/cypress/support/index.d.ts | 92 -
.../cypress-base/cypress/utils/index.ts | 121 -
.../cypress-base/cypress/utils/parsePostForm.ts | 60 -
.../cypress-base/cypress/utils/urls.ts | 24 -
.../cypress-base/cypress/utils/vizPlugins.ts | 104 -
superset-frontend/cypress-base/package-lock.json | 15006 -------------------
superset-frontend/cypress-base/package.json | 57 -
superset-frontend/cypress-base/tsconfig.json | 16 -
superset-frontend/cypress_build.sh | 46 -
superset-frontend/eslint.config.minimal.js | 1 -
superset-frontend/jest.config.js | 12 +-
superset-frontend/oxlint.json | 1 -
superset-frontend/package-lock.json | 902 +-
superset-frontend/package.json | 57 +-
.../superset-ui-chart-controls/src/types.ts | 1 +
.../src/utils/headerGroups.test.ts | 1065 ++
.../src/utils/headerGroups.ts | 903 ++
.../superset-ui-chart-controls/src/utils/index.ts | 1 +
.../src/components/Table/VirtualTable.test.tsx | 83 +
.../src/components/Table/VirtualTable.tsx | 20 +-
.../playwright/components/core/Select.ts | 8 +-
.../playwright/components/modals/SaveChartModal.ts | 33 +-
.../explore/cross-referenced-dashboards.spec.ts | 29 +-
.../playwright/tests/explore/explore-save.spec.ts | 8 +-
.../tests/mobile/mobile-dashboard.spec.ts | 65 +-
.../src/AgGridTable/components/CustomHeader.tsx | 3 +-
.../src/AgGridTable/index.tsx | 118 +-
.../src/AgGridTableChart.tsx | 7 +-
.../src/controlPanel.tsx | 33 +-
.../src/styles/index.tsx | 28 +
.../src/transformProps.ts | 24 +-
.../plugin-chart-ag-grid-table/src/types.ts | 3 +
.../src/utils/formatValue.ts | 3 +-
.../src/utils/getCellStyle.ts | 8 +-
.../src/utils/mainComparison.ts} | 33 +-
.../src/utils/useColDefs.ts | 23 +-
.../test/AgGridTableChart.test.tsx | 175 +
.../test/controlPanel.test.ts | 107 +-
.../test/controlPanel.test.tsx | 32 +-
.../test/transformProps.test.ts | 198 +-
.../test/utils/getCellStyle.test.ts | 15 +
.../test/utils/mainComparison.test.ts | 43 +
.../test/utils/useColDefs.test.ts | 40 +
.../src/MapLibre.tsx | 62 +-
.../test/MapLibre.test.tsx | 31 +
.../plugin-chart-table/src/DataTable/DataTable.tsx | 11 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 5 +
.../plugins/plugin-chart-table/src/TableChart.tsx | 210 +-
.../plugin-chart-table/src/controlPanel.tsx | 38 +-
.../plugin-chart-table/src/transformProps.ts | 41 +-
.../plugins/plugin-chart-table/src/types.ts | 5 +
.../plugin-chart-table/src/utils/headerGroups.ts} | 20 +-
.../test/DataTable/DataTable.test.tsx | 64 +-
.../plugin-chart-table/test/TableChart.test.tsx | 326 +
.../plugin-chart-table/test/controlPanel.test.ts | 144 +-
.../plugin-chart-table/test/controlPanel.test.tsx | 32 +-
.../plugin-chart-table/test/headerGroups.test.ts | 301 +
.../plugins/preset-chart-deckgl/package.json | 25 +-
.../src/DeckGLContainer.test.tsx | 95 +-
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 17 +-
.../src/components/DeckGLOverlayMapLibre.test.tsx | 80 +
.../src/components/DeckGLOverlayMapLibre.tsx | 8 +-
.../src/layers/Contour/Contour.tsx | 2 +-
superset-frontend/scripts/check-custom-rules.js | 4 -
.../spec/helpers/sourceTreeScanner.ts | 1 -
.../DashboardBuilder/DashboardContainer.tsx | 7 +-
.../src/explore/components/Control.test.tsx | 36 +-
.../src/explore/components/Control.tsx | 3 +-
.../components/ControlPanelsContainer.test.tsx | 214 +-
.../explore/components/ControlPanelsContainer.tsx | 68 +
.../ColumnConfigControl.test.tsx | 86 +
.../ColumnConfigControl/ColumnConfigControl.tsx | 24 +-
.../controls/ColumnConfigControl/constants.tsx | 3 +-
.../HeaderGroupsControl/HeaderGroupEditor.tsx | 567 +
.../HeaderGroupsControl.test.tsx | 906 ++
.../HeaderGroupsControl/HeaderGroupsControl.tsx | 289 +
.../controls/HeaderGroupsControl/index.ts} | 12 +-
.../controls/HeaderGroupsControl/types.ts} | 42 +-
.../controls/HeaderGroupsControl/utils.test.ts | 388 +
.../controls/HeaderGroupsControl/utils.ts | 215 +
.../src/explore/components/controls/index.ts | 2 +
superset-frontend/src/pages/Home/Home.test.tsx | 45 +-
superset-frontend/src/pages/Home/index.tsx | 20 +-
.../src/utils/downloadAsImage.test.ts | 276 +
superset-frontend/src/utils/downloadAsImage.tsx | 113 +-
superset-frontend/webpack.config.js | 1 -
superset/core/mcp/core_mcp_injection.py | 24 +-
superset/db_engine_specs/base.py | 6 +
superset/db_engine_specs/bigquery.py | 35 +-
superset/db_engine_specs/trino.py | 18 +
superset/mcp_service/auth.py | 105 +-
superset/mcp_service/caching.py | 37 +-
superset/mcp_service/chart/plugins/bubble.py | 2 +-
superset/mcp_service/chart/schemas.py | 61 +-
superset/mcp_service/chart/tool/get_chart_info.py | 18 +-
superset/mcp_service/chart/tool/get_chart_sql.py | 5 +-
superset/mcp_service/chart/tool/list_charts.py | 118 +-
superset/mcp_service/common/schema_discovery.py | 2 +-
superset/mcp_service/composite_token_verifier.py | 26 +-
superset/mcp_service/dashboard/schemas.py | 132 +-
.../dashboard/tool/get_dashboard_layout.py | 161 +-
superset/mcp_service/dashboard_scope.py | 1365 ++
superset/mcp_service/dashboard_scope_sql.py | 516 +
superset/mcp_service/mcp_config.py | 25 +
superset/mcp_service/middleware.py | 180 +-
superset/mcp_service/privacy.py | 1 +
superset/mcp_service/server.py | 36 +-
superset/mcp_service/sql_lab/schemas.py | 10 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 1 +
superset/mcp_service/utils/response_size_utils.py | 176 +
superset/mcp_service/worker.py | 897 ++
.../migrations/shared/migrate_viz/processors.py | 6 +-
superset/models/core.py | 220 +-
superset/result_set.py | 3 +
superset/sql/execution/cancellation.py | 170 +
superset/sql/execution/celery_task.py | 1 +
superset/sql/execution/executor.py | 134 +-
superset/sql/parse.py | 101 +-
superset/superset_typing.py | 9 +
superset/tasks/query_cancel.py | 9 +-
superset/translations/ar/LC_MESSAGES/messages.po | 66 +-
superset/translations/ca/LC_MESSAGES/messages.po | 66 +-
superset/translations/cs/LC_MESSAGES/messages.po | 66 +-
superset/translations/de/LC_MESSAGES/messages.po | 65 +-
superset/translations/en/LC_MESSAGES/messages.po | 65 +-
superset/translations/es/LC_MESSAGES/messages.po | 66 +-
superset/translations/fa/LC_MESSAGES/messages.po | 66 +-
superset/translations/fi/LC_MESSAGES/messages.po | 68 +-
superset/translations/fr/LC_MESSAGES/messages.po | 65 +-
superset/translations/it/LC_MESSAGES/messages.po | 67 +-
superset/translations/ja/LC_MESSAGES/messages.po | 65 +-
superset/translations/ko/LC_MESSAGES/messages.po | 68 +-
superset/translations/lv/LC_MESSAGES/messages.po | 65 +-
superset/translations/messages.pot | 58 +-
superset/translations/mi/LC_MESSAGES/messages.po | 66 +-
superset/translations/nl/LC_MESSAGES/messages.po | 66 +-
superset/translations/pl/LC_MESSAGES/messages.po | 66 +-
superset/translations/pt/LC_MESSAGES/messages.po | 67 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 66 +-
superset/translations/ro/LC_MESSAGES/messages.po | 65 +-
superset/translations/ru/LC_MESSAGES/messages.po | 65 +-
superset/translations/sk/LC_MESSAGES/messages.po | 66 +-
superset/translations/sl/LC_MESSAGES/messages.po | 65 +-
superset/translations/sr/LC_MESSAGES/messages.po | 66 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 66 +-
superset/translations/ta/LC_MESSAGES/messages.po | 65 +-
superset/translations/th/LC_MESSAGES/messages.po | 68 +-
superset/translations/tr/LC_MESSAGES/messages.po | 65 +-
superset/translations/uk/LC_MESSAGES/messages.po | 65 +-
superset/translations/zh/LC_MESSAGES/messages.po | 66 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 66 +-
superset/utils/oauth2.py | 136 +-
superset/utils/pandas_postprocessing/pivot.py | 51 +-
superset/utils/rls.py | 4 +-
tests/unit_tests/conftest.py | 13 +-
tests/unit_tests/connectors/sqla/utils_test.py | 34 +
tests/unit_tests/db_engine_specs/test_bigquery.py | 87 +-
tests/unit_tests/db_engine_specs/test_trino.py | 17 +
.../mcp_service/catalog/tool/test_get_catalog.py | 13 +
.../mcp_service/chart/test_chart_examples.py | 3 +-
.../mcp_service/chart/test_chart_utils.py | 55 +
.../mcp_service/chart/test_gantt_chart.py | 21 +-
.../mcp_service/chart/test_gauge_chart.py | 3 +-
.../chart/test_live_chart_datasource.py | 709 +
.../mcp_service/chart/tool/test_list_charts.py | 4 +-
.../chart/tool/test_update_chart_preview.py | 21 +-
.../dashboard/test_dashboard_schemas.py | 18 +
.../dashboard/tool/test_get_dashboard_datasets.py | 13 +-
.../dashboard/tool/test_get_dashboard_layout.py | 744 +-
.../dataset/tool/test_dataset_metric_mutations.py | 13 +
.../mcp_service/dataset/tool/test_query_dataset.py | 12 +-
.../dataset/tool/test_update_dataset_metric.py | 13 +
.../mcp_service/sql_lab/tool/test_execute_sql.py | 22 +-
.../mcp_service/test_auth_user_resolution.py | 48 +-
.../mcp_service/test_composite_token_verifier.py | 105 +-
.../unit_tests/mcp_service/test_dashboard_scope.py | 1502 ++
.../mcp_service/test_dashboard_scope_sql.py | 674 +
tests/unit_tests/mcp_service/test_middleware.py | 21 +
tests/unit_tests/mcp_service/test_worker.py | 878 ++
.../mcp_service/test_worker_metadata_pool.py | 1000 ++
.../unit_tests/migrations/viz/table_v1_v2_test.py | 42 +
tests/unit_tests/models/core_test.py | 414 +
.../unit_tests/pandas_postprocessing/test_pivot.py | 339 +
tests/unit_tests/sql/execution/conftest.py | 3 +
.../unit_tests/sql/execution/test_cancellation.py | 165 +
tests/unit_tests/sql/execution/test_celery_task.py | 2 +
tests/unit_tests/sql/execution/test_executor.py | 850 +-
tests/unit_tests/sql/parse_tests.py | 107 +
tests/unit_tests/utils/oauth2_tests.py | 190 +
231 files changed, 23115 insertions(+), 18019 deletions(-)
delete mode 100755 docker/docker-entrypoint-initdb.d/cypress-init.sh
delete mode 100644 scripts/cypress_run.py
delete mode 100644 superset-frontend/cypress-base/.eslintrc
delete mode 100644 superset-frontend/cypress-base/.gitignore
delete mode 100644 superset-frontend/cypress-base/cypress.config.ts
delete mode 100644 superset-frontend/cypress-base/cypress/fixtures/charts.json
delete mode 100644
superset-frontend/cypress-base/cypress/fixtures/dashboards.json
delete mode 100644 superset-frontend/cypress-base/cypress/support/e2e.ts
delete mode 100644 superset-frontend/cypress-base/cypress/support/index.d.ts
delete mode 100644 superset-frontend/cypress-base/cypress/utils/index.ts
delete mode 100644
superset-frontend/cypress-base/cypress/utils/parsePostForm.ts
delete mode 100644 superset-frontend/cypress-base/cypress/utils/urls.ts
delete mode 100644 superset-frontend/cypress-base/cypress/utils/vizPlugins.ts
delete mode 100644 superset-frontend/cypress-base/package-lock.json
delete mode 100644 superset-frontend/cypress-base/package.json
delete mode 100644 superset-frontend/cypress-base/tsconfig.json
delete mode 100755 superset-frontend/cypress_build.sh
create mode 100644
superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.test.ts
create mode 100644
superset-frontend/packages/superset-ui-chart-controls/src/utils/headerGroups.ts
copy
superset-frontend/{packages/superset-ui-core/src/validator/legacyValidateInteger.ts
=> plugins/plugin-chart-ag-grid-table/src/utils/mainComparison.ts} (56%)
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/mainComparison.test.ts
copy
superset-frontend/{packages/superset-ui-core/src/components/Input/index.tsx =>
plugins/plugin-chart-table/src/utils/headerGroups.ts} (71%)
create mode 100644
superset-frontend/plugins/plugin-chart-table/test/headerGroups.test.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupEditor.tsx
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupsControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/HeaderGroupsControl.tsx
copy
superset-frontend/{packages/superset-ui-core/src/components/Input/index.tsx =>
src/explore/components/controls/HeaderGroupsControl/index.ts} (82%)
copy
superset-frontend/{plugins/preset-chart-deckgl/src/layers/Arc/buildQuery.test.ts
=> src/explore/components/controls/HeaderGroupsControl/types.ts} (57%)
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/utils.test.ts
create mode 100644
superset-frontend/src/explore/components/controls/HeaderGroupsControl/utils.ts
create mode 100644 superset/mcp_service/dashboard_scope.py
create mode 100644 superset/mcp_service/dashboard_scope_sql.py
create mode 100644 superset/mcp_service/worker.py
create mode 100644 superset/sql/execution/cancellation.py
create mode 100644
tests/unit_tests/mcp_service/chart/test_live_chart_datasource.py
create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope.py
create mode 100644 tests/unit_tests/mcp_service/test_dashboard_scope_sql.py
create mode 100644 tests/unit_tests/mcp_service/test_worker.py
create mode 100644 tests/unit_tests/mcp_service/test_worker_metadata_pool.py
create mode 100644 tests/unit_tests/sql/execution/test_cancellation.py