You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jl...@apache.org on 2026/03/20 18:21:32 UTC

(superset) branch alert-report-test-gaps updated (b1378e63655 -> 3420c1f2f40)

This is an automated email from the ASF dual-hosted git repository.

jli pushed a change to branch alert-report-test-gaps
in repository https://gitbox.apache.org/repos/asf/superset.git


    from b1378e63655 test(alerts/reports): use strict xfail for zero-boundary label bug
     add 3cb00bf116d feat(database): add Google Cloud Datastore db engine spec (#37677)
     add 60577bcd979 chore(deps-dev): bump webpack from 5.105.3 to 5.105.4 in /docs (#38380)
     add d9a91f99dbb feat: support for import/export masked_encrypted_extra (frontend) (#38078)
     add 9983e255f82 fix(charts): revert: improve negative stacked bar label positioning and accessibility (#37405) (#38484)
     add c7a1f57487c fix(sqla): parenthesize extras where/having clauses in query generation (#38183)
     add 577654cd02e fix(heatmap): correct tooltip display to show axis values instead of indices (#38487)
     add e70c7944b75 fix(tests): achieve 100% TypeScript coverage for core packages (#38518)
     add 62cebc8a0e6 fix(dashboard): prevent Apply button from disabling when required filters are auto-applied (#38479)
     add dca41f9a7b8 fix(theme): prevent background color flash on page load (#38399)
     add bf55f1e4388 chore(extensions): bump superset-core and superset-extensions-cli to 0.1.0rc1 (#38516)
     add bc99b710bda fix(dashboard): ensure clear all respects required filter validation (#37681)
     add 9017b9a74f2 chore: enable allow_update_branch in .asf.yaml (#38530)
     add 61fbfda501e feat(security): add granular export controls (Phase 1) (#38361)
     add 8e3e57c1c82 fix(docs): swizzle MethodEndpoint to fix SSG crash on all API pages (#38533)
     add 4cd3ce164de fix(mcp): make fastmcp truly optional during Superset startup (#38534)
     add 6ef4794778b fix(mcp): resolve chatbot tool call flakiness with URL and instruction fixes (#38532)
     add a17f38a4e23 fix(embedded): add CurrentUserRestApi read permission to Public role defaults (#38474)
     add 06fd0658ae7 chore(deps-dev): bump prettier-plugin-packagejson from 3.0.0 to 3.0.2 in /superset-frontend (#38508)
     add 6c1df93215f chore(deps): bump aquasecurity/trivy-action from 0.34.2 to 0.35.0 (#38502)
     add 9ecca47e693 feat(ci): only run precommit on changed files (#38155)
     add 26c07b1ffb8 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.9.1 to 0.9.2 in /superset-frontend (#38509)
     add afa51125de4 chore(deps): bump the storybook group in /docs with 11 updates (#38501)
     add 06d6b513cde chore(deps-dev): bump jest from 30.2.0 to 30.3.0 in /superset-frontend (#38549)
     add 6d1d5d64d11 chore(deps): bump antd from 6.3.1 to 6.3.2 in /docs (#38547)
     add 5f20d2e15ac chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#38548)
     add 0533ca9941e feat(mcp): register GlobalErrorHandlerMiddleware and LoggingMiddleware (#38523)
     add 2a876e8b868 fix(mcp): add missing command.validate() to MCP chart data tools (#38521)
     add 5fa70bdbd82 fix(mcp): add guardrails to prevent LLM artifact generation (#38391)
     add 6342c4f338a feat(mcp): add horizontal bar chart orientation support to generate_chart (#38390)
     add 5c2cbb58bc9 fix(mcp): add missing __init__.py for chart, dashboard, dataset packages (#38400)
     add cc8ad23d6f9 chore(deps): bump react-diff-viewer-continued from 3.4.0 to 4.2.0 in /superset-frontend (#38552)
     add 13fe88000a9 chore(deps-dev): bump lightningcss from 1.31.1 to 1.32.0 in /superset-frontend (#38511)
     add 0cfd760a365 fix(mcp): improve default chart names with descriptive format (#38406)
     add bde48e563ef fix: SQL Lab tab content padding (#38561)
     add 31754a39c93 fix(i18n): correct variable name for translated SQL Lab query message (#38494)
     add 6d7cfac8b2d fix(mcp): wrap LoggingMiddleware.on_message event_logger in try/except (#38560)
     add eb77452857d feat(mcp): auto-generate dashboard title from chart names when omitted (#38410)
     add 3bb9704cd51 fix(mcp): honor target_tab parameter when adding charts to tabbed dashboards (#38409)
     add fe7f220c210 fix(charts): set reasonable default y-axis title margin to prevent label overlap (#38389)
     add 9215eb5e45c fix(ag-grid): persist AG Grid column filters in explore permalinks (#38393)
     add 9b8106b3820 chore(deps-dev): bump mini-css-extract-plugin from 2.10.0 to 2.10.1 in /superset-frontend (#38573)
     add 59129419425 chore(deps-dev): bump @typescript-eslint/parser from 8.56.1 to 8.57.0 in /superset-websocket (#38570)
     add d42e9c4d1b7 chore(deps): bump acorn from 8.9.0 to 8.16.0 in /superset-frontend (#38466)
     add 3056c415075 chore(deps): bump caniuse-lite from 1.0.30001775 to 1.0.30001777 in /docs (#38463)
     add d752be5f74a chore(deps): bump dompurify from 3.3.1 to 3.3.2 in /superset-frontend (#38455)
     add ffe60bd9602 chore(deps-dev): bump oxlint from 1.51.0 to 1.53.0 in /superset-frontend (#38571)
     add 27197faba97 fix(matrixify): Matrixify to not override slice id (#38515)
     add a9def2fc152 fix: support nested function calls in cache_key_wrapper (#38569)
     add 09e9c6a522e fix(embedded): prevent double RLS application in virtual datasets (#37395)
     add 7943af359c2 feat(mcp): implement RBAC permission checking for MCP tools (#38407)
     add 65e21cf13c4 docs: move MCP deployment guide to admin docs, add user-facing AI guide (#38585)
     add 7f476a79b3e fix: add embedded box sizing rule for layout (#38351)
     add 95f61bd223e fix: add parent_slice_id for multilayer charts to embed (#38243)
     add d4f1f8db001 fix(mcp): extract role names as strings in UserInfo serialization (#38612)
     add 4a9db243a17 chore(deps): bump caniuse-lite from 1.0.30001777 to 1.0.30001778 in /docs (#38593)
     add 83955e87acc refactor(mcp): use serialize_user_object in get_instance_info (#38613)
     add 0b8df8d3f2f build(deps): update `geostyler-*` deps to latest major versions (#38151)
     add fc156d0014b fix(mcp): replace uuid with url and changed_on_humanized in default list columns (#38566)
     add 56d6bb19136 feat(auth): add SAML login support to frontend (#38606)
     add d91b96814e0 fix(mcp): Improve validation errors and field aliases to reduce failed LLM tool calls (#38625)
     add 9516d1a306d fix(explore/dashboard): fix CSV/Excel downloads for legacy chart types (#38513)
     add 32a64d02c74 fix(deckgl): polygon chart not rendering when boundary column contains nested geometry JSON (#38595)
     add af5e05db2e4 fix(mcp): Support form_data_key without chart identifier for unsaved charts (#38628)
     add f458e2d484f feat(mcp): add extra_form_data param to get_chart_data for dashboard filters (#38531)
     add d5cf77cd60b fix(mcp): fix crashes in list tools, dataset info, chart preview, and add owner/favorite filters (#38277)
     add f5383263bc7 fix(extensions): fix gitignore template and bump version (#38614)
     add 18673369076 fix(editor): implement missing methods, fix cursor position clearing (#38603)
     add f6106cd26f1 fix(timeshiftcolor): Time shift color to match the original color (#38473)
     add ca2d26a1e2f fix(ag-grid-table): fix AND filter conditions not applied (#38369)
     add ba7271b4d89 fix(world-map): add fallback fill color when colorFn returns null (#38602)
     add ba7d7dcec0d chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#38619)
     add 242636b36b1 chore(deps): bump baseline-browser-mapping from 2.10.0 to 2.10.7 in /docs (#38622)
     add f4a57a13bc9 chore(deps): bump dompurify from 3.3.2 to 3.3.3 in /superset-frontend (#38592)
     add b6c3b3ef46d fix(mcp): return all statement results for multi-statement SQL queries (#38388)
     add 97a66f7a647 feat(mcp): add BM25 tool search transform to reduce initial context size (#38562)
     add e8061a9c2b4 style(metadata-bar): use bold font weight for metadata bar     title       (#38608)
     add 6e7d6a85b45 fix(ag-grid-table): fix failing buildQuery test expectation (#38636)
     add ed622e254a4 feat(matrixify): Revamp control panel (#38519)
     add 48220fb33f8 feat(mcp): add save_sql_query tool for SQL Lab saved queries (#38414)
     add 68e38c88936 chore(deps): bump undici from 7.22.0 to 7.24.1 in /superset-frontend (#38642)
     add 176bf00c169 chore(deps-dev): bump baseline-browser-mapping from 2.10.0 to 2.10.7 + sync lockfile + run `npm audit fix` in /superset-frontend (#38621)
     add 39cd1cdd436 chore(deps): bump dawidd6/action-download-artifact from 16 to 17 (#38620)
     add cc066b35761 fix(docs): use absolute API doc links in developer docs (#38649)
     add afe093f1ca5 fix(FilterBar): reduce padded space between filter header and first filter (#38646)
     add dcb414aa064 feat(extensions): add update command to extensions cli (#38651)
     add aa5adb0fce1 fix(embedded): default to light theme instead of system preference (#38644)
     add 7909095ff34 feat(native-filters): add configurable LIKE/ILIKE operators to Select filter (#38470)
     add 96705c156a9 fix(map-box): make opacity, lon, lat, and zoom controls functional (#38374)
     add ca403dc45d0 fix(ci): allow docs testing to run despite absence of db diagnostics data (#38655)
     add 1c8224f4c63 feat(mcp): Add tool annotations for MCP directory compliance (#38641)
     add a854fa60a2e feat: apply RLS conservatively (#38683)
     add c980f39aabe chore(deps): bump caniuse-lite from 1.0.30001778 to 1.0.30001780 in /docs (#38688)
     add 461037f645d chore(deps-dev): bump typescript-eslint from 8.56.1 to 8.57.1 in /docs (#38684)
     add 5865176f363 fix(dashboard): overload issue in dashboard export to excel (#29418)
     add 6f301707f9f fix: Simplify extension folder name (#38690)
     add 05b9970aa66 fix(map-box): prevent clusters from being smaller than individual points (#38458)
     add 91986fff023 fix(tests): restore 100% TypeScript coverage for core packages (#38682)
     add 834d2abe707 chore(deps): bump antd from 6.3.2 to 6.3.3 in /docs (#38686)
     add e02ca8871dd fix(mcp): expose individual tool parameters when MCP_PARSE_REQUEST_ENABLED=False (#38714)
     add a314e5b35ef fix: Row limit support for chart mcp tools (#38717)
     add fd1c423826d fix(chart): prevent chart list from failing when a datasource lacks explore_url (#38721)
     add 3edf75123a9 chore(deps): bump swagger-ui-react from 5.32.0 to 5.32.1 in /docs (#38708)
     add 03de7e1ec62 fix(dashboard): use inline theme data to prevent 403 for non-admin users (#38384)
     add 972e15e6011 fix(sql): remove WHERE 1 = 1 when temporal filter has "No filter" selected (#38704)
     add 14b1b456e16 fix: Add aliases and groupby list to chart schemas (#38740)
     add 5457c2da676 chore(deps): bump dawidd6/action-download-artifact from 17 to 19 (#38735)
     add d6bfc98a616 feat(ci): use zstd for faster saving and loading `superset-node-ci` image (#38645)
     add 211f29b7234 fix(mcp): Chart schema followups - DRY extraction, template fix, alias and test gaps (#38746)
     add 01aa4d32816 chore(deps): bump match-sorter from 6.3.4 to 8.2.0 in /superset-frontend (#36470)
     add 6465450b64a fix(firebolt): Firebolt SQL entered with EXCLUDE is rewritten to EXCEPT (#38742)
     add d4646d43a76 docs(security): update vulnerability reporting policy and admin trust boundary (#38653)
     add 65f13f773e5 fix(theme): ensure colorLink follows colorPrimary when not explicitly set (#38517)
     add ee233d16d69 fix(dashboard): correct tab underline width for newly added dashboard tabs. (#38524)
     add b754f2d1733 fix(theme): persist local theme id so "Local" tag remains after navigation (#38527)
     add 6b9dd23e3a5 fix(timeseries-table): enable proper column sorting in timeseries-table chart (#38579)
     add 82a74c88aa3 fix(button): Theming configurations for button elements is not consistent (#38604)
     add cbb2b2f3c25 feat(themes): add JSON formatting to theme modal editor (#38739)
     add c2a21915ff3 fix(mcp): fix dashboard slug null and execute_sql encoding error (#38710)
     add 5e5c05362c2 fix(mcp): use correct permission class for save_sql_query tool (#38764)
     add e088979fbed fix(reports): validate nativeFilters on report create/update and deactivate on dashboard filter deletion (#38715)
     add 97ea479cdcd chore(deps-dev): bump flatted from 3.3.1 to 3.4.2 in /superset-websocket (#38752)
     add ea1c6ee30f3 chore(deps): bump geostyler-openlayers-parser from 5.4.0 to 5.4.1 in /superset-frontend (#38755)
     add 1af5da6aad3 chore(deps): bump baseline-browser-mapping from 2.10.7 to 2.10.9 in /docs (#38756)
     add 1d72480c178 fix(mcp): fix detached Slice instance error in chart/dashboard serialization (#38767)
     add 28d67d59cd7 chore(deps-dev): bump flatted from 3.2.2 to 3.4.2 in /superset-frontend/cypress-base (#38761)
     add 3420c1f2f40 Merge remote-tracking branch 'origin/master' into alert-report-test-gaps

No new revisions were added by this update.

Summary of changes:
 .asf.yaml                                          |    4 +-
 .github/SECURITY.md                                |   37 +-
 .github/workflows/docker.yml                       |    2 +-
 .github/workflows/pre-commit.yml                   |   10 +-
 .github/workflows/superset-docs-deploy.yml         |    4 +-
 .github/workflows/superset-docs-verify.yml         |    3 +-
 .github/workflows/superset-frontend.yml            |   15 +-
 .gitignore                                         |    1 +
 UPDATING.md                                        |    8 +
 .../configuration/mcp-server.mdx}                  |   15 +-
 docs/admin_docs/security/security.mdx              |    8 +
 docs/developer_docs/api.mdx                        |  484 ++--
 docs/developer_docs/extensions/development.md      |   10 +-
 docs/developer_docs/extensions/quick-start.md      |    2 +-
 docs/developer_docs/sidebars.js                    |    1 -
 .../docs/using-superset/using-ai-with-superset.mdx |  245 ++
 docs/package.json                                  |   30 +-
 docs/scripts/generate-api-index.mjs                |    6 +-
 .../src/theme/ApiExplorer/MethodEndpoint/index.tsx |  120 +
 docs/static/feature-flags.json                     |    6 +
 docs/static/img/databases/datastore.png            |  Bin 0 -> 5248 bytes
 docs/yarn.lock                                     | 1126 ++++-----
 pyproject.toml                                     |    2 +-
 requirements/base.txt                              |    2 +-
 requirements/development.txt                       |   65 +-
 superset-core/README.md                            |   98 +-
 superset-core/pyproject.toml                       |    2 +-
 superset-core/src/superset_core/mcp/decorators.py  |   33 +-
 superset-embedded-sdk/src/index.ts                 |    1 +
 superset-extensions-cli/README.md                  |   73 +-
 superset-extensions-cli/pyproject.toml             |    3 +-
 .../src/superset_extensions_cli/cli.py             |  165 +-
 .../templates/{.gitignore.j2 => gitignore.j2}      |    0
 .../src/superset_extensions_cli/utils.py           |   10 +
 superset-extensions-cli/tests/conftest.py          |   68 +
 superset-extensions-cli/tests/test_cli_build.py    |    4 +-
 superset-extensions-cli/tests/test_cli_init.py     |   60 +-
 superset-extensions-cli/tests/test_cli_update.py   |  172 ++
 superset-extensions-cli/tests/test_cli_validate.py |   63 +
 superset-extensions-cli/tests/test_utils.py        |   31 +-
 superset-frontend/cypress-base/package-lock.json   |   12 +-
 superset-frontend/jest.config.js                   |    2 +-
 superset-frontend/oxlint.json                      |    3 +-
 superset-frontend/package-lock.json                | 2636 +++++++++-----------
 superset-frontend/package.json                     |   27 +-
 .../packages/generator-superset/package.json       |    2 +-
 superset-frontend/packages/superset-core/README.md |  148 +-
 .../packages/superset-core/package.json            |    2 +-
 .../packages/superset-core/src/editors/index.ts    |   43 +
 .../packages/superset-core/src/sqlLab/index.ts     |   16 +
 .../superset-core/src/theme/Theme.test.tsx         |   70 +
 .../packages/superset-core/src/theme/Theme.tsx     |   15 +
 .../packages/superset-core/src/theme/types.ts      |   50 +
 .../src/theme/utils/themeUtils.test.ts             |   30 +
 .../superset-core/src/theme/utils/utils.test.ts    |   22 +
 .../src/translation/Translator.test.ts             |  132 +
 .../superset-core/src/translation/Translator.ts    |    1 +
 .../src/translation/TranslatorSingleton.test.ts    |  112 +
 .../packages/superset-core/src/utils/logging.ts    |    1 +
 .../src/operators/utils/timeOffset.ts              |   12 +-
 .../src/sections/matrixify.tsx                     |   42 +-
 .../src/shared-controls/matrixifyControls.tsx      |  114 +-
 .../test/operators/utils/timeOffset.test.ts        |   92 +-
 .../packages/superset-ui-core/package.json         |    2 +-
 .../Matrixify/MatrixifyGridGenerator.test.ts       |   20 +
 .../components/Matrixify/MatrixifyGridGenerator.ts |    2 +-
 .../Matrixify/MatrixifyGridRenderer.test.tsx       |   56 +-
 .../components/Matrixify/MatrixifyGridRenderer.tsx |    6 +-
 .../src/chart/types/matrixify.test.ts              |   57 +-
 .../superset-ui-core/src/chart/types/matrixify.ts  |   80 +-
 .../src/components/Button/Button.test.tsx          |  167 ++
 .../src/components/Button/index.tsx                |   75 +-
 .../src/components/EditableTitle/index.tsx         |   11 +-
 .../src/components/MetadataBar/ContentConfig.tsx   |    2 +-
 .../superset-ui-core/src/components/Tabs/Tabs.tsx  |  120 +-
 .../superset-ui-core/src/query/types/Operator.ts   |    1 +
 .../superset-ui-core/src/utils/featureFlags.ts     |    1 +
 .../superset-ui-core/test/query/getAxis.test.ts    |   50 +-
 .../test/utils/featureFlag.test.ts                 |   13 +
 .../playwright/helpers/api/dashboard.ts            |    1 +
 superset-frontend/playwright/helpers/api/theme.ts  |   62 +
 .../playwright/helpers/fixtures/testAssets.ts      |   21 +-
 .../tests/experimental/dashboard/theme.spec.ts     |  152 ++
 .../legacy-plugin-chart-map-box/src/MapBox.tsx     |   96 +-
 .../src/ScatterPlotGlowOverlay.tsx                 |   61 +-
 .../src/controlPanel.ts                            |    7 +-
 .../src/transformProps.ts                          |   44 +-
 .../test/MapBox.test.tsx                           |  381 +++
 .../test/ScatterPlotGlowOverlay.test.tsx           |  663 ++++-
 .../test/controlPanel.test.ts                      |   81 +
 .../test/transformProps.test.ts                    |  230 ++
 .../legacy-plugin-chart-world-map/src/WorldMap.ts  |   14 +-
 .../test/WorldMap.test.ts                          |   53 +
 .../src/Multi/Multi.test.tsx                       |  137 +
 .../legacy-preset-chart-deckgl/src/Multi/Multi.tsx |    2 +
 .../src/layers/Polygon/transformProps.test.ts      |  120 +
 .../src/layers/Polygon/transformProps.ts           |    4 +
 .../plugins/legacy-preset-chart-nvd3/package.json  |    2 +-
 .../plugin-chart-ag-grid-table/package.json        |    1 -
 .../src/AgGridTableChart.tsx                       |    3 +
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |   80 +-
 .../src/transformProps.ts                          |   38 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |    1 +
 .../test/buildQuery.test.ts                        |  254 ++
 .../plugins/plugin-chart-cartodiagram/package.json |    8 +-
 .../test/util/layerUtil.test.ts                    |    7 +-
 .../plugins/plugin-chart-echarts/package.json      |    2 +-
 .../src/Heatmap/transformProps.ts                  |   24 +-
 .../src/Timeseries/EchartsTimeseries.test.tsx      |    2 +-
 .../src/Timeseries/constants.ts                    |    2 +-
 .../src/Timeseries/transformProps.ts               |   17 +-
 .../src/Timeseries/transformers.ts                 |   43 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |    2 +-
 .../test/MixedTimeseries/transformProps.test.ts    |    2 +-
 .../test/Timeseries/transformers.test.ts           |   97 +-
 .../plugins/plugin-chart-handlebars/package.json   |    2 +-
 .../plugins/plugin-chart-pivot-table/package.json  |    2 +-
 .../plugins/plugin-chart-table/package.json        |    2 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |    2 +-
 .../src/SqlLab/components/SouthPane/index.tsx      |    2 +
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |    6 +-
 .../src/components/Chart/ChartRenderer.test.tsx    |   22 +-
 .../src/components/Chart/ChartRenderer.tsx         |    6 +-
 .../Chart/DrillBy/DrillBySubmenu.test.tsx          |    4 +-
 .../components/Chart/DrillBy/DrillBySubmenu.tsx    |    6 +-
 .../src/components/Chart/chartReducers.test.ts     |   45 +-
 .../src/components/CrudThemeProvider.test.tsx      |  326 +++
 .../src/components/CrudThemeProvider.tsx           |   94 +-
 .../components/ImportModal/ImportModal.test.tsx    |   44 +
 .../src/components/ImportModal/index.tsx           |   51 +-
 .../src/components/ImportModal/types.ts            |    9 +-
 .../src/core/editors/AceEditorProvider.tsx         |   41 +-
 superset-frontend/src/core/sqlLab/index.ts         |    7 +
 .../src/dashboard/components/Header/index.tsx      |    7 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |   70 +
 .../dashboard/components/PropertiesModal/index.tsx |    7 +-
 .../PropertiesModal/sections/StylingSection.tsx    |    1 +
 .../components/gridComponents/Tab/Tab.test.tsx     |   38 +
 .../components/gridComponents/Tab/Tab.tsx          |    2 +-
 .../nativeFilters/ConfigModal/SharedStyles.tsx     |   19 +-
 .../FilterBar/ActionButtons/index.tsx              |  124 +-
 .../nativeFilters/FilterBar/FilterBar.test.tsx     | 1141 +++++----
 .../nativeFilters/FilterBar/Header/index.tsx       |    6 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |    1 +
 .../components/nativeFilters/FilterBar/index.tsx   |  100 +-
 .../nativeFilters/FilterBar/utils.test.ts          | 1145 ++++++---
 .../components/nativeFilters/FilterBar/utils.ts    |  137 +-
 .../FiltersConfigModal/FilterTitleContainer.tsx    |    1 +
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  116 +-
 .../FiltersConfigForm/getControlItemsMap.tsx       |    3 +-
 .../FiltersConfigModal/ItemTitleContainer.tsx      |    1 +
 .../dashboard/containers/DashboardPage.test.tsx    |  256 ++
 .../src/dashboard/containers/DashboardPage.tsx     |    8 +-
 .../src/dashboard/reducers/dashboardInfo.test.ts   |  156 ++
 .../src/dashboard/reducers/dashboardInfo.ts        |   39 +-
 superset-frontend/src/dashboard/types.ts           |    4 +-
 superset-frontend/src/dataMask/reducer.ts          |   20 +-
 .../src/embedded/EmbeddedContextProviders.tsx      |    3 +-
 superset-frontend/src/embedded/index.tsx           |   12 +
 .../src/explore/actions/exploreActions.ts          |   13 +
 .../src/explore/actions/hydrateExplore.ts          |   27 +-
 .../components/ControlPanelsContainer.test.tsx     |    9 +-
 .../explore/components/ControlPanelsContainer.tsx  |    7 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |    2 +-
 .../explore/components/ExploreChartPanel/index.tsx |   71 +-
 .../LayerConfigsControl/GeoStylerWrapper.tsx       |    1 +
 .../controls/MatrixifyDimensionControl.tsx         |   74 +-
 .../explore/components/controls/SwitchControl.tsx  |   65 +
 .../components/controls/VerticalRadioControl.tsx   |  104 +
 .../src/explore/components/controls/index.ts       |    4 +
 .../useExploreAdditionalActionsMenu/index.tsx      |   28 +-
 .../src/explore/controlPanels/sections.tsx         |   86 +-
 .../src/explore/exploreUtils/exportChart.test.ts   |  104 +-
 .../src/explore/exploreUtils/getExploreUrl.test.ts |   31 +
 .../exploreUtils/getLegacyEndpointType.test.ts     |    6 +
 .../src/explore/exploreUtils/index.ts              |   32 +-
 .../src/explore/reducers/exploreReducer.ts         |   35 +-
 superset-frontend/src/explore/types.ts             |    7 +-
 .../DatabaseConnectionForm/EncryptedField.tsx      |    1 +
 .../src/features/databases/DatabaseModal/index.tsx |   83 +-
 .../src/features/themes/ThemeModal.test.tsx        |  132 +
 .../src/features/themes/ThemeModal.tsx             |   86 +-
 .../components/Select/SelectFilterPlugin.test.tsx  |  413 ++-
 .../components/Select/SelectFilterPlugin.tsx       |  152 +-
 .../filters/components/Select/buildQuery.test.ts   |   94 +-
 .../components/Select/controlPanel.test.ts}        |   30 +-
 .../src/filters/components/Select/controlPanel.ts  |   75 +-
 .../filters/components/Select/transformProps.ts    |   11 +-
 .../src/filters/components/Select/types.ts         |    9 +
 superset-frontend/src/filters/utils.ts             |   45 +-
 .../src/hooks/usePermissions.test.tsx              |  128 +
 superset-frontend/src/hooks/usePermissions.ts      |   18 +-
 superset-frontend/src/pages/Chart/index.tsx        |   16 +
 .../src/pages/ChartList/ChartList.testHelpers.tsx  |    2 +-
 superset-frontend/src/pages/Login/Login.test.tsx   |   46 +-
 superset-frontend/src/pages/Login/index.tsx        |    4 +-
 superset-frontend/src/theme/ThemeController.ts     |   11 +
 superset-frontend/src/theme/ThemeProvider.tsx      |    3 +-
 .../src/theme/tests/ThemeController.test.ts        |  112 +
 .../src/theme/tests/ThemeProvider.test.tsx         |   33 +
 .../src/theme/utils/antdTokenNames.ts              |   14 +
 superset-frontend/src/utils/urlUtils.ts            |    9 +-
 superset-frontend/src/views/CRUD/hooks.ts          |   26 +-
 superset-frontend/src/views/CRUD/types.ts          |   10 +
 superset-frontend/src/views/CRUD/utils.test.tsx    |  154 ++
 superset-frontend/src/views/CRUD/utils.tsx         |   43 +-
 .../TimeTable/utils/sortUtils/sortUtils.test.ts    |   78 +-
 .../TimeTable/utils/sortUtils/sortUtils.ts         |   55 +-
 superset-frontend/webpack.config.js                |    2 +-
 superset-websocket/package-lock.json               |  344 ++-
 superset-websocket/package.json                    |    2 +-
 superset/charts/data/api.py                        |   13 +-
 superset/commands/dashboard/update.py              |  118 +-
 superset/commands/database/validate.py             |    2 +-
 superset/commands/explore/get.py                   |    7 +-
 superset/commands/report/base.py                   |  146 +-
 superset/commands/report/create.py                 |   34 -
 superset/commands/report/update.py                 |    1 +
 superset/common/query_context_factory.py           |    5 +-
 superset/config.py                                 |    5 +
 superset/connectors/sqla/models.py                 |   12 +-
 superset/core/mcp/core_mcp_injection.py            |   57 +-
 superset/daos/chart.py                             |    4 +-
 superset/daos/dashboard.py                         |   59 +-
 superset/daos/dataset.py                           |   11 +
 superset/daos/report.py                            |   13 +
 superset/db_engine_specs/datastore.py              |  610 +++++
 superset/explore/permalink/schemas.py              |   10 +
 superset/explore/permalink/types.py                |    1 +
 superset/jinja_context.py                          |   14 +-
 superset/mcp_service/app.py                        |   36 +-
 superset/mcp_service/auth.py                       |  136 +-
 .../mcp_service/chart}/__init__.py                 |    0
 superset/mcp_service/chart/chart_utils.py          |  308 ++-
 superset/mcp_service/chart/preview_utils.py        |   18 +-
 .../mcp_service/chart/resources/chart_configs.py   |   30 +-
 superset/mcp_service/chart/schemas.py              |  506 ++--
 superset/mcp_service/chart/tool/generate_chart.py  |   62 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |  323 ++-
 superset/mcp_service/chart/tool/get_chart_info.py  |  123 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |  157 +-
 superset/mcp_service/chart/tool/list_charts.py     |   18 +-
 superset/mcp_service/chart/tool/update_chart.py    |   13 +-
 .../mcp_service/chart/tool/update_chart_preview.py |   14 +-
 .../chart/validation/dataset_validator.py          |   11 +-
 .../chart/validation/runtime/__init__.py           |    2 +-
 superset/mcp_service/common/cache_schemas.py       |   35 +-
 superset/mcp_service/common/schema_discovery.py    |   22 +-
 .../mcp_service/dashboard}/__init__.py             |    0
 superset/mcp_service/dashboard/schemas.py          |  145 +-
 .../tool/add_chart_to_existing_dashboard.py        |  167 +-
 .../dashboard/tool/generate_dashboard.py           |   93 +-
 .../dashboard/tool/get_dashboard_info.py           |   12 +-
 .../mcp_service/dashboard/tool/list_dashboards.py  |   18 +-
 .../mcp_service/dataset}/__init__.py               |    0
 superset/mcp_service/dataset/schemas.py            |   31 +-
 .../mcp_service/dataset/tool/get_dataset_info.py   |   12 +-
 superset/mcp_service/dataset/tool/list_datasets.py |   17 +-
 .../explore/tool/generate_explore_link.py          |   12 +-
 superset/mcp_service/flask_singleton.py            |   70 +-
 superset/mcp_service/mcp_config.py                 |   39 +
 superset/mcp_service/mcp_core.py                   |    7 +-
 superset/mcp_service/middleware.py                 |   73 +-
 superset/mcp_service/server.py                     |  159 +-
 superset/mcp_service/sql_lab/schemas.py            |  113 +-
 superset/mcp_service/sql_lab/tool/__init__.py      |    2 +
 superset/mcp_service/sql_lab/tool/execute_sql.py   |  104 +-
 .../sql_lab/tool/open_sql_lab_with_context.py      |   24 +-
 .../mcp_service/sql_lab/tool/save_sql_query.py     |  146 ++
 superset/mcp_service/system/schemas.py             |  125 +-
 superset/mcp_service/system/system_utils.py        |    4 +-
 .../mcp_service/system/tool/get_instance_info.py   |   32 +-
 superset/mcp_service/system/tool/get_schema.py     |   11 +-
 superset/mcp_service/system/tool/health_check.py   |   15 +-
 superset/mcp_service/utils/schema_utils.py         |  279 ++-
 ...1b2c3d4e5f6_add_granular_export_permissions.py} |   43 +-
 superset/models/helpers.py                         |   88 +-
 superset/models/slice.py                           |    9 +-
 superset/security/manager.py                       |   70 +-
 superset/sql/dialects/firebolt.py                  |    2 +
 superset/sql/parse.py                              |   14 +-
 superset/templates/superset/spa.html               |   32 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/de/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/es/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |    4 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |    2 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |    2 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |    2 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |    2 +-
 superset/utils/rls.py                              |   20 +-
 superset/views/base.py                             |   21 +-
 superset/views/core.py                             |   51 +-
 .../db_engine_specs/datastore_tests.py             |  521 ++++
 tests/integration_tests/reports/api_tests.py       |  368 +++
 tests/integration_tests/security_tests.py          |    2 +
 tests/integration_tests/sqla_models_tests.py       |    5 +-
 tests/unit_tests/db_engine_specs/test_datastore.py |  985 ++++++++
 tests/unit_tests/jinja_context_test.py             |   21 +
 .../mcp_service/chart/test_chart_schemas.py        |  226 +-
 .../mcp_service/chart/test_chart_utils.py          |  321 ++-
 .../mcp_service/chart/test_new_chart_types.py      |  125 +-
 .../mcp_service/chart/tool/test_generate_chart.py  |   96 +-
 .../mcp_service/chart/tool/test_get_chart_data.py  |  187 ++
 .../mcp_service/chart/tool/test_list_charts.py     |   12 +-
 .../validation/test_column_name_normalization.py   |   10 +-
 tests/unit_tests/mcp_service/conftest.py           |   19 +-
 .../dashboard/test_dashboard_schemas.py            |  119 +
 .../dashboard/tool/test_dashboard_generation.py    |  399 ++-
 .../dashboard/tool/test_dashboard_tools.py         |   19 +-
 .../mcp_service/dataset/tool/test_dataset_tools.py |   25 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |  352 +++
 .../sql_lab/tool/test_save_sql_query.py            |  467 ++++
 .../system/test_serialize_user_object.py           |  167 ++
 .../system/tool/test_get_current_user.py           |    3 +-
 .../mcp_service/system/tool/test_get_schema.py     |   47 +-
 .../mcp_service/system/tool/test_mcp_core.py       |    5 +-
 tests/unit_tests/mcp_service/test_auth_rbac.py     |  225 ++
 .../mcp_service/test_mcp_tool_registration.py      |   70 +-
 .../mcp_service/test_tool_search_transform.py      |  173 ++
 .../mcp_service/utils/test_schema_utils.py         |  311 ++-
 tests/unit_tests/models/helpers_test.py            |  113 +
 tests/unit_tests/models/slice_test.py              |   38 +
 .../models/test_double_rls_virtual_dataset.py      |  286 +++
 .../unit_tests/models/test_no_filter_time_range.py |  307 +++
 .../models/test_virtual_dataset_format.py          |  382 +++
 tests/unit_tests/security/guest_rls_test.py        |  298 +++
 tests/unit_tests/security/manager_test.py          |  114 +
 .../security/test_granular_export_permissions.py   |  110 +
 tests/unit_tests/sql/parse_tests.py                |    2 +-
 tests/unit_tests/sql/test_firebolt_dialect.py      |   62 +
 tests/unit_tests/sql_lab_test.py                   |    3 +
 tests/unit_tests/views/test_bootstrap_auth.py      |  135 +
 338 files changed, 23424 insertions(+), 5715 deletions(-)
 rename docs/{developer_docs/extensions/mcp-server.md => admin_docs/configuration/mcp-server.mdx} (96%)
 create mode 100644 docs/docs/using-superset/using-ai-with-superset.mdx
 create mode 100644 docs/src/theme/ApiExplorer/MethodEndpoint/index.tsx
 create mode 100644 docs/static/img/databases/datastore.png
 rename superset-extensions-cli/src/superset_extensions_cli/templates/{.gitignore.j2 => gitignore.j2} (100%)
 create mode 100644 superset-extensions-cli/tests/test_cli_update.py
 create mode 100644 superset-frontend/packages/superset-core/src/translation/Translator.test.ts
 create mode 100644 superset-frontend/packages/superset-core/src/translation/TranslatorSingleton.test.ts
 create mode 100644 superset-frontend/playwright/helpers/api/theme.ts
 create mode 100644 superset-frontend/playwright/tests/experimental/dashboard/theme.spec.ts
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/MapBox.test.tsx
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/transformProps.test.ts
 create mode 100644 superset-frontend/src/components/CrudThemeProvider.test.tsx
 create mode 100644 superset-frontend/src/dashboard/containers/DashboardPage.test.tsx
 create mode 100644 superset-frontend/src/dashboard/reducers/dashboardInfo.test.ts
 create mode 100644 superset-frontend/src/explore/components/controls/SwitchControl.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/VerticalRadioControl.tsx
 copy superset-frontend/src/{features/datasets/AddDataset/RightPanel/RightPanel.test.tsx => filters/components/Select/controlPanel.test.ts} (52%)
 create mode 100644 superset-frontend/src/hooks/usePermissions.test.tsx
 create mode 100644 superset/db_engine_specs/datastore.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/chart}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => superset/mcp_service/dashboard}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => superset/mcp_service/dataset}/__init__.py (100%)
 create mode 100644 superset/mcp_service/sql_lab/tool/save_sql_query.py
 copy superset/migrations/versions/{2024-02-07_17-13_87d38ad83218_migrate_can_view_and_drill_permission.py => 2026-03-02_12-00_a1b2c3d4e5f6_add_granular_export_permissions.py} (65%)
 create mode 100644 tests/integration_tests/db_engine_specs/datastore_tests.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_datastore.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_dashboard_schemas.py
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/tool/test_save_sql_query.py
 create mode 100644 tests/unit_tests/mcp_service/system/test_serialize_user_object.py
 create mode 100644 tests/unit_tests/mcp_service/test_auth_rbac.py
 create mode 100644 tests/unit_tests/mcp_service/test_tool_search_transform.py
 create mode 100644 tests/unit_tests/models/test_double_rls_virtual_dataset.py
 create mode 100644 tests/unit_tests/models/test_no_filter_time_range.py
 create mode 100644 tests/unit_tests/models/test_virtual_dataset_format.py
 create mode 100644 tests/unit_tests/security/guest_rls_test.py
 create mode 100644 tests/unit_tests/security/test_granular_export_permissions.py
 create mode 100644 tests/unit_tests/sql/test_firebolt_dialect.py
 create mode 100644 tests/unit_tests/views/test_bootstrap_auth.py