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/10/21 16:42:44 UTC
(superset) branch feat/color-picker-consolidation updated (f3006199000 -> a788aeb7161)
This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch feat/color-picker-consolidation
in repository https://gitbox.apache.org/repos/asf/superset.git
from f3006199000 test(pop-kpi): assert decrease path uses custom decreaseColor
add 0a17a75f9a8 chore(deps): bump the storybook group across 2 directories with 4 updates (#45513)
add d5bccecf581 chore(deps): bump chromaui/action from 18.11.0 to 18.12.1 (#45512)
add 77b0fd62ea7 docs: add Plum to In the Wild (#45518)
add 3cf94c87aef chore(deps-dev): bump @types/node from 26.6.4 to 26.6.5 in /superset-embedded-sdk (#45514)
add 1df897b3bba fix(pivot-table): blank mixed-metric totals in exports and reports (#45311)
add 38353434467 fix(cache): honor disabled datasource suggestion caches (#45288)
add ad30c898f86 fix(dashboard): copy a layout that omits the source's current charts (#45472)
add 3988a771f37 fix(dataset): warn immediately when normalize_columns is toggled on (#44617)
add 3c42a68d439 test(mcp): refresh native tool inventory for PNG chart previews (#45511)
add 1811fe5167f fix(dashboard): stop Edit Properties hanging on dashboards with many charts (#45354)
add 65cfc1ed18c fix(deck.gl): set maplibre-gl 6's worker URL so vector basemaps load (#45396)
add 973ac9b8efb fix(export): honor CSV_EXPORT encoding in streaming CSV exports (#45351)
add a708a08cdb0 feat(semantic-layers): declare provider obligations and add a registration test fixture (#45393)
add 488a3c53b45 fix(soft-delete): show Recently Archived in the menu to everyone who can open it (#45523)
add 82a7ec91d6e feat(semantic-layers): apply a default chronological order for time-series queries (#45389)
add fe79ab48e93 fix(tags): make owner-tag creation safe under concurrent creates (#45498)
add e315ed365e8 test(reports): cover scheduled reports on semantic-view charts (#45526)
add 036d1dafe2c fix(semantic-layers): report async chart query validation errors as failures (#45525)
add d73c9b93398 fix(alerts): don't flag "Every minute" schedule as invalid in cron picker (#45468)
add 63c6d273616 chore(plugin-chart-ag-grid-table): remove unused useTableTheme hook (#45469)
add aa3df7caf77 fix(explore): hide empty Actual range for comparison header (#44996)
add f0b43df751a fix(dashboard): remap native filter scopes when duplicating charts on save as (#45038)
add b1fe28b5791 fix(ci): narrow nullable filters in metric_filter_test and resync oxfmt formatting (#45239)
add 875dcbb1bb0 feat(action-log): open JSON payloads in a tree modal (#45337)
add c01e784fc64 fix(ci): restore the full-repo mypy check on two semantic-layer and sqla test files (#45315)
add 293f159deaf fix(sqllab): keep the results grid header opaque when rows scroll under it (#45480)
add 25186586572 fix(chart): keep the chart on screen during a dashboard auto-refresh (#45234)
add fcff5931594 fix(sqllab): ignore a Run/Stop click whose gesture started on the other action (#45336)
add 87dc979e986 fix(table-chart): show the record count in the search box (#45497)
add ec40973ae81 fix(semantic-layer): reject SQL extras in direct mapper calls (#45534)
add ddbf152ac92 fix(dashboard): keep archived charts' membership when restoring a version (#45482)
add 208438b18b6 test(tasks): cover the embedded-guest error text on task show and list (#45533)
add 2d0203e3699 fix(plugin-chart-echarts): merge a series object in ECharts Options into every series (#45421)
add 77ded19ba5c fix(sqllab): commit the recomputed row limit before async dispatch (#45178)
add a1fd5b1f81e fix(sqllab): resolve query datasources when opening SQL Lab (#45374)
add c06005afb1e fix(dashboard): load the saved description into dashboard info (#45298)
add 2978799419e fix(models): keep NULL rows in !=, NOT LIKE and NOT ILIKE filters (#45317)
add 33687492472 test(explore): cover chart header actions, chart pills, and view container wiring (#44848)
add 304f5a38b58 test(playwright): add Featured Charts render smoke and Explore image download (#44844)
add 6842e2f76b3 test(explore): cover cartodiagram and primitive explore controls (#44850)
add c807ee7f909 fix(native-filters): keep pending removal timers when another filter is removed (#44837)
add 7ff5709882f fix(candlestick): give OHLC labels their own translatable strings (#45458)
add 0f376ba9f97 fix(semantic-layers): show per-view errors when adding semantic views (#45524)
add 190873e9832 fix(version-history): preview banner, history panel layout, scope labels and current-version marking (#45471)
add 6dc0641c91a fix(reports): keep the first column header in XLSX exports of semantic-view tables (#45527)
add 4e7e2b7390d fix(tests): narrow Optional StatementResult.data in async result tests (#45517)
add 836c0f3f95d fix(table): reset default margins on the pagination list (#45365)
add 8d3ade7e0a8 test(trino): close db_engine_spec test gaps (#45361)
add 3d902d9eb3a chore(deps): bump the security group across 2 directories with 2 updates (#45542)
add 527021d5819 chore(deps): bump react-virtualized-auto-sizer from 1.0.26 to 2.0.3 in /superset-frontend (#45197)
add c11f993af37 fix(auth): close forced-password-change redirect loop and sweep stale legacy password perms from all roles (#44857)
add 7d0e1c939ee fix(frontend): retry a failed lazy import before surfacing ChunkLoadError (#43215)
add abc1b50f65d fix(mcp): clean up nits from PNG chart preview review (#45509)
add b6ef0bf48d8 chore(tags): stop auto-generating type:/editor:/favorited_by: tags (#43471)
add cb04282f501 chore(deps): bump swagger-ui-react from 5.33.1 to 5.33.2 in /docs (#45567)
add f1d8161777c chore(deps): bump chromaui/action from 18.12.1 to 18.12.2 (#45564)
add f9aec7515b4 chore(deps): bump actions/setup-java from 6.0.1 to 6.1.0 in the gh-actions group (#45563)
add 75be8f981a6 feat(improvements): let deployments withhold assets from list queries and commands (#45451)
add f9a0d8af493 chore(deps-dev): bump oxlint from 1.87.0 to 1.88.0 in /docs (#45566)
add fa8a035fcf6 fix(mcp): stop rejecting titles that contain "data:" in prose (#45485)
add e8824351f19 fix(mcp): isolate dashboard copies and clarify chart evidence (#45504)
add cdc9430597c fix(db_engine_specs): patch oceanbase_py's dialect for SQLAlchemy 2.0 (#45507)
add 8a72271c37e Merge master into feat/color-picker-consolidation
add a788aeb7161 fix(bullet): ignore range_colors when the automatic fallback band is used
No new revisions were added by this update.
Summary of changes:
.github/workflows/chromatic.yml | 2 +-
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 2 +-
.github/workflows/superset-python-unittest.yml | 6 +
RESOURCES/INTHEWILD.yaml | 5 +
UPDATING.md | 117 ++-
docs/admin_docs/configuration/cache.mdx | 16 +
docs/admin_docs/configuration/mcp-server.mdx | 70 +-
docs/admin_docs/security/security.mdx | 63 ++
.../extensions/contribution-types.md | 57 ++
docs/developer_docs/semantic-query-errors.md | 11 +-
.../creating-your-first-dashboard.mdx | 12 +-
docs/docs/using-superset/exploring-data.mdx | 13 +
docs/docs/using-superset/recently-archived.mdx | 4 +
docs/docs/using-superset/version-history.mdx | 8 +-
docs/package.json | 8 +-
docs/static/img/logos/plum.svg | Bin 0 -> 4215 bytes
docs/yarn.lock | 284 +++---
scripts/change_detector.py | 1 +
superset-core/pyproject.toml | 3 +
.../src/superset_core/semantic_layers/layer.py | 12 +
.../src/superset_core/semantic_layers/testing.py | 61 ++
.../src/superset_core/semantic_layers/types.py | 20 +
.../src/superset_core/semantic_layers/view.py | 14 +-
.../tests/semantic_layers/example_provider.py | 167 ++++
.../tests/semantic_layers/test_registration.py | 153 +++
superset-embedded-sdk/package-lock.json | 34 +-
superset-embedded-sdk/package.json | 2 +-
superset-frontend/package-lock.json | 836 ++++++----------
superset-frontend/package.json | 14 +-
.../packages/superset-ui-core/package.json | 2 +-
.../src/components/CronPicker/CronPicker.test.tsx | 28 +-
.../src/components/CronPicker/index.tsx | 6 +-
.../src/components/Typography/index.tsx | 3 +-
.../playwright/helpers/api/dashboard.ts | 28 +
superset-frontend/playwright/pages/ExplorePage.ts | 23 +-
.../tests/dashboard/featured-charts-render.spec.ts | 234 +++++
.../dashboard/version-history-placement.spec.ts | 39 +-
...ults.spec.ts => explore-download-image.spec.ts} | 44 +-
.../tests/version-history/activity-log.spec.ts | 14 +-
.../src/utils/useTableTheme.ts | 42 -
.../src/components/OlChartMap.tsx | 18 +-
.../test/components/OlChartMap.test.tsx | 108 ++
.../src/Bullet/transformProps.ts | 7 +-
.../src/Candlestick/constants.ts | 12 +-
.../src/Candlestick/controlPanel.tsx | 8 +-
.../src/utils/mergeCustomEChartOptions.test.ts | 67 ++
.../src/utils/mergeCustomEChartOptions.ts | 17 +
.../test/Bullet/transformProps.test.ts | 12 +
.../test/Candlestick/controlPanel.test.ts | 10 +
.../test/Candlestick/transformProps.test.ts | 17 +
.../test/Timeseries/transformProps.test.ts | 4 +
.../src/MapLibre.tsx | 33 +-
.../test/MapLibre.test.tsx | 69 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 4 +
.../plugins/plugin-chart-table/src/TableChart.tsx | 7 +-
.../plugin-chart-table/test/TableChart.test.tsx | 129 ++-
.../src/CategoricalDeckGLContainer.test.tsx | 213 +++-
.../src/CategoricalDeckGLContainer.tsx | 73 +-
.../src/DeckGLContainer.test.tsx | 28 +
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 11 +
.../preset-chart-deckgl/src/Multi/Multi.tsx | 25 +-
.../preset-chart-deckgl/src/Multi/MultiV1.test.tsx | 66 +-
.../plugins/preset-chart-deckgl/src/Multi/index.ts | 2 +-
.../src/Multi}/transformProps.test.ts | 36 +-
.../src/Multi}/transformProps.ts | 16 +-
.../preset-chart-deckgl/src/factory.test.tsx | 117 +++
.../plugins/preset-chart-deckgl/src/factory.tsx | 25 +
.../preset-chart-deckgl/src/layers/Arc/Arc.test.ts | 6 +
.../src/layers/Polygon/Polygon.test.tsx | 100 ++
.../src/layers/Polygon/Polygon.tsx | 22 +
.../types/global.d.ts | 2 +-
superset-frontend/spec/helpers/runStopButton.ts | 55 +
.../src/SqlLab/actions/sqlLab.test.ts | 251 +++++
superset-frontend/src/SqlLab/actions/sqlLab.ts | 36 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 13 +-
.../src/SqlLab/components/ResultSet/index.tsx | 10 +-
.../RunQueryActionButton.test.tsx | 545 +++++++++-
.../components/RunQueryActionButton/index.tsx | 37 +-
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 17 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 10 +-
.../TableExploreTree/TableExploreTree.test.tsx | 13 +-
.../SqlLab/components/TableExploreTree/index.tsx | 10 +-
.../components/TablePreview/TablePreview.test.tsx | 13 +-
.../src/SqlLab/components/TablePreview/index.tsx | 8 +-
.../Chart/ChartRenderer.refresh.test.tsx | 302 ++++++
.../src/components/Chart/ChartRenderer.test.tsx | 19 +
.../src/components/Chart/ChartRenderer.tsx | 90 +-
.../FoldersEditor/FoldersEditor.test.tsx | 17 +-
.../components/Datasource/FoldersEditor/index.tsx | 12 +-
.../DatasourceEditor/DatasourceEditor.tsx | 45 +-
...atasourceEditorNormalizeColumnsWarning.test.tsx | 146 +++
.../src/components/GridTable/GridTable.test.tsx | 25 +-
.../src/components/GridTable/index.tsx | 9 +-
.../src/components/JsonModal/JsonModal.test.tsx | 18 +
.../src/components/JsonModal/utils.ts | 10 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 137 ++-
.../DashboardBuilder/DashboardBuilder.tsx | 155 +--
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../src/dashboard/components/Header/index.tsx | 4 +-
.../PropertiesModal.manyCharts.test.tsx | 107 ++
.../dashboard/components/PropertiesModal/index.tsx | 9 +-
.../src/dashboard/components/SliceAdder.test.tsx | 2 +-
.../src/dashboard/components/SliceAdder.tsx | 8 +-
.../hooks/useFilterOperations.test.ts | 145 ++-
.../hooks/useItemStateManager.ts | 28 +-
.../src/dashboard/containers/DashboardPage.tsx | 5 +-
superset-frontend/src/dashboard/types.ts | 2 +-
superset-frontend/src/embedded/index.tsx | 5 +-
.../components/ChartPills.behavior.test.tsx | 158 +++
.../DatasourcePanel.real-autosizer.test.tsx | 7 +-
.../DatasourcePanel/DatasourcePanel.test.tsx | 13 +-
.../explore/components/DatasourcePanel/index.tsx | 10 +-
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 289 ++++++
.../ExploreViewContainer.test.tsx | 276 ++++-
.../components/ExploreViewContainer/index.tsx | 6 +-
.../RunQueryButton/RunQueryButton.test.tsx | 361 ++++++-
.../explore/components/RunQueryButton/index.tsx | 6 +-
.../controls/ComparisonRangeLabel.test.tsx | 38 +-
.../components/controls/ComparisonRangeLabel.tsx | 24 +-
.../index.test.tsx} | 39 +-
.../components/controls/JSEditorControl.test.tsx | 9 +-
.../components/controls/JSEditorControl.tsx | 10 +-
.../LayerConfigsControl.test.tsx | 271 +++++
.../MapViewControl/MapViewControl.test.tsx | 134 +++
.../MapViewControl/MapViewPopoverContent.test.tsx | 78 ++
.../components/controls/SliderControl.test.tsx | 71 ++
.../components/controls/SwitchControl.test.tsx | 57 ++
.../controls/TimeRangeControl/index.test.tsx | 55 +
.../controls/VerticalRadioControl.test.tsx | 83 ++
.../controls/ViewQueryModalFooter.test.tsx | 142 ++-
.../controls/VizTypeControl/VizTypeGallery.tsx | 24 +-
.../ZoomConfigControl/ZoomConfigControl.test.tsx | 195 ++--
.../ZoomConfigControl/ZoomConfigsChart.test.tsx | 178 ++++
.../src/features/home/RightMenu.test.tsx | 76 ++
superset-frontend/src/features/home/RightMenu.tsx | 16 +
.../semanticViews/AddSemanticViewModal.test.tsx | 251 ++++-
.../semanticViews/AddSemanticViewModal.tsx | 121 ++-
.../src/features/semanticViews/creationResult.ts | 90 ++
.../src/features/versionHistory/ActionRow.tsx | 5 +-
.../versionHistory/CurrentVersionSection.tsx | 12 +-
.../DashboardVersionHistory.test.tsx | 4 +-
.../features/versionHistory/SaveGroupItem.test.tsx | 88 +-
.../src/features/versionHistory/SaveGroupItem.tsx | 66 +-
.../versionHistory/VersionHistoryPanel.test.tsx | 107 +-
.../versionHistory/VersionHistoryPanel.tsx | 53 +-
.../src/features/versionHistory/display.test.ts | 28 +
.../src/features/versionHistory/display.ts | 28 +
.../versionHistory/useVersionActivity.test.ts | 4 +-
.../src/hooks/apiResources/dashboards.test.ts | 48 +
.../src/hooks/apiResources/dashboards.ts | 1 +
superset-frontend/src/hooks/useRunStopButton.ts | 181 ++++
.../src/pages/ActionLog/ActionLog.test.tsx | 76 ++
superset-frontend/src/pages/ActionLog/index.tsx | 67 +-
superset-frontend/src/types/Dashboard.ts | 1 +
superset-frontend/src/types/bootstrapTypes.ts | 1 +
superset-frontend/src/utils/lazyWithRetry.test.tsx | 140 +++
superset-frontend/src/utils/lazyWithRetry.ts | 135 +++
superset-frontend/src/views/routes.tsx | 83 +-
superset-websocket/package-lock.json | 168 ++--
superset-websocket/package.json | 4 +-
superset/app.py | 8 +-
superset/charts/client_processing.py | 168 ++--
superset/charts/data/api.py | 4 +-
superset/charts/filters.py | 8 +
superset/cli/update.py | 17 -
superset/commands/report/base.py | 73 ++
superset/commands/sql_lab/execute.py | 12 +
superset/commands/streaming_export/base.py | 34 +-
superset/common/tags.py | 496 ---------
superset/config.py | 36 +
superset/daos/dashboard.py | 158 ++-
superset/dashboards/api.py | 3 +
superset/dashboards/filters.py | 7 +
superset/datasource/api.py | 32 +-
superset/db_engine_specs/oceanbase.py | 86 ++
superset/mcp_service/app.py | 4 +-
.../chart/prompts/create_chart_guided.py | 4 +-
.../mcp_service/chart/resources/chart_configs.py | 14 +-
superset/mcp_service/chart/schemas.py | 84 +-
superset/mcp_service/chart/tool/get_chart_data.py | 32 +-
.../mcp_service/chart/tool/get_chart_preview.py | 10 +-
superset/mcp_service/dashboard/schemas.py | 139 ++-
.../dashboard/tool/duplicate_dashboard.py | 14 +-
.../dashboard/tool/get_dashboard_data.py | 96 +-
superset/mcp_service/dashboard_scope_sql.py | 7 +-
superset/mcp_service/database/schemas.py | 8 +-
superset/mcp_service/dataset/schemas.py | 9 +-
.../dataset/tool/update_dataset_metric.py | 2 +-
superset/mcp_service/middleware.py | 29 +-
superset/mcp_service/report/schemas.py | 4 +
superset/mcp_service/tag/tool/get_tag_info.py | 6 +-
superset/mcp_service/tag/tool/list_tags.py | 6 +-
superset/mcp_service/utils/response_size_utils.py | 4 +
superset/mcp_service/utils/sanitization.py | 114 ++-
superset/mcp_service/utils/schema_utils.py | 19 +
superset/mcp_service/utils/validation.py | 89 +-
...ep_legacy_password_view_perms_from_all_roles.py | 120 +++
superset/models/helpers.py | 86 +-
superset/reports/api.py | 15 +-
superset/reports/filters.py | 37 +
superset/security/password_change.py | 101 +-
superset/semantic_layers/cache_policy.py | 14 +-
superset/semantic_layers/cache_repository.py | 14 +-
superset/semantic_layers/cache_transform.py | 17 +-
superset/semantic_layers/mapper.py | 72 +-
superset/semantic_layers/ordering.py | 59 ++
superset/sqllab/api.py | 4 +-
superset/tags/core.py | 98 +-
superset/tags/models.py | 311 ++----
superset/tasks/async_queries.py | 19 +-
superset/tasks/schemas.py | 9 +
superset/translations/ar/LC_MESSAGES/messages.po | 30 +-
superset/translations/ca/LC_MESSAGES/messages.po | 26 +-
superset/translations/cs/LC_MESSAGES/messages.po | 27 +-
superset/translations/de/LC_MESSAGES/messages.po | 26 +-
superset/translations/en/LC_MESSAGES/messages.po | 26 +-
superset/translations/es/LC_MESSAGES/messages.po | 26 +-
superset/translations/fa/LC_MESSAGES/messages.po | 26 +-
superset/translations/fi/LC_MESSAGES/messages.po | 26 +-
superset/translations/fr/LC_MESSAGES/messages.po | 26 +-
superset/translations/it/LC_MESSAGES/messages.po | 26 +-
superset/translations/ja/LC_MESSAGES/messages.po | 29 +-
superset/translations/ko/LC_MESSAGES/messages.po | 25 +-
superset/translations/lv/LC_MESSAGES/messages.po | 27 +-
superset/translations/messages.pot | 47 +-
superset/translations/mi/LC_MESSAGES/messages.po | 26 +-
superset/translations/nl/LC_MESSAGES/messages.po | 26 +-
superset/translations/pl/LC_MESSAGES/messages.po | 26 +-
superset/translations/pt/LC_MESSAGES/messages.po | 26 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 26 +-
superset/translations/ro/LC_MESSAGES/messages.po | 27 +-
superset/translations/ru/LC_MESSAGES/messages.po | 27 +-
superset/translations/sk/LC_MESSAGES/messages.po | 27 +-
superset/translations/sl/LC_MESSAGES/messages.po | 28 +-
superset/translations/sr/LC_MESSAGES/messages.po | 27 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 27 +-
superset/translations/ta/LC_MESSAGES/messages.po | 26 +-
superset/translations/th/LC_MESSAGES/messages.po | 25 +-
superset/translations/tr/LC_MESSAGES/messages.po | 25 +-
superset/translations/uk/LC_MESSAGES/messages.po | 28 +-
superset/translations/zh/LC_MESSAGES/messages.po | 25 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 25 +-
superset/utils/excel.py | 7 +-
superset/utils/filters.py | 111 ++-
superset/versioning/restore.py | 41 +-
superset/views/archived_assets.py | 18 +-
superset/views/base.py | 4 +
tests/integration_tests/charts/api_tests.py | 8 +-
tests/integration_tests/dashboards/api_tests.py | 119 ++-
.../dashboards/version_restore_tests.py | 358 +++++++
tests/integration_tests/tagging_tests.py | 294 ------
tests/integration_tests/tags/dao_tests.py | 94 +-
tests/integration_tests/tags/race_tests.py | 94 ++
tests/integration_tests/tasks/api_tests.py | 78 +-
.../db_engine_specs/test_oceanbase.py | 94 +-
.../charts/data/streaming_filename_test.py | 18 +-
tests/unit_tests/charts/test_client_processing.py | 506 ++++++++--
tests/unit_tests/charts/test_filters.py | 110 ++
tests/unit_tests/commands/report/base_test.py | 239 +++++
.../unit_tests/commands/report/conftest.py | 6 +-
.../commands/report/semantic_view_report_test.py | 232 +++++
tests/unit_tests/commands/sql_lab/test_execute.py | 92 ++
.../commands/streaming_export}/__init__.py | 0
.../commands/streaming_export/base_test.py | 51 +
tests/unit_tests/dao/dashboard_test.py | 581 +++++++++++
.../dao/test_copy_dashboard_legacy_ids.py | 81 +-
.../dashboards/semantic_view_access_test.py | 141 ++-
tests/unit_tests/db_engine_specs/test_oceanbase.py | 228 +++++
tests/unit_tests/db_engine_specs/test_trino.py | 1052 +++++++++++++++++++-
.../mcp_service/chart/test_chart_examples.py | 48 +
.../mcp_service/chart/test_chart_schemas.py | 21 +
.../mcp_service/chart/tool/test_get_chart_data.py | 3 +
.../chart/tool/test_get_chart_preview.py | 40 +
.../common/test_list_scope_validation.py | 105 ++
.../dashboard/test_dashboard_schemas.py | 39 +
.../dashboard/tool/test_duplicate_dashboard.py | 86 +-
.../dashboard/tool/test_get_dashboard_data.py | 507 ++++++++++
.../dashboard/tool/test_list_dashboards.py | 85 ++
.../mcp_service/native_tool_inventory.json | 78 +-
.../mcp_service/test_dashboard_scope_sql.py | 24 +
tests/unit_tests/mcp_service/test_mcp_config.py | 9 +
.../mcp_service/test_mcp_tool_registration.py | 23 +
.../test_sanitization_warning_inputs.py | 450 ++++++++-
.../mcp_service/test_validation_contract.py | 23 +
.../mcp_service/utils/test_sanitization.py | 163 +++
.../test_sweep_legacy_password_view_perms.py | 190 ++++
tests/unit_tests/models/helpers_test.py | 622 +++++++++++-
tests/unit_tests/models/test_multivalue_filter.py | 138 +++
tests/unit_tests/reports/filters_test.py | 53 +
tests/unit_tests/scripts/change_detector_test.py | 13 +
tests/unit_tests/security/test_password_change.py | 63 ++
.../unit_tests/security/test_password_recovery.py | 12 +-
.../semantic_layers/cache_transform_test.py | 8 +-
tests/unit_tests/semantic_layers/conftest.py | 64 ++
.../semantic_layers/default_order_test.py | 376 +++++++
.../semantic_layers/e2e_stub_extension_test.py | 56 +-
.../semantic_layers/execution_context_test.py | 3 +-
tests/unit_tests/semantic_layers/mapper_test.py | 244 ++---
.../semantic_layers/metric_filter_test.py | 1 +
.../semantic_layers/query_errors_test.py | 34 +-
.../semantic_layers/values_endpoint_test.py | 184 ++++
.../unit_tests/sql/execution/test_async_results.py | 2 +
tests/unit_tests/sqllab/api_test.py | 24 +-
tests/unit_tests/tags/models_test.py | 6 +-
tests/unit_tests/tags/race_test.py | 84 ++
tests/unit_tests/tasks/test_async_queries.py | 95 +-
tests/unit_tests/tasks/test_schemas.py | 62 ++
tests/unit_tests/utils/excel_tests.py | 13 +
tests/unit_tests/utils/filters_test.py | 260 ++++-
tests/unit_tests/views/test_archived_assets.py | 86 ++
312 files changed, 19359 insertions(+), 3781 deletions(-)
create mode 100644 docs/static/img/logos/plum.svg
create mode 100644 superset-core/src/superset_core/semantic_layers/testing.py
create mode 100644 superset-core/tests/semantic_layers/example_provider.py
create mode 100644 superset-core/tests/semantic_layers/test_registration.py
create mode 100644 superset-frontend/playwright/tests/dashboard/featured-charts-render.spec.ts
copy superset-frontend/playwright/tests/explore/{explore-no-results.spec.ts => explore-download-image.spec.ts} (53%)
delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/test/components/OlChartMap.test.tsx
copy superset-frontend/plugins/{plugin-chart-parallel-coordinates/test => preset-chart-deckgl/src/Multi}/transformProps.test.ts (52%)
copy superset-frontend/{src/chartCustomizations/components/DeckglLayerVisibility => plugins/preset-chart-deckgl/src/Multi}/transformProps.ts (72%)
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/factory.test.tsx
copy superset-frontend/plugins/{plugin-chart-point-cluster-map => preset-chart-deckgl}/types/global.d.ts (92%)
create mode 100644 superset-frontend/spec/helpers/runStopButton.ts
create mode 100644 superset-frontend/src/components/Chart/ChartRenderer.refresh.test.tsx
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorNormalizeColumnsWarning.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.manyCharts.test.tsx
create mode 100644 superset-frontend/src/explore/components/ChartPills.behavior.test.tsx
copy superset-frontend/src/explore/components/controls/{DateFilterControl/tests/CurrentCalendarFrame.test.tsx => CustomListItem/index.test.tsx} (50%)
create mode 100644 superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewPopoverContent.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/SliderControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/SwitchControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/TimeRangeControl/index.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/VerticalRadioControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigsChart.test.tsx
create mode 100644 superset-frontend/src/features/semanticViews/creationResult.ts
create mode 100644 superset-frontend/src/hooks/useRunStopButton.ts
create mode 100644 superset-frontend/src/utils/lazyWithRetry.test.tsx
create mode 100644 superset-frontend/src/utils/lazyWithRetry.ts
delete mode 100644 superset/common/tags.py
create mode 100644 superset/migrations/versions/2026-09-30_00-00_d623a0cb6bb0_sweep_legacy_password_view_perms_from_all_roles.py
create mode 100644 superset/semantic_layers/ordering.py
delete mode 100644 tests/integration_tests/tagging_tests.py
create mode 100644 tests/integration_tests/tags/race_tests.py
copy superset-extensions-cli/src/superset_extensions_cli/constants.py => tests/unit_tests/commands/report/conftest.py (82%)
create mode 100644 tests/unit_tests/commands/report/semantic_view_report_test.py
copy {scripts => tests/unit_tests/commands/streaming_export}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/streaming_export/base_test.py
create mode 100644 tests/unit_tests/mcp_service/common/test_list_scope_validation.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_list_dashboards.py
create mode 100644 tests/unit_tests/migrations/test_sweep_legacy_password_view_perms.py
create mode 100644 tests/unit_tests/semantic_layers/default_order_test.py
create mode 100644 tests/unit_tests/tags/race_test.py
create mode 100644 tests/unit_tests/views/test_archived_assets.py