You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2026/05/18 19:57:19 UTC
(superset) branch mcp-rbac-tool-visibility updated (a4a7f876a91 -> 71067e09ad8)
This is an automated email from the ASF dual-hosted git repository.
aminghadersohi pushed a change to branch mcp-rbac-tool-visibility
in repository https://gitbox.apache.org/repos/asf/superset.git
discard a4a7f876a91 fix(mcp): address code review findings for RBAC tool visibility
discard 9f354519a34 fix(mcp): hide write tools from users without write permissions
add 673634f7af7 fix(mcp): point get_dataset_info url to explore view instead of legacy tablemodelview edit (#39838)
add af8d15fdfcf chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#39852)
add 812f4ae0804 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts (#39850)
add 2be971ce770 chore(deps): bump docusaurus-plugin-openapi-docs from 5.0.1 to 5.0.2 in /docs (#39849)
add 319b8a1124d chore(deps-dev): bump globals from 17.5.0 to 17.6.0 in /docs (#39847)
add ebb02d0ecf0 chore(deps): bump @swc/core from 1.15.32 to 1.15.33 in /docs (#39845)
add 2f605724e72 chore(deps-dev): bump globals from 17.5.0 to 17.6.0 in /superset-websocket (#39844)
add c2725e86f37 fix(markdown): Allow "target" attribute (#39868)
add e76318633e3 fix(helm): allow chart to work out-of-the-box with legacy Bitnami images (#39839)
add 5325b87e73e fix(clickhouse): prevent expensive table scan (#39867)
add 76955017eb0 chore: bump shillelagh to 1.4.4 (#39870)
add e80207218b8 chore(deps-dev): bump eslint from 10.2.1 to 10.3.0 in /superset-websocket (#39843)
add 2edae162f07 chore(deps): bump baseline-browser-mapping from 2.10.24 to 2.10.27 in /docs (#39848)
add d6188374b4f chore(deps): bump docusaurus-theme-openapi-docs from 5.0.1 to 5.0.2 in /docs (#39846)
add 586de12a05e fix(embedded): prevent duplicate React root on rehandshake (#39860)
add 8173cfe9e3b fix(CollectionControl): assign stable ids to keyless items (#39862)
add 5b5f23d1272 test(plugin-chart-echarts): regression guards for temporal x-axis labels on timeseries charts (#39208)
add 9e91ae8cfff fix(colors): reassign colliding series when dashboard locks shared dimension color (#39297)
add cb53745d43c feat: semantic layer extension (#37815)
add 9459bc7bf4b fix(mcp): warn on invalid chart preview form data key (#39891)
add 4a21a5365f8 fix(mcp): validate column refs in generate_explore_link, update_chart_preview, and update_chart (#39797)
add 4b17ac26296 fix(explore): add matrixify_enable guard to prevent stale validators on pre-revamp charts (#38765)
add 3745e37182b fix(OAuth2): Support OAuth2 exception with legacy endpoint (#39897)
add d0ef19953ac chore(deps): bump memoize-one from 5.2.1 to 6.0.0 in /superset-frontend/plugins/plugin-chart-ag-grid-table (#37910)
add c06aee85136 chore(deps-dev): bump jsdom from 29.1.0 to 29.1.1 in /superset-frontend (#39815)
add 14d28c34fdc chore(deps-dev): update cx-oracle requirement from <8.1,>8.0.0 to >8.0.0,<8.4 (#39753)
add d578fa1949d chore(deps): bump @deck.gl/mapbox from 9.3.1 to 9.3.2 in /superset-frontend (#39814)
add b305c8681c9 chore(deps-dev): update impyla requirement from <0.17,>0.16.2 to >0.16.2,<0.23 (#39833)
add 5e2c6d8c9e4 chore(deps): bump nanoid from 5.1.9 to 5.1.11 in /superset-frontend (#39820)
add f018b678950 chore(deps-dev): update sqlalchemy-vertica-python requirement from <0.6,>=0.5.9 to >=0.5.9,<0.7 (#39831)
add d7beffcec12 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.9.3 to 0.10.0 in /superset-frontend (#39853)
add 7290d3c452a chore(deps-dev): update pyathena requirement from <3,>=2 to >=2,<4 (#39830)
add d7663a9a1cc chore(deps-dev): update denodo-sqlalchemy requirement from ~=1.0.6 to >=1.0.6,<2.1.0 (#39832)
add adfbbf1433c fix(sql): quote identifiers in transpile_to_dialect to fix case-sensitive column filters (#39521)
add 9aaa12c7d44 fix(reports): preserve urlParams in multi-tab report fan-out (#39884)
add e667ceb6cfa feat(themes): expose active theme mode via data-theme-mode attribute (#39063)
add 4aa4415d8fd fix(i18n): update Russian translations (#39589)
add 5b5dd010285 fix(sqla): parenthesize calculated column expressions in WHERE clause (#39793)
add b5186d1c65c fix(reports): keep body sized so standalone screenshots don't time out (#39944)
add d3c44e311eb chore(deps): bump aws-actions/amazon-ecr-login from 2.1.4 to 2.1.5 (#39931)
add 7593d2a164d chore(deps): bump caniuse-lite from 1.0.30001791 to 1.0.30001792 in /docs (#39933)
add 9ac4711ac8c fix(mcp): prevent DetachedInstanceError in get_chart_preview (#39921)
add 9b520312a1a fix(mcp): use tiktoken for response-size-guard token estimation (#39912)
add 8088c5d1dea fix(dashboard): match auto-refresh paused-dot outline to icon color (#39909)
add 8c80caefa37 fix(explore): preserve preview chart name on save (#39908)
add aa710672edb fix(ui): remove makeUrl() double-prefix bugs under subdirectory deployment (#39503)
add ad5e3170dd8 fix: OpenSearch dialect identifier delimiters (#39953)
add d3784879c29 fix(embedded-sdk): grant fullscreen and clipboard-write by default (#39943)
add 69fbbfd7cef fix(table): consolidate visual column options under Visual formatting section (#39856)
add 5bde86785f6 fix(docs): read capability flags from engine specs in database docs generator (#39449)
add 2f82236b297 feat(docs): expand docs:screenshots generator with manifest and tutorial captures (#39444)
add b8995561300 docs: Superset 6.1 documentation catch-up (security, alerts/reports, theming, config) (#39440)
add 4311a15eb2b feat(sqlglot): Vertica dialect (#39969)
add 0250092378c chore(frontend): TypeScript 6.0 readiness — declaration emit fixes (Phase A) (#39530)
add dc22b82d88a chore(deps-dev): bump @typescript-eslint/parser from 8.59.1 to 8.59.2 in /superset-websocket (#39874)
add dce3317bc9f chore(deps-dev): bump typescript-eslint from 8.59.1 to 8.59.2 in /docs (#39876)
add ff7dc538536 fix(mcp): get_chart_sql drops x_axis on echarts_timeseries_* and only renders one query for mixed_timeseries (#39865)
add cfb0b6e8119 fix(mcp): clarify request wrapper in list_datasets, list_charts, list_dashboards (#39920)
add e934f2af927 fix(tests): prevent jest hangs caused by MessageChannel-mocked React scheduler (#39957)
add 547660dcc42 fix(mcp): ASCII chart crashes with NaN when dataset contains null values (#39916)
add d023fe17035 fix(trino/presto): use equality for boolean filters to support computed columns (#39500)
add a60860c9692 fix(table): fall back to datasource columns for conditional formatting when query results are empty (#39345)
add 68fa8e2733c fix(viz): flatten MultiIndex columns in Time-Series Table for multiple Group By (#37869)
add f67dd4a8f3a chore(deps): bump geostyler from 18.5.0 to 18.5.1 in /superset-frontend (#39702)
add f81821086a4 chore(releasing): fix email parsing in verify_release.py (#39602)
add d83b0c5ce33 feat: support creating datasets for schema-less databases (#39433)
add 372b50e19d7 fix(dashboard): row limit warning missing for non-table charts (#39911)
add 245fffca799 fix(dashboard): Clear All filters now stages changes until Apply (#39778)
add 5a453fe95d5 chore(deps-dev): bump wait-on from 9.0.5 to 9.0.6 in /superset-frontend (#40014)
add 2adb6f64eb6 chore(deps): bump baseline-browser-mapping from 2.10.27 to 2.10.29 in /docs (#40013)
add 2cf4a2c31f3 chore(deps-dev): bump databricks-sql-connector from 4.1.2 to 4.2.6 (#39989)
add 6271272e601 chore(deps): bump nh3 from 0.2.21 to 0.3.5 (#39988)
add 1c795418d28 chore(deps-dev): bump pyinstrument from 4.4.0 to 5.1.2 (#39987)
add 14ba6665948 chore(deps-dev): update ibm-db-sa requirement from <=0.4.0,>0.3.8 to >0.3.8,<=0.4.4 (#39986)
add fcf3f6c0d52 chore(deps-dev): update pinotdb requirement from <6.0.0,>=5.0.0 to >=5.0.0,<10.0.0 (#39985)
add 3e1cfc6d697 chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.27.1 to 7.29.4 in /docs (#39981)
add ad7075d2aae chore(deps): bump fast-uri from 3.0.6 to 3.1.2 in /docs (#39979)
add 494c29f5bf0 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.1 to 8.59.2 in /superset-frontend (#39878)
add 1d1a0e6fecc chore(deps-dev): update sqlalchemy-firebird requirement from <0.8,>=0.7.0 to >=0.7.0,<2.2 (#39755)
add eed7098093e perf(sql-lab): use useDeferredValue for schema browser search (#39928)
add 3e3c5c36c34 perf(explore): use useDeferredValue for datasource panel search (#39970)
add 2cc20d3284b perf(explore): use useDeferredValue for explore menu search and JS editor parse (#39975)
add 516bb19e105 feat(frontend): enable React StrictMode at root (#39893)
add 96ad20318d5 chore(superset-core): forward-compat fixes for TypeScript 6.0 - Phase C (#39537)
add db0c5b32da9 chore(lint): convert SuperChart and SuperChartCore to function components (#39457)
add a7aa854968a fix(big-number): guard against null colorPicker in transformProps (#39110)
add 26ef4b7ed37 fix(sqla): pass catalog and schema to get_sqla_engine in values_for_column (#38681)
add 2fe6269c22b chore(lint): convert ChartDataProvider and StatefulChart to function components (#39456)
add 006a1800bec chore(lint): convert react-pivottable components to function components (#39453)
add 6ee4d694bcb fix(sqllab): include template_params when overwriting a dataset (#39501)
add d90d3a2dea4 fix(importexport): honor overwrite flag on /api/v1/assets/import (#39502)
add 785a08c7d5c chore(frontend): export typed useAppDispatch / useAppSelector hooks (#40027)
add e77f6ece92e fix(ci): serialize Docs Deployment runs to avoid push races (#40030)
add cfb704dbeb7 test(sqllab): stabilize SaveDatasetModal overwrite-flow test helper (#40036)
add 187bb416e76 fix(plugin-chart-ag-grid-table): use display text for filter and sort on HTML cells (#39885)
add e66fbc91c2d chore(gha): pass commenter login through env in claude.yml (#40042)
add 5ab8583cd0d chore(gha): pin github/codeql-action to a SHA (#40043)
add 24d76b42495 fix(sunburst): remove label text outline in dark theme (#39774)
add fed29b3017d fix(deploy): prevent double-prefix of logo URL in subdirectory deployments (#39472)
add a6ad0bf1692 fix(re-encrypt-secrets): use db.Model.metadata to discover encrypted … (#39390)
add fa168fcc8a5 fix(Label): use correct color for label component (#38707)
add 85935b0b882 fix(mcp): handle SSL connection drop during pre-call session teardown (#39917)
add 460992d89b3 fix(mcp): improve not-found errors to suggest corresponding list_* tools (#39919)
add d2ae5fb275c fix(ux): remove CSS-forced uppercase from button labels (#40049)
add c394405fc18 fix(explore): restore spacing between tabs and content in control popovers (#40023)
add b0c5b061c52 fix(sqllab): display horizontal scrollbar in data preview modal (#39799)
add 4a79896bb24 chore(build): replace replaceable `jest-mock-console` with native Jest spies (#38643)
add 658907a0a61 fix(gha): use sound condition gating for latest-tag step (#40035)
add c9fb1bc10fc chore(deps-dev): bump @typescript-eslint/parser from 8.59.2 to 8.59.3 in /superset-frontend (#40057)
add 3363b481807 fix(spark): register Spark SQLAlchemy dialect so spark:// URIs resolve to SparkEngineSpec (#38299)
add 39ad6b200fb docs(update): fix typos in UPDATING.md (#40068)
add 2392c8e624a fix(Select): fix Russian translations for Select (#35751)
add 74451057355 fix(explore): explain disabled chart overwrite option (#39796)
add f2eee4ef464 fix(frontend): prevent LanguagePicker crash when locale is missing from LANGUAGES config (#39585)
add e94465208f5 fix(bar-chart): cap bar width so a single data point doesn't stretch across the chart (#39588)
add a77fec68d40 fix(drill-detail): make page-size selector functionally adjustable (#37975)
add 43a89f8710e chore(deps-dev): bump terser-webpack-plugin from 5.5.0 to 5.6.0 in /superset-frontend (#40061)
add 9160da0d27a chore(deps-dev): bump yeoman-test from 11.3.1 to 11.5.2 in /superset-frontend (#40058)
add fe22e060118 chore(deps): bump mermaid from 11.10.0 to 11.15.0 in /docs (#40038)
add 4c14e16e583 chore(deps): bump @babel/plugin-transform-modules-systemjs from 7.20.11 to 7.29.4 in /superset-frontend/cypress-base (#39982)
add 86ba63b0723 fix(dashboard): prevent duplicate subdirectory prefix when toggling fullscreen (#39534)
add d8b2c5872b7 chore(deps-dev): bump @swc/core from 1.15.32 to 1.15.33 in /superset-frontend (#39935)
add 4d0cc1d7a60 chore(deps): bump zod from 4.4.1 to 4.4.3 in /superset-frontend (#39904)
add fa06989ed71 fix(mcp): return requested update chart previews (#40077)
add af4dc3a9aa6 fix(re-encrypt): handle non-id PKs and make command idempotent (#40079)
add 1d220f7172c chore(deps-dev): update fs-extra requirement from ^11.3.4 to ^11.3.5 in /superset-frontend/packages/generator-superset (#39930)
add 0d9ecb76645 chore(deps-dev): update @types/node requirement from ^25.6.0 to ^25.7.0 in /superset-frontend/packages/superset-ui-core (#40059)
add e2a8a88d366 docs: Update documentation link for ENABLE_SUPERSET_META_DB (#40076)
add c59ab8bffdf feat(mcp): add data boundary instruction to harden against prompt injection (#40080)
add 940779ad5f1 feat(event-log): add event logging for embedded Superset (#40083)
add 6cebba49ca0 fix(AlertReportModal): TypeError when pasting text into the Alerts content form search field (#39298)
add 726d83d758d fix(mcp): remove stale created_by_fk filter references from MCP privacy layer (#39955)
add 6a1305fe530 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts (#40091)
add 2c7e418d7bc chore(deps): bump @ant-design/icons from 6.2.2 to 6.2.3 in /docs (#40086)
add 9e749da93c6 chore(deps): bump ws from 8.20.0 to 8.20.1 in /superset-websocket (#40085)
add aebc6fbf344 chore(deps-dev): bump @types/node from 25.6.0 to 25.7.0 in /superset-websocket (#40052)
add b4cb780e748 chore(deps): update ace-builds requirement from ^1.43.6 to ^1.44.0 in /superset-frontend/packages/superset-ui-core (#40017)
add 5d40d8aeac7 chore(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0 (#40016)
add 577085eeceb chore(deps-dev): bump fast-uri from 3.0.1 to 3.1.2 in /superset-embedded-sdk (#39978)
add 8074ae2e38c chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /superset-frontend/cypress-base (#39974)
add 803fed28b89 chore(deps): update react requirement from ^19.2.5 to ^19.2.6 in /superset-frontend/plugins/legacy-plugin-chart-chord (#39929)
add cdddb99e9ac chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#39880)
add 6216e574909 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39698)
add a50de459aea fix(dashboard): restore spacing for charts inside Tabs layout (#38729)
add 85c44110414 chore(deps-dev): bump @babel/plugin-transform-modules-systemjs from 7.25.0 to 7.29.4 in /superset-embedded-sdk (#39983)
add 1a7a14c3573 fix(explore): remove leftover debug console.log in ZoomConfigControl (#39991)
add 817814d4f65 chore: Bump core packages to 0.1.0 (#40029)
add 2a1dcb79e37 fix(mcp): expose table chart type labels in chart responses (#40060)
add 958d4aa3dec fix(export): fix double app-root prefix in chart/drill-detail export URLs (#39710)
add d7fa9301cca fix(dashboard): restore top-level tab drop target for dashboards with content (#39423)
add 992f561ab9e chore(deps): bump mapbox-gl from 3.23.0 to 3.23.1 in /superset-frontend (#39879)
add c233bf61713 chore(deps-dev): bump baseline-browser-mapping from 2.10.24 to 2.10.29 in /superset-frontend (#39903)
add d6c458abd41 chore(deps-dev): bump oxlint from 1.62.0 to 1.63.0 in /superset-frontend (#39937)
add d690aa7eb4c chore(deps): bump immer from 11.1.4 to 11.1.7 in /superset-frontend (#39941)
add 17a5f693393 chore(deps): bump chrono-node from 2.9.0 to 2.9.1 in /superset-frontend (#39939)
add 5bad4f55fb5 chore(deps-dev): bump @playwright/test from 1.59.1 to 1.60.0 in /superset-frontend (#40088)
add 21e62d594eb chore(deps-dev): bump wait-on from 9.0.6 to 9.0.10 in /superset-frontend (#40087)
add 676979643fe chore(deps-dev): bump @babel/preset-env from 7.29.3 to 7.29.5 in /superset-frontend (#39934)
add 48530cb8884 chore(deps-dev): bump @babel/register from 7.28.6 to 7.29.3 in /superset-frontend (#39818)
add d1e9a5df06c chore(docs): clean up version-cutting tooling and finish developer_portal rename (#39837)
add 01224007daf fix(mixed-timeseries): preserve all-NaN metric columns after pivot when Jinja evaluates to NULL (#40005)
add a62bf2b0bb7 fix: chart rendering race condition and homepage connection reset (#40065)
add e56883baef6 fix(ci): handle schedule event in change_detector and actually trigger all-changed (#40105)
add 64dae07675e chore(deps): bump markdown-to-jsx from 9.7.16 to 9.8.0 in /superset-frontend (#40111)
add 8b0e63b58c5 fix(rls): prevent double-apply when converting physical dataset to virtual (#39725)
add 966e97989bb chore(mcp): Standardize error response shapes across chart tools (#39905)
add 823eb905d3f fix(mcp): JSON-serialize order_by_cols and support sort direction (#39952)
add 62dc2370141 chore(ci): add explicit permissions to additional workflows (#40067)
add 144dae7c43a fix(dashboard): use datasetUuid instead of datasetId in display controls export/import (SC-104655) (#40008)
add 8fa5a75c704 fix(mcp): apply cached adhoc filters to chart retrieval (#40099)
add 672e9a14771 fix(docs): tighten onBrokenLinks to throw and fix surfaced broken links (#40102)
add 4e09889607f test(datasets): regression coverage for #16141 (export with same table name, different schemas) (#40123)
add d8539308402 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40107)
add 5fa9657528e chore(deps): update @ant-design/icons requirement from ^6.2.2 to ^6.2.3 in /superset-frontend/packages/superset-ui-core (#40092)
add f02e5b7e839 chore(deps-dev): bump babel-jest from 30.3.0 to 30.4.1 in /superset-frontend (#40090)
add 2b71d964cc3 fix(sqllab): missing estimate action button (#40101)
add 042db32ba4b fix(mcp): hide write tools from users without write permissions
add 3993a04eb09 fix(mcp): address code review findings for RBAC tool visibility
add 6d691b5070a fix(mcp): address remaining code review findings for RBAC tool visibility
add 681ead80d9a fix(mcp): address remaining Copilot review comments on RBAC tool visibility
add 4765078ff00 fix(mcp): fix CI pre-commit failures for RBAC tool visibility
new 71067e09ad8 fix(mcp): fix two failing unit tests for RBAC tool visibility
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 (a4a7f876a91)
\
N -- N -- N refs/heads/mcp-rbac-tool-visibility (71067e09ad8)
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.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/check-python-deps.yml | 4 +
.github/workflows/claude.yml | 10 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/dependency-review.yml | 2 +-
.github/workflows/docker.yml | 4 +
.github/workflows/embedded-sdk-release.yml | 3 +
.github/workflows/embedded-sdk-test.yml | 3 +
.github/workflows/ephemeral-env-pr-close.yml | 2 +-
.github/workflows/ephemeral-env.yml | 4 +-
.github/workflows/generate-FOSSA-report.yml | 3 +
.github/workflows/github-action-validator.yml | 3 +
.github/workflows/latest-release-tag.yml | 2 +-
.github/workflows/license-check.yml | 3 +
.github/workflows/superset-app-cli.yml | 4 +
.github/workflows/superset-docs-deploy.yml | 10 +
.github/workflows/superset-docs-verify.yml | 7 +
.github/workflows/superset-extensions-cli.yml | 4 +
.github/workflows/superset-helm-lint.yml | 3 +
.github/workflows/superset-python-unittest.yml | 1 +
.github/workflows/superset-translations.yml | 4 +
.github/workflows/superset-websocket.yml | 3 +
.rat-excludes | 3 +
RELEASING/verify_release.py | 62 +-
UPDATING.md | 15 +-
docker/pythonpath_dev/superset_config.py | 8 +-
docs/DOCS_CLAUDE.md | 33 +-
docs/README.md | 56 +-
docs/admin_docs/configuration/alerts-reports.mdx | 81 +
.../configuration/configuring-superset.mdx | 32 +
docs/admin_docs/configuration/theming.mdx | 17 +-
docs/admin_docs/security/security.mdx | 51 +
docs/components/versions.json | 1 -
.../components/design-system/index.mdx | 14 +-
docs/developer_docs/components/index.mdx | 2 +-
docs/developer_docs/components/ui/index.mdx | 92 +-
docs/developer_docs/contributing/code-review.md | 8 +-
.../contributing/development-setup.md | 2 +-
docs/developer_docs/contributing/guidelines.md | 2 +-
docs/developer_docs/contributing/howtos.md | 2 +-
.../developer_docs/contributing/issue-reporting.md | 4 +-
docs/developer_docs/contributing/overview.md | 10 +-
.../developer_docs/contributing/release-process.md | 2 +-
docs/developer_docs/contributing/submitting-pr.md | 6 +-
docs/developer_docs/extensions/architecture.md | 8 +-
.../developer_docs/extensions/components/index.mdx | 4 +-
.../extensions/contribution-types.md | 57 +-
docs/developer_docs/extensions/dependencies.md | 6 +-
docs/developer_docs/extensions/development.md | 2 +-
.../extensions/extension-points/editors.md | 6 +-
.../extensions/extension-points/sqllab.md | 10 +-
docs/developer_docs/extensions/mcp.md | 4 +-
docs/developer_docs/extensions/overview.md | 20 +-
docs/developer_docs/extensions/quick-start.md | 16 +-
docs/developer_docs/extensions/security.md | 2 +-
.../guidelines/backend-style-guidelines.md | 2 +-
.../guidelines/frontend-style-guidelines.md | 8 +-
.../frontend/component-style-guidelines.md | 4 +-
docs/developer_docs/testing/overview.md | 8 +-
docs/developer_docs/versions.json | 1 -
docs/developer_portal_versions.json | 1 -
docs/docusaurus.config.ts | 2 +-
docs/package.json | 27 +-
docs/scripts/generate-database-docs.mjs | 317 +-
docs/scripts/generate-superset-components.mjs | 12 +-
docs/scripts/lint-docs-links.mjs | 230 +
docs/scripts/manage-versions.mjs | 259 +-
docs/src/data/databases.json | 10541 ++++++++++++-------
docs/src/theme/DocVersionBadge/index.js | 28 +-
docs/src/theme/DocVersionBanner/index.js | 121 -
docs/src/theme/DocVersionBanner/styles.module.css | 49 -
docs/static/feature-flags.json | 8 +-
docs/static/img/screenshots/dashboard.jpg | Bin 136723 -> 134621 bytes
docs/static/img/screenshots/explore.jpg | Bin 106386 -> 118936 bytes
docs/static/img/screenshots/gallery.jpg | Bin 121316 -> 121175 bytes
docs/static/img/screenshots/sql_lab.jpg | Bin 101650 -> 98906 bytes
docs/static/img/tutorial/create_pivot.png | Bin 80625 -> 245987 bytes
.../img/tutorial/publish_button_dashboard.png | Bin 85940 -> 39607 bytes
.../img/tutorial/tutorial_08_sources_tables.png | Bin 52421 -> 134075 bytes
docs/static/img/tutorial/tutorial_chart_resize.png | Bin 86804 -> 12623 bytes
docs/static/img/tutorial/tutorial_edit_button.png | Bin 14099 -> 2176 bytes
.../img/tutorial/tutorial_first_dashboard.png | Bin 99255 -> 37504 bytes
docs/static/img/tutorial/tutorial_save_slice.png | Bin 144443 -> 21738 bytes
docs/tutorials_versions.json | 3 -
.../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 | 14 +-
.../version-6.0.0/installation/architecture.mdx | 12 +-
.../version-6.0.0/installation/docker-compose.mdx | 2 +-
.../installation/installation-methods.mdx | 10 +-
.../version-6.0.0/installation/kubernetes.mdx | 4 +-
docs/versioned_docs/version-6.0.0/intro.md | 2 +-
docs/versioned_docs/version-6.0.0/quickstart.mdx | 12 +-
.../creating-your-first-dashboard.mdx | 4 +-
docs/yarn.lock | 755 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 2 +-
helm/superset/values.yaml | 7 +
pyproject.toml | 40 +-
requirements/base.txt | 7 +-
requirements/development.txt | 9 +-
scripts/change_detector.py | 16 +-
superset-core/pyproject.toml | 4 +-
.../src/superset_core/semantic_layers/config.py | 73 +
.../src/superset_core/semantic_layers/daos.py | 169 +
.../superset_core/semantic_layers/decorators.py | 102 +
.../src/superset_core/semantic_layers/layer.py | 129 +
.../src/superset_core/semantic_layers/models.py | 85 +
.../src/superset_core/semantic_layers/types.py | 209 +
.../src/superset_core/semantic_layers/view.py | 113 +
superset-embedded-sdk/package-lock.json | 568 +-
superset-embedded-sdk/src/index.ts | 13 +-
superset-extensions-cli/pyproject.toml | 2 +-
superset-frontend/.eslintrc.js | 4 +
superset-frontend/cypress-base/package-lock.json | 427 +-
superset-frontend/package-lock.json | 1334 ++-
superset-frontend/package.json | 45 +-
.../packages/generator-superset/package.json | 4 +-
.../packages/superset-core/package.json | 4 +-
.../packages/superset-core/src/theme/Theme.tsx | 14 +-
.../packages/superset-core/types/external.d.ts | 7 +
.../src/shared-controls/matrixifyControls.test.ts | 5 +-
.../src/shared-controls/matrixifyControls.tsx | 9 +-
.../shared-controls/matrixifyControls.test.tsx | 238 +
.../packages/superset-ui-core/package.json | 7 +-
.../src/chart/components/ChartDataProvider.tsx | 204 +-
.../src/chart/components/SuperChart.tsx | 439 +-
.../src/chart/components/SuperChartCore.tsx | 376 +-
.../src/chart/components/createLoadableRenderer.ts | 130 +-
.../src/color/CategoricalColorScale.ts | 47 +-
.../src/components/Label/index.tsx | 2 +-
.../components/Label/reusable/DatasetTypeLabel.tsx | 18 +-
.../src/components/Select/Select.test.tsx | 2 +-
.../src/components/Select/Select.tsx | 6 +-
.../superset-ui-core/src/query/DatasourceKey.ts | 12 +-
.../superset-ui-core/src/query/types/Datasource.ts | 8 +
.../superset-ui-core/src/utils/featureFlags.ts | 1 +
.../test/chart/components/SuperChart.test.tsx | 30 +-
.../test/chart/components/SuperChartCore.test.tsx | 38 +-
.../components/createLoadableRenderer.test.tsx | 7 -
.../test/color/CategoricalColorScale.test.ts | 179 +
.../test/connection/SupersetClient.test.ts | 11 +-
.../superset-ui-core/test/models/Registry.test.ts | 25 +-
.../test/query/types/Datasource.test.ts | 3 +-
.../test/time-format/TimeFormatter.test.ts | 10 +-
.../generators/docs/docs-screenshots.spec.ts | 509 +-
.../generators/docs/screenshot-manifest.yaml | 1393 +++
.../playwright/generators/playwright.config.ts | 1 +
.../tests/dashboard/clear-all-filters.spec.ts | 220 +
.../plugins/legacy-plugin-chart-chord/package.json | 2 +-
.../plugins/legacy-plugin-chart-rose/src/Rose.ts | 11 +-
.../plugin-chart-ag-grid-table/package.json | 2 +-
.../src/controlPanel.tsx | 18 +-
.../src/utils/htmlTextFilterValueGetter.test.ts | 83 +
.../src/utils/htmlTextFilterValueGetter.ts | 74 +
.../src/utils/useColDefs.ts | 21 +
.../test/memoization.test.ts | 99 +
.../plugins/plugin-chart-echarts/package.json | 2 +-
.../BigNumberWithTrendline/transformProps.test.ts | 27 +
.../BigNumberWithTrendline/transformProps.ts | 10 +-
.../src/Sunburst/transformProps.ts | 2 -
.../src/Timeseries/transformers.ts | 3 +
.../test/MixedTimeseries/transformProps.test.ts | 132 +
.../test/Sunburst/transformProps.test.ts | 53 +
.../test/Timeseries/transformProps.test.ts | 113 +
.../test/utils/formatters.test.ts | 52 +
.../plugin-chart-echarts/test/utils/series.test.ts | 20 +-
.../src/react-pivottable/PivotTable.tsx | 10 +-
.../src/react-pivottable/TableRenderers.tsx | 1969 ++--
.../test/react-pivottable/tableRenders.test.tsx | 1380 +--
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../plugin-chart-table/src/controlPanel.tsx | 102 +-
.../plugin-chart-table/test/controlPanel.test.tsx | 145 +-
.../plugins/preset-chart-deckgl/package.json | 2 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 8 +-
.../components/EstimateQueryCostButton/index.tsx | 2 +-
.../QueryAutoRefresh/QueryAutoRefresh.test.tsx | 2 +-
.../src/SqlLab/components/QueryTable/styles.ts | 1 -
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 129 +-
.../SqlLab/components/SaveDatasetModal/index.tsx | 93 +-
.../SqlLab/components/TableExploreTree/index.tsx | 20 +-
superset-frontend/src/components/Chart/Chart.tsx | 4 +-
.../Chart/DrillDetail/DrillDetailPane.test.tsx | 78 +
.../Chart/DrillDetail/DrillDetailPane.tsx | 29 +-
.../src/components/Chart/chartAction.ts | 21 +-
.../src/components/Chart/chartActions.test.ts | 72 +
.../src/components/DatabaseSelector/index.tsx | 34 +-
.../src/components/DatabaseSelector/types.ts | 2 +
.../ChangeDatasourceModal.test.tsx | 34 +
.../Datasource/ChangeDatasourceModal/index.tsx | 50 +-
.../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 3 +-
.../src/components/ListView/Filters/index.tsx | 6 +
.../src/components/ListView/ListView.tsx | 31 +-
.../TableSelector/TableSelector.test.tsx | 46 +
.../src/components/TableSelector/index.tsx | 9 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../AutoRefreshStatus/StatusIndicatorDot.test.tsx | 12 +-
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 12 +-
.../src/dashboard/components/Dashboard.tsx | 2 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 46 +
.../DashboardBuilder/DashboardBuilder.tsx | 7 +-
.../src/dashboard/components/DashboardGrid.tsx | 2 +-
.../dashboard/components/Header/Header.test.tsx | 93 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 13 +-
.../src/dashboard/components/SliceAdder.tsx | 3 +-
.../components/SliceHeader/SliceHeader.test.tsx | 117 +
.../src/dashboard/components/SliceHeader/index.tsx | 11 +-
.../components/filterscope/FilterScopeSelector.tsx | 2 +-
.../components/gridComponents/Chart/Chart.tsx | 5 +-
.../gridComponents/ChartHolder/ChartHolder.tsx | 2 +-
.../components/gridComponents/Column/Column.tsx | 2 +-
.../gridComponents/Markdown/Markdown.tsx | 10 +-
.../components/gridComponents/Tab/Tab.tsx | 2 +-
.../components/gridComponents/Tabs/Tabs.tsx | 2 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 131 +-
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 16 +-
.../components/nativeFilters/FilterBar/index.tsx | 13 +-
.../FiltersConfigForm/DatasetSelect.tsx | 11 +-
.../__tests__/TreeInitialization.test.tsx | 2 +-
.../FilterScope/__tests__/TreeSelection.test.tsx | 2 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 21 +-
.../FiltersConfigForm/TimeGrainPreFilter.test.tsx | 2 +-
.../transformers/filterTransformer.ts | 11 +-
.../src/dashboard/reducers/dashboardFilters.ts | 2 +-
.../src/dashboard/reducers/dashboardInfo.ts | 8 +-
.../src/dashboard/util/getDashboardUrl.test.ts | 10 +
superset-frontend/src/dataMask/reducer.ts | 6 +-
superset-frontend/src/embedded/index.tsx | 51 +-
.../src/explore/actions/exploreActions.test.ts | 105 +
.../src/explore/actions/exploreActions.ts | 85 +
.../src/explore/actions/hydrateExplore.test.ts | 82 +
.../src/explore/actions/hydrateExplore.ts | 15 +-
.../src/explore/actions/saveModalActions.ts | 7 +-
.../src/explore/components/ChartPills.tsx | 6 +-
.../DataTablesPane/components/SamplesPane.tsx | 6 +-
.../DatasourcePanelDragOption.test.tsx | 4 +-
.../DatasourcePanelDragOption/index.tsx | 40 +-
.../DatasourcePanel/DatasourcePanelItem.test.tsx | 2 +-
.../explore/components/DatasourcePanel/index.tsx | 13 +-
.../explore/components/ExploreContentPopover.tsx | 10 +-
.../components/ExploreViewContainer/index.tsx | 43 +
.../src/explore/components/SaveModal.test.tsx | 56 +-
.../src/explore/components/SaveModal.tsx | 17 +-
.../controls/CollectionControl/index.tsx | 30 +-
.../ColumnConfigConstants.test.tsx | 20 +-
.../controls/ColumnConfigControl/constants.tsx | 2 -
.../controls/DatasourceControl/index.tsx | 53 +-
.../DateFilterControl/tests/CustomFrame.test.tsx | 2 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 43 +-
.../DndAdhocFilterOption.tsx | 6 +-
.../DndColumnMetricSelect.tsx | 20 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 25 +-
.../DndFilterSelect.test.tsx | 2 +-
.../DndMetricSelect.test.tsx | 20 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 37 +-
.../FilterControl/AdhocFilterControl/index.tsx | 2 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 54 +-
.../index.tsx | 7 +-
.../components/controls/JSEditorControl.test.tsx | 4 -
.../components/controls/JSEditorControl.tsx | 9 +-
.../LayerConfigsPopoverContent.tsx | 2 -
.../controls/MapViewControl/MapViewControl.tsx | 1 -
.../AdhocMetricEditPopover.test.tsx | 80 +-
.../MetricControl/AdhocMetricEditPopover/index.tsx | 39 +-
.../MetricControl/AdhocMetricOption.test.tsx | 6 +-
.../controls/MetricControl/MetricsControl.test.tsx | 7 +-
.../controls/MetricControl/MetricsControl.tsx | 2 +-
.../VizTypeControl/VizTypeControl.test.tsx | 2 +-
.../ZoomConfigControl/ZoomConfigControl.tsx | 1 -
.../useExploreAdditionalActionsMenu/index.tsx | 11 +-
superset-frontend/src/explore/controls.tsx | 3 +-
.../src/explore/exploreUtils/exportChart.test.ts | 26 +-
.../src/explore/exploreUtils/index.ts | 15 +-
.../src/explore/reducers/exploreReducer.ts | 20 +
superset-frontend/src/explore/store.test.tsx | 400 +-
superset-frontend/src/explore/store.ts | 58 +-
superset-frontend/src/explore/types.ts | 5 +
.../src/features/alerts/AlertReportModal.test.tsx | 24 +
.../src/features/alerts/AlertReportModal.tsx | 9 +-
.../src/features/databases/DatabaseModal/index.tsx | 5 +-
.../src/features/databases/DatabaseModal/styles.ts | 9 +-
.../DatasetPanel/DatasetPanelWrapper.test.tsx} | 49 +-
.../datasets/AddDataset/DatasetPanel/index.tsx | 17 +-
.../datasets/hooks/useDatasetLists.test.ts | 60 +
.../src/features/datasets/hooks/useDatasetLists.ts | 11 +-
superset-frontend/src/features/home/EmptyState.tsx | 5 +-
.../src/features/home/LanguagePicker.tsx | 14 +-
superset-frontend/src/features/home/Menu.tsx | 13 +-
superset-frontend/src/features/home/RightMenu.tsx | 7 +-
superset-frontend/src/features/home/SubMenu.tsx | 29 +-
.../src/features/reports/ReportModal/styles.tsx | 5 +-
.../semanticLayers/SemanticLayerModal.test.tsx | 130 +
.../features/semanticLayers/SemanticLayerModal.tsx | 408 +
.../semanticLayers/jsonFormsHelpers.test.ts | 150 +
.../features/semanticLayers/jsonFormsHelpers.tsx | 386 +
.../src/features/semanticLayers/label.ts | 65 +
.../semanticViews/AddSemanticViewModal.test.tsx | 264 +
.../semanticViews/AddSemanticViewModal.tsx | 541 +
.../semanticViews/SemanticViewEditModal.test.tsx | 267 +
.../semanticViews/SemanticViewEditModal.tsx | 241 +
.../components/Select/SelectFilterPlugin.test.tsx | 18 +-
.../src/hooks/apiResources/tables.test.ts | 29 +
superset-frontend/src/hooks/apiResources/tables.ts | 19 +-
.../src/middleware/loggerMiddleware.ts | 9 +-
.../src/pages/ChartCreation/index.tsx | 19 +-
superset-frontend/src/pages/ChartList/index.tsx | 5 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 501 +-
.../src/pages/DatasetCreation/index.tsx | 1 +
.../DatasetList/DatasetList.behavior.test.tsx | 39 +-
.../DatasetList/DatasetList.integration.test.tsx | 23 +-
.../DatasetList/DatasetList.listview.test.tsx | 229 +-
.../DatasetList/DatasetList.permissions.test.tsx | 17 +-
.../src/pages/DatasetList/DatasetList.test.tsx | 85 +-
.../pages/DatasetList/DatasetList.testHelpers.tsx | 28 +-
superset-frontend/src/pages/DatasetList/index.tsx | 801 +-
.../src/pages/FileHandler/index.test.tsx | 39 +-
.../pages/SavedQueryList/SavedQueryList.test.tsx | 47 +-
.../src/pages/SavedQueryList/index.tsx | 12 +-
superset-frontend/src/theme/ThemeController.ts | 16 +-
superset-frontend/src/theme/ThemeProvider.tsx | 14 +-
.../src/theme/tests/ThemeController.test.ts | 35 +
.../src/theme/tests/ThemeProvider.test.tsx | 56 +
superset-frontend/src/types/Dataset.ts | 11 +-
.../Spin/index.tsx => src/types/emotion-jest.d.ts} | 2 +-
superset-frontend/src/utils/pathUtils.test.ts | 16 +
superset-frontend/src/utils/pathUtils.ts | 10 +-
superset-frontend/src/views/store.ts | 14 +
superset-websocket/package-lock.json | 332 +-
superset-websocket/package.json | 14 +-
superset/app.py | 16 -
superset/cli/update.py | 22 +-
superset/commands/dashboard/export.py | 32 +
superset/commands/dashboard/importers/v1/utils.py | 27 +
superset/commands/database/tables.py | 4 +-
.../commands/datasource}/__init__.py | 0
superset/commands/datasource/list.py | 245 +
superset/commands/explore/get.py | 6 +-
superset/commands/importers/v1/assets.py | 86 +-
superset/commands/report/execute.py | 59 +-
.../commands/semantic_layer}/__init__.py | 0
superset/commands/semantic_layer/create.py | 104 +
superset/commands/semantic_layer/delete.py | 115 +
superset/commands/semantic_layer/exceptions.py | 76 +
superset/commands/semantic_layer/update.py | 126 +
superset/common/query_object.py | 13 +-
superset/config.py | 5 +-
superset/connectors/sqla/models.py | 28 +-
superset/core/api/core_api_injection.py | 35 +
superset/daos/datasource.py | 160 +-
superset/daos/semantic_layer.py | 220 +
superset/dashboards/permalink/types.py | 6 +-
superset/databases/schemas.py | 3 +
superset/datasets/datetime_format_detector.py | 11 +-
superset/datasource/api.py | 183 +-
superset/datasource/schemas.py | 155 +
superset/db_engine_specs/base.py | 5 +
superset/db_engine_specs/lib.py | 10 +
superset/db_engine_specs/mysql.py | 6 +-
superset/db_engine_specs/presto.py | 4 +
superset/db_engine_specs/spark.py | 6 +-
superset/db_engine_specs/ydb.py | 1 +
superset/explorables/base.py | 168 +-
superset/importexport/api.py | 11 +
superset/initialization/__init__.py | 11 +-
superset/mcp_service/CLAUDE.md | 19 +-
superset/mcp_service/app.py | 35 +-
superset/mcp_service/auth.py | 103 +-
superset/mcp_service/chart/ascii_charts.py | 43 +-
superset/mcp_service/chart/chart_helpers.py | 451 +-
superset/mcp_service/chart/chart_utils.py | 21 +-
superset/mcp_service/chart/compile.py | 362 +
superset/mcp_service/chart/preview_utils.py | 2 +
superset/mcp_service/chart/schemas.py | 59 +-
superset/mcp_service/chart/tool/generate_chart.py | 98 +-
superset/mcp_service/chart/tool/get_chart_data.py | 247 +-
.../mcp_service/chart/tool/get_chart_preview.py | 151 +-
superset/mcp_service/chart/tool/get_chart_sql.py | 165 +-
superset/mcp_service/chart/tool/list_charts.py | 20 +-
superset/mcp_service/chart/tool/update_chart.py | 100 +-
.../mcp_service/chart/tool/update_chart_preview.py | 127 +-
.../chart/validation/dataset_validator.py | 161 +-
superset/mcp_service/common/error_schemas.py | 58 +-
superset/mcp_service/dashboard/schemas.py | 5 +-
.../tool/add_chart_to_existing_dashboard.py | 10 +-
.../dashboard/tool/generate_dashboard.py | 5 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 20 +-
superset/mcp_service/dataset/schemas.py | 13 +-
superset/mcp_service/dataset/tool/list_datasets.py | 19 +-
superset/mcp_service/dataset/tool/query_dataset.py | 5 +-
.../explore/tool/generate_explore_link.py | 61 +
superset/mcp_service/middleware.py | 50 +-
superset/mcp_service/privacy.py | 31 +-
superset/mcp_service/server.py | 2 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 5 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 3 +-
superset/mcp_service/utils/token_utils.py | 93 +-
...6_33d7e0e21daa_add_semantic_layers_and_views.py | 168 +
superset/models/helpers.py | 17 +-
superset/models/sql_lab.py | 6 +-
superset/security/manager.py | 318 +-
.../semantic_layers}/__init__.py | 0
superset/semantic_layers/api.py | 1147 ++
superset/semantic_layers/labels.py | 105 +
superset/semantic_layers/mapper.py | 912 ++
superset/semantic_layers/models.py | 556 +
.../utils.py => semantic_layers/registry.py} | 9 +-
superset/semantic_layers/schemas.py | 45 +
superset/sql/dialects/__init__.py | 11 +-
superset/sql/dialects/opensearch.py | 6 +-
superset/sql/dialects/vertica.py | 87 +
superset/sql/parse.py | 7 +-
superset/sqllab/utils.py | 1 +
superset/superset_typing.py | 51 +-
superset/tasks/async_queries.py | 5 +
superset/templates/superset/spa.html | 7 +
superset/translations/ru/LC_MESSAGES/messages.po | 733 +-
superset/utils/core.py | 37 +-
superset/utils/encrypt.py | 192 +-
superset/utils/pandas_postprocessing/pivot.py | 78 +-
superset/utils/rls.py | 40 +-
superset/views/core.py | 11 +-
superset/viz.py | 14 +
tests/integration_tests/charts/api_tests.py | 6 +-
tests/integration_tests/cli_tests.py | 42 +
tests/integration_tests/core_tests.py | 55 +-
tests/integration_tests/databases/api_tests.py | 8 +
tests/integration_tests/datasource/api_tests.py | 52 +
tests/integration_tests/utils/encrypt_tests.py | 230 +-
tests/integration_tests/viz_tests.py | 39 +
tests/unit_tests/commands/dashboard/export_test.py | 226 +
tests/unit_tests/commands/databases/tables_test.py | 72 +
.../unit_tests/commands/datasource}/__init__.py | 0
tests/unit_tests/commands/datasource/list_test.py | 162 +
.../commands/importers/v1/assets_test.py | 335 +-
tests/unit_tests/commands/report/execute_test.py | 111 +
.../commands/semantic_layer}/__init__.py | 0
.../commands/semantic_layer/create_test.py | 230 +
.../commands/semantic_layer/delete_test.py | 164 +
.../commands/semantic_layer/exceptions_test.py | 91 +
.../commands/semantic_layer/update_test.py | 326 +
.../dashboards/commands/importers/v1/utils_test.py | 137 +
tests/unit_tests/databases/api_test.py | 2 +
tests/unit_tests/datasets/commands/export_test.py | 52 +
.../datasets/test_datetime_format_detector.py | 57 +
tests/unit_tests/datasource/dao_tests.py | 29 +
tests/unit_tests/db_engine_specs/test_presto.py | 44 +
tests/unit_tests/db_engine_specs/test_trino.py | 44 +
tests/unit_tests/extension_tests.py | 47 +
tests/unit_tests/importexport/api_test.py | 54 +-
.../mcp_service/chart/test_ascii_charts.py | 175 +
.../mcp_service/chart/test_chart_helpers.py | 179 +
.../mcp_service/chart/test_chart_schemas.py | 16 +
.../mcp_service/chart/test_chart_utils.py | 46 +-
tests/unit_tests/mcp_service/chart/test_compile.py | 445 +
.../mcp_service/chart/tool/test_generate_chart.py | 55 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 179 +
.../chart/tool/test_get_chart_preview.py | 574 +
.../mcp_service/chart/tool/test_get_chart_sql.py | 457 +
.../mcp_service/chart/tool/test_update_chart.py | 149 +
.../chart/tool/test_update_chart_preview.py | 397 +
.../validation/test_column_name_normalization.py | 13 +
.../dashboard/tool/test_dashboard_tools.py | 3 +-
.../mcp_service/dataset/tool/test_dataset_tools.py | 122 +-
.../explore/tool/test_generate_explore_link.py | 166 +
.../sql_lab/tool/test_open_sql_lab_with_context.py | 3 +-
.../mcp_service/test_auth_user_resolution.py | 44 +
tests/unit_tests/mcp_service/test_mcp_config.py | 28 +
tests/unit_tests/mcp_service/test_middleware.py | 90 +-
.../mcp_service/utils/test_token_utils.py | 64 +-
tests/unit_tests/models/core_test.py | 6 +-
tests/unit_tests/models/helpers_test.py | 348 +
.../unit_tests/pandas_postprocessing/test_pivot.py | 243 +
tests/unit_tests/security/api_test.py | 2 +-
tests/unit_tests/semantic_layers/api_test.py | 2321 ++++
tests/unit_tests/semantic_layers/dao_test.py | 85 +
.../unit_tests/semantic_layers/decorators_test.py | 103 +
tests/unit_tests/semantic_layers/labels_test.py | 52 +
tests/unit_tests/semantic_layers/mapper_test.py | 2743 +++++
tests/unit_tests/semantic_layers/models_test.py | 1267 +++
tests/unit_tests/semantic_layers/schemas_test.py | 296 +
tests/unit_tests/sql/dialects/opensearch_tests.py | 81 +-
tests/unit_tests/sql/dialects/vertica_tests.py | 197 +
tests/unit_tests/sql/test_spark_dialect.py | 94 +
tests/unit_tests/sql/transpile_to_dialect_test.py | 124 +
tests/unit_tests/sql_lab_test.py | 40 +-
tests/unit_tests/tasks/test_async_queries.py | 174 +-
tests/unit_tests/test_viz_get_df_payload.py | 111 +
tests/unit_tests/utils/test_core.py | 42 +
495 files changed, 45358 insertions(+), 10768 deletions(-)
delete mode 100644 docs/components/versions.json
delete mode 100644 docs/developer_docs/versions.json
delete mode 100644 docs/developer_portal_versions.json
create mode 100644 docs/scripts/lint-docs-links.mjs
delete mode 100644 docs/src/theme/DocVersionBanner/index.js
delete mode 100644 docs/src/theme/DocVersionBanner/styles.module.css
delete mode 100644 docs/tutorials_versions.json
create mode 100644 superset-core/src/superset_core/semantic_layers/config.py
create mode 100644 superset-core/src/superset_core/semantic_layers/daos.py
create mode 100644 superset-core/src/superset_core/semantic_layers/decorators.py
create mode 100644 superset-core/src/superset_core/semantic_layers/layer.py
create mode 100644 superset-core/src/superset_core/semantic_layers/models.py
create mode 100644 superset-core/src/superset_core/semantic_layers/types.py
create mode 100644 superset-core/src/superset_core/semantic_layers/view.py
create mode 100644 superset-frontend/packages/superset-ui-chart-controls/test/shared-controls/matrixifyControls.test.tsx
create mode 100644 superset-frontend/playwright/generators/docs/screenshot-manifest.yaml
create mode 100644 superset-frontend/playwright/tests/dashboard/clear-all-filters.spec.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/htmlTextFilterValueGetter.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/htmlTextFilterValueGetter.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/memoization.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/transformProps.test.ts
copy superset-frontend/src/{components/ErrorMessage/DatasetNotFoundErrorMessage.test.tsx => features/datasets/AddDataset/DatasetPanel/DatasetPanelWrapper.test.tsx} (53%)
create mode 100644 superset-frontend/src/features/semanticLayers/SemanticLayerModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/SemanticLayerModal.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/jsonFormsHelpers.test.ts
create mode 100644 superset-frontend/src/features/semanticLayers/jsonFormsHelpers.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/label.ts
create mode 100644 superset-frontend/src/features/semanticViews/AddSemanticViewModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticViews/AddSemanticViewModal.tsx
create mode 100644 superset-frontend/src/features/semanticViews/SemanticViewEditModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticViews/SemanticViewEditModal.tsx
copy superset-frontend/{packages/superset-ui-core/src/components/Spin/index.tsx => src/types/emotion-jest.d.ts} (95%)
copy {superset-core/src/superset_core/common => superset/commands/datasource}/__init__.py (100%)
create mode 100644 superset/commands/datasource/list.py
copy {superset-core/src/superset_core/common => superset/commands/semantic_layer}/__init__.py (100%)
create mode 100644 superset/commands/semantic_layer/create.py
create mode 100644 superset/commands/semantic_layer/delete.py
create mode 100644 superset/commands/semantic_layer/exceptions.py
create mode 100644 superset/commands/semantic_layer/update.py
create mode 100644 superset/daos/semantic_layer.py
create mode 100644 superset/datasource/schemas.py
create mode 100644 superset/mcp_service/chart/compile.py
create mode 100644 superset/migrations/versions/2025-11-04_11-26_33d7e0e21daa_add_semantic_layers_and_views.py
copy {superset-core/src/superset_core/common => superset/semantic_layers}/__init__.py (100%)
create mode 100644 superset/semantic_layers/api.py
create mode 100644 superset/semantic_layers/labels.py
create mode 100644 superset/semantic_layers/mapper.py
create mode 100644 superset/semantic_layers/models.py
copy superset/{temporary_cache/utils.py => semantic_layers/registry.py} (84%)
create mode 100644 superset/semantic_layers/schemas.py
create mode 100644 superset/sql/dialects/vertica.py
create mode 100644 tests/unit_tests/commands/dashboard/export_test.py
copy {superset-core/src/superset_core/common => tests/unit_tests/commands/datasource}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/datasource/list_test.py
copy {superset-core/src/superset_core/common => tests/unit_tests/commands/semantic_layer}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/semantic_layer/create_test.py
create mode 100644 tests/unit_tests/commands/semantic_layer/delete_test.py
create mode 100644 tests/unit_tests/commands/semantic_layer/exceptions_test.py
create mode 100644 tests/unit_tests/commands/semantic_layer/update_test.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_ascii_charts.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_compile.py
create mode 100644 tests/unit_tests/semantic_layers/api_test.py
create mode 100644 tests/unit_tests/semantic_layers/dao_test.py
create mode 100644 tests/unit_tests/semantic_layers/decorators_test.py
create mode 100644 tests/unit_tests/semantic_layers/labels_test.py
create mode 100644 tests/unit_tests/semantic_layers/mapper_test.py
create mode 100644 tests/unit_tests/semantic_layers/models_test.py
create mode 100644 tests/unit_tests/semantic_layers/schemas_test.py
create mode 100644 tests/unit_tests/sql/dialects/vertica_tests.py
create mode 100644 tests/unit_tests/sql/test_spark_dialect.py
create mode 100644 tests/unit_tests/test_viz_get_df_payload.py
(superset) 01/01: fix(mcp): fix two failing unit tests for RBAC tool visibility
Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aminghadersohi pushed a commit to branch mcp-rbac-tool-visibility
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 71067e09ad82ab45d5a39c60226abb7625117e93
Author: Amin Ghadersohi <am...@gmail.com>
AuthorDate: Mon May 18 19:56:33 2026 +0000
fix(mcp): fix two failing unit tests for RBAC tool visibility
- Restore "Available tools:" section header in app.py instructions so
test_get_default_instructions_declares_data_boundary can find it
- Revert fail-open change in _tool_allowed_for_current_user: tool-search
should stay fail-closed (hide protected tools) when no user is resolved;
only RBACToolVisibilityMiddleware.on_list_tools is fail-open for the
no-auth-configured case
Co-Authored-By: Claude Sonnet 4.6 <no...@anthropic.com>
---
superset/mcp_service/app.py | 2 +-
superset/mcp_service/server.py | 10 ++--------
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/superset/mcp_service/app.py b/superset/mcp_service/app.py
index dbe31e2ef3d..df9fbb2e45c 100644
--- a/superset/mcp_service/app.py
+++ b/superset/mcp_service/app.py
@@ -72,7 +72,7 @@ Available tools vary based on your access level:
If a tool does not appear in the tool list, the current user lacks the
necessary access — do NOT attempt to call it.
-Tool capabilities (subject to your access level):
+Available tools:
Dashboard Management:
- list_dashboards: List dashboards with advanced filters (1-based pagination)
diff --git a/superset/mcp_service/server.py b/superset/mcp_service/server.py
index 4fca1878945..9d3c8d5f350 100644
--- a/superset/mcp_service/server.py
+++ b/superset/mcp_service/server.py
@@ -410,14 +410,8 @@ def _tool_allowed_for_current_user(tool: Any) -> bool:
if not getattr(g, "user", None):
try:
g.user = get_user_from_request()
- except ValueError as exc:
- if "No authenticated user found" in str(exc):
- # No auth source configured → fail open, consistent with
- # RBACToolVisibilityMiddleware's tools/list behavior
- return True
- return False # bad credentials → fail closed
- except PermissionError:
- return False # invalid API key → fail closed
+ except (ValueError, PermissionError):
+ return False
return is_tool_visible_to_current_user(tool)
except (AttributeError, RuntimeError, ValueError):