You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ha...@apache.org on 2026/07/08 17:05:14 UTC
(superset) branch chore/unify-dependabot-configs-for-multi-workspace-superset-frontend updated (a300d2a2794 -> 74f49879a48)
This is an automated email from the ASF dual-hosted git repository.
hainenber pushed a change to branch chore/unify-dependabot-configs-for-multi-workspace-superset-frontend
in repository https://gitbox.apache.org/repos/asf/superset.git
from a300d2a2794 chore(dependabot): unify npm Dependabot config used for multi-workspace `superset-frontend`
add 56bd8ed0be1 chore(deps): bump azure/setup-helm from 5.0.0 to 5.0.1 (#41570)
add 2c476485886 chore(deps-dev): bump globals from 17.6.0 to 17.7.0 in /docs (#41571)
add c4c531a8552 chore(deps): bump actions/cache from 5.0.5 to 6.1.0 (#41572)
add e0e1831d507 chore(deps): bump actions/setup-java from 5.3.0 to 5.4.0 (#41576)
add 92f48b07257 chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0 (#41573)
add 7827d43ea6e fix(embedded): show already-added allowed domains in embed modal (closes #35328) (#41399)
add 25f7b907611 fix(dashboard): remove stray focus outline on Filter Badge popover (closes #38789) (#41398)
add ef4c6123b9d fix(sqllab): preserve whitespace in grid result cells (#41135)
add a2b5fda6610 fix(Table Chart): Show correct cache time moment for Query2 (#37482)
add bbab644d122 chore(deps-dev): bump typescript-eslint from 8.61.1 to 8.62.0 in /docs (#41575)
add 7245a092eb5 chore(ci): scope zizmor adhoc-packages on setup-supersetbot action (#41547)
add 7de77a35bc8 chore(ci): pin @action-validator versions in GHA validator workflow (#41545)
add 95d688fb057 build(embedded-sdk): remove test files and related files from build artifact to be published (#41584)
add 2b6806c0904 chore(deps): bump js-yaml from 5.0.0 to 5.1.0 in /docs (#41566)
add c11fa206ce3 feat(mcp): add duplicate_dashboard tool (#40959)
add c60d8bb656f feat(mcp): add tags + typed metadata fields to update_dashboard (#40957)
add 42a5f64256b chore(ci): silence zizmor adhoc-packages note for supersetbot install (#41546)
add e15dc5735fb fix(reports): pre-commit tab permalinks before state machine transaction (#41096)
add 805c12ef744 fix(dashboard): prevent double-click on create dashboard from creating duplicates (#40833)
add 4bf203ee708 chore(config): default SMTP_SSL_SERVER_AUTH to True (#40647)
add a8f43890b1d chore(superset-ui-core): forward-compat fixes for TypeScript 6.0 (Phase B) (#39535)
add fd86eec889c chore(deps): bump echarts from 5.6.0 to 6.1.0 in /superset-frontend (#40264)
add 1e130feb807 chore(deps): bump marshmallow-union from 0.1.15 to 0.1.15.post1 (#41539)
add bf88c628149 feat(mcp): add manage_native_filters tool (#40960)
add 2bd9ab4c597 feat(mcp): add remove_chart_from_dashboard tool (#40958)
add fd9c84be430 feat(mcp): add get_dashboard_datasets tool (#40961)
add 2a1f632daa9 fix(dashboard): surface size, limit, and config key in oversized dashboard error (#41532)
add 35194fe4d59 fix(i18n): key translation-regression check on per-msgid transitions (#41596)
add ce9b9b05133 feat(i18n): add Japanese (ja) translations (AI-generated, needs review) (#41466)
add 3e88b487b32 fix(point-cluster-map): guard invalid point radii (#40393)
add 7cc7e9f6e34 fix(async-query): prevent JWT InvalidSubjectError for guest users (#37862)
add 16e1f41ceff chore(deps): bump swagger-ui-react from 5.32.7 to 5.32.8 in /docs (#41614)
add b9e3f0aa1e2 feat(soft-delete): gate soft delete behind a temporary SOFT_DELETE release toggle (#41166)
add 36510200147 fix(sql): cap parser input length via SQL_MAX_PARSE_LENGTH config (#40499)
add 2da2db6c7c0 feat(sql): schema-qualified table denylist + information_schema/lo_* defaults (#41120)
add 6d2b94ceb80 fix(currency): derive default symbol position from locale when unset (#40931)
add 438d4d569f8 test(sqllab): repair broken TablePreview and SavedQueryList jest tests (#41628)
add da4cae16574 chore(deps): bump fastmcp from >=3.2.4 to >=3.4.2 (#41592)
add 7f4cac63c90 fix(mcp): escape LIKE wildcards in find_users to prevent user enumeration (#41593)
add 55b2da75f65 fix(echarts): allow forcing categorical x-axis for temporal columns (#41221)
add 2d2a72b721f fix(sqllab): show non-ASCII text in array/JSON columns instead of \uXXXX escapes (#41533)
add 792d6776349 fix(reports): respect CSV_EXPORT sep and decimal config in email reports (#38616)
add b3c709b3d5e feat(i18n): backfill German (de) translations (AI-generated, needs review) (#41608)
add eeacd9b6ddc feat(i18n): backfill Latvian (lv) translations (AI-generated, needs review) (#41612)
add 692f81d9451 feat(i18n): backfill Finnish (fi) translations (AI-generated, needs review) (#41613)
add 7d7c3ce7239 feat(ci): install `helm-docs` directly instead of using whole `brew` setup (#41629)
add b7d5de8e524 fix(sqllab): truncate long tab names in the overflow ("...") dropdown (#41585)
add bed1034c2f7 refactor(frontend): centralize subdirectory URL prefixing behind nav helpers (#39925)
add 6c579196474 chore(codeowners): update maintainer assignments (#41634)
add e0a3b1c10cf fix(mcp): document select_columns valid fields and URL scheme for preview tools (#41595)
add 393adc45356 refactor(db): composite PK on M2M association tables (#39859)
add e58ce1cf39d fix(dashboard): pre-filter time grain for display controls (#40000)
add f2e322c3c03 chore(deps-dev): bump sigstore from 4.1.0 to 4.1.1 in /superset-frontend (#41638)
add 8be255de408 chore(i18n): harden backfill_po — full language-name map + resilient batch translation (#41644)
add af0a55a4f34 feat(dashboards): soft-delete and restore (#40128)
add b3197c9b5e0 fix(table-chart): fix "Search by" control visibility and improve table controls layout (#36073)
add c718f717cbc feat(i18n): backfill Spanish (es) translations (AI-generated, needs review) (#41609)
add d1f7dd9c672 fix(deps): override fast-uri to 3.1.3 to fix CVE-2026-13676 (#41631)
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 dc5c5af4671 docs: Add geOrchestra project and pi-geosolutions to In the Wild (#41801)
add 74f49879a48 Merge branch 'master' into chore/unify-dependabot-configs-for-multi-workspace-superset-frontend
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 14 +-
.github/actions/setup-supersetbot/action.yml | 2 +
.github/dependabot.yml | 6 -
.github/workflows/bump-python-package.yml | 2 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/github-action-validator.yml | 5 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/pre-commit.yml | 19 +-
.github/workflows/release.yml | 4 +-
.github/workflows/showtime-trigger.yml | 7 +-
.github/workflows/superset-docs-deploy.yml | 2 +-
.github/workflows/superset-helm-lint.yml | 2 +-
.github/workflows/superset-helm-release.yml | 2 +-
.pre-commit-config.yaml | 0
Dockerfile | 4 +-
RESOURCES/INTHEWILD.yaml | 39 +-
UPDATING.md | 173 +
docs/admin_docs/configuration/aws-iam.mdx | 20 +-
.../configuration/configuring-superset.mdx | 18 +
docs/developer_docs/contributing/howtos.md | 28 +-
docs/docusaurus.config.ts | 2 +-
docs/package.json | 41 +-
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 | 10 +-
docs/static/img/logos/camptocamp.svg | Bin 0 -> 14528 bytes
docs/static/img/logos/craig.png | Bin 0 -> 40696 bytes
docs/static/img/logos/geo2france.png | Bin 0 -> 4687 bytes
docs/static/img/logos/geobretagne.svg | Bin 0 -> 7203 bytes
docs/static/img/logos/georchestra.svg | Bin 0 -> 12615 bytes
docs/static/img/logos/jDev.svg | Bin 0 -> 26135 bytes
docs/static/img/logos/mel.jpg | Bin 0 -> 27292 bytes
docs/static/img/logos/pi-Geosolutions.png | Bin 0 -> 22032 bytes
.../img/logos/rennes-ville-metropole_noir.svg | Bin 0 -> 4242 bytes
docs/tsconfig.json | 1 -
.../version-6.0.0/configuration/databases.mdx | 74 +
docs/yarn.lock | 9070 +++++----
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 | 28 +-
requirements/base.in | 2 +-
requirements/base.txt | 12 +-
requirements/development.txt | 83 +-
scripts/translations/apply_do_not_translate.py | 128 +
scripts/translations/babel_update.sh | 8 +
scripts/translations/backfill_po.py | 162 +-
.../translations/check_translation_regression.py | 229 +-
superset-embedded-sdk/babel.config.js | 1 +
superset-embedded-sdk/package-lock.json | 1410 +-
superset-embedded-sdk/package.json | 10 +-
superset-embedded-sdk/tsconfig.json | 1 +
.../cypress-base/cypress/e2e/explore/utils.ts | 6 +-
.../cypress-base/cypress/utils/urls.ts | 9 +-
superset-frontend/jest.config.js | 5 +-
superset-frontend/package-lock.json | 4956 ++---
superset-frontend/package.json | 59 +-
.../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 +-
.../src/shared-controls/customControls.tsx | 7 +-
.../superset-ui-chart-controls/src/types.ts | 13 +-
.../test/operators/renameOperator.test.ts | 24 +
.../test/operators/utils/timeOffset.test.ts | 23 +
.../test/shared-controls/customControls.test.tsx | 36 +-
.../packages/superset-ui-core/package.json | 14 +-
.../src/chart/clients/ChartClient.ts | 4 +-
.../src/chart/components/StatefulChart.tsx | 7 +-
.../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/AsyncEsmComponent/index.tsx | 10 +-
.../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 +
.../DropdownContainer/DropdownContainer.tsx | 4 +-
.../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 | 15 +-
.../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/ModalTrigger/index.tsx | 20 +-
.../src/components/PageHeaderWithActions/index.tsx | 5 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 5 +-
.../src/components/Select/AsyncSelect.test.tsx | 19 +
.../src/components/Select/AsyncSelect.tsx | 88 +-
.../src/components/Select/Select.stories.tsx | 5 +-
.../src/components/Select/Select.test.tsx | 17 +
.../src/components/Select/Select.tsx | 67 +-
.../src/components/Select/styles.tsx | 10 +-
.../src/components/Table/VirtualTable.tsx | 4 +-
.../Table/utils/InteractiveTableUtils.ts | 2 +-
.../src/components/TableCollection/index.tsx | 18 +-
.../superset-ui-core/src/components/Tabs/Tabs.tsx | 14 +-
.../src/components/ThemedAgGridReact/index.tsx | 1 +
.../src/components/TimezoneSelector/index.tsx | 12 +-
.../src/connection/SupersetClientClass.ts | 26 +-
.../src/connection/callApi/parseResponse.ts | 33 +-
.../superset-ui-core/src/connection/index.ts | 3 +
.../src/connection/normalizeBackendUrls.ts | 59 +
.../superset-ui-core/src/connection/types.ts | 23 +-
.../src/currency-format/CurrencyFormatter.ts | 38 +-
.../src/currency-format/currencyLocale.ts | 52 +
.../superset-ui-core/src/currency-format/index.ts | 6 +
.../src/currency-format/symbolPosition.ts | 93 +
.../superset-ui-core/src/currency-format/types.ts | 8 +-
.../superset-ui-core/src/models/Registry.ts | 4 +-
.../src/query/api/legacy/getDatasourceMetadata.ts | 2 +-
.../src/query/api/v1/handleError.ts | 3 +-
.../src/query/getClientErrorObject.ts | 10 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 14 +-
.../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 +-
.../src/time-comparison/fetchTimeRange.ts | 10 +-
.../superset-ui-core/src/time-comparison/types.ts | 9 +-
.../superset-ui-core/src/utils/html.test.tsx | 17 +
.../superset-ui-core/src/utils/lruCache.ts | 7 +-
.../superset-ui-core/src/utils/mapStyles.test.ts | 16 +
.../superset-ui-core/src/utils/mapStyles.ts | 3 +
.../test/chart/clients/ChartClient.test.ts | 26 +-
.../chart/components/ChartDataProvider.test.tsx | 3 +-
.../SupersetClientAppRootContract.test.ts | 113 +
.../test/connection/normalizeBackendUrls.test.ts | 89 +
.../test/currency-format/CurrencyFormatter.test.ts | 52 +-
.../test/currency-format/currencyLocale.test.ts | 65 +
.../test/currency-format/symbolPosition.test.ts | 74 +
.../query/api/legacy/getDatasourceMetadata.test.ts | 4 +-
.../packages/superset-ui-core/types/assets.d.ts | 1 +
.../playwright/pages/DashboardPage.ts | 4 +-
superset-frontend/playwright/pages/ExplorePage.ts | 46 +
.../tests/dataset/create-dataset.spec.ts | 3 +-
.../experimental/explore/results-tab-reuse.spec.ts | 123 +
superset-frontend/playwright/utils/urls.ts | 2 +-
.../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 | 96 +-
.../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 +-
.../src/components/ScatterPlotOverlay.tsx | 8 +-
.../test/ScatterPlotOverlay.test.tsx | 52 +-
.../plugins/plugin-chart-table/package.json | 2 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 54 +-
.../DataTable/components/SearchSelectDropdown.tsx | 17 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 80 +-
.../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 | 32 +-
.../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 +-
.../spec/helpers/sourceTreeScanner.ts | 183 +
.../spec/helpers/withApplicationRoot.ts | 53 +
.../src/SqlLab/SqlLabGlobalStyles.tsx | 30 +
.../src/SqlLab/actions/sqlLab.test.ts | 83 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 26 +-
.../src/SqlLab/components/QueryTable/index.tsx | 31 +-
.../src/SqlLab/components/QueryTable/styles.ts | 1 +
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 168 +
.../buildResultsGridThemeOverrides.test.ts | 94 +
.../ResultSet/buildResultsGridThemeOverrides.ts | 46 +
.../src/SqlLab/components/ResultSet/index.tsx | 56 +-
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 38 +
.../SqlLab/components/SaveDatasetModal/index.tsx | 16 +-
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 69 +
.../src/SqlLab/components/SaveQuery/index.tsx | 21 +-
.../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx | 587 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 6 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 38 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 6 +-
.../components/TablePreview/TablePreview.test.tsx | 6 +-
.../middlewares/persistSqlLabStateEnhancer.ts | 5 +-
superset-frontend/src/SqlLab/reducers/sqlLab.ts | 3 +-
...zationTimeGrainsTransformer.integration.test.ts | 153 +
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 25 +-
.../TimeGrainPreFilter.integration.test.tsx | 181 +
.../components/TimeGrain/types.ts | 1 +
.../Chart/useDrillDetailMenuItems/index.tsx | 58 +-
.../useDrillDetailMenuItems.test.tsx | 18 +
.../Datasource/FoldersEditor/TreeItem.styles.ts | 24 +-
.../Datasource/FoldersEditor/treeUtils.ts | 4 +-
.../DatasourceEditor/DatasourceEditor.tsx | 6 +-
.../DashboardLinksExternal.test.tsx | 10 +-
.../components/DashboardLinksExternal/index.tsx | 2 +-
.../tests/DatasourceEditor.test.tsx | 55 +
.../ErrorMessage/OAuth2RedirectMessage.test.tsx | 62 +-
.../ErrorMessage/OAuth2RedirectMessage.tsx | 19 +-
.../src/components/FacePile/index.tsx | 2 +-
.../src/components/FilterableTable/index.tsx | 22 +-
.../src/components/FilterableTable/types.ts | 3 +
.../src/components/GridTable/Header.test.tsx | 6 +-
.../src/components/GridTable/index.tsx | 28 +-
.../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 +-
.../src/components/ListView/CrossLinks.test.tsx | 7 +-
.../src/components/ListView/CrossLinks.tsx | 2 +-
.../ListView/Filters/CompactSelectPanel.tsx | 6 +-
superset-frontend/src/components/ListView/types.ts | 1 +
.../StreamingExportModal/useStreamingExport.ts | 6 +-
superset-frontend/src/components/Tag/index.tsx | 2 +-
superset-frontend/src/components/index.ts | 1 +
.../src/core/navigation/index.test.ts | 12 +-
superset-frontend/src/core/navigation/index.ts | 6 +-
.../src/dashboard/actions/dashboardLayout.ts | 2 +-
.../src/dashboard/actions/dashboardState.test.ts | 70 +-
.../src/dashboard/actions/dashboardState.ts | 9 +-
.../src/dashboard/actions/datasources.ts | 2 +-
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 | 48 +-
.../DashboardBuilder/DashboardBuilder.tsx | 24 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 5 +-
.../EmbeddedModal/EmbeddedModal.test.tsx | 12 +
.../dashboard/components/EmbeddedModal/index.tsx | 2 +-
.../DetailsPanel/DetailsPanel.test.tsx | 17 +
.../dashboard/components/FiltersBadge/Styles.tsx | 12 +
.../dashboard/components/Header/Header.test.tsx | 28 +
.../src/dashboard/components/Header/index.tsx | 4 +-
.../components/SliceHeader/SliceHeader.test.tsx | 10 +-
.../src/dashboard/components/SliceHeader/index.tsx | 14 +-
.../SliceHeaderControls.subdirectory.test.tsx | 172 +
.../SliceHeaderControls.test.tsx | 114 +-
.../components/SliceHeaderControls/index.tsx | 70 +-
.../components/SliceHeaderControls/types.ts | 5 +-
.../URLShortLinkButton/URLShortLinkButton.test.tsx | 9 +-
.../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 +-
.../gridComponents/Tab/Tab.subdirectory.test.tsx | 146 +
.../components/gridComponents/Tab/Tab.test.tsx | 31 +
.../components/gridComponents/Tab/Tab.tsx | 5 +-
.../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 +-
.../FilterBar/FilterBar.subdirectory.test.ts | 207 +
.../nativeFilters/FilterBar/FilterBar.test.tsx | 110 +
.../FilterControls.overflow.test.tsx | 3 +-
.../FilterControls/FilterValue.timeGrain.test.ts | 60 -
.../FilterBar/FilterControls/FilterValue.tsx | 55 +-
.../FilterBar/UrlFilters/UrlFilterTag.tsx | 8 +-
.../components/nativeFilters/FilterBar/index.tsx | 6 +-
.../FiltersConfigModal/FilterConfigPane.test.tsx | 4 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 2 +-
.../FiltersConfigForm/DependencyList.tsx | 6 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 26 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 28 +-
.../FiltersConfigModal/ItemTitleContainer.tsx | 2 +-
.../hooks/useItemStateManager.ts | 3 +-
.../FiltersConfigModal/hooks/useModalSaveLogic.ts | 3 +-
.../transformers/customizationTransformer.ts | 16 +-
.../transformers/filterTransformer.ts | 4 +-
.../nativeFilters/FiltersConfigModal/types.ts | 1 +
.../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 | 30 +-
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 +-
.../EmbedCodeContent.subdirectory.test.tsx | 78 +
.../explore/components/ExploreChartPanel/index.tsx | 1 +
.../ExploreContainer/ExploreDndContext.tsx | 61 +
.../src/explore/components/SaveModal.test.tsx | 16 +
.../src/explore/components/SaveModal.tsx | 1 +
.../AnnotationLayerControl/AnnotationLayer.tsx | 10 +-
.../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 +-
.../explore/components/controls/ViewQuery.test.tsx | 1 +
.../src/explore/components/controls/ViewQuery.tsx | 9 +-
.../components/controls/ViewQueryModal.test.tsx | 100 +
.../explore/components/controls/ViewQueryModal.tsx | 60 +-
.../components/controls/VizTypeControl/VizTile.tsx | 50 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 6 +-
.../DashboardsSubMenu.test.tsx | 31 +-
.../DashboardsSubMenu.tsx | 4 +-
.../useExploreAdditionalActionsMenu/index.tsx | 4 +-
.../explore/controlUtils/standardizedFormData.ts | 3 +-
.../src/explore/exploreUtils/exploreUtils.test.tsx | 22 +-
.../src/explore/exploreUtils/exportChart.test.ts | 17 +-
.../src/explore/exploreUtils/getExploreUrl.test.ts | 10 +-
.../explore/exploreUtils/getURIDirectory.test.ts | 6 +-
.../src/explore/exploreUtils/index.ts | 4 +-
superset-frontend/src/explore/types.ts | 6 +-
.../src/extensions/ExtensionsLoader.test.ts | 108 +
.../src/extensions/ExtensionsLoader.ts | 7 +-
.../src/features/alerts/AlertReportModal.test.tsx | 86 +-
.../src/features/alerts/AlertReportModal.tsx | 31 +-
.../alerts/components/AlertReportCronScheduler.tsx | 1 +
.../alerts/components/NotificationMethod.test.tsx | 231 +
.../alerts/components/NotificationMethod.tsx | 248 +-
.../AllEntitiesTable.subdirectory.test.tsx | 152 +
.../src/features/allEntities/AllEntitiesTable.tsx | 5 +-
.../src/features/charts/ChartCard.tsx | 12 +-
.../src/features/dashboards/DashboardCard.tsx | 15 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +
.../DatabaseConnectionForm/TableCatalog.tsx | 4 +
.../DatabaseConnectionForm/ValidatedInputField.tsx | 2 +
.../DatabaseModal.subdirectory.test.ts | 160 +
.../databases/DatabaseModal/ModalHeader.test.tsx | 58 +
.../databases/DatabaseModal/ModalHeader.tsx | 21 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 150 +-
.../databases/DatabaseModal/index.test.tsx | 222 +-
.../src/features/databases/DatabaseModal/index.tsx | 55 +-
.../features/databases/UploadDataModel/index.tsx | 11 +-
superset-frontend/src/features/databases/types.ts | 3 +-
.../DatasetPanel.subdirectory.test.tsx | 114 +
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 12 +-
.../datasets/AddDataset/Footer/Footer.test.tsx | 2 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 2 +-
.../src/features/home/ActivityTable.tsx | 6 +-
.../src/features/home/Menu.subdirectory.test.tsx | 230 +
superset-frontend/src/features/home/Menu.test.tsx | 184 +
superset-frontend/src/features/home/Menu.tsx | 60 +-
.../src/features/home/RightMenu.test.tsx | 64 +
superset-frontend/src/features/home/RightMenu.tsx | 20 +-
.../src/features/home/SavedQueries.tsx | 25 +-
.../src/features/roles/RoleListEditModal.test.tsx | 16 +-
.../components/Select/SelectFilterPlugin.test.tsx | 55 +
.../components/Select/SelectFilterPlugin.tsx | 30 +-
.../TimeGrain/TimeGrainFilterPlugin.test.tsx | 12 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 14 +-
.../TimeGrainPreFilter.integration.test.tsx | 23 +-
.../src/filters/components/TimeGrain/types.ts | 2 +-
.../src/hooks/apiResources/queries.ts | 2 +-
superset-frontend/src/middleware/logger.test.ts | 6 +-
.../src/middleware/loggerMiddleware.ts | 7 +-
.../src/pages/AnnotationLayerList/index.tsx | 6 +-
.../src/pages/AnnotationList/index.tsx | 3 +-
superset-frontend/src/pages/Chart/index.tsx | 3 +-
.../pages/ChartList/ChartList.listview.test.tsx | 4 +-
.../src/pages/ChartList/ChartList.testHelpers.tsx | 18 +-
.../DashboardList/DashboardList.testHelpers.tsx | 10 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 7 +-
.../DatasetList/DatasetList.subdirectory.test.tsx | 135 +
superset-frontend/src/pages/DatasetList/index.tsx | 18 +-
.../FileHandler/FileHandler.subdirectory.test.tsx | 267 +
.../src/pages/FileHandler/index.test.tsx | 14 +-
superset-frontend/src/pages/FileHandler/index.tsx | 10 +-
superset-frontend/src/pages/Login/Login.test.tsx | 67 +-
superset-frontend/src/pages/Login/index.tsx | 11 +-
.../pages/RedirectWarning/RedirectWarning.test.tsx | 78 +
.../src/pages/RedirectWarning/index.tsx | 38 +-
.../src/pages/RedirectWarning/utils.test.ts | 59 +
.../src/pages/RedirectWarning/utils.ts | 15 +
superset-frontend/src/pages/Register/index.tsx | 7 +-
.../pages/SavedQueryList/SavedQueryList.test.tsx | 6 +-
.../src/pages/SavedQueryList/index.tsx | 17 +-
superset-frontend/src/pages/Tags/index.tsx | 26 +-
superset-frontend/src/preamble.ts | 73 +-
superset-frontend/src/pwa-manifest.json | 65 -
superset-frontend/src/setup/setupApp.ts | 3 +-
.../src/setup/setupFormatters.test.ts | 71 +
superset-frontend/src/setup/setupFormatters.ts | 5 +
.../src/theme/utils/antdTokenNames.test.ts | 34 +
.../src/theme/utils/antdTokenNames.ts | 26 +
superset-frontend/src/types/bootstrapTypes.ts | 1 +
superset-frontend/src/utils/assetUrl.test.ts | 39 +
superset-frontend/src/utils/assetUrl.ts | 17 +-
superset-frontend/src/utils/downloadAsImage.tsx | 1 -
.../src/utils/getBootstrapData.test.ts | 73 +-
superset-frontend/src/utils/getBootstrapData.ts | 56 +-
.../src/utils/navigationUtils.AppLink.test.tsx | 95 +
.../src/utils/navigationUtils.appRoot.test.tsx | 136 +
.../src/utils/navigationUtils.directDom.test.tsx | 244 +
.../src/utils/navigationUtils.invariants.test.ts | 375 +
.../src/utils/navigationUtils.schemes.test.ts | 207 +
.../src/utils/navigationUtils.test.ts | 780 +
superset-frontend/src/utils/navigationUtils.ts | 486 +-
.../src/utils/pathUtils.parity.test.ts | 166 +
superset-frontend/src/utils/pathUtils.test.ts | 151 +
superset-frontend/src/utils/pathUtils.ts | 44 +-
superset-frontend/src/utils/urlUtils.test.ts | 131 +
superset-frontend/src/utils/urlUtils.ts | 41 +-
superset-frontend/src/views/App.tsx | 2 +-
superset-frontend/src/views/CRUD/hooks.ts | 64 +-
superset-frontend/src/views/CRUD/types.ts | 7 +-
superset-frontend/src/views/routePaths.ts | 12 +-
superset-frontend/src/views/routes.test.tsx | 49 +
superset-frontend/src/views/routes.tsx | 12 +-
superset-frontend/webpack.config.js | 29 +-
superset-websocket/package-lock.json | 140 +-
superset-websocket/package.json | 6 +-
superset/app.py | 37 +-
superset/async_events/async_query_manager.py | 16 +-
superset/charts/api.py | 110 +-
superset/charts/client_processing.py | 6 +
superset/charts/filters.py | 38 +
superset/charts/schemas.py | 3 +-
superset/commands/chart/exceptions.py | 10 +
superset/commands/chart/importers/v1/utils.py | 109 +-
.../rank.py => commands/chart/restore.py} | 37 +-
superset/commands/dashboard/create.py | 7 +-
superset/commands/dashboard/exceptions.py | 18 +
superset/commands/dashboard/importers/v1/utils.py | 142 +-
superset/commands/dashboard/restore.py | 84 +
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/importers/v1/utils.py | 20 +-
superset/commands/report/exceptions.py | 14 +
superset/commands/report/execute.py | 269 +-
superset/commands/restore.py | 15 +-
superset/commands/sql_lab/estimate.py | 79 +-
superset/config.py | 119 +-
superset/connectors/sqla/models.py | 73 +-
superset/daos/base.py | 71 +-
superset/daos/dashboard.py | 83 +-
superset/daos/dataset.py | 184 +-
superset/daos/datasource.py | 11 +
superset/daos/semantic_layer.py | 34 +
superset/dashboards/api.py | 115 +-
superset/dashboards/filters.py | 17 +
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/extensions/__init__.py | 11 +-
superset/initialization/__init__.py | 9 +-
superset/mcp_service/CLAUDE.md | 13 +-
superset/mcp_service/SECURITY.md | 48 +
superset/mcp_service/app.py | 56 +-
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 | 219 +-
superset/mcp_service/chart/tool/generate_chart.py | 20 +-
superset/mcp_service/chart/tool/get_chart_info.py | 15 +
.../mcp_service/chart/tool/get_chart_preview.py | 4 +
superset/mcp_service/chart/tool/update_chart.py | 25 +
.../mcp_service/chart/tool/update_chart_preview.py | 4 +-
.../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 | 715 +-
superset/mcp_service/dashboard/tool/__init__.py | 8 +
.../tool/add_chart_to_existing_dashboard.py | 8 +-
.../dashboard/tool/duplicate_dashboard.py | 425 +
.../dashboard/tool/generate_dashboard.py | 3 +-
.../dashboard/tool/get_dashboard_datasets.py | 156 +
.../dashboard/tool/manage_native_filters.py | 511 +
.../dashboard/tool/remove_chart_from_dashboard.py | 538 +
.../mcp_service/dashboard/tool/update_dashboard.py | 153 +-
superset/mcp_service/dataset/schemas.py | 15 +-
.../mcp_service/dataset/tool/create_dataset.py | 8 +
.../dataset/tool/create_virtual_dataset.py | 15 +
.../mcp_service/dataset/tool/get_dataset_info.py | 17 +
superset/mcp_service/dataset/tool/query_dataset.py | 83 +-
.../mcp_service/docs/tool-search-optimization.md | 2 +-
.../explore/tool/generate_explore_link.py | 3 +-
superset/mcp_service/flask_singleton.py | 22 +
superset/mcp_service/guest_token_verifier.py | 180 +
superset/mcp_service/jwt_verifier.py | 5 +
superset/mcp_service/mcp_config.py | 200 +-
superset/mcp_service/middleware.py | 1 +
superset/mcp_service/role/schemas.py | 53 +-
.../mcp_service/semantic_layer}/__init__.py | 0
superset/mcp_service/semantic_layer/schemas.py | 302 +
.../{utils => semantic_layer/tool}/__init__.py | 25 +-
.../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 +
.../sql_lab/tool/open_sql_lab_with_context.py | 2 +
superset/mcp_service/system/tool/find_users.py | 11 +-
superset/mcp_service/user/schemas.py | 45 +-
superset/mcp_service/utils/__init__.py | 1 +
superset/mcp_service/utils/query_utils.py | 57 +
superset/mcp_service/utils/response_utils.py | 58 +-
superset/mcp_service/utils/sanitization.py | 10 +
.../common => superset/middleware}/__init__.py | 0
superset/middleware/legacy_prefix_redirect.py | 256 +
...2bee73611e32_composite_pk_association_tables.py | 606 +
..._12-00_7c4a8d09ca37_add_deleted_at_to_slices.py | 52 +
...05_9e1f3b8c4d2a_add_deleted_at_to_dashboards.py | 203 +
..._12-10_3a8e6f2c1b95_add_deleted_at_to_tables.py | 58 +
...-00_b4a3f2e1d0c9_fix_security_view_menu_case.py | 125 +
superset/models/core.py | 82 +-
superset/models/dashboard.py | 104 +-
superset/models/helpers.py | 166 +-
superset/models/slice.py | 42 +-
superset/models/sql_lab.py | 22 +-
superset/queries/saved_queries/api.py | 5 +
superset/queries/saved_queries/schemas.py | 10 +-
superset/reports/models.py | 6 +-
superset/reports/notifications/slack.py | 7 +-
superset/reports/notifications/slackv2.py | 57 +-
superset/result_set.py | 6 +-
superset/security/manager.py | 304 +-
superset/semantic_layers/mapper.py | 51 +-
superset/semantic_layers/models.py | 12 +-
superset/sql/execution/executor.py | 62 +-
superset/sql/parse.py | 304 +-
superset/sql_lab.py | 35 +-
superset/tags/api.py | 16 +-
superset/tags/filters.py | 30 +-
superset/tasks/async_queries.py | 2 +-
superset/tasks/cache.py | 208 +-
superset/tasks/native_filter_cache.py | 245 +
superset/templates/superset/spa.html | 36 +-
superset/translations/ar/LC_MESSAGES/messages.po | 2540 ++-
superset/translations/ca/LC_MESSAGES/messages.po | 1614 +-
superset/translations/cs/LC_MESSAGES/messages.po | 644 +-
superset/translations/de/LC_MESSAGES/messages.po | 4902 +++--
superset/translations/do-not-translate.txt | 59 +
superset/translations/en/LC_MESSAGES/messages.po | 52 +
superset/translations/es/LC_MESSAGES/messages.po | 610 +-
superset/translations/fa/LC_MESSAGES/messages.po | 2041 +-
superset/translations/fi/LC_MESSAGES/messages.po | 739 +-
superset/translations/fr/LC_MESSAGES/messages.po | 5349 ++---
superset/translations/it/LC_MESSAGES/messages.po | 19376 +++++++++++++------
superset/translations/ja/LC_MESSAGES/messages.po | 2359 ++-
superset/translations/ko/LC_MESSAGES/messages.po | 17991 ++++++++++++++---
superset/translations/lv/LC_MESSAGES/messages.po | 612 +-
superset/translations/messages.pot | 79 +
superset/translations/mi/LC_MESSAGES/messages.po | 1606 +-
superset/translations/nl/LC_MESSAGES/messages.po | 2344 ++-
superset/translations/pl/LC_MESSAGES/messages.po | 2020 +-
superset/translations/pt/LC_MESSAGES/messages.po | 15579 ++++++++++++---
.../translations/pt_BR/LC_MESSAGES/messages.po | 2013 +-
superset/translations/ro/LC_MESSAGES/messages.po | 37 +
superset/translations/ru/LC_MESSAGES/messages.po | 653 +-
superset/translations/sk/LC_MESSAGES/messages.po | 630 +-
superset/translations/sl/LC_MESSAGES/messages.po | 1923 +-
superset/translations/sr/LC_MESSAGES/messages.po | 37 +
.../translations/sr_Latn/LC_MESSAGES/messages.po | 37 +
superset/translations/th/LC_MESSAGES/messages.po | 733 +-
superset/translations/tr/LC_MESSAGES/messages.po | 2145 +-
superset/translations/uk/LC_MESSAGES/messages.po | 626 +-
superset/translations/zh/LC_MESSAGES/messages.po | 3523 +++-
.../translations/zh_TW/LC_MESSAGES/messages.po | 5126 +++--
superset/utils/core.py | 22 +-
superset/utils/json.py | 5 +
.../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/all_entities.py | 2 +-
superset/views/base.py | 72 +-
superset/views/core.py | 66 +-
superset/views/datasource/views.py | 6 +-
superset/views/explore.py | 19 +-
superset/views/filters.py | 40 +-
superset/views/groups.py | 2 +-
superset/views/logs.py | 2 +-
superset/views/pwa_manifest.py | 159 +
superset/views/roles.py | 2 +-
superset/views/tags.py | 2 +-
superset/views/user_registrations.py | 2 +-
superset/views/users_list.py | 2 +-
superset/views/utils.py | 159 +-
tests/integration_tests/base_tests.py | 12 +-
tests/integration_tests/charts/commands_tests.py | 2 +-
.../integration_tests/charts/soft_delete_tests.py | 579 +
tests/integration_tests/core_tests.py | 71 +-
tests/integration_tests/dashboard_tests.py | 26 +-
tests/integration_tests/dashboard_utils.py | 29 +-
tests/integration_tests/dashboards/api_tests.py | 6 +-
.../dashboards/soft_delete_tests.py | 732 +
.../dashboards/superset_factory_util.py | 14 +-
tests/integration_tests/datasets/api_tests.py | 71 +-
.../datasets/soft_delete_tests.py | 584 +
tests/integration_tests/datasource_tests.py | 19 +-
.../db_engine_specs/presto_tests.py | 12 +-
tests/integration_tests/email_tests.py | 12 +-
tests/integration_tests/event_logger_tests.py | 6 +-
tests/integration_tests/log_api_tests.py | 8 +-
...3f2e1d0c9_fix_security_view_menu_case__tests.py | 213 +
.../composite_pk_association_tables__tests.py | 137 +
.../migrations/composite_pk_round_trip__tests.py | 208 +
.../queries/saved_queries/api_tests.py | 63 +
tests/integration_tests/query_context_tests.py | 4 +
.../commands/execute_dashboard_report_tests.py | 2 +-
tests/integration_tests/reports/commands_tests.py | 15 +-
tests/integration_tests/security/api_tests.py | 10 +-
tests/integration_tests/security_tests.py | 80 +-
tests/integration_tests/sqla_models_tests.py | 15 +-
tests/integration_tests/strategy_tests.py | 2 +-
tests/integration_tests/tags/api_tests.py | 40 +
tests/integration_tests/utils_tests.py | 2 +-
.../views/test_explore_redirect.py | 326 +
.../async_events/async_query_manager_tests.py | 53 +
.../charts/commands/importers/v1/import_test.py | 181 +
tests/unit_tests/charts/test_client_processing.py | 187 +-
tests/unit_tests/commands/chart/restore_test.py | 90 +
tests/unit_tests/commands/dashboard/create_test.py | 29 +
.../unit_tests/commands/dashboard/restore_test.py | 201 +
.../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 | 462 +-
tests/unit_tests/commands/sql_lab/test_estimate.py | 78 +-
.../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/config_test.py | 120 +
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/daos/test_base_dao_soft_delete.py | 50 +-
.../commands/importers/v1/import_test.py | 357 +
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 +-
tests/unit_tests/initialization_test.py | 128 +-
.../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/test_dashboard_schemas.py | 78 +-
.../tool/test_add_chart_to_existing_dashboard.py | 3 +-
.../dashboard/tool/test_dashboard_generation.py | 15 +-
.../dashboard/tool/test_dashboard_tools.py | 5 +-
.../dashboard/tool/test_duplicate_dashboard.py | 645 +
.../dashboard/tool/test_get_dashboard_datasets.py | 393 +
.../dashboard/tool/test_manage_native_filters.py | 818 +
.../tool/test_remove_chart_from_dashboard.py | 724 +
.../dashboard/tool/test_update_dashboard.py | 198 +-
.../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/system/tool/test_find_users.py | 81 +
.../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 +
.../mcp_service/utils/test_sanitization.py | 41 +
.../unit_tests/middleware}/__init__.py | 0
.../middleware/test_legacy_prefix_redirect.py | 726 +
.../composite_pk_association_tables_test.py | 170 +
.../test_add_deleted_at_to_dashboards.py | 241 +
.../migrations/test_add_deleted_at_to_slices.py | 190 +
.../migrations/test_add_deleted_at_to_tables.py | 189 +
tests/unit_tests/models/core_test.py | 352 +
tests/unit_tests/models/dashboard_test.py | 87 +-
tests/unit_tests/models/helpers_test.py | 157 +-
.../models/multi_space_column_names_test.py | 164 +
.../models/owner_association_tables_test.py | 99 +
tests/unit_tests/models/slice_test.py | 58 +
tests/unit_tests/models/sql_lab_test.py | 97 +
tests/unit_tests/models/test_soft_delete_mixin.py | 38 +
.../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 | 24 +-
.../reports/notifications/slack_tests.py | 676 +-
tests/unit_tests/result_set_test.py | 31 +
.../scripts/translations/backfill_po_test.py | 191 +
.../check_translation_regression_test.py | 160 +
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/execution/test_executor.py | 86 +-
tests/unit_tests/sql/parse_tests.py | 687 +-
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_subdirectory_url_for.py | 256 +
tests/unit_tests/test_viz_cache_key.py | 4 +-
tests/unit_tests/utils/json_tests.py | 14 +
tests/unit_tests/utils/slack_test.py | 233 +
tests/unit_tests/utils/test_core.py | 29 +
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 +-
tests/unit_tests/views/test_pwa_manifest.py | 354 +
.../views/test_redirect_view_subdirectory.py | 221 +
tests/unit_tests/views/test_spa_service_worker.py | 182 +
851 files changed, 135816 insertions(+), 36745 deletions(-)
mode change 100644 => 100755 .pre-commit-config.yaml
create mode 100644 docs/static/img/logos/camptocamp.svg
create mode 100644 docs/static/img/logos/craig.png
create mode 100644 docs/static/img/logos/geo2france.png
create mode 100644 docs/static/img/logos/geobretagne.svg
create mode 100644 docs/static/img/logos/georchestra.svg
create mode 100644 docs/static/img/logos/jDev.svg
create mode 100644 docs/static/img/logos/mel.jpg
create mode 100644 docs/static/img/logos/pi-Geosolutions.png
create mode 100644 docs/static/img/logos/rennes-ville-metropole_noir.svg
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/packages/superset-ui-core/src/connection/normalizeBackendUrls.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/currency-format/currencyLocale.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/currency-format/symbolPosition.ts
create mode 100644 superset-frontend/packages/superset-ui-core/test/connection/SupersetClientAppRootContract.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/test/connection/normalizeBackendUrls.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/test/currency-format/currencyLocale.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/test/currency-format/symbolPosition.test.ts
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/spec/helpers/sourceTreeScanner.ts
create mode 100644 superset-frontend/spec/helpers/withApplicationRoot.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/chartCustomizations/components/TimeGrain/CustomizationTimeGrainsTransformer.integration.test.ts
create mode 100644 superset-frontend/src/chartCustomizations/components/TimeGrain/TimeGrainPreFilter.integration.test.tsx
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/dashboard/components/SliceHeaderControls/SliceHeaderControls.subdirectory.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/gridComponents/Tab/Tab.subdirectory.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBar.subdirectory.test.ts
delete mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.timeGrain.test.ts
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/explore/components/EmbedCodeContent.subdirectory.test.tsx
create mode 100644 superset-frontend/src/features/allEntities/AllEntitiesTable.subdirectory.test.tsx
create mode 100644 superset-frontend/src/features/databases/DatabaseModal/DatabaseModal.subdirectory.test.ts
create mode 100644 superset-frontend/src/features/databases/DatabaseModal/ModalHeader.test.tsx
create mode 100644 superset-frontend/src/features/datasets/AddDataset/DatasetPanel/DatasetPanel.subdirectory.test.tsx
create mode 100644 superset-frontend/src/features/home/Menu.subdirectory.test.tsx
create mode 100644 superset-frontend/src/pages/DatasetList/DatasetList.subdirectory.test.tsx
create mode 100644 superset-frontend/src/pages/FileHandler/FileHandler.subdirectory.test.tsx
create mode 100644 superset-frontend/src/pages/RedirectWarning/RedirectWarning.test.tsx
delete mode 100644 superset-frontend/src/pwa-manifest.json
create mode 100644 superset-frontend/src/setup/setupFormatters.test.ts
create mode 100644 superset-frontend/src/utils/navigationUtils.AppLink.test.tsx
create mode 100644 superset-frontend/src/utils/navigationUtils.appRoot.test.tsx
create mode 100644 superset-frontend/src/utils/navigationUtils.directDom.test.tsx
create mode 100644 superset-frontend/src/utils/navigationUtils.invariants.test.ts
create mode 100644 superset-frontend/src/utils/navigationUtils.schemes.test.ts
create mode 100644 superset-frontend/src/utils/navigationUtils.test.ts
create mode 100644 superset-frontend/src/utils/pathUtils.parity.test.ts
copy superset/{utils/pandas_postprocessing/rank.py => commands/chart/restore.py} (53%)
create mode 100644 superset/commands/dashboard/restore.py
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/dashboard/tool/duplicate_dashboard.py
create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_datasets.py
create mode 100644 superset/mcp_service/dashboard/tool/manage_native_filters.py
create mode 100644 superset/mcp_service/dashboard/tool/remove_chart_from_dashboard.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/{utils => 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
mode change 100644 => 100755 superset/mcp_service/system/tool/find_users.py
create mode 100644 superset/mcp_service/utils/query_utils.py
copy {superset-core/src/superset_core/common => superset/middleware}/__init__.py (100%)
create mode 100644 superset/middleware/legacy_prefix_redirect.py
create mode 100644 superset/migrations/versions/2026-05-01_23-36_2bee73611e32_composite_pk_association_tables.py
create mode 100644 superset/migrations/versions/2026-05-08_12-00_7c4a8d09ca37_add_deleted_at_to_slices.py
create mode 100644 superset/migrations/versions/2026-05-08_12-05_9e1f3b8c4d2a_add_deleted_at_to_dashboards.py
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 superset/views/pwa_manifest.py
create mode 100644 tests/integration_tests/charts/soft_delete_tests.py
create mode 100644 tests/integration_tests/dashboards/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/integration_tests/migrations/composite_pk_association_tables__tests.py
create mode 100644 tests/integration_tests/migrations/composite_pk_round_trip__tests.py
create mode 100644 tests/integration_tests/views/test_explore_redirect.py
create mode 100644 tests/unit_tests/commands/chart/restore_test.py
create mode 100644 tests/unit_tests/commands/dashboard/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
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_duplicate_dashboard.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_datasets.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_manage_native_filters.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_remove_chart_from_dashboard.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 {superset-core/src/superset_core/common => tests/unit_tests/middleware}/__init__.py (100%)
create mode 100644 tests/unit_tests/middleware/test_legacy_prefix_redirect.py
create mode 100644 tests/unit_tests/migrations/composite_pk_association_tables_test.py
create mode 100644 tests/unit_tests/migrations/test_add_deleted_at_to_dashboards.py
create mode 100644 tests/unit_tests/migrations/test_add_deleted_at_to_slices.py
create mode 100644 tests/unit_tests/migrations/test_add_deleted_at_to_tables.py
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 superset/views/groups.py => tests/unit_tests/queries/saved_queries_schema_test.py (59%)
create mode 100644 tests/unit_tests/tasks/test_native_filter_cache.py
create mode 100644 tests/unit_tests/test_subdirectory_url_for.py
create mode 100644 tests/unit_tests/views/test_pwa_manifest.py
create mode 100644 tests/unit_tests/views/test_redirect_view_subdirectory.py
create mode 100644 tests/unit_tests/views/test_spa_service_worker.py