This is an automated email from the ASF dual-hosted git repository. jli pushed a commit to branch alert-report-test-gaps in repository https://gitbox.apache.org/repos/asf/superset.git
commit 1d762b94529c5ce1d1fbc6ada5ac2c927922000d Merge: 79d0f2a55e3 d31a2f96c99 Author: Joe Li <[email protected]> AuthorDate: Mon Mar 2 14:31:42 2026 -0800 Merge branch 'master' into alert-report-test-gaps .github/dependabot.yml | 7 + .github/workflows/superset-docs-deploy.yml | 4 +- .github/workflows/superset-docs-verify.yml | 2 +- .github/workflows/superset-e2e.yml | 4 +- .github/workflows/superset-extensions-cli.yml | 2 +- .github/workflows/superset-frontend.yml | 37 +- .github/workflows/superset-playwright.yml | 2 +- .../workflows/superset-python-integrationtest.yml | 2 +- .pre-commit-config.yaml | 2 +- README.md | 10 +- UPDATING.md | 4 + docs/.claude/instructions.md | 2 +- docs/.gitignore | 2 +- docs/DOCS_CLAUDE.md | 2 +- docs/README.md | 9 +- .../configuration/alerts-reports.mdx | 8 +- .../configuration/async-queries-celery.mdx | 0 docs/{docs => admin_docs}/configuration/cache.mdx | 4 +- .../configuration/configuring-superset.mdx | 21 +- .../configuration/country-map-tools.mdx | 0 .../configuration/event-logging.mdx | 0 .../configuration/feature-flags.mdx | 0 .../importing-exporting-datasources.mdx | 0 .../configuration/map-tiles.mdx | 0 .../configuration/networking-settings.mdx | 4 +- .../configuration/sql-templating.mdx | 6 +- .../{docs => admin_docs}/configuration/theming.mdx | 0 .../configuration/timezones.mdx | 2 +- docs/admin_docs/index.md | 42 + .../installation/architecture.mdx | 12 +- .../installation/docker-builds.mdx | 0 .../installation/docker-compose.mdx | 4 +- .../installation/installation-methods.mdx | 10 +- .../installation/kubernetes.mdx | 6 +- docs/{docs => admin_docs}/installation/pypi.mdx | 2 +- .../installation/upgrading-superset.mdx | 0 docs/{docs => admin_docs}/security/cves.mdx | 10 + .../security/securing_superset.mdx | 4 +- docs/{docs => admin_docs}/security/security.mdx | 2 +- docs/{docs => developer_docs}/api.mdx | 0 docs/developer_docs/components/TODO.md | 71 ++ .../components/design-system/dropdowncontainer.mdx | 167 +++ .../components/design-system/flex.mdx | 197 ++++ .../components/design-system/grid.mdx | 192 ++++ .../components/design-system/index.mdx | 38 + .../components/design-system/layout.mdx | 139 +++ .../components/design-system/metadatabar.mdx | 174 +++ .../components/design-system/space.mdx | 168 +++ .../components/design-system/table.mdx | 311 +++++ docs/developer_docs/components/index.mdx | 74 ++ docs/developer_docs/components/ui/autocomplete.mdx | 215 ++++ docs/developer_docs/components/ui/avatar.mdx | 140 +++ docs/developer_docs/components/ui/badge.mdx | 160 +++ docs/developer_docs/components/ui/breadcrumb.mdx | 93 ++ docs/developer_docs/components/ui/button.mdx | 142 +++ docs/developer_docs/components/ui/buttongroup.mdx | 88 ++ docs/developer_docs/components/ui/cachedlabel.mdx | 79 ++ docs/developer_docs/components/ui/card.mdx | 142 +++ docs/developer_docs/components/ui/checkbox.mdx | 141 +++ docs/developer_docs/components/ui/collapse.mdx | 106 ++ docs/developer_docs/components/ui/datepicker.mdx | 110 ++ docs/developer_docs/components/ui/divider.mdx | 144 +++ .../developer_docs/components/ui/editabletitle.mdx | 172 +++ docs/developer_docs/components/ui/emptystate.mdx | 147 +++ docs/developer_docs/components/ui/favestar.mdx | 96 ++ docs/developer_docs/components/ui/iconbutton.mdx | 106 ++ docs/developer_docs/components/ui/icons.mdx | 252 ++++ docs/developer_docs/components/ui/icontooltip.mdx | 100 ++ docs/developer_docs/components/ui/index.mdx | 77 ++ docs/developer_docs/components/ui/infotooltip.mdx | 106 ++ docs/developer_docs/components/ui/input.mdx | 162 +++ docs/developer_docs/components/ui/label.mdx | 105 ++ docs/developer_docs/components/ui/list.mdx | 117 ++ docs/developer_docs/components/ui/listviewcard.mdx | 132 +++ docs/developer_docs/components/ui/loading.mdx | 187 +++ docs/developer_docs/components/ui/menu.mdx | 174 +++ docs/developer_docs/components/ui/modal.mdx | 207 ++++ docs/developer_docs/components/ui/modaltrigger.mdx | 192 ++++ docs/developer_docs/components/ui/popover.mdx | 199 ++++ docs/developer_docs/components/ui/progressbar.mdx | 206 ++++ docs/developer_docs/components/ui/radio.mdx | 137 +++ docs/developer_docs/components/ui/safemarkdown.mdx | 85 ++ docs/developer_docs/components/ui/select.mdx | 308 +++++ docs/developer_docs/components/ui/skeleton.mdx | 140 +++ docs/developer_docs/components/ui/slider.mdx | 253 ++++ docs/developer_docs/components/ui/steps.mdx | 272 +++++ docs/developer_docs/components/ui/switch.mdx | 193 ++++ .../components/ui/tablecollection.mdx | 66 ++ docs/developer_docs/components/ui/tableview.mdx | 294 +++++ docs/developer_docs/components/ui/tabs.mdx | 223 ++++ docs/developer_docs/components/ui/timer.mdx | 172 +++ docs/developer_docs/components/ui/tooltip.mdx | 171 +++ docs/developer_docs/components/ui/tree.mdx | 268 +++++ docs/developer_docs/components/ui/treeselect.mdx | 286 +++++ docs/developer_docs/components/ui/typography.mdx | 236 ++++ .../components/ui/unsavedchangesmodal.mdx | 126 ++ docs/developer_docs/components/ui/upload.mdx | 136 +++ .../contributing/code-review.md | 0 .../contributing/development-setup.md | 4 +- .../contributing/guidelines.md | 0 .../contributing/howtos.md | 24 + .../contributing/issue-reporting.md | 0 .../contributing/overview.md | 0 .../contributing/pkg-resources-migration.md | 47 +- .../contributing/release-process.md | 0 .../contributing/resources.md | 4 +- .../contributing/submitting-pr.md | 0 .../extensions/architecture.md | 0 .../developer_docs/extensions/components/alert.mdx | 131 +++ .../developer_docs/extensions/components/index.mdx | 93 ++ .../extensions/contribution-types.md | 0 .../extensions/dependencies.md | 0 .../extensions/deployment.md | 0 .../extensions/development.md | 4 +- .../extensions/extension-points/editors.md | 0 .../extensions/extension-points/sqllab.md | 0 .../extensions/mcp.md | 0 .../extensions/overview.md | 0 .../extensions/quick-start.md | 0 .../extensions/registry.md | 0 .../extensions/security.md | 0 .../extensions/tasks.md | 2 +- .../guidelines/backend-style-guidelines.md | 0 .../guidelines/backend/dao-style-guidelines.md | 0 .../guidelines/design-guidelines.md | 0 .../guidelines/frontend-style-guidelines.md | 0 .../frontend/component-style-guidelines.md | 0 .../frontend/emotion-styling-guidelines.md | 0 docs/{developer_portal => developer_docs}/index.md | 48 +- .../sidebars.js | 0 .../testing/backend-testing.md | 0 .../testing/ci-cd.md | 0 .../testing/e2e-testing.md | 0 .../testing/frontend-testing.md | 0 .../testing/overview.md | 0 .../testing/storybook.md | 0 .../testing/testing-guidelines.md | 0 .../versions.json | 0 docs/docs/contributing/contributing.mdx | 142 --- docs/docs/contributing/development.mdx | 1205 -------------------- docs/docs/contributing/guidelines.mdx | 254 ----- docs/docs/contributing/howtos.mdx | 720 ------------ docs/docs/contributing/misc.mdx | 55 - docs/docs/contributing/resources.mdx | 104 -- docs/docs/faq.mdx | 14 +- docs/docs/index.mdx | 269 +++++ docs/docs/quickstart.mdx | 14 +- .../creating-your-first-dashboard.mdx | 4 +- docs/docs/using-superset/sql-templating.mdx | 250 ++++ docs/docusaurus.config.ts | 419 +++++-- docs/package.json | 8 +- docs/scripts/convert-api-sidebar.mjs | 4 +- docs/scripts/generate-api-index.mjs | 4 +- docs/scripts/generate-api-tag-pages.mjs | 2 +- docs/scripts/generate-database-docs.mjs | 2 +- docs/{sidebars.js => sidebarAdminDocs.js} | 76 +- docs/sidebarTutorials.js | 18 +- docs/sidebars.js | 74 +- docs/src/components/databases/DatabaseLogoWall.tsx | 71 ++ docs/src/data/databases.json | 12 +- docs/src/pages/index.tsx | 128 +++ docs/src/styles/custom.css | 24 +- .../version-6.0.0/configuration/alerts-reports.mdx | 8 +- .../version-6.0.0/configuration/cache.mdx | 4 +- .../configuration/configuring-superset.mdx | 6 +- .../version-6.0.0/configuration/databases.mdx | 108 +- .../configuration/networking-settings.mdx | 2 +- .../version-6.0.0/configuration/sql-templating.mdx | 2 +- .../version-6.0.0/configuration/timezones.mdx | 2 +- .../version-6.0.0/contributing/contributing.mdx | 2 +- .../version-6.0.0/contributing/development.mdx | 4 +- .../version-6.0.0/contributing/guidelines.mdx | 2 +- docs/versioned_docs/version-6.0.0/faq.mdx | 10 +- .../version-6.0.0/installation/architecture.mdx | 12 +- .../installation/installation-methods.mdx | 10 +- .../version-6.0.0/installation/kubernetes.mdx | 4 +- docs/versioned_docs/version-6.0.0/intro.md | 4 +- docs/versioned_docs/version-6.0.0/quickstart.mdx | 12 +- .../creating-your-first-dashboard.mdx | 4 +- docs/versions-config.json | 17 +- docs/yarn.lock | 164 +-- pyproject.toml | 2 +- superset-frontend/cypress-base/package-lock.json | 12 +- superset-frontend/package-lock.json | 647 ++++++----- superset-frontend/package.json | 10 +- .../packages/superset-ui-core/package.json | 4 +- .../src/components/ThemedAgGridReact/index.tsx | 3 + .../legacy-plugin-chart-world-map/src/WorldMap.ts | 20 +- .../test/WorldMap.test.ts | 141 ++- .../src/utils/useColDefs.ts | 32 +- .../test/utils/useColDefs.test.ts | 135 +++ .../src/Timeseries/transformProps.ts | 36 +- .../test/Timeseries/transformers.test.ts | 96 ++ superset-frontend/src/SqlLab/actions/sqlLab.ts | 2 + .../src/SqlLab/components/TablePreview/index.tsx | 2 +- superset-frontend/src/SqlLab/constants.ts | 2 + .../components/Chart/ChartErrorMessage.test.tsx | 13 + .../src/components/Chart/ChartErrorMessage.tsx | 1 + .../FoldersEditor/FoldersEditor.test.tsx | 336 ++++++ .../Datasource/FoldersEditor/TreeItem.styles.ts | 2 +- .../FoldersEditor/VirtualizedTreeItem.tsx | 8 + .../FoldersEditor/VirtualizedTreeList.tsx | 4 + .../components/DragOverlayContent.test.tsx | 124 ++ .../components/DragOverlayContent.tsx | 66 +- .../components/FoldersToolbarComponent.tsx | 118 +- .../Datasource/FoldersEditor/constants.ts | 3 + .../FoldersEditor/folderOperations.test.ts | 106 ++ .../Datasource/FoldersEditor/folderOperations.ts | 57 +- .../hooks/useContainingBlockModifier.ts | 78 ++ .../FoldersEditor/hooks/useDragHandlers.test.ts | 164 +++ .../FoldersEditor/hooks/useDragHandlers.ts | 264 ++++- .../FoldersEditor/hooks/useItemHeights.ts | 7 +- .../components/Datasource/FoldersEditor/index.tsx | 281 ++++- .../Datasource/FoldersEditor/sensors.test.ts | 120 ++ .../components/Datasource/FoldersEditor/sensors.ts | 58 +- .../components/Datasource/FoldersEditor/styles.tsx | 64 ++ .../Datasource/FoldersEditor/treeUtils.test.ts | 84 ++ .../Datasource/FoldersEditor/treeUtils.ts | 46 + .../DatasourceEditor/DatasourceEditor.tsx | 53 +- .../ErrorMessage/DatabaseErrorMessage.tsx | 2 + .../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 2 + .../ErrorMessageWithStackTrace.test.tsx | 12 + .../ErrorMessage/ErrorMessageWithStackTrace.tsx | 4 + .../ErrorMessage/FrontendNetworkErrorMessage.tsx | 2 + .../ErrorMessage/InvalidSQLErrorMessage.tsx | 2 + .../ErrorMessage/OAuth2RedirectMessage.tsx | 2 + .../ErrorMessage/ParameterErrorMessage.tsx | 2 + .../ErrorMessage/TimeoutErrorMessage.tsx | 2 + .../src/components/ErrorMessage/types.ts | 1 + .../src/dashboard/components/SliceHeader/index.tsx | 6 +- .../components/gridComponents/Chart/Chart.test.tsx | 25 + .../components/gridComponents/Chart/Chart.tsx | 2 + .../src/dashboard/reducers/dashboardLayout.test.ts | 105 ++ .../src/dashboard/reducers/dashboardLayout.ts | 12 +- .../src/explore/components/ChartPills.tsx | 6 +- .../transformDatasourceFolders.test.ts | 12 +- .../DatasourcePanel/transformDatasourceFolders.ts | 71 +- .../src/explore/components/SaveModal.test.tsx | 13 + .../src/explore/components/SaveModal.tsx | 32 +- .../useExploreAdditionalActionsMenu/index.tsx | 2 + .../src/features/alerts/AlertReportModal.tsx | 43 +- superset-frontend/src/pages/ActionLog/index.tsx | 20 +- superset-websocket/package-lock.json | 382 ++++--- superset-websocket/package.json | 4 +- superset/app.py | 5 +- superset/commands/dataset/update.py | 22 +- superset/commands/sql_lab/results.py | 2 +- superset/daos/base.py | 11 +- superset/daos/database.py | 6 +- superset/db_engine_specs/bigquery.py | 2 +- superset/db_engine_specs/clickhouse.py | 22 +- superset/mcp_service/CLAUDE.md | 37 + superset/mcp_service/app.py | 4 + superset/mcp_service/auth.py | 18 +- superset/mcp_service/chart/chart_utils.py | 120 +- superset/mcp_service/chart/schemas.py | 68 +- superset/mcp_service/chart/tool/generate_chart.py | 33 +- superset/mcp_service/chart/tool/get_chart_data.py | 146 ++- superset/mcp_service/chart/tool/get_chart_info.py | 96 +- .../mcp_service/chart/tool/get_chart_preview.py | 73 +- .../chart/validation/dataset_validator.py | 153 ++- superset/mcp_service/chart/validation/pipeline.py | 86 +- superset/mcp_service/constants.py | 21 + superset/mcp_service/dashboard/schemas.py | 43 +- .../dashboard/tool/get_dashboard_info.py | 114 +- .../mcp_service/dataset/tool/get_dataset_info.py | 12 + .../explore/tool/generate_explore_link.py | 15 +- superset/mcp_service/jwt_verifier.py | 320 ++++++ superset/mcp_service/mcp_config.py | 117 +- superset/mcp_service/mcp_core.py | 24 +- superset/mcp_service/middleware.py | 170 +++ superset/mcp_service/server.py | 62 +- superset/mcp_service/system/schemas.py | 22 + superset/mcp_service/system/system_utils.py | 29 + .../mcp_service/system/tool/get_instance_info.py | 2 + superset/mcp_service/utils/token_utils.py | 424 +++++++ tests/unit_tests/commands/dataset/update_test.py | 35 +- .../unit_tests/db_engine_specs/test_clickhouse.py | 17 - tests/unit_tests/initialization_test.py | 72 +- .../mcp_service/chart/test_chart_utils.py | 101 +- .../validation/test_column_name_normalization.py | 681 +++++++++++ .../explore/tool/test_generate_explore_link.py | 149 +++ .../mcp_service/system/test_system_utils.py | 60 + .../system/tool/test_get_current_user.py | 2 + .../mcp_service/system/tool/test_mcp_core.py | 4 +- tests/unit_tests/mcp_service/test_jwt_verifier.py | 726 ++++++++++++ tests/unit_tests/mcp_service/test_mcp_config.py | 9 + tests/unit_tests/mcp_service/test_middleware.py | 343 ++++++ .../mcp_service/utils/test_token_utils.py | 358 ++++++ 289 files changed, 18885 insertions(+), 3947 deletions(-)
