You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by hu...@apache.org on 2026/07/08 15:16:02 UTC
(superset) branch hughhhh/dashboard-export-spec-review updated (767db18b5e4 -> 5616a867ceb)
This is an automated email from the ASF dual-hosted git repository.
hughhhh pushed a change to branch hughhhh/dashboard-export-spec-review
in repository https://gitbox.apache.org/repos/asf/superset.git
from 767db18b5e4 style(dashboard): satisfy auto-walrus and ruff-format on export email
add 6bdcb7a83a1 feat(i18n): backfill Czech (cs) translations (AI-generated, needs review) (#41647)
add 661d362580d feat(i18n): backfill new safe-link strings in de/lv/fi (AI-generated, needs review) (#41646)
add 706ff94f0bf feat(i18n): backfill Slovak (sk) translations (AI-generated, needs review) (#41640)
add d57d69d3a68 feat(i18n): backfill Ukrainian (uk) translations (AI-generated, needs review) (#41645)
add 748060d35e7 feat(i18n): backfill Thai (th) translations (AI-generated, needs review) (#41641)
add e3bd6e5c70c chore(deps-dev): bump @playwright/test from 1.61.0 to 1.61.1 in /superset-frontend (#41616)
add d507be2555f chore(deps): bump geostyler-openlayers-parser from 5.7.0 to 5.7.1 in /superset-frontend (#41615)
add c3f5e997a16 feat(mcp): chart type plugin registry for extensible generate_chart (#39922)
add b2af954e7b8 chore(deps-dev): bump @types/node from 26.0.0 to 26.0.1 in /superset-frontend (#41675)
add 246bbeb4089 chore(deps): bump google-auth-library from 10.7.0 to 10.9.0 in /superset-frontend (#41672)
add a919dda2ac3 fix(sqllab): filter results table when typing in the search box (#41625)
add 8343a4fff80 chore(deps-dev): bump @types/node from 26.0.0 to 26.0.1 in /superset-websocket (#41666)
add a48ca9ce723 fix(sqllab): reject blank saved query and dataset names (#41624)
add 0a25faabbd6 fix(dashboard): align chart menu button hover state (#41683)
add 8210904e958 chore(deps): bump nanoid from 5.1.15 to 5.1.16 in /superset-frontend (#41673)
add 80344852b72 chore(deps): bump docusaurus-plugin-openapi-docs from 5.0.2 to 5.1.0 in /docs (#41671)
add 2992d7b4c87 feat(database): add databricks oauth support (#41421)
add be46d65e3b4 fix(dao): SQL-faithful NULL and non-string handling in LIKE-family operators (#41653)
add afebdd58d16 chore(deps): bump docusaurus-theme-openapi-docs from 5.0.2 to 5.1.0 in /docs (#41669)
add 6309d08d59f feat(helm): standardize to Kubernetes recommended labels (app.kubernetes.io/*) (#39350)
add d7e2f18d005 fix(dockerfile): allow GH auth-less fetch of `uv` when building Superset image locally (#41682)
add 7214e9f9f60 build(dev-deps): upgrade Storybook to v10 in docs subproject (#41679)
add c1bd45f5618 fix(ci): allow showtime to check out fork PR code under checkout v7 (#41643)
add e3b2992d6e1 chore(deps): update lodash-es requirement from ^4.17.21 to ^4.18.1 in /superset-frontend/packages/superset-ui-core (#41565)
add be29d877d2f chore(deps-dev): bump @storybook/addon-docs from 10.4.5 to 10.4.6 in /superset-frontend (#41375)
add 9769380d6dc feat(i18n): backfill Polish (pl) translations (AI-generated, needs review) (#41660)
add 6c2c814b5c0 fix(dashboard): not filterable column now not emitting cross-filters in table charts (#30827)
add aa40934e7f3 fix(i18n): compile fuzzy translations into the backend .mo files (#41648)
add 4c193d4dbce feat(i18n): wrap description strings in translation function (#41626)
add 139df20cde6 fix(i18n): update German security menu translations (#41587)
add 19e94855a1f fix(explore): prevent Results FilterInput from stealing focus during remount (#41100)
add 8bf3933972f fix(dashboard): show a not-found state for a deleted dashboard (#41686)
add 1c74185a71f chore(ci): correct codeql-action version comment to match pinned SHA (#41695)
add f9bcf189c9f chore(ci): suppress zizmor adhoc-packages on GHA validator install (#41694)
add 83965b4be87 chore(ci): correct codeql-action version pin comment to v4.36.2 (#41693)
add 358493a2c50 feat(i18n): backfill Brazilian Portuguese (pt_BR) translations (AI-generated, needs review) (#41659)
add 9e087702918 feat(i18n): backfill Slovenian (sl) translations (AI-generated, needs review) (#41658)
add 7eb93c60a3e feat(i18n): backfill Catalan (ca) translations (AI-generated, needs review) (#41657)
add f61d6d8b84a feat(i18n): backfill Māori (mi) translations (AI-generated, needs review) (#41656)
add 03703843b7d feat(i18n): backfill French (fr) translations (AI-generated, needs review) (#41655)
add 66bf81b997a feat(i18n): backfill Russian (ru) translations (AI-generated, needs review) (#41649)
add 22c3f56d0a7 fix(redshift): suppress unavoidable pkg_resources deprecation warning (#41691)
add a30846881b8 test(ci): stabilize master checks (#41650)
add ab0e77c1cb7 fix(embedded): allow guest users to sort by visible columns (#37371)
add 5bbab86a07a fix(schemas): rename deprecated query fields regardless of falsy values (#41263)
add d8832c382d4 fix(views): emit deprecated-endpoint log warning once per endpoint per process (#41286)
add a151edeff31 feat(i18n): backfill Dutch (nl) translations (AI-generated, needs review) (#41704)
add bdc610c5720 fix(db): use a private engine for prequery connections to avoid listener race (#41642)
add 55088e10da0 feat(database-modal): add validation loading state and duplicate name check (#36880)
add 49fcaf24205 feat(i18n): backfill Turkish (tr) translations (AI-generated, needs review) (#41702)
add 47bc3e2dc1c fix: correct Security menu case for MySQL deployments (#40527)
add ceadce234b9 chore(deps-dev): bump @storybook/react-webpack5 from 10.4.4 to 10.4.6 in /superset-frontend (#41371)
add 7cbdc726e33 chore(deps-dev): bump @storybook/addon-links from 10.4.4 to 10.4.6 in /superset-frontend (#41366)
add 6d22697cba9 feat(theming): make core components fully configurable via theme tokens (#40985)
add 46a153d17e1 feat(i18n): backfill Persian (Farsi) (fa) translations (AI-generated, needs review) (#41701)
add 4f37e955b54 fix(plugin-chart-echarts): prevent trendline stroke clipping at chart edges (#37918)
add 0e6c5838e48 fix(deck.gl): apply categorical scatterplot colors in Multiple Layers chart (#41490)
add eaf6daa7eb5 chore(deps-dev): bump webpack from 5.107.2 to 5.108.0 in /docs (#41734)
add d93098f8530 chore(deps-dev): bump baseline-browser-mapping from 2.10.38 to 2.10.40 in /superset-frontend (#41737)
add 2b30605e3c5 chore(deps): bump baseline-browser-mapping from 2.10.38 to 2.10.40 in /docs (#41736)
add 9f8ff1e87f4 chore(deps): bump @deck.gl/mapbox from 9.3.4 to 9.3.5 in /superset-frontend (#41735)
add 114c2581453 chore(deps-dev): bump webpack from 5.107.2 to 5.108.0 in /superset-frontend (#41733)
add 0b14f1c2264 fix(a11y): use aria-label instead of non-functional alt prop on filter icons (#41742)
add 2702113d99b fix(a11y): add aria-label to VizTypeGallery search clear icon (#41681)
add d443dd17b97 feat(i18n): backfill Korean (ko) translations (AI-generated, needs review) (#41713)
add b6f8267ed2b feat(i18n): backfill Italian (it) translations (AI-generated, needs review) (#41712)
add e7b825e26b5 feat(i18n): backfill Portuguese (pt) translations (AI-generated, needs review) (#41710)
add 7d90684f939 feat(i18n): backfill Chinese (Traditional) (zh_TW) translations (AI-generated, needs review) (#41709)
add 6d7344750f3 feat(i18n): backfill Chinese (Simplified) (zh) translations (AI-generated, needs review) (#41708)
add ceeba013057 fix(i18n): correct mistranslated entries flagged in review (pl/pt_BR/sl/sk/fi) (#41707)
add 4e2160079ad feat(i18n): backfill Arabic (ar) translations (AI-generated, needs review) (#41705)
add 59d35d16ce3 feat(i18n): adopt French translation improvements from #41688 (#41752)
add d7ad7fbb49c fix(i18n): repair dropped placeholders and reduced-plural forms across catalogs (#41722)
add 681275077b3 fix(semantic layers): time comparison with 1 row (#41554)
add b23cef136e5 fix(i18n): un-translate do-not-translate tokens in es/fi/th catalogs (#41652)
add fd1f313b307 chore(deps): bump flask-appbuilder from 5.2.1 to 5.2.2 (#41766)
add 81a437826f8 chore(deps-dev): update kylinpy requirement from <2.9,>=2.8.1 to >=2.8.4,<2.9 (#41765)
add 71ac6c64e23 chore(deps): bump rison from 2.0.0 to 2.0.1 (#41762)
add c3fe0a40ebc chore(deps-dev): bump mysqlclient from 2.2.6 to 2.2.8 (#41760)
add 43f28162406 chore(deps-dev): update ydb-sqlglot-plugin requirement from >=0.2.5 to >=0.2.8 (#41764)
add 210389478ba fix(test): change regex for RTL to retrieve button used for filter removal (#41767)
add a9aabdaedfc chore(deps): bump gunicorn from 25.3.0 to 26.0.0 (#41761)
add 004c401c973 refactor(dashboard): rename supersetCanCSV to supersetCanDownload (#24290) (#39118)
add 3e152d9bb7a fix(views): add new_target to deprecated explore_json_data endpoint (#41771)
add 1e50316bccd chore(reports): deprecate Slack v1 and harden Slack v2 tests (#39914)
add e08c2c12dad fix(native-filters): persist created/pasted default values in select filter (#40984)
add 8fcc0f8b482 fix(semantic layers): start/end ranges (#41590)
add 687fafd424b build(dev-deps): replace deprecated minimizer deps with recommendation from Webpack doc (#41756)
add 3ac19470ec2 fix(embedded): register AG Grid modules for view-as-table modal (#41632)
add d91c5cf09b6 fix(dashboard): prevent dashboard crash when applying grain filters (#41700) (#41746)
add a687e87b2cd fix(dashboard): use theme colorBorder token for chart tile borders (#41731)
add dc739e4fb96 fix(ui): standardize card kebab menu behavior (#41741)
add ea40b87e2fd fix(drill-detail): drill to detail by a null value dimension should use NULL_STRING (#41678)
add 8229c0183dc perf(explore): reuse chart query data in Results tab (#38165)
add 3303d4e09ef chore(deps): bump lodash-es to ^4.18.1 across all frontend workspaces (#41774)
add 9a24d42d655 fix(chart): Fix heatmap charts when filtering down to one row/colum (#40738)
add 7cdfe3ffe7d fix(a11y): add aria-label to CRON schedule input (#41769)
add a8ab5f973dc chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.61.1 to 8.62.0 in /superset-frontend (#41577)
add 83826839a0a fix(i18n): inject language pack into bootstrap to translate code-split chunks (#39357)
add 1575b83f96a chore(deps): bump react-arborist from 3.10.5 to 3.12.0 in /superset-frontend (#41793)
add d6b31376a51 chore(deps-dev): bump prettier from 3.8.4 to 3.9.1 in /docs (#41789)
add beff76cb4d4 chore(deps): bump antd from 6.4.5 to 6.5.0 in /docs (#41788)
add fd8d7009a5b chore(mcp): drop legacy /superset prefix from dashboard URLs (#41758)
add b4218136bec feat(ag-grid): support Show summary in raw records mode (#41754)
add a7a051777c2 feat(charts): soft-delete and restore (#40129)
add 2f11240339c chore(deps): bump query-string from 9.4.0 to 9.4.1 in /superset-frontend (#41782)
add f4cc871f8cd chore(deps): bump js-yaml from 5.1.0 to 5.2.0 in /docs (#41783)
add 69f052985f7 chore(deps-dev): bump prettier from 3.8.4 to 3.9.3 in /superset-frontend (#41784)
add c49d01223c7 chore(deps-dev): bump webpack from 5.108.0 to 5.108.2 in /docs (#41786)
add dc671ae44ac chore(deps-dev): bump eslint from 10.5.0 to 10.6.0 in /superset-frontend (#41792)
add 06f421ed4af fix(a11y): add aria-label to remove-sheet icon button in Google Sheets catalog (#41796)
add 83d93b8b425 fix(view-query): Add ownState parameter to ViewQueryModal for query consistency (#35208)
add ad8e6d41402 build(deps): upgrade `react-markdown` to v9 and `remark-gfm` to v4 (#41778)
add 689b4f623e4 docs(admin/config): resolve misconfigured aws-iam Markdown file (#41748)
add 21b4185819e fix(ace-editor): caret drift from late font loads and emoji widths (#41697)
add 51e708da6bb fix(mcp): accept Superset vocabulary in chart configs and clarify query_dataset metric errors (#40972)
add 69ce27f1731 feat(sec): resolve all vuln alerts in `superset-embedded-sdk`, `superset-frontend` and `docs` (#41776)
add fb496e158a2 fix(ag-grid): persist "None" value aggregation selection (#41386)
add 44c1ad5c714 fix: delint frontend files (#41802)
add c0b0a2fdaf5 feat(tags): add favorites filter to Tags list view (#41461)
add 033b7bc385e fix(databases): update broken database documentation links to /user-docs namespace (#41557)
add 9e50d9eca67 fix: Italian translation (#36114)
add ee524b34713 fix(dashboard): let CSV exports use query cache instead of always force-querying (#41469)
add 2aa43f6f0f5 fix(sql): stop sanitize_clause from rewriting user SQL semantics (#36113) (#41125)
add 85eaf15c5e0 test(databases): stabilize flaky SQLAlchemy-form visibility assertion (#41823)
add 101c1e88275 fix(ace-editor): carry token classes onto emoji boxes (#41821)
add 4b78758fd22 chore(deps-dev): bump typescript-eslint from 8.62.0 to 8.62.1 in /superset-websocket (#41815)
add 847bdad9600 chore(deps-dev): bump @typescript-eslint/parser from 8.62.0 to 8.62.1 in /superset-frontend (#41820)
add 2b74e140f37 chore(deps-dev): update sqlalchemy-parseable requirement from <0.2.0,>=0.1.3 to >=0.1.6,<0.2.0 (#41814)
add 87fa7e5e640 chore(deps-dev): bump prettier from 3.9.1 to 3.9.3 in /superset-websocket (#41810)
add e52240b9a60 test(datasets): prove column metadata persists for zero-row queries (#41838)
add a8a1b220fdc chore(deps): update @ant-design/icons requirement from ^6.2.5 to ^6.3.2 in /superset-frontend/packages/superset-ui-core (#41790)
add 1c3b070d342 feat(i18n): do-not-translate registry + '#. do-not-translate' marker standard (#41651)
add c846da8dfb2 fix(frontend): resolve image download formatting and cleanup issues (#38927)
add de5a233ccf9 fix(sqllab): preserve saved query description when editing (#41685)
add ec4e5deb014 feat(theming): add opt-in SQL Lab grid tokens and fix modal border-radius clipping (#41031)
add 5e384f54d3a fix(ag-grid): select cell on click instead of its text (#41392)
add 4167a21f7d4 fix(semantic layers): guards for zero rows (#41600)
add 4dc45aa9586 fix(semantic layers): apply post-processing (#41601)
add ffd09829423 fix(ag-grid): keep basic conditional formatting aligned after sort (#41390)
add 5e16c4eaaf6 chore(deps-dev): bump oxlint from 1.71.0 to 1.72.0 in /superset-frontend (#41848)
add 7bdde4a36af chore(deps-dev): bump prettier from 3.9.3 to 3.9.4 in /superset-frontend (#41846)
add aa330422f19 chore(deps-dev): bump prettier from 3.9.3 to 3.9.4 in /superset-websocket (#41844)
add 3a514dc8eb0 chore(deps-dev): update sqlalchemy-singlestoredb requirement from <2,>=1.1.1 to >=1.2.1,<2 (#41809)
add 0dcb09b1638 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.62.0 to 8.62.1 in /superset-frontend (#41822)
add 53c3b1ceb1b chore(deps): bump fs-extra from 11.3.5 to 11.3.6 in /superset-frontend (#41847)
add 9b508ebe0d0 fix(ag-grid): honor dataset hour offset in time range filters (#41391)
add dd0277e1e37 feat(mcp): support embedded guest-token authentication (#41003)
add 77b98a5d676 chore(deps-dev): update databend-sqlalchemy requirement from <1.0,>=0.3.2 to >=0.5.5,<1.0 (#41479)
add f0e25fb9789 test(preset-chart-deckgl): prove ctrl+click on deck.gl legend toggles the layer without opening a new tab (#41830)
add d0b42d8c19a test(dashboard): prove activeTabs from permalinks selects tab content (#41832)
add af058ccecb5 test(plugin-chart-echarts): prove user-selected plain legend type is honored (#39540) (#41833)
add de5a31a2cfd test(sql): prove Oracle GROUP BY is no longer rewritten to ordinals (#35414) (#41834)
add 00a9546de9f test(sql): prove multi-space column names no longer trip subquery validation (#41835)
add 7b0969131ff test(sql): prove ClickHouse parametric aggregates parse cleanly (#37285) (#41836)
add 973366d30bf test(models): prove owner association tables reject duplicate rows (#41837)
add 19c982d8d30 test(async-queries): prove OAuth2RedirectError survives async chart queries (#41839)
add 51a171f8217 test(dashboard): prove BigInt column values no longer break native filter config (#41840)
add 0d9b3f3b059 test(dashboard): prove filters with defaults apply without touching every filter (#41841)
add a01a4ae511e test(superset-ui-core): prove angle-bracketed non-HTML values render as text (#34082) (#41829)
add 04f8b700d76 feat(datasets): soft-delete and restore (#40130)
add 5f27f88e730 test(preset-chart-deckgl): prove legend clicks no longer scroll to top (#41831)
add fe7d9b47247 fix(sqllab): reflect query history deletion without page refresh (#41019)
add fbc24959ab3 feat(mcp): add semantic layer MCP tools (list_metrics, get_table, get_compatible_dimensions, get_compatible_metrics) (#41611)
add 054be4d45e8 chore(deps-dev): bump eslint-plugin-storybook from 10.4.5 to 10.4.6 in /superset-frontend (#41360)
add 8e98ae701b5 chore(deps): bump cryptography from 48.0.1 to 49.0.0 (#41811)
add 6edbf425f79 chore(deps-dev): update sqlalchemy-ocient requirement from >=1.0.0 to >=3.0.0 (#41806)
add 098b95560d8 fix(oauth2): retrigger queries for unsaved charts and schema loading after OAuth2 redirect (#41101)
add 8108496e2a1 chore(deps-dev): bump @types/d3-scale from 2.2.10 to 4.0.9 in /superset-frontend/packages/superset-ui-core (#41318)
add 4038c9d1e69 chore(deps-dev): bump google-cloud-bigquery from 3.27.0 to 3.42.1 (#41807)
add d9e1f34527b fix(a11y): add aria-label to notification method remove button (#41850)
add 09361606335 chore(deps-dev): bump eslint-plugin-cypress from 3.6.0 to 6.4.2 in /superset-frontend (#41849)
add 8f4c4117656 fix(mcp): coerce Role ORM objects to role names in UserInfo schema (#40746)
add 2a77c0156af fix(frontend/setup): sanitize returned client error message when shown as HTML content (#41768)
add 17ae25b8d4d fix(explore): resolve adhoc Custom SQL dimension in Bubble chart (#41861)
add ef10501e6b2 feat(table v2): add tooltip to table header (#39287)
add f1c0a461fda chore(deps): bump react-markdown from 9.0.7 to 10.1.0 in /superset-frontend/packages/superset-ui-core (#41805)
add 6b1311a6c7c fix(sqllab): correct verticalalign CSS typo in SqlEditorTabHeader icon styles (#41052)
add 0d9533fdf8f fix(reports): export server-paginated table row limits (#41103)
add 7b95d8b17c9 feat(alerts): add user lookup for email recipients (#41338)
add 050acc6c308 fix(databend): support configuring Databend via individual parameters (#41513)
add c253b68d7bc fix(chart): fix Chart Time Grain option not working if Dataset is not saved (#38766)
add ddca50c8209 fix(ui): improve getPopupContainer to avoid double scrollbar without breaking modal behavior (#38792)
add 98fc8576131 feat(cache): warm up native filter option queries (#41531)
add 866f8c51ee2 fix(sqllab): invalid height in ResultTable (#37408)
add e49945fc2fb fix(table charts v1 & v2): pagination, translation and search by (#36881)
add 96171552890 fix(utils): urls preserve query params (#35936)
add 3fa000ba0bc fix(chart): allow custom date format for week range in Big Number with Trendline (#35752)
add 0efcd54250a fix(charts): fix time comparison crash when offsets share a numeric prefix (#39344)
add f6d03e4a687 fix(clickhouse): time filters use server timezone for toDateTime literals (#41579)
add 206155f986c fix(explore): apply per-datasource access check on the legacy explore view (#41425)
add f74de0eb6c3 fix: Show metric in the default tooltip of deck.gl GeoJson Polygon chart (#41341)
add 2dab31c1301 fix(mcp): serialize FAB role permissions (#41404)
add 01cd2152027 fix(explore): default Save As for new charts in save dialog (#41314)
add 3b1abf82608 feat(Icons): adding Layout icon (#41853)
add 211bcbc6353 chore(deps-dev): bump @swc/plugin-emotion from 14.14.0 to 14.14.1 in /superset-frontend (#41875)
add d81b135a04c fix(explore): render DragOverlay so dragged metric/column is visible (#41879)
add 8a599d70b43 fix(explore): admin creating new chart crashes on save (#41880)
add 49ed2063815 fix(a11y): add aria-label to dependency-list remove icon (#41878)
add deefe897f15 chore(frontend): remove orphaned eslint-plugin-cypress devDependency (#41866)
add 5616a867ceb Merge remote-tracking branch 'origin/master' into hughhhh/dashboard-export-spec-review
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 11 -
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/github-action-validator.yml | 5 +-
.github/workflows/showtime-trigger.yml | 7 +-
.pre-commit-config.yaml | 0
Dockerfile | 4 +-
UPDATING.md | 67 +
docs/admin_docs/configuration/aws-iam.mdx | 20 +-
docs/developer_docs/contributing/howtos.md | 28 +-
docs/docusaurus.config.ts | 2 +-
docs/package.json | 35 +-
docs/src/components/databases/types.ts | 2 +-
docs/src/pages/inTheWild.tsx | 3 +-
docs/src/pages/index.tsx | 3 +-
docs/src/types/yaml.d.ts | 4 +-
docs/src/webpack.extend.ts | 58 +-
docs/static/feature-flags.json | 4 +-
docs/tsconfig.json | 1 -
.../version-6.0.0/configuration/databases.mdx | 74 +
docs/yarn.lock | 9036 +++++----
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 17 +-
helm/superset/README.md.gotmpl | 15 +
helm/superset/templates/_helpers.tpl | 74 +-
helm/superset/templates/configmap-superset.yaml | 8 +-
helm/superset/templates/deployment-beat.yaml | 14 +-
helm/superset/templates/deployment-flower.yaml | 14 +-
helm/superset/templates/deployment-worker.yaml | 18 +-
helm/superset/templates/deployment-ws.yaml | 14 +-
helm/superset/templates/deployment.yaml | 18 +-
helm/superset/templates/hpa-node.yaml | 8 +-
helm/superset/templates/hpa-worker.yaml | 8 +-
helm/superset/templates/ingress.yaml | 8 +-
helm/superset/templates/init-job.yaml | 12 +-
helm/superset/templates/pdb-beat.yaml | 8 +-
helm/superset/templates/pdb-flower.yaml | 8 +-
helm/superset/templates/pdb-worker.yaml | 8 +-
helm/superset/templates/pdb-ws.yaml | 8 +-
helm/superset/templates/pdb.yaml | 8 +-
helm/superset/templates/secret-env.yaml | 8 +-
.../superset/templates/secret-superset-config.yaml | 8 +-
helm/superset/templates/secret-ws.yaml | 8 +-
helm/superset/templates/service-flower.yaml | 11 +-
helm/superset/templates/service-ws.yaml | 11 +-
helm/superset/templates/service.yaml | 11 +-
helm/superset/templates/serviceaccount.yaml | 8 +-
helm/superset/tests/labels_test.yaml | 520 +
pyproject.toml | 24 +-
requirements/base.in | 2 +-
requirements/base.txt | 10 +-
requirements/development.txt | 15 +-
scripts/translations/apply_do_not_translate.py | 128 +
scripts/translations/babel_update.sh | 8 +
scripts/translations/backfill_po.py | 63 +
superset-embedded-sdk/package-lock.json | 1410 +-
superset-embedded-sdk/package.json | 8 +-
.../cypress-base/cypress/e2e/explore/utils.ts | 6 +-
superset-frontend/jest.config.js | 5 +-
superset-frontend/package-lock.json | 4912 ++---
superset-frontend/package.json | 56 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/package.json | 2 +-
.../packages/superset-core/src/theme/types.ts | 31 +
.../src/translation/TranslatorSingleton.test.ts | 79 +
.../src/translation/TranslatorSingleton.ts | 29 +
.../superset-ui-chart-controls/package.json | 2 +-
.../src/operators/renameOperator.ts | 2 +-
.../src/operators/utils/timeOffset.ts | 6 +-
.../superset-ui-chart-controls/src/types.ts | 13 +-
.../test/operators/renameOperator.test.ts | 24 +
.../test/operators/utils/timeOffset.test.ts | 23 +
.../packages/superset-ui-core/package.json | 14 +-
.../src/color/CategoricalColorScale.ts | 13 +-
.../AsyncAceEditor/AsyncAceEditor.stories.tsx | 8 +-
.../AsyncAceEditor/AsyncAceEditor.test.tsx | 193 +
.../AsyncAceEditor/emojiWidthPatch.test.ts | 219 +
.../components/AsyncAceEditor/emojiWidthPatch.ts | 283 +
.../src/components/AsyncAceEditor/index.tsx | 81 +-
.../src/components/Button/Button.stories.tsx | 5 +
.../src/components/Button/Button.test.tsx | 62 +
.../src/components/Button/index.tsx | 80 +-
.../src/components/Button/types.ts | 19 +-
.../src/components/CodeEditor/index.tsx | 8 +-
.../DropdownButton/DropdownButton.stories.tsx | 5 +
.../DropdownButton/DropdownButton.test.tsx | 76 +
.../src/components/DropdownButton/index.tsx | 23 +-
.../src/components/DropdownButton/types.ts | 8 +
.../src/components/DynamicEditableTitle/index.tsx | 20 +-
.../src/components/EmptyState/index.tsx | 8 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 2 +-
.../superset-ui-core/src/components/Form/types.ts | 4 +-
.../src/components/Icons/AntdEnhanced.tsx | 2 +
.../src/components/Icons/index.tsx | 3 +-
.../src/components/Label/index.tsx | 2 +-
.../superset-ui-core/src/components/Label/types.ts | 7 +-
.../src/components/Loading/types.ts | 5 +-
.../src/components/MetadataBar/ContentType.ts | 9 +-
.../src/components/Modal/Modal.tsx | 78 +-
.../src/components/PageHeaderWithActions/index.tsx | 5 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 5 +-
.../src/components/Select/AsyncSelect.test.tsx | 19 +
.../src/components/Select/AsyncSelect.tsx | 14 +-
.../src/components/Select/Select.stories.tsx | 5 +-
.../src/components/Select/Select.test.tsx | 17 +
.../src/components/Select/Select.tsx | 5 +-
.../src/components/Select/styles.tsx | 10 +-
.../superset-ui-core/src/components/Tabs/Tabs.tsx | 14 +-
.../src/components/ThemedAgGridReact/index.tsx | 1 +
.../superset-ui-core/src/connection/types.ts | 11 +-
.../superset-ui-core/src/currency-format/types.ts | 8 +-
.../superset-ui-core/src/models/Registry.ts | 4 +-
.../src/query/api/v1/handleError.ts | 3 +-
.../src/query/getClientErrorObject.ts | 10 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 13 +-
.../superset-ui-core/src/query/types/Filter.ts | 4 +-
.../superset-ui-core/src/query/types/Metric.ts | 7 +-
.../src/query/types/PostProcessing.ts | 30 +-
.../src/query/types/QueryFormData.ts | 3 +-
.../superset-ui-core/src/time-comparison/types.ts | 9 +-
.../superset-ui-core/src/utils/html.test.tsx | 17 +
.../chart/components/ChartDataProvider.test.tsx | 3 +-
superset-frontend/playwright/pages/ExplorePage.ts | 46 +
.../tests/dataset/create-dataset.spec.ts | 3 +-
.../experimental/explore/results-tab-reuse.spec.ts | 123 +
.../plugins/legacy-preset-chart-nvd3/package.json | 2 +-
.../plugin-chart-ag-grid-table/package.json | 2 +-
.../src/AgGridTable/index.tsx | 32 +-
.../src/AgGridTableChart.tsx | 71 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 31 +-
.../plugin-chart-ag-grid-table/src/consts.ts | 8 +
.../src/controlPanel.tsx | 32 +-
.../src/renderers/NumericCellRenderer.tsx | 15 +-
.../src/transformProps.ts | 64 +-
.../plugin-chart-ag-grid-table/src/types.ts | 7 +-
.../src/utils/copyCellValue.ts | 156 +
.../src/utils/externalAPIs.ts | 2 +
.../src/utils/getCellStyle.ts | 8 +-
.../src/utils/getColumnStateSignature.ts | 51 +
.../src/utils/getRowBasicColorFormatter.ts | 50 +
.../src/utils/isEqualColumns.ts | 25 +-
.../src/utils/reconcileColumnState.test.ts | 17 +
.../src/utils/useColDefs.ts | 1 +
.../test/AgGridTableChart.test.tsx | 417 +-
.../test/buildQuery.test.ts | 129 +
.../test/cellSelectionWiring.test.tsx | 99 +
.../test/controlPanel.test.ts | 36 +
.../test/controlPanel.test.tsx | 3 +-
.../test/transformProps.test.ts | 266 +
.../test/utils/copyCellValue.test.ts | 203 +
.../test/utils/getColumnStateSignature.test.ts | 82 +
.../test/utils/getRowBasicColorFormatter.test.ts | 81 +
.../plugins/plugin-chart-cartodiagram/package.json | 2 +-
.../plugin-chart-cartodiagram/src/plugin/index.ts | 3 +-
.../plugins/plugin-chart-echarts/package.json | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/index.ts | 3 +-
.../BigNumberWithTrendline/transformProps.ts | 16 +-
.../plugin-chart-echarts/src/BigNumber/utils.ts | 2 +-
.../plugin-chart-echarts/src/BoxPlot/types.ts | 6 +-
.../src/Bubble/transformProps.ts | 11 +-
.../src/Radar/controlPanel.tsx | 3 +-
.../src/Timeseries/transformers.ts | 3 +-
.../plugin-chart-echarts/src/Waterfall/types.ts | 6 +-
.../plugin-chart-echarts/src/utils/legendLayout.ts | 6 +-
.../src/utils/safeEChartOptionsParser.ts | 8 +-
.../plugin-chart-echarts/src/utils/series.ts | 6 +-
.../test/BigNumber/transformProps.test.ts | 44 +-
.../test/Bubble/transformProps.test.ts | 72 +
.../test/Timeseries/transformProps.test.ts | 55 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 68 +-
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../src/plugin/controls/shared.ts | 3 +-
.../src/react-pivottable/utilities.ts | 3 +-
.../plugins/plugin-chart-pivot-table/src/types.ts | 4 +-
.../plugins/plugin-chart-table/package.json | 2 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 58 +-
.../plugins/plugin-chart-table/src/buildQuery.ts | 5 +-
.../plugin-chart-table/src/controlPanel.tsx | 3 +-
.../plugin-chart-table/src/transformProps.ts | 5 +
.../plugin-chart-table/test/TableChart.test.tsx | 30 +
.../plugin-chart-table/test/controlPanel.test.tsx | 3 +-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../plugins/preset-chart-deckgl/package.json | 4 +-
.../src/CategoricalDeckGLContainer.test.tsx | 68 +
.../src/CategoricalDeckGLContainer.tsx | 83 +-
.../src/Multi/Multi.color.test.tsx | 245 +
.../preset-chart-deckgl/src/Multi/Multi.tsx | 58 +-
.../src/components/Legend.test.tsx | 57 +-
.../src/layers/Path/buildQuery.ts | 3 +-
.../src/layers/Polygon/transformProps.test.ts | 36 +
.../src/layers/Polygon/transformProps.ts | 16 +-
.../src/utilities/Shared_DeckGL.tsx | 3 +-
.../src/utilities/tooltipUtils.test.tsx | 90 +
.../src/utilities/tooltipUtils.tsx | 50 +-
.../preset-chart-deckgl/src/utils/addColor.test.ts | 103 +
.../preset-chart-deckgl/src/utils/addColor.ts | 111 +
.../src/utils/crossFiltersDataMask.ts | 12 +-
.../src/SqlLab/actions/sqlLab.test.ts | 83 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 26 +-
.../src/SqlLab/components/QueryTable/index.tsx | 26 +-
.../src/SqlLab/components/QueryTable/styles.ts | 1 +
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 45 +
.../buildResultsGridThemeOverrides.test.ts | 94 +
.../ResultSet/buildResultsGridThemeOverrides.ts | 46 +
.../src/SqlLab/components/ResultSet/index.tsx | 41 +-
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 38 +
.../SqlLab/components/SaveDatasetModal/index.tsx | 4 +-
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 69 +
.../src/SqlLab/components/SaveQuery/index.tsx | 21 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 4 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 36 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 6 +-
.../middlewares/persistSqlLabStateEnhancer.ts | 5 +-
superset-frontend/src/SqlLab/reducers/sqlLab.ts | 3 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 58 +-
.../useDrillDetailMenuItems.test.tsx | 18 +
.../Datasource/FoldersEditor/TreeItem.styles.ts | 24 +-
.../Datasource/FoldersEditor/treeUtils.ts | 4 +-
.../ErrorMessage/OAuth2RedirectMessage.test.tsx | 62 +-
.../ErrorMessage/OAuth2RedirectMessage.tsx | 19 +-
.../src/components/FilterableTable/index.tsx | 22 +-
.../src/components/FilterableTable/types.ts | 3 +
.../src/components/GridTable/Header.test.tsx | 6 +-
.../src/components/GridTable/index.tsx | 10 +-
.../src/components/GridTable/types.ts | 12 +
.../src/components/ImportModal/ErrorAlert.tsx | 2 +-
.../components/ImportModal/ImportErrorAlert.tsx | 2 +-
.../KebabMenuButton/KebabMenuButton.test.tsx | 90 +
.../src/components/KebabMenuButton/index.tsx | 83 +
.../src/components/ListView/CardCollection.tsx | 2 +-
.../ListView/Filters/CompactSelectPanel.tsx | 6 +-
superset-frontend/src/components/ListView/types.ts | 1 +
superset-frontend/src/components/index.ts | 1 +
.../src/dashboard/actions/dashboardLayout.ts | 2 +-
.../src/dashboard/actions/dashboardState.ts | 3 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 2 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 14 +-
.../src/dashboard/components/Dashboard.tsx | 4 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 46 +-
.../DashboardBuilder/DashboardBuilder.tsx | 24 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 3 +-
.../components/SliceHeader/SliceHeader.test.tsx | 10 +-
.../src/dashboard/components/SliceHeader/index.tsx | 14 +-
.../SliceHeaderControls.subdirectory.test.tsx | 2 +-
.../SliceHeaderControls.test.tsx | 2 +-
.../components/SliceHeaderControls/index.tsx | 52 +-
.../components/SliceHeaderControls/types.ts | 5 +-
.../src/dashboard/components/dnd/DragHandle.tsx | 10 +-
.../components/gridComponents/Chart/Chart.test.tsx | 22 +-
.../components/gridComponents/Chart/Chart.tsx | 44 +-
.../components/gridComponents/Header/Header.tsx | 7 +-
.../components/gridComponents/Tabs/Tabs.test.tsx | 52 +
.../FilterBar/ActionButtons/index.tsx | 60 +-
.../FilterBar/CrossFilters/CrossFilter.tsx | 20 +-
.../FilterBar/CrossFilters/CrossFilterTag.tsx | 10 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 8 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 110 +
.../FilterControls.overflow.test.tsx | 3 +-
.../FilterBar/UrlFilters/UrlFilterTag.tsx | 8 +-
.../FiltersConfigModal/FilterConfigPane.test.tsx | 4 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 2 +-
.../FiltersConfigForm/DependencyList.tsx | 6 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 10 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 28 +-
.../FiltersConfigModal/ItemTitleContainer.tsx | 2 +-
.../hooks/useItemStateManager.ts | 3 +-
.../FiltersConfigModal/hooks/useModalSaveLogic.ts | 3 +-
.../transformers/customizationTransformer.ts | 8 +-
.../transformers/filterTransformer.ts | 4 +-
.../dashboard/components/nativeFilters/state.ts | 11 +-
.../dashboard/containers/DashboardPage.test.tsx | 45 +-
.../src/dashboard/containers/DashboardPage.tsx | 42 +-
.../src/dashboard/reducers/dashboardInfo.ts | 3 +-
.../src/dashboard/reducers/nativeFilters.ts | 5 +-
superset-frontend/src/dashboard/types.ts | 3 +-
.../src/dashboard/util/activeDashboardFilters.ts | 2 +-
.../util/charts/getFormDataWithExtraFilters.ts | 4 +-
.../src/dashboard/util/risonFilters.ts | 6 +-
superset-frontend/src/dataMask/reducer.ts | 2 +-
superset-frontend/src/embedded/index.test.tsx | 66 +
superset-frontend/src/embedded/index.tsx | 2 +
.../DataTableControl/FilterInput.test.tsx | 37 +
.../explore/components/DataTableControl/index.tsx | 15 +-
.../components/DataTablesPane/DataTablesPane.tsx | 6 +
.../components/ResultsPaneOnDashboard.tsx | 2 +
.../DataTablesPane/components/useResultsPane.tsx | 94 +-
.../components/DataTablesPane/test/fixture.tsx | 8 +-
.../DataTablesPane/test/useResultsPane.test.tsx | 201 +
.../src/explore/components/DataTablesPane/types.ts | 4 +-
.../explore/components/ExploreChartPanel/index.tsx | 1 +
.../ExploreContainer/ExploreDndContext.tsx | 61 +
.../src/explore/components/SaveModal.test.tsx | 16 +
.../src/explore/components/SaveModal.tsx | 1 +
.../controls/ColumnConfigControl/types.ts | 4 +-
.../components/controls/DateFilterControl/types.ts | 22 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 3 +-
.../index.tsx | 5 +-
.../LayerConfigsPopoverContent.tsx | 3 +-
.../explore/components/controls/SelectControl.tsx | 3 +-
.../components/controls/TextAreaControl.tsx | 16 +-
.../components/controls/VerticalRadioControl.tsx | 8 +-
.../components/controls/ViewQueryModal.test.tsx | 100 +
.../explore/components/controls/ViewQueryModal.tsx | 60 +-
.../components/controls/VizTypeControl/VizTile.tsx | 50 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 6 +-
.../useExploreAdditionalActionsMenu/index.tsx | 4 +-
.../explore/controlUtils/standardizedFormData.ts | 3 +-
superset-frontend/src/explore/types.ts | 6 +-
.../src/features/alerts/AlertReportModal.test.tsx | 86 +-
.../src/features/alerts/AlertReportModal.tsx | 29 +-
.../alerts/components/AlertReportCronScheduler.tsx | 1 +
.../alerts/components/NotificationMethod.test.tsx | 231 +
.../alerts/components/NotificationMethod.tsx | 248 +-
.../src/features/charts/ChartCard.tsx | 12 +-
.../src/features/dashboards/DashboardCard.tsx | 15 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +
.../DatabaseConnectionForm/TableCatalog.tsx | 4 +
.../DatabaseConnectionForm/ValidatedInputField.tsx | 2 +
.../databases/DatabaseModal/ModalHeader.test.tsx | 58 +
.../databases/DatabaseModal/ModalHeader.tsx | 21 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 150 +-
.../databases/DatabaseModal/index.test.tsx | 229 +-
.../src/features/databases/DatabaseModal/index.tsx | 55 +-
.../features/databases/UploadDataModel/index.tsx | 11 +-
superset-frontend/src/features/databases/types.ts | 3 +-
.../datasets/AddDataset/Footer/Footer.test.tsx | 2 +-
.../src/features/home/ActivityTable.tsx | 6 +-
superset-frontend/src/features/home/Menu.tsx | 23 +-
superset-frontend/src/features/home/RightMenu.tsx | 10 +-
.../src/features/home/SavedQueries.tsx | 21 +-
.../src/features/roles/RoleListEditModal.test.tsx | 16 +-
.../components/Select/SelectFilterPlugin.test.tsx | 55 +
.../components/Select/SelectFilterPlugin.tsx | 30 +-
.../src/hooks/apiResources/queries.ts | 2 +-
.../src/middleware/loggerMiddleware.ts | 6 +-
superset-frontend/src/pages/Chart/index.tsx | 3 +-
.../FileHandler/FileHandler.subdirectory.test.tsx | 4 +-
.../src/pages/FileHandler/index.test.tsx | 4 +-
.../src/pages/SavedQueryList/index.tsx | 3 +-
superset-frontend/src/pages/Tags/index.tsx | 24 +-
superset-frontend/src/preamble.ts | 71 +-
superset-frontend/src/setup/setupApp.ts | 3 +-
.../src/theme/utils/antdTokenNames.test.ts | 34 +
.../src/theme/utils/antdTokenNames.ts | 26 +
superset-frontend/src/types/bootstrapTypes.ts | 1 +
superset-frontend/src/utils/downloadAsImage.tsx | 1 -
superset-frontend/src/views/CRUD/hooks.ts | 58 +-
superset-frontend/src/views/CRUD/types.ts | 7 +-
superset-frontend/webpack.config.js | 23 +-
superset-websocket/package-lock.json | 140 +-
superset-websocket/package.json | 6 +-
superset/charts/api.py | 110 +-
superset/charts/filters.py | 38 +
superset/charts/schemas.py | 3 +-
superset/commands/chart/exceptions.py | 10 +
superset/commands/chart/importers/v1/utils.py | 109 +-
.../commands/chart/restore.py | 36 +-
superset/commands/database/delete.py | 40 +-
superset/commands/database/exceptions.py | 37 +
superset/commands/database/sync_permissions.py | 37 +-
superset/commands/database/uploaders/base.py | 29 +-
superset/commands/database/validate.py | 149 +-
superset/commands/dataset/create.py | 9 +
superset/commands/dataset/duplicate.py | 15 +-
superset/commands/dataset/exceptions.py | 43 +
superset/commands/dataset/importers/v1/utils.py | 244 +-
superset/commands/dataset/restore.py | 60 +
superset/commands/report/exceptions.py | 14 +
superset/commands/report/execute.py | 255 +-
superset/commands/restore.py | 15 +-
superset/config.py | 42 +-
superset/connectors/sqla/models.py | 16 +-
superset/daos/base.py | 56 +-
superset/daos/dashboard.py | 30 +-
superset/daos/dataset.py | 184 +-
superset/daos/datasource.py | 11 +
superset/daos/semantic_layer.py | 34 +
superset/dashboards/filters.py | 29 +-
superset/databases/schemas.py | 22 +
superset/datasets/api.py | 129 +-
superset/datasets/filters.py | 19 +
superset/db_engine_specs/clickhouse.py | 7 +-
superset/db_engine_specs/databend.py | 76 +-
superset/db_engine_specs/databricks.py | 195 +-
superset/db_engine_specs/redshift.py | 18 +
superset/mcp_service/CLAUDE.md | 13 +-
superset/mcp_service/SECURITY.md | 48 +
superset/mcp_service/app.py | 42 +-
superset/mcp_service/auth.py | 116 +-
superset/mcp_service/chart/chart_utils.py | 146 +-
superset/mcp_service/chart/compile.py | 51 +-
superset/mcp_service/chart/plugin.py | 262 +
superset/mcp_service/chart/plugins/__init__.py | 58 +
superset/mcp_service/chart/plugins/big_number.py | 248 +
superset/mcp_service/chart/plugins/handlebars.py | 194 +
.../mcp_service/chart/plugins/mixed_timeseries.py | 173 +
superset/mcp_service/chart/plugins/pie.py | 140 +
superset/mcp_service/chart/plugins/pivot_table.py | 164 +
superset/mcp_service/chart/plugins/table.py | 136 +
superset/mcp_service/chart/plugins/xy.py | 202 +
superset/mcp_service/chart/registry.py | 279 +
superset/mcp_service/chart/schemas.py | 210 +-
superset/mcp_service/chart/tool/generate_chart.py | 20 +-
superset/mcp_service/chart/tool/get_chart_info.py | 15 +
superset/mcp_service/chart/tool/update_chart.py | 25 +
.../chart/validation/dataset_validator.py | 275 +-
.../chart/validation/runtime/__init__.py | 100 +-
.../chart/validation/schema_validator.py | 483 +-
superset/mcp_service/composite_token_verifier.py | 40 +-
superset/mcp_service/dashboard/schemas.py | 4 +-
.../dashboard/tool/duplicate_dashboard.py | 6 +-
.../dashboard/tool/manage_native_filters.py | 4 +-
.../dashboard/tool/remove_chart_from_dashboard.py | 8 +-
.../mcp_service/dataset/tool/create_dataset.py | 8 +
.../dataset/tool/create_virtual_dataset.py | 15 +
superset/mcp_service/dataset/tool/query_dataset.py | 83 +-
superset/mcp_service/flask_singleton.py | 22 +
superset/mcp_service/guest_token_verifier.py | 180 +
superset/mcp_service/mcp_config.py | 199 +-
superset/mcp_service/role/schemas.py | 53 +-
.../mcp_service/semantic_layer}/__init__.py | 0
superset/mcp_service/semantic_layer/schemas.py | 302 +
.../{sql_lab => semantic_layer}/tool/__init__.py | 23 +-
.../tool/get_compatible_dimensions.py | 250 +
.../semantic_layer/tool/get_compatible_metrics.py | 254 +
.../mcp_service/semantic_layer/tool/get_table.py | 529 +
.../semantic_layer/tool/list_metrics.py | 338 +
superset/mcp_service/server.py | 1 +
superset/mcp_service/user/schemas.py | 45 +-
superset/mcp_service/utils/query_utils.py | 57 +
superset/mcp_service/utils/response_utils.py | 58 +-
...12-00_7c4a8d09ca37_add_deleted_at_to_slices.py} | 47 +-
..._12-10_3a8e6f2c1b95_add_deleted_at_to_tables.py | 58 +
...-00_b4a3f2e1d0c9_fix_security_view_menu_case.py | 125 +
superset/models/core.py | 36 +-
superset/models/helpers.py | 79 +-
superset/models/slice.py | 8 +-
superset/models/sql_lab.py | 22 +-
superset/queries/saved_queries/api.py | 5 +
superset/queries/saved_queries/schemas.py | 10 +-
superset/reports/notifications/slack.py | 7 +-
superset/reports/notifications/slackv2.py | 57 +-
superset/security/manager.py | 304 +-
superset/semantic_layers/mapper.py | 51 +-
superset/semantic_layers/models.py | 12 +-
superset/sql/parse.py | 29 +-
superset/tags/api.py | 16 +-
superset/tags/filters.py | 30 +-
superset/tasks/cache.py | 208 +-
superset/tasks/native_filter_cache.py | 245 +
superset/templates/superset/spa.html | 30 +
superset/translations/ar/LC_MESSAGES/messages.po | 2537 ++-
superset/translations/ca/LC_MESSAGES/messages.po | 1611 +-
superset/translations/cs/LC_MESSAGES/messages.po | 639 +-
superset/translations/de/LC_MESSAGES/messages.po | 57 +-
superset/translations/do-not-translate.txt | 59 +
superset/translations/en/LC_MESSAGES/messages.po | 43 +
superset/translations/es/LC_MESSAGES/messages.po | 64 +-
superset/translations/fa/LC_MESSAGES/messages.po | 2038 +-
superset/translations/fi/LC_MESSAGES/messages.po | 167 +-
superset/translations/fr/LC_MESSAGES/messages.po | 5346 ++---
superset/translations/it/LC_MESSAGES/messages.po | 19373 +++++++++++++------
superset/translations/ja/LC_MESSAGES/messages.po | 43 +
superset/translations/ko/LC_MESSAGES/messages.po | 17988 ++++++++++++++---
superset/translations/lv/LC_MESSAGES/messages.po | 51 +-
superset/translations/messages.pot | 70 +
superset/translations/mi/LC_MESSAGES/messages.po | 1603 +-
superset/translations/nl/LC_MESSAGES/messages.po | 2341 ++-
superset/translations/pl/LC_MESSAGES/messages.po | 2017 +-
superset/translations/pt/LC_MESSAGES/messages.po | 15576 ++++++++++++---
.../translations/pt_BR/LC_MESSAGES/messages.po | 2010 +-
superset/translations/ro/LC_MESSAGES/messages.po | 37 +
superset/translations/ru/LC_MESSAGES/messages.po | 621 +-
superset/translations/sk/LC_MESSAGES/messages.po | 625 +-
superset/translations/sl/LC_MESSAGES/messages.po | 1920 +-
superset/translations/sr/LC_MESSAGES/messages.po | 37 +
.../translations/sr_Latn/LC_MESSAGES/messages.po | 37 +
superset/translations/th/LC_MESSAGES/messages.po | 728 +-
superset/translations/tr/LC_MESSAGES/messages.po | 2142 +-
superset/translations/uk/LC_MESSAGES/messages.po | 621 +-
superset/translations/zh/LC_MESSAGES/messages.po | 3520 +++-
.../translations/zh_TW/LC_MESSAGES/messages.po | 5123 +++--
superset/utils/core.py | 4 +-
.../utils/pandas_postprocessing/contribution.py | 4 +-
superset/utils/pandas_postprocessing/rank.py | 3 +-
superset/utils/slack.py | 102 +-
superset/utils/urls.py | 34 +-
superset/views/base.py | 71 +-
superset/views/core.py | 6 +-
superset/views/filters.py | 28 +-
superset/views/groups.py | 2 +-
superset/views/logs.py | 2 +-
superset/views/roles.py | 2 +-
superset/views/user_registrations.py | 2 +-
superset/views/users_list.py | 2 +-
tests/integration_tests/charts/commands_tests.py | 2 +-
.../integration_tests/charts/soft_delete_tests.py | 579 +
tests/integration_tests/core_tests.py | 16 +
tests/integration_tests/dashboard_utils.py | 29 +-
tests/integration_tests/datasets/api_tests.py | 71 +-
.../datasets/soft_delete_tests.py | 584 +
tests/integration_tests/datasource_tests.py | 2 +-
.../db_engine_specs/presto_tests.py | 12 +-
...3f2e1d0c9_fix_security_view_menu_case__tests.py | 213 +
.../queries/saved_queries/api_tests.py | 63 +
tests/integration_tests/query_context_tests.py | 4 +
tests/integration_tests/reports/commands_tests.py | 13 +
tests/integration_tests/security/api_tests.py | 10 +-
tests/integration_tests/security_tests.py | 73 +
tests/integration_tests/sqla_models_tests.py | 15 +-
tests/integration_tests/tags/api_tests.py | 40 +
.../charts/commands/importers/v1/import_test.py | 181 +
tests/unit_tests/commands/chart/restore_test.py | 90 +
.../commands/databases/sync_permissions_test.py | 46 +
.../commands/databases/upload_command_test.py | 87 +
.../unit_tests/commands/databases/validate_test.py | 484 +
tests/unit_tests/commands/dataset/restore_test.py | 181 +
tests/unit_tests/commands/dataset/test_create.py | 81 +
.../unit_tests/commands/dataset/test_duplicate.py | 68 +-
tests/unit_tests/commands/report/execute_test.py | 440 +-
.../commands/test_base_restore_command.py | 16 +-
.../common/test_query_context_factory.py | 4 +-
tests/unit_tests/common/test_time_shifts.py | 54 +
tests/unit_tests/connectors/sqla/utils_test.py | 74 +
tests/unit_tests/dao/base_dao_test.py | 64 +
tests/unit_tests/dao/dashboard_test.py | 119 +
tests/unit_tests/dao/dataset_test.py | 182 +
tests/unit_tests/dao/datasource_test.py | 59 +
tests/unit_tests/databases/commands/delete_test.py | 129 +
tests/unit_tests/databases/schema_tests.py | 27 +
.../datasets/commands/importers/v1/import_test.py | 541 +-
.../datasets/test_datetime_format_detector.py | 4 +-
.../unit_tests/db_engine_specs/test_clickhouse.py | 26 +-
tests/unit_tests/db_engine_specs/test_databend.py | 37 +
.../unit_tests/db_engine_specs/test_databricks.py | 731 +-
.../db_engine_specs/test_databricks_multi_cloud.py | 127 +
tests/unit_tests/db_engine_specs/test_starrocks.py | 4 +-
.../mcp_service/chart/test_big_number_chart.py | 23 +-
.../chart/test_chart_config_coercion.py | 279 +
.../mcp_service/chart/test_chart_schemas.py | 48 +
.../mcp_service/chart/test_chart_utils.py | 4 +-
tests/unit_tests/mcp_service/chart/test_compile.py | 4 +-
.../unit_tests/mcp_service/chart/test_registry.py | 252 +
.../mcp_service/chart/test_registry_filters.py | 222 +
.../mcp_service/chart/tool/test_get_chart_info.py | 28 +
.../mcp_service/chart/tool/test_update_chart.py | 241 +
.../validation/test_column_name_normalization.py | 523 +-
.../chart/validation/test_runtime_validator.py | 102 +-
.../dashboard/tool/test_duplicate_dashboard.py | 6 +-
.../dashboard/tool/test_get_dashboard_datasets.py | 9 +-
.../tool/test_remove_chart_from_dashboard.py | 2 +-
.../mcp_service/role/tool/test_role_tools.py | 49 +
.../mcp_service/semantic_layer}/__init__.py | 0
.../mcp_service/semantic_layer/tool}/__init__.py | 0
.../tool/test_get_compatible_dimensions.py | 284 +
.../tool/test_get_compatible_metrics.py | 280 +
.../semantic_layer/tool/test_get_table.py | 299 +
.../semantic_layer/tool/test_list_metrics.py | 329 +
.../mcp_service/test_guest_token_auth.py | 553 +
tests/unit_tests/mcp_service/test_mcp_server.py | 29 +
tests/unit_tests/mcp_service/user/test_schemas.py | 153 +
.../mcp_service/utils/test_query_utils.py | 96 +
.../mcp_service/utils/test_response_utils.py | 109 +
...hboards.py => test_add_deleted_at_to_slices.py} | 117 +-
...hboards.py => test_add_deleted_at_to_tables.py} | 120 +-
tests/unit_tests/models/core_test.py | 313 +
tests/unit_tests/models/helpers_test.py | 102 +-
.../models/multi_space_column_names_test.py | 164 +
.../models/owner_association_tables_test.py | 99 +
tests/unit_tests/models/sql_lab_test.py | 97 +
.../models/test_time_filter_hour_offset.py | 99 +
.../pandas_postprocessing/test_contribution.py | 33 +
.../pandas_postprocessing/test_prophet.py | 7 +-
.../unit_tests/pandas_postprocessing/test_rank.py | 54 +
.../queries/saved_queries_schema_test.py} | 18 +-
.../reports/notifications/slack_tests.py | 676 +-
.../scripts/translations/backfill_po_test.py | 98 +
tests/unit_tests/security/guest_rls_test.py | 4 +-
tests/unit_tests/security/manager_test.py | 720 +
tests/unit_tests/semantic_layers/dao_test.py | 205 +
tests/unit_tests/semantic_layers/mapper_test.py | 156 +-
tests/unit_tests/semantic_layers/models_test.py | 107 +
tests/unit_tests/sql/parse_tests.py | 125 +-
tests/unit_tests/tasks/test_async_queries.py | 52 +
tests/unit_tests/tasks/test_cache.py | 288 +-
tests/unit_tests/tasks/test_native_filter_cache.py | 405 +
tests/unit_tests/test_viz_cache_key.py | 4 +-
tests/unit_tests/utils/slack_test.py | 233 +
tests/unit_tests/utils/test_core.py | 8 +
tests/unit_tests/utils/urls_tests.py | 50 +-
tests/unit_tests/views/test_base.py | 26 +-
tests/unit_tests/views/test_bootstrap_auth.py | 72 +-
593 files changed, 106744 insertions(+), 32124 deletions(-)
mode change 100644 => 100755 .pre-commit-config.yaml
create mode 100644 helm/superset/tests/labels_test.yaml
create mode 100644 scripts/translations/apply_do_not_translate.py
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/emojiWidthPatch.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/emojiWidthPatch.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/DropdownButton/DropdownButton.test.tsx
create mode 100644 superset-frontend/playwright/tests/experimental/explore/results-tab-reuse.spec.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/copyCellValue.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getColumnStateSignature.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/getRowBasicColorFormatter.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/cellSelectionWiring.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/transformProps.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/copyCellValue.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getColumnStateSignature.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getRowBasicColorFormatter.test.ts
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/CategoricalDeckGLContainer.test.tsx
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/Multi/Multi.color.test.tsx
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/utilities/tooltipUtils.test.tsx
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/utils/addColor.test.ts
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/utils/addColor.ts
create mode 100644 superset-frontend/src/SqlLab/components/ResultSet/buildResultsGridThemeOverrides.test.ts
create mode 100644 superset-frontend/src/SqlLab/components/ResultSet/buildResultsGridThemeOverrides.ts
create mode 100644 superset-frontend/src/components/KebabMenuButton/KebabMenuButton.test.tsx
create mode 100644 superset-frontend/src/components/KebabMenuButton/index.tsx
create mode 100644 superset-frontend/src/embedded/index.test.tsx
mode change 100644 => 100755 superset-frontend/src/explore/components/DataTableControl/FilterInput.test.tsx
mode change 100644 => 100755 superset-frontend/src/explore/components/DataTableControl/index.tsx
create mode 100644 superset-frontend/src/explore/components/DataTablesPane/test/useResultsPane.test.tsx
create mode 100644 superset-frontend/src/features/databases/DatabaseModal/ModalHeader.test.tsx
copy tests/unit_tests/mcp_service/test_schema_discovery.py => superset/commands/chart/restore.py (53%)
create mode 100644 superset/commands/dataset/restore.py
create mode 100755 superset/mcp_service/chart/plugin.py
create mode 100644 superset/mcp_service/chart/plugins/__init__.py
create mode 100644 superset/mcp_service/chart/plugins/big_number.py
create mode 100644 superset/mcp_service/chart/plugins/handlebars.py
create mode 100644 superset/mcp_service/chart/plugins/mixed_timeseries.py
create mode 100644 superset/mcp_service/chart/plugins/pie.py
create mode 100644 superset/mcp_service/chart/plugins/pivot_table.py
create mode 100644 superset/mcp_service/chart/plugins/table.py
create mode 100755 superset/mcp_service/chart/plugins/xy.py
create mode 100644 superset/mcp_service/chart/registry.py
mode change 100644 => 100755 superset/mcp_service/chart/validation/runtime/__init__.py
create mode 100644 superset/mcp_service/guest_token_verifier.py
copy {superset-core/src/superset_core/common => superset/mcp_service/semantic_layer}/__init__.py (100%)
create mode 100644 superset/mcp_service/semantic_layer/schemas.py
copy superset/mcp_service/{sql_lab => semantic_layer}/tool/__init__.py (64%)
create mode 100644 superset/mcp_service/semantic_layer/tool/get_compatible_dimensions.py
create mode 100644 superset/mcp_service/semantic_layer/tool/get_compatible_metrics.py
create mode 100644 superset/mcp_service/semantic_layer/tool/get_table.py
create mode 100644 superset/mcp_service/semantic_layer/tool/list_metrics.py
create mode 100644 superset/mcp_service/utils/query_utils.py
copy superset/migrations/versions/{2025-07-15_18-41_cd1fb11291f2_add_theme_id_to_dashboard_model.py => 2026-05-08_12-00_7c4a8d09ca37_add_deleted_at_to_slices.py} (53%)
create mode 100644 superset/migrations/versions/2026-05-08_12-10_3a8e6f2c1b95_add_deleted_at_to_tables.py
create mode 100644 superset/migrations/versions/2026-05-29_00-00_b4a3f2e1d0c9_fix_security_view_menu_case.py
create mode 100644 superset/tasks/native_filter_cache.py
create mode 100644 superset/translations/do-not-translate.txt
create mode 100644 tests/integration_tests/charts/soft_delete_tests.py
create mode 100644 tests/integration_tests/datasets/soft_delete_tests.py
create mode 100644 tests/integration_tests/migrations/b4a3f2e1d0c9_fix_security_view_menu_case__tests.py
create mode 100644 tests/unit_tests/commands/chart/restore_test.py
create mode 100644 tests/unit_tests/commands/dataset/restore_test.py
create mode 100644 tests/unit_tests/dao/dashboard_test.py
create mode 100644 tests/unit_tests/dao/datasource_test.py
create mode 100644 tests/unit_tests/databases/commands/delete_test.py
create mode 100644 tests/unit_tests/db_engine_specs/test_databricks_multi_cloud.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_config_coercion.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_registry.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_registry_filters.py
mode change 100644 => 100755 tests/unit_tests/mcp_service/chart/validation/test_column_name_normalization.py
mode change 100644 => 100755 tests/unit_tests/mcp_service/chart/validation/test_runtime_validator.py
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/semantic_layer}/__init__.py (100%)
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/semantic_layer/tool}/__init__.py (100%)
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_get_compatible_dimensions.py
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_get_compatible_metrics.py
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_get_table.py
create mode 100644 tests/unit_tests/mcp_service/semantic_layer/tool/test_list_metrics.py
create mode 100644 tests/unit_tests/mcp_service/test_guest_token_auth.py
create mode 100644 tests/unit_tests/mcp_service/user/test_schemas.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_query_utils.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_response_utils.py
copy tests/unit_tests/migrations/{test_add_deleted_at_to_dashboards.py => test_add_deleted_at_to_slices.py} (54%)
copy tests/unit_tests/migrations/{test_add_deleted_at_to_dashboards.py => test_add_deleted_at_to_tables.py} (54%)
create mode 100644 tests/unit_tests/models/multi_space_column_names_test.py
create mode 100644 tests/unit_tests/models/owner_association_tables_test.py
create mode 100644 tests/unit_tests/models/test_time_filter_hour_offset.py
create mode 100644 tests/unit_tests/pandas_postprocessing/test_rank.py
copy tests/{integration_tests/fixtures/client.py => unit_tests/queries/saved_queries_schema_test.py} (60%)
create mode 100644 tests/unit_tests/tasks/test_native_filter_cache.py