You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2026/07/07 17:08:22 UTC
(superset) branch remove-legacy-viz-pipeline updated (66988612e5f -> 487b062ffa6)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch remove-legacy-viz-pipeline
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 66988612e5f Merge master into remove-legacy-viz-pipeline
discard 98a1ddcbb47 chore: prettier formatting for the filter modal test fix
discard 64f6e6ce2ef test(dashboard): match the Remove filter aria-label from #41742
discard 4f6554e95cc Merge branch 'master' into remove-legacy-viz-pipeline
discard 4af4a058b5b docs: add UPDATING.md entries for the legacy viz pipeline removal and drop the working trackers
discard 01b80c5c700 chore(viz)!: remove explore_json endpoints, viz.py and the legacy chart data pipeline (#41750)
discard 1cdd4460c98 chore(viz): drop the legacy- prefix from migrated chart plugin packages (#41751)
discard 0e5bd370a69 chore(viz): update SCOPE tracker — all charts migrated, phases 2-3 in review
omit b60cf4ee360 feat(compare): migrate compare charts to echarts_timeseries_line and drop the legacy plugin (#41738)
omit e7baa73da35 feat(deck-multi): migrate deck_multi chart to the v1 chart data API (#41730)
omit ea90b59305c feat(bubble): migrate saved bubble charts to bubble_v2 and drop the legacy plugin (#41728)
omit d4d3e83360e fix(legacy-viz): restore line-engine default ordering for horizon and rose (#41732)
omit 3e8048bd1e1 feat(partition): migrate partition chart to v1 chart data API (#41729)
omit 6c878598a76 chore(viz): update SCOPE tracker after tier 2 completion
omit 2a73fbd1e36 feat(time-pivot): migrate time_pivot chart to v1 chart data API (#41727)
omit bc5417c6bfe feat(rose): migrate rose chart to v1 chart data API (#41726)
omit d2fd34b1175 feat(horizon): migrate horizon chart to v1 chart data API (#41725)
omit 907b18a0d8b chore(viz): update SCOPE tracker after tier 1-2 merges
omit ad6da2d08ff feat(time-table): migrate time_table chart to v1 chart data API (#41723)
omit 3751fa348d7 feat(world-map): migrate world_map chart to v1 chart data API (#41720)
omit 1a94c04f29f feat(calendar): migrate cal_heatmap chart to v1 chart data API (#41724)
omit 24d5bad32c1 feat(paired-t-test): migrate paired_ttest chart to v1 chart data API (#41721)
omit 66d88e77efc feat(chord): migrate chord chart to v1 chart data API (#41719)
omit e3186079972 chore(viz): update SCOPE tracker after phase 0 + tier 1 merges
omit 138f0cac198 feat(bullet): migrate bullet chart to v1 chart data API (#41718)
omit 5b842935d34 feat(parallel-coordinates): migrate para chart to v1 chart data API (#41716)
omit 34190d5caf5 feat(country-map): migrate country_map chart to v1 chart data API (#41717)
omit c6242a645a7 chore(viz): phase 0 — remove orphaned viz.py classes and nvd3 BoxPlot leftovers (#41715)
omit a7a8198ce7e chore(viz): add SCOPE/UPDATES trackers for legacy viz pipeline removal
add 1575b83f96a chore(deps): bump react-arborist from 3.10.5 to 3.12.0 in /superset-frontend (#41793)
add d6b31376a51 chore(deps-dev): bump prettier from 3.8.4 to 3.9.1 in /docs (#41789)
add beff76cb4d4 chore(deps): bump antd from 6.4.5 to 6.5.0 in /docs (#41788)
add fd8d7009a5b chore(mcp): drop legacy /superset prefix from dashboard URLs (#41758)
add b4218136bec feat(ag-grid): support Show summary in raw records mode (#41754)
add a7a051777c2 feat(charts): soft-delete and restore (#40129)
add 2f11240339c chore(deps): bump query-string from 9.4.0 to 9.4.1 in /superset-frontend (#41782)
add f4cc871f8cd chore(deps): bump js-yaml from 5.1.0 to 5.2.0 in /docs (#41783)
add 69f052985f7 chore(deps-dev): bump prettier from 3.8.4 to 3.9.3 in /superset-frontend (#41784)
add c49d01223c7 chore(deps-dev): bump webpack from 5.108.0 to 5.108.2 in /docs (#41786)
add dc671ae44ac chore(deps-dev): bump eslint from 10.5.0 to 10.6.0 in /superset-frontend (#41792)
add 06f421ed4af fix(a11y): add aria-label to remove-sheet icon button in Google Sheets catalog (#41796)
add 83d93b8b425 fix(view-query): Add ownState parameter to ViewQueryModal for query consistency (#35208)
add ad8e6d41402 build(deps): upgrade `react-markdown` to v9 and `remark-gfm` to v4 (#41778)
add 689b4f623e4 docs(admin/config): resolve misconfigured aws-iam Markdown file (#41748)
add 21b4185819e fix(ace-editor): caret drift from late font loads and emoji widths (#41697)
add 51e708da6bb fix(mcp): accept Superset vocabulary in chart configs and clarify query_dataset metric errors (#40972)
add 69ce27f1731 feat(sec): resolve all vuln alerts in `superset-embedded-sdk`, `superset-frontend` and `docs` (#41776)
add fb496e158a2 fix(ag-grid): persist "None" value aggregation selection (#41386)
add 44c1ad5c714 fix: delint frontend files (#41802)
add c0b0a2fdaf5 feat(tags): add favorites filter to Tags list view (#41461)
add 033b7bc385e fix(databases): update broken database documentation links to /user-docs namespace (#41557)
add 9e50d9eca67 fix: Italian translation (#36114)
add ee524b34713 fix(dashboard): let CSV exports use query cache instead of always force-querying (#41469)
add 2aa43f6f0f5 fix(sql): stop sanitize_clause from rewriting user SQL semantics (#36113) (#41125)
add 85eaf15c5e0 test(databases): stabilize flaky SQLAlchemy-form visibility assertion (#41823)
add 101c1e88275 fix(ace-editor): carry token classes onto emoji boxes (#41821)
add 4b78758fd22 chore(deps-dev): bump typescript-eslint from 8.62.0 to 8.62.1 in /superset-websocket (#41815)
add 847bdad9600 chore(deps-dev): bump @typescript-eslint/parser from 8.62.0 to 8.62.1 in /superset-frontend (#41820)
add 2b74e140f37 chore(deps-dev): update sqlalchemy-parseable requirement from <0.2.0,>=0.1.3 to >=0.1.6,<0.2.0 (#41814)
add 87fa7e5e640 chore(deps-dev): bump prettier from 3.9.1 to 3.9.3 in /superset-websocket (#41810)
add e52240b9a60 test(datasets): prove column metadata persists for zero-row queries (#41838)
add a8a1b220fdc chore(deps): update @ant-design/icons requirement from ^6.2.5 to ^6.3.2 in /superset-frontend/packages/superset-ui-core (#41790)
add 1c3b070d342 feat(i18n): do-not-translate registry + '#. do-not-translate' marker standard (#41651)
add c846da8dfb2 fix(frontend): resolve image download formatting and cleanup issues (#38927)
add de5a233ccf9 fix(sqllab): preserve saved query description when editing (#41685)
add ec4e5deb014 feat(theming): add opt-in SQL Lab grid tokens and fix modal border-radius clipping (#41031)
add 5e384f54d3a fix(ag-grid): select cell on click instead of its text (#41392)
add 4167a21f7d4 fix(semantic layers): guards for zero rows (#41600)
add 4dc45aa9586 fix(semantic layers): apply post-processing (#41601)
add ffd09829423 fix(ag-grid): keep basic conditional formatting aligned after sort (#41390)
add 5e16c4eaaf6 chore(deps-dev): bump oxlint from 1.71.0 to 1.72.0 in /superset-frontend (#41848)
add 7bdde4a36af chore(deps-dev): bump prettier from 3.9.3 to 3.9.4 in /superset-frontend (#41846)
add aa330422f19 chore(deps-dev): bump prettier from 3.9.3 to 3.9.4 in /superset-websocket (#41844)
add 3a514dc8eb0 chore(deps-dev): update sqlalchemy-singlestoredb requirement from <2,>=1.1.1 to >=1.2.1,<2 (#41809)
add 0dcb09b1638 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.62.0 to 8.62.1 in /superset-frontend (#41822)
add 53c3b1ceb1b chore(deps): bump fs-extra from 11.3.5 to 11.3.6 in /superset-frontend (#41847)
add 9b508ebe0d0 fix(ag-grid): honor dataset hour offset in time range filters (#41391)
add dd0277e1e37 feat(mcp): support embedded guest-token authentication (#41003)
add 77b98a5d676 chore(deps-dev): update databend-sqlalchemy requirement from <1.0,>=0.3.2 to >=0.5.5,<1.0 (#41479)
add f0e25fb9789 test(preset-chart-deckgl): prove ctrl+click on deck.gl legend toggles the layer without opening a new tab (#41830)
add d0b42d8c19a test(dashboard): prove activeTabs from permalinks selects tab content (#41832)
add af058ccecb5 test(plugin-chart-echarts): prove user-selected plain legend type is honored (#39540) (#41833)
add de5a31a2cfd test(sql): prove Oracle GROUP BY is no longer rewritten to ordinals (#35414) (#41834)
add 00a9546de9f test(sql): prove multi-space column names no longer trip subquery validation (#41835)
add 7b0969131ff test(sql): prove ClickHouse parametric aggregates parse cleanly (#37285) (#41836)
add 973366d30bf test(models): prove owner association tables reject duplicate rows (#41837)
add 19c982d8d30 test(async-queries): prove OAuth2RedirectError survives async chart queries (#41839)
add 51a171f8217 test(dashboard): prove BigInt column values no longer break native filter config (#41840)
add 0d9b3f3b059 test(dashboard): prove filters with defaults apply without touching every filter (#41841)
add a01a4ae511e test(superset-ui-core): prove angle-bracketed non-HTML values render as text (#34082) (#41829)
add 04f8b700d76 feat(datasets): soft-delete and restore (#40130)
add 5f27f88e730 test(preset-chart-deckgl): prove legend clicks no longer scroll to top (#41831)
add fe7d9b47247 fix(sqllab): reflect query history deletion without page refresh (#41019)
add fbc24959ab3 feat(mcp): add semantic layer MCP tools (list_metrics, get_table, get_compatible_dimensions, get_compatible_metrics) (#41611)
add 996ce9fe008 chore(viz): add SCOPE/UPDATES trackers for legacy viz pipeline removal
add 266c5e06f49 chore(viz): phase 0 — remove orphaned viz.py classes and nvd3 BoxPlot leftovers (#41715)
add 287ca0e0e75 feat(country-map): migrate country_map chart to v1 chart data API (#41717)
add f03b2abc7b6 feat(parallel-coordinates): migrate para chart to v1 chart data API (#41716)
add fab3e8a6cd7 feat(bullet): migrate bullet chart to v1 chart data API (#41718)
add 1c932e3a1fa chore(viz): update SCOPE tracker after phase 0 + tier 1 merges
add fbefd29dc85 feat(chord): migrate chord chart to v1 chart data API (#41719)
add 61045c73406 feat(paired-t-test): migrate paired_ttest chart to v1 chart data API (#41721)
add 19a12c3b4a1 feat(calendar): migrate cal_heatmap chart to v1 chart data API (#41724)
add 0030c60fcbc feat(world-map): migrate world_map chart to v1 chart data API (#41720)
add e30c9d5cfbc feat(time-table): migrate time_table chart to v1 chart data API (#41723)
add e82155ee42a chore(viz): update SCOPE tracker after tier 1-2 merges
add 42dc8d82672 feat(horizon): migrate horizon chart to v1 chart data API (#41725)
add 6bc1c1ea373 feat(rose): migrate rose chart to v1 chart data API (#41726)
add eceefd11f1b feat(time-pivot): migrate time_pivot chart to v1 chart data API (#41727)
add f7c89fb52a2 chore(viz): update SCOPE tracker after tier 2 completion
add 7600c027277 feat(partition): migrate partition chart to v1 chart data API (#41729)
add b55ffa0014d fix(legacy-viz): restore line-engine default ordering for horizon and rose (#41732)
add 0548116b40b feat(bubble): migrate saved bubble charts to bubble_v2 and drop the legacy plugin (#41728)
add 9c4968654fa feat(deck-multi): migrate deck_multi chart to the v1 chart data API (#41730)
add 162493cc5cc feat(compare): migrate compare charts to echarts_timeseries_line and drop the legacy plugin (#41738)
add 5fc1a524a68 chore(viz): update SCOPE tracker — all charts migrated, phases 2-3 in review
add 7caf3ba69e8 chore(viz): drop the legacy- prefix from migrated chart plugin packages (#41751)
add ea8b4df9870 chore(viz)!: remove explore_json endpoints, viz.py and the legacy chart data pipeline (#41750)
add ab7a230210e docs: add UPDATING.md entries for the legacy viz pipeline removal and drop the working trackers
add 487b062ffa6 fix: restore OAuth2RedirectError import after rebase
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 (66988612e5f)
\
N -- N -- N refs/heads/remove-legacy-viz-pipeline (487b062ffa6)
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:
.github/dependabot.yml | 11 -
UPDATING.md | 52 +
docs/admin_docs/configuration/aws-iam.mdx | 20 +-
docs/developer_docs/contributing/howtos.md | 11 +
docs/package.json | 15 +-
docs/src/components/databases/types.ts | 2 +-
docs/src/pages/inTheWild.tsx | 3 +-
docs/src/pages/index.tsx | 3 +-
docs/src/types/yaml.d.ts | 4 +-
docs/src/webpack.extend.ts | 4 +-
docs/tsconfig.json | 1 -
docs/yarn.lock | 7878 ++++++++--------
pyproject.toml | 6 +-
scripts/translations/apply_do_not_translate.py | 128 +
scripts/translations/babel_update.sh | 8 +
scripts/translations/backfill_po.py | 63 +
superset-embedded-sdk/package-lock.json | 1410 ++-
superset-embedded-sdk/package.json | 8 +-
superset-frontend/jest.config.js | 5 +-
superset-frontend/package-lock.json | 2936 ++----
superset-frontend/package.json | 20 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/src/theme/types.ts | 10 +
.../superset-ui-chart-controls/src/types.ts | 12 +-
.../packages/superset-ui-core/package.json | 8 +-
.../AsyncAceEditor/AsyncAceEditor.stories.tsx | 8 +-
.../AsyncAceEditor/AsyncAceEditor.test.tsx | 193 +
.../AsyncAceEditor/emojiWidthPatch.test.ts | 219 +
.../components/AsyncAceEditor/emojiWidthPatch.ts | 283 +
.../src/components/AsyncAceEditor/index.tsx | 81 +-
.../src/components/Button/types.ts | 7 +-
.../src/components/CodeEditor/index.tsx | 8 +-
.../src/components/DropdownButton/index.tsx | 20 +-
.../src/components/DynamicEditableTitle/index.tsx | 20 +-
.../src/components/EmptyState/index.tsx | 8 +-
.../superset-ui-core/src/components/Form/types.ts | 3 +-
.../src/components/Icons/index.tsx | 3 +-
.../superset-ui-core/src/components/Label/types.ts | 7 +-
.../src/components/Loading/types.ts | 5 +-
.../src/components/MetadataBar/ContentType.ts | 9 +-
.../src/components/Modal/Modal.tsx | 78 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 5 +-
.../superset-ui-core/src/components/Tabs/Tabs.tsx | 14 +-
.../src/components/ThemedAgGridReact/index.tsx | 1 +
.../superset-ui-core/src/connection/types.ts | 11 +-
.../superset-ui-core/src/currency-format/types.ts | 8 +-
.../superset-ui-core/src/models/Registry.ts | 4 +-
.../src/query/api/v1/handleError.ts | 3 +-
.../src/query/getClientErrorObject.ts | 10 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 13 +-
.../superset-ui-core/src/query/types/Filter.ts | 4 +-
.../superset-ui-core/src/query/types/Metric.ts | 7 +-
.../src/query/types/PostProcessing.ts | 30 +-
.../src/query/types/QueryFormData.ts | 3 +-
.../superset-ui-core/src/time-comparison/types.ts | 9 +-
.../superset-ui-core/src/utils/html.test.tsx | 17 +
.../chart/components/ChartDataProvider.test.tsx | 3 +-
.../src/AgGridTable/index.tsx | 31 +-
.../src/AgGridTableChart.tsx | 63 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 31 +-
.../plugin-chart-ag-grid-table/src/consts.ts | 8 +
.../src/controlPanel.tsx | 32 +-
.../src/renderers/NumericCellRenderer.tsx | 15 +-
.../src/transformProps.ts | 49 +-
.../plugin-chart-ag-grid-table/src/types.ts | 6 +-
.../src/utils/copyCellValue.ts | 156 +
.../src/utils/externalAPIs.ts | 2 +
.../src/utils/getCellStyle.ts | 8 +-
.../src/utils/getColumnStateSignature.ts | 51 +
.../src/utils/getRowBasicColorFormatter.ts | 50 +
.../src/utils/reconcileColumnState.test.ts | 17 +
.../test/AgGridTableChart.test.tsx | 417 +-
.../test/buildQuery.test.ts | 129 +
.../test/cellSelectionWiring.test.tsx | 99 +
.../test/controlPanel.test.ts | 36 +
.../test/controlPanel.test.tsx | 3 +-
.../test/utils/copyCellValue.test.ts | 203 +
.../test/utils/getColumnStateSignature.test.ts | 82 +
.../test/utils/getRowBasicColorFormatter.test.ts | 81 +
.../plugin-chart-echarts/src/BoxPlot/types.ts | 6 +-
.../src/Radar/controlPanel.tsx | 3 +-
.../src/Timeseries/transformers.ts | 3 +-
.../plugin-chart-echarts/src/Waterfall/types.ts | 6 +-
.../plugin-chart-echarts/src/utils/legendLayout.ts | 6 +-
.../src/utils/safeEChartOptionsParser.ts | 8 +-
.../plugin-chart-echarts/src/utils/series.ts | 6 +-
.../test/Timeseries/transformProps.test.ts | 55 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 68 +-
.../src/plugin/controls/shared.ts | 3 +-
.../src/react-pivottable/utilities.ts | 3 +-
.../plugins/plugin-chart-pivot-table/src/types.ts | 4 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 48 +-
.../plugins/plugin-chart-table/src/buildQuery.ts | 5 +-
.../plugin-chart-table/src/controlPanel.tsx | 3 +-
.../plugin-chart-table/test/controlPanel.test.tsx | 3 +-
.../src/Multi/Multi.color.test.tsx | 65 +-
.../preset-chart-deckgl/src/Multi/Multi.tsx | 3 +-
.../src/components/Legend.test.tsx | 57 +-
.../src/layers/Path/buildQuery.ts | 3 +-
.../src/utilities/Shared_DeckGL.tsx | 3 +-
.../src/utils/crossFiltersDataMask.ts | 12 +-
.../src/SqlLab/actions/sqlLab.test.ts | 83 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 26 +-
.../buildResultsGridThemeOverrides.test.ts | 94 +
.../ResultSet/buildResultsGridThemeOverrides.ts | 46 +
.../src/SqlLab/components/ResultSet/index.tsx | 9 +
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 41 +
.../src/SqlLab/components/SaveQuery/index.tsx | 12 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 36 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 6 +-
.../middlewares/persistSqlLabStateEnhancer.ts | 5 +-
superset-frontend/src/SqlLab/reducers/sqlLab.ts | 3 +-
.../Datasource/FoldersEditor/TreeItem.styles.ts | 24 +-
.../Datasource/FoldersEditor/treeUtils.ts | 4 +-
.../src/components/FilterableTable/index.tsx | 2 +
.../src/components/FilterableTable/types.ts | 3 +
.../src/components/GridTable/Header.test.tsx | 6 +-
.../src/components/GridTable/index.tsx | 10 +-
.../src/components/GridTable/types.ts | 12 +
.../src/components/ImportModal/ErrorAlert.tsx | 2 +-
.../components/ImportModal/ImportErrorAlert.tsx | 2 +-
.../ListView/Filters/CompactSelectPanel.tsx | 6 +-
superset-frontend/src/components/ListView/types.ts | 1 +
.../src/dashboard/actions/dashboardLayout.ts | 2 +-
.../src/dashboard/actions/dashboardState.ts | 3 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 14 +-
.../src/dashboard/components/Dashboard.tsx | 4 +-
.../DashboardBuilder/DashboardBuilder.tsx | 19 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 3 +-
.../src/dashboard/components/SliceHeader/index.tsx | 10 +-
.../components/SliceHeaderControls/index.tsx | 10 +-
.../components/SliceHeaderControls/types.ts | 3 +-
.../src/dashboard/components/dnd/DragHandle.tsx | 10 +-
.../components/gridComponents/Chart/Chart.tsx | 38 +-
.../components/gridComponents/Header/Header.tsx | 7 +-
.../components/gridComponents/Tabs/Tabs.test.tsx | 52 +
.../FilterBar/ActionButtons/index.tsx | 60 +-
.../FilterBar/CrossFilters/CrossFilter.tsx | 20 +-
.../FilterBar/CrossFilters/CrossFilterTag.tsx | 10 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 8 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 110 +
.../FilterControls.overflow.test.tsx | 3 +-
.../FilterBar/UrlFilters/UrlFilterTag.tsx | 8 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 10 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 15 +
.../hooks/useItemStateManager.ts | 3 +-
.../FiltersConfigModal/hooks/useModalSaveLogic.ts | 3 +-
.../transformers/customizationTransformer.ts | 8 +-
.../transformers/filterTransformer.ts | 4 +-
.../dashboard/components/nativeFilters/state.ts | 11 +-
.../src/dashboard/containers/DashboardPage.tsx | 3 +-
.../src/dashboard/reducers/dashboardInfo.ts | 3 +-
.../src/dashboard/reducers/nativeFilters.ts | 5 +-
superset-frontend/src/dashboard/types.ts | 3 +-
.../src/dashboard/util/risonFilters.ts | 6 +-
superset-frontend/src/dataMask/reducer.ts | 2 +-
.../controls/ColumnConfigControl/types.ts | 4 +-
.../components/controls/DateFilterControl/types.ts | 22 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 3 +-
.../index.tsx | 5 +-
.../LayerConfigsPopoverContent.tsx | 3 +-
.../explore/components/controls/SelectControl.tsx | 3 +-
.../components/controls/TextAreaControl.tsx | 16 +-
.../components/controls/VerticalRadioControl.tsx | 8 +-
.../components/controls/ViewQueryModal.test.tsx | 100 +
.../explore/components/controls/ViewQueryModal.tsx | 60 +-
.../components/controls/VizTypeControl/VizTile.tsx | 50 +-
.../useExploreAdditionalActionsMenu/index.tsx | 4 +-
.../explore/controlUtils/standardizedFormData.ts | 3 +-
superset-frontend/src/explore/types.ts | 6 +-
.../src/features/alerts/AlertReportModal.test.tsx | 8 +-
.../src/features/alerts/AlertReportModal.tsx | 29 +-
.../DatabaseConnectionForm/TableCatalog.tsx | 1 +
.../databases/DatabaseModal/ModalHeader.test.tsx | 58 +
.../databases/DatabaseModal/ModalHeader.tsx | 21 +-
.../databases/DatabaseModal/index.test.tsx | 10 +-
.../features/databases/UploadDataModel/index.tsx | 11 +-
superset-frontend/src/features/databases/types.ts | 3 +-
.../datasets/AddDataset/Footer/Footer.test.tsx | 2 +-
.../src/features/home/ActivityTable.tsx | 6 +-
superset-frontend/src/features/home/RightMenu.tsx | 10 +-
.../src/hooks/apiResources/queries.ts | 2 +-
.../src/middleware/loggerMiddleware.ts | 6 +-
superset-frontend/src/pages/Chart/index.tsx | 3 +-
.../FileHandler/FileHandler.subdirectory.test.tsx | 4 +-
.../src/pages/FileHandler/index.test.tsx | 4 +-
superset-frontend/src/pages/Tags/index.tsx | 21 +-
.../src/theme/utils/antdTokenNames.ts | 7 +
superset-frontend/src/utils/downloadAsImage.tsx | 1 -
superset-frontend/src/views/CRUD/types.ts | 7 +-
superset-websocket/package-lock.json | 132 +-
superset-websocket/package.json | 4 +-
superset/charts/api.py | 110 +-
superset/charts/filters.py | 38 +
superset/commands/chart/exceptions.py | 10 +
superset/commands/chart/importers/v1/utils.py | 109 +-
.../commands/chart/restore.py | 36 +-
superset/commands/database/delete.py | 40 +-
superset/commands/database/exceptions.py | 37 +
superset/commands/database/sync_permissions.py | 37 +-
superset/commands/database/uploaders/base.py | 29 +-
superset/commands/dataset/create.py | 9 +
superset/commands/dataset/duplicate.py | 15 +-
superset/commands/dataset/exceptions.py | 43 +
superset/commands/dataset/importers/v1/utils.py | 244 +-
superset/commands/dataset/restore.py | 60 +
superset/commands/report/exceptions.py | 14 +
superset/commands/report/execute.py | 36 +
superset/commands/restore.py | 15 +-
superset/connectors/sqla/models.py | 2 +
superset/daos/dashboard.py | 30 +-
superset/daos/dataset.py | 184 +-
superset/daos/datasource.py | 11 +
superset/daos/semantic_layer.py | 34 +
superset/dashboards/filters.py | 29 +-
superset/datasets/api.py | 129 +-
superset/datasets/filters.py | 19 +
superset/mcp_service/CLAUDE.md | 13 +-
superset/mcp_service/SECURITY.md | 48 +
superset/mcp_service/app.py | 31 +
superset/mcp_service/auth.py | 116 +-
superset/mcp_service/chart/schemas.py | 115 +-
superset/mcp_service/composite_token_verifier.py | 40 +-
superset/mcp_service/dashboard/schemas.py | 4 +-
.../dashboard/tool/duplicate_dashboard.py | 6 +-
.../dashboard/tool/manage_native_filters.py | 4 +-
.../dashboard/tool/remove_chart_from_dashboard.py | 8 +-
.../mcp_service/dataset/tool/create_dataset.py | 8 +
.../dataset/tool/create_virtual_dataset.py | 15 +
superset/mcp_service/dataset/tool/query_dataset.py | 83 +-
superset/mcp_service/guest_token_verifier.py | 180 +
superset/mcp_service/mcp_config.py | 140 +-
.../mcp_service/semantic_layer}/__init__.py | 0
superset/mcp_service/semantic_layer/schemas.py | 302 +
.../{sql_lab => semantic_layer}/tool/__init__.py | 23 +-
.../tool/get_compatible_dimensions.py | 250 +
.../semantic_layer/tool/get_compatible_metrics.py | 254 +
.../mcp_service/semantic_layer/tool/get_table.py | 529 ++
.../semantic_layer/tool/list_metrics.py | 338 +
superset/mcp_service/server.py | 1 +
superset/mcp_service/utils/query_utils.py | 57 +
superset/mcp_service/utils/response_utils.py | 58 +-
...12-00_7c4a8d09ca37_add_deleted_at_to_slices.py} | 47 +-
..._12-10_3a8e6f2c1b95_add_deleted_at_to_tables.py | 58 +
superset/models/helpers.py | 11 +
superset/models/slice.py | 8 +-
superset/security/manager.py | 18 +-
superset/semantic_layers/mapper.py | 28 +
superset/semantic_layers/models.py | 12 +-
superset/sql/parse.py | 29 +-
superset/tags/api.py | 16 +-
superset/tags/filters.py | 30 +-
superset/translations/ar/LC_MESSAGES/messages.po | 43 +
superset/translations/ca/LC_MESSAGES/messages.po | 43 +
superset/translations/cs/LC_MESSAGES/messages.po | 43 +
superset/translations/de/LC_MESSAGES/messages.po | 43 +
superset/translations/do-not-translate.txt | 59 +
superset/translations/en/LC_MESSAGES/messages.po | 43 +
superset/translations/es/LC_MESSAGES/messages.po | 43 +
superset/translations/fa/LC_MESSAGES/messages.po | 43 +
superset/translations/fi/LC_MESSAGES/messages.po | 43 +
superset/translations/fr/LC_MESSAGES/messages.po | 43 +
superset/translations/it/LC_MESSAGES/messages.po | 9440 ++++++--------------
superset/translations/ja/LC_MESSAGES/messages.po | 43 +
superset/translations/ko/LC_MESSAGES/messages.po | 43 +
superset/translations/lv/LC_MESSAGES/messages.po | 43 +
superset/translations/messages.pot | 70 +
superset/translations/mi/LC_MESSAGES/messages.po | 43 +
superset/translations/nl/LC_MESSAGES/messages.po | 43 +
superset/translations/pl/LC_MESSAGES/messages.po | 43 +
superset/translations/pt/LC_MESSAGES/messages.po | 43 +
.../translations/pt_BR/LC_MESSAGES/messages.po | 43 +
superset/translations/ro/LC_MESSAGES/messages.po | 37 +
superset/translations/ru/LC_MESSAGES/messages.po | 43 +
superset/translations/sk/LC_MESSAGES/messages.po | 43 +
superset/translations/sl/LC_MESSAGES/messages.po | 43 +
superset/translations/sr/LC_MESSAGES/messages.po | 37 +
.../translations/sr_Latn/LC_MESSAGES/messages.po | 37 +
superset/translations/th/LC_MESSAGES/messages.po | 43 +
superset/translations/tr/LC_MESSAGES/messages.po | 43 +
superset/translations/uk/LC_MESSAGES/messages.po | 43 +
superset/translations/zh/LC_MESSAGES/messages.po | 43 +
.../translations/zh_TW/LC_MESSAGES/messages.po | 43 +
superset/views/base.py | 19 +-
superset/views/filters.py | 28 +-
tests/integration_tests/charts/commands_tests.py | 2 +-
.../integration_tests/charts/soft_delete_tests.py | 579 ++
tests/integration_tests/dashboard_utils.py | 29 +-
tests/integration_tests/datasets/api_tests.py | 71 +-
.../datasets/soft_delete_tests.py | 584 ++
tests/integration_tests/datasource_tests.py | 2 +-
tests/integration_tests/query_context_tests.py | 4 +
tests/integration_tests/security_tests.py | 73 +
tests/integration_tests/sqla_models_tests.py | 15 +-
tests/integration_tests/tags/api_tests.py | 40 +
.../charts/commands/importers/v1/import_test.py | 181 +
tests/unit_tests/commands/chart/restore_test.py | 90 +
.../commands/databases/sync_permissions_test.py | 46 +
.../commands/databases/upload_command_test.py | 87 +
tests/unit_tests/commands/dataset/restore_test.py | 181 +
tests/unit_tests/commands/dataset/test_create.py | 81 +
.../unit_tests/commands/dataset/test_duplicate.py | 68 +-
tests/unit_tests/commands/report/execute_test.py | 70 +
.../commands/test_base_restore_command.py | 16 +-
tests/unit_tests/connectors/sqla/utils_test.py | 74 +
tests/unit_tests/dao/dashboard_test.py | 119 +
tests/unit_tests/dao/dataset_test.py | 182 +
tests/unit_tests/dao/datasource_test.py | 59 +
tests/unit_tests/databases/commands/delete_test.py | 129 +
.../datasets/commands/importers/v1/import_test.py | 541 +-
.../chart/test_chart_config_coercion.py | 279 +
.../dashboard/tool/test_duplicate_dashboard.py | 6 +-
.../tool/test_remove_chart_from_dashboard.py | 2 +-
.../mcp_service/semantic_layer}/__init__.py | 0
.../mcp_service/semantic_layer/tool}/__init__.py | 0
.../tool/test_get_compatible_dimensions.py | 284 +
.../tool/test_get_compatible_metrics.py | 280 +
.../semantic_layer/tool/test_get_table.py | 299 +
.../semantic_layer/tool/test_list_metrics.py | 329 +
.../mcp_service/test_guest_token_auth.py | 553 ++
tests/unit_tests/mcp_service/test_mcp_server.py | 29 +
.../mcp_service/utils/test_query_utils.py | 96 +
.../mcp_service/utils/test_response_utils.py | 109 +
...hboards.py => test_add_deleted_at_to_slices.py} | 117 +-
...hboards.py => test_add_deleted_at_to_tables.py} | 120 +-
.../models/multi_space_column_names_test.py | 164 +
.../models/owner_association_tables_test.py | 99 +
.../models/test_time_filter_hour_offset.py | 99 +
.../scripts/translations/backfill_po_test.py | 98 +
tests/unit_tests/semantic_layers/dao_test.py | 205 +
tests/unit_tests/semantic_layers/mapper_test.py | 31 +
tests/unit_tests/semantic_layers/models_test.py | 107 +
tests/unit_tests/sql/parse_tests.py | 125 +-
tests/unit_tests/tasks/test_async_queries.py | 53 +
335 files changed, 23741 insertions(+), 15267 deletions(-)
create mode 100644 scripts/translations/apply_do_not_translate.py
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/emojiWidthPatch.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/emojiWidthPatch.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/copyCellValue.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getColumnStateSignature.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getRowBasicColorFormatter.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/cellSelectionWiring.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/copyCellValue.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getColumnStateSignature.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getRowBasicColorFormatter.test.ts
create mode 100644 superset-frontend/src/SqlLab/components/ResultSet/buildResultsGridThemeOverrides.test.ts
create mode 100644 superset-frontend/src/SqlLab/components/ResultSet/buildResultsGridThemeOverrides.ts
create mode 100644 superset-frontend/src/features/databases/DatabaseModal/ModalHeader.test.tsx
copy tests/unit_tests/mcp_service/test_schema_discovery.py => superset/commands/chart/restore.py (53%)
create mode 100644 superset/commands/dataset/restore.py
create mode 100644 superset/mcp_service/guest_token_verifier.py
copy {superset-core/src/superset_core/common => superset/mcp_service/semantic_layer}/__init__.py (100%)
create mode 100644 superset/mcp_service/semantic_layer/schemas.py
copy superset/mcp_service/{sql_lab => semantic_layer}/tool/__init__.py (64%)
create mode 100644 superset/mcp_service/semantic_layer/tool/get_compatible_dimensions.py
create mode 100644 superset/mcp_service/semantic_layer/tool/get_compatible_metrics.py
create mode 100644 superset/mcp_service/semantic_layer/tool/get_table.py
create mode 100644 superset/mcp_service/semantic_layer/tool/list_metrics.py
create mode 100644 superset/mcp_service/utils/query_utils.py
copy superset/migrations/versions/{2025-07-15_18-41_cd1fb11291f2_add_theme_id_to_dashboard_model.py => 2026-05-08_12-00_7c4a8d09ca37_add_deleted_at_to_slices.py} (53%)
create mode 100644 superset/migrations/versions/2026-05-08_12-10_3a8e6f2c1b95_add_deleted_at_to_tables.py
create mode 100644 superset/translations/do-not-translate.txt
create mode 100644 tests/integration_tests/charts/soft_delete_tests.py
create mode 100644 tests/integration_tests/datasets/soft_delete_tests.py
create mode 100644 tests/unit_tests/commands/chart/restore_test.py
create mode 100644 tests/unit_tests/commands/dataset/restore_test.py
create mode 100644 tests/unit_tests/dao/dashboard_test.py
create mode 100644 tests/unit_tests/dao/datasource_test.py
create mode 100644 tests/unit_tests/databases/commands/delete_test.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_config_coercion.py
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/semantic_layer}/__init__.py (100%)
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/semantic_layer/tool}/__init__.py (100%)
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_get_compatible_dimensions.py
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_get_compatible_metrics.py
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_get_table.py
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_list_metrics.py
create mode 100644 tests/unit_tests/mcp_service/test_guest_token_auth.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_query_utils.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_response_utils.py
copy tests/unit_tests/migrations/{test_add_deleted_at_to_dashboards.py => test_add_deleted_at_to_slices.py} (54%)
copy tests/unit_tests/migrations/{test_add_deleted_at_to_dashboards.py => test_add_deleted_at_to_tables.py} (54%)
create mode 100644 tests/unit_tests/models/multi_space_column_names_test.py
create mode 100644 tests/unit_tests/models/owner_association_tables_test.py
create mode 100644 tests/unit_tests/models/test_time_filter_hour_offset.py