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/09/04 21:03:06 UTC

(superset) branch hughhhh/pfm-3-preview-and-editor updated (c7a6548b4a0 -> a45d99ffe24)

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

hughhhh pushed a change to branch hughhhh/pfm-3-preview-and-editor
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit c7a6548b4a0 feat(datasets): add partition mapping preview endpoint and editor plumbing
    omit 3d7615aa1c1 feat(datasets): mirror filters onto the partition column at query time
    omit 6f5fb952155 feat(datasets): add partition filter mapping model, migration and validation
     add d114eb638b7 fix(datasets): preserve metric warning_markdown when extra is absent (#42763)
     add a8216e3787a fix(calendar): localize date labels (#43163)
     add cfd40bdd0d1 fix(dashboard): derive filter scope on read instead of serving a stale cache (#43252)
     add 1991e3f0d2b fix(datasets): keep metric certified_by when certification details are typed next (#43255)
     add aaf9eba1611 fix(db_engine_specs): skip malformed third-party dialect entry points (#43110)
     add cdeca0c1798 chore(deps-dev): bump tsx from 4.23.10 to 4.23.12 in /superset-frontend (#43250)
     add 98276cd1f35 chore(deps-dev): bump baseline-browser-mapping from 2.11.12 to 2.11.13 in /superset-frontend (#43249)
     add 70ba9c9552d chore(deps-dev): bump eslint from 10.8.0 to 10.8.1 in /superset-frontend (#43248)
     add b3a9b9beb49 chore(deps-dev): bump @types/node from 26.1.2 to 26.2.0 in /superset-frontend (#43247)
     add afde126d9a7 chore(deps-dev): bump @testing-library/jest-dom from 7.0.0 to 7.0.1 in /superset-frontend (#43246)
     add d917071708f chore(deps): bump caniuse-lite from 1.0.30001807 to 1.0.30001809 in /docs (#43244)
     add 5105899810b chore(deps-dev): bump eslint from 10.8.0 to 10.8.1 in /superset-websocket (#43242)
     add 3ed97f9691e chore(deps): bump ws from 8.21.2 to 8.21.3 in /superset-websocket (#43241)
     add 97eafd61400 chore(deps-dev): bump @types/node from 26.1.2 to 26.2.0 in /superset-websocket (#43240)
     add 6e270df4a24 fix(sql-lab): catch TemplateError in StreamingSqlResultExportCommand.validate (#43226)
     add 2f8875aaef7 feat(semantic layers): optional metadata for metrics/dimensions (#43269)
     add c9c230142bb chore(deps): bump baseline-browser-mapping from 2.11.12 to 2.11.13 in /docs (#43243)
     add 2807f1b0e81 fix(dashboard): report the real error when saving a dashboard fails (#43140)
     add e2070d79dc1 fix(reports): wait for ECharts paint before capturing report screenshots (#43077)
     add 98136d547cc fix(reports): fail closed on alert screenshot capture instead of delivering a blank (#43031)
     add 13eb47a1dab fix(api): improved request handling and embedded dashboard scoping (#42930)
     add ed20e729d01 chore(deps): bump google-auth-library from 11.0.0 to 11.0.1 in /superset-frontend (#43292)
     add f766de6d0db chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43291)
     add 49374f1fe5c chore(deps): bump antd from 6.5.4 to 6.6.0 in /docs (#43289)
     add b4d79462ecd chore(deps-dev): bump oxlint from 1.77.0 to 1.78.0 in /superset-frontend (#43288)
     add bdafb6c3305 chore(deps-dev): bump oxfmt from 0.62.0 to 0.63.0 in /docs (#43287)
     add 5105f13726a chore(deps-dev): bump the typescript-eslint group in /docs with 3 updates (#43286)
     add 72458ab26f1 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.66.0 to 8.67.0 in /superset-frontend in the typescript-eslint group (#43285)
     add 8ef7be57881 chore(deps-dev): bump oxfmt from 0.62.0 to 0.63.0 in /superset-websocket (#43283)
     add d12320239a0 chore(deps-dev): bump typescript-eslint from 8.66.0 to 8.67.0 in /superset-websocket (#43282)
     add 936f073b9ae chore(deps-dev): bump @typescript-eslint/parser from 8.66.0 to 8.67.0 in /superset-websocket (#43281)
     add ebab31adc20 chore(deps): bump antd from 6.5.4 to 6.6.0 in /superset-frontend (#43294)
     add 3c90bdc6f04 chore(deps-dev): bump oxfmt from 0.62.0 to 0.63.0 in /superset-frontend (#43293)
     add 2d1daac11aa fix(explore): samples endpoint now honors requested row limit (#43148)
     add 60e1802c523 fix(dashboard): mute the Group By display control loading spinner (#42879)
     add fd063d17bfc fix(security): harden account password-change and session-invalidation handling (#42934)
     add 086b4af65d4 feat(mcp): per-resource token scopes with user-permission intersection (#42297)
     add f9946020967 fix(dashboard): align list OpenAPI schema (#43256)
     add a13a5f1af4b chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.65.0 to 8.67.0 in /superset-websocket (#43284)
     add e4ea6e23d8e chore(deps): bump supercluster from 8.0.1 to 9.0.0 in /superset-frontend (#43290)
     add 7d4f30574fb feat(tooltip): add Truncate labels control to timeseries charts (#43272)
     add c0ab5f3385c fix(dashboard): preserve native filter keys for dataset-less filters on save (#42898)
     add 34cd50cc484 test(chart): mock the event log endpoint in the drill-to-detail menu test (#43183)
     add 5ce52e531dc fix(clickhouse): add PT1S time grain (#43217)
     add 097c99b19cb fix: remove a labeler glob that matches no files (#43270)
     add fde0ba26d1b fix(mcp): validate virtual dataset metadata and surface errors (#43129)
     add 15699150960 feat(multi-value): array-typed column filters with two-tier operators (ClickHouse MVP) (#41279)
     add c07f3ebf2d4 chore(deps-dev): bump @swc/plugin-emotion from 14.15.0 to 14.19.0 in /superset-frontend (#43328)
     add 334e280489a chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43326)
     add 1339bcd9dae chore(deps): bump swagger-ui-react from 5.32.12 to 5.32.13 in /docs (#43325)
     add eafbff9f8d3 chore(deps-dev): bump globals from 17.9.0 to 17.10.0 in /docs (#43324)
     add 53a8a0e1403 chore(deps): bump the docusaurus-openapi group in /docs with 2 updates (#43323)
     add 01ce8358a6e chore(deps-dev): bump globals from 17.9.0 to 17.10.0 in /superset-websocket (#43321)
     add 8222db33405 fix(dataset): preserve legacy default dashboard URLs (#43190)
     add 6d77efad29c fix(chart): stop contextmenu propagation in BigNumberViz (#43267)
     add 8c500ccee1f fix(users): show password validation errors (#43191)
     add c10054f521e fix(plugin-chart-chord): declare react as a peerDependency (#43304)
     add b8fca2145d9 chore(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.0 (#43322)
     add faf7c34c0a9 fix(explore): legacy boolean filters and limit available operators based on calculated column type (#43341)
     add 5a96c3f538f chore(ci): disable Git commit info capture in Playwright E2E tests to avoid timeout (#43213)
     add c2d653b4b80 fix: set maxHeight of List components to height when in AutoSizer (#43056)
     add f9cedf84e20 fix: drop post-processing options the operation no longer accepts (#42927)
     add 5d4358a1493 chore(deps): bump google-auth-library from 11.0.1 to 11.0.2 in /superset-frontend (#43364)
     add 80bba12d0fc chore(deps-dev): bump globals from 17.10.0 to 17.11.0 in /docs (#43363)
     add b288db91f95 chore(deps): bump github/codeql-action/init from 4.37.6 to 4.37.7 (#43362)
     add 8b67fb4d308 chore(deps-dev): bump globals from 17.10.0 to 17.11.0 in /superset-websocket (#43360)
     add fdd3945dded chore(deps): bump github/codeql-action/analyze from 4.37.6 to 4.37.7 (#43361)
     add e7dccd44a7c fix(reports): prevent blank/partial report PDFs from virtualized charts (#43348)
     add 2ff79bd4950 fix(github): point the issue templates at labels that exist (#43357)
     add c0884c0f0cc fix(explore): keep x-axis label when overriding Time Column with time comparison (#42875)
     add 1ef12580a7a fix(chart): ignore chart actions for a chart no longer in state (#43228)
     add 1ca5e61f544 chore: Unset future flag in engines and sessions. (#43273)
     add 83c6ea4e03d fix(explore): show the empty state when Samples returns no result payload (#43115)
     add 148ffaff501 fix(plugin-chart-echarts): omit stacked value labels on zero-height segments (#42756)
     add b5fe00b407d test(frontend): shrink flaky/misplaced recently-archived e2e coverage to Jest unit tests (#43264)
     add bcfb4346f6b fix(mcp): honor use_cache and cache_timeout in get_chart_data (#43349)
     add 271564cb0da feat(config): add EXTRA_PANDAS_POSTPROCESSING_OPS extension point (#43337)
     add 42ba2a4433f fix(reports): humanize day-of-month + day-of-week crontabs as OR (#43307)
     add 7441ce90aea fix(charts): align grain-less time comparisons safely (#43315)
     add 01b1d58ac97 fix(plugin-chart-echarts): restore tooltips for metrics labelled like… (#43369)
     add 18a36d04c72 fix(mcp): preserve user-authored result values (#43202)
     add 18fc2c62286 fix(sqllab): stop copying a permalink when opening a saved query (#43147)
     add 27ea5de44a0 fix(i18n-es): correct case/number collapse in the semantic-layer labels (#43311)
     add 22396d504a5 fix(ux): use title case for button labels (#40048)
     add f7d505e1fd0 fix(listview): stop card clicks creating a duplicate history entry (#43310)
     add fb53761ec8a chore(deps-dev): bump baseline-browser-mapping from 2.11.13 to 2.11.14 in /superset-frontend (#43381)
     add 87743ef3f83 chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43380)
     add 14408eb3db9 chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43379)
     add 132340b6529 chore(deps): bump astral-sh/setup-uv from 10.0.0 to 10.0.1 (#43378)
     add 6e22050b509 chore(deps): bump the storybook group in /docs with 2 updates (#43377)
     add 65910abf21f fix(sqllab): disable Save dataset until the query runs successfully (#43330)
     add e45dd2d3f16 ci: pull CI service images from GHCR mirror (fork-safe) [depends on #40880] (#40882)
     add 05842a6350f feat(metrics): add MEDIAN/STDDEV_SAMP/VAR_SAMP as system-wide aggregates (#42895)
     add a05a0999877 fix(embedded): block custom SQL injection in guest user chart payloads (#43111)
     add d422f5b4b68 fix: last date label hidden on time series x-axis (#39899) (#42299)
     add fd7095df9a5 fix(explore): align viz type gallery thumbnails and Featured tag (#43373)
     add 03eac279e5f fix(explore): exclude permalink_key from chart URL params (#43354)
     add edda9d1bbbc fix(frontend): tighten SQL Lab autorun scoping and HTML-rendering defaults (#43398)
     add aee98b527d1 fix(charts): escape untrusted strings before rendering into chart tooltips and popups (#43397)
     add 2b6044b624a fix: tighten SSRF validation, executor resolution, and cache scoping across reports/thumbnails (#43395)
     add 04017f39568 fix(sqllab): re-validate access against rendered SQL and tighten cache/permalink scoping (#43394)
     add 65893113fed fix(import): tighten ownership and validation checks across asset importers (#43393)
     add 9781254363f fix(export): escape formula-triggering values consistently and bound post-processing inputs (#43396)
     add 5f3e34908cc fix(charts): surface blocking alerts/reports when archiving a chart (#43402)
     add 5812c0eab56 fix(mcp): fail closed when MCP_AUTH_FACTORY raises (#43329)
     add 09bd8c98de2 feat(chart): enable cross-filter on temporal x-axis (bar/label click) (#42792)
     add f2610e9dca0 fix(sqllab): default PostgreSQL port to 5432 in the dynamic connection form (#43351)
     add 9f505eb0cbb fix(examples): replace deprecated timeseries_limit_metric with series_limit_metric (#43422)
     add c3ed8b312d5 fix(security): surface extra_editors in dashboard/chart lists (#43392)
     add 5ffb72151e8 chore(deps): bump react-error-boundary from 6.1.2 to 6.1.3 in /superset-frontend (#43451)
     add 90a3d930022 chore(deps): bump dayjs from 1.11.21 to 1.11.22 in /superset-frontend (#43450)
     add 8fa48d73f69 chore(deps-dev): bump concurrently from 10.0.4 to 10.0.5 in /superset-frontend (#43449)
     add af859717a73 chore: remove two stale codecov ignore paths (#43438)
     add e7756aeef94 chore(deps): bump immer from 11.1.16 to 11.1.17 in /superset-frontend (#43448)
     add 7196ce8a0c8 chore(deps): bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (#43445)
     add dcac129b514 chore(deps): bump js-yaml from 5.2.3 to 5.3.0 in /docs (#43442)
     add 4623d9219af fix: update in the wild link on community page (#43403)
     add 8a323241846 fix: add missing ownership checks to tag, report-log, and dataset-schema endpoints (#43390)
     add 7f1b41444c8 fix: add missing access checks to semantic-layer and theme endpoints (#43389)
     add 15b98aa6da0 fix(plugin-chart-echarts): apply contribution before rename with time comparison (#43384)
     add 3f10d8b1ccb fix(versioning): suppress automatic chart normalization changes (#43350)
     add 649c062825a chore(deps): bump baseline-browser-mapping from 2.11.13 to 2.11.15 in /docs (#43444)
     add f3142e7b15b fix(tags): fix broken import in daos/tag.py (#43466)
     add 2c02965f2bf chore(deps): bump @swc/core from 1.15.47 to 1.16.0 in /docs (#43443)
     add e450acf1c70 chore(deps): bump sqlglot from 30.16.0 to 30.17.0 (#43418)
     add a392e8b1024 chore(deps): bump marshmallow from 4.3.0 to 4.3.1 (#43417)
     add db539288acb chore(deps-dev): update teradatasql requirement from >=20.0.0.64 to >=20.0.0.65 (#43416)
     add ceb75b93503 chore(deps): bump sqlalchemy from 2.0.51 to 2.0.52 (#43415)
     add 8591f52cedf chore(deps): bump pyarrow from 25.0.0 to 25.0.1 (#43414)
     add f1f63478852 chore(deps-dev): bump prophet from 1.3.0 to 1.4.0 (#43412)
     add 1bde62f9973 chore(deps-dev): bump gevent from 26.7.0 to 26.8.0 (#43411)
     add 6eced8e9191 fix(roles): let the permissions dropdown size to its content (#43196)
     add dc436c76f7a fix(datasets): keep a metric's warning text when editing from Explore (#43177)
     add c980b3a3615 fix(mcp): tighten auth and request validation edge cases (#43388)
     add bf5f3a9e6be test(dashboard): migrate drill-to-detail E2E from Cypress to Playwright (#41437)
     add b0962ba5edb fix(plugin/chart/parallel-coordinate): prevent frontend crash with empty/undefined metrics when moving between pages quickly (#42392)
     add 6ab21b381a6 fix(mysql): resolve wire-protocol column types and mutate rows from immutable results (#42821)
     add a8a8b51afb8 fix(plugin-chart-table): guard row-indexed comparison-color lookups against undefined entries (#43139)
     add 27ec80c07b0 fix(explore): clear stale custom time-shift date error (#43146)
     add 31f06c0ee6d fix(dataset): correct Hours Offset filter bounds and grain-truncation order (#43173)
     add c635d0754fc fix(explore): honor column Label in filter search and pill (#43404)
     add 24b95f9ca7e fix(gsheets): correctly format Date-column filter literals (#43355)
     add 7dbf71a3791 fix(query-object): reject malformed ad-hoc metrics (#43353)
     add 94855e96262 fix(frontend): ignore stale list responses (#43306)
     add ca3d7670b77 fix(ci): restore scheduled CI checks (#43266)
     add 52571a5b8b1 chore(deps): bump the rjsf group in /superset-frontend with 3 updates (#43440)
     add dfd057b9201 chore(deps-dev): update clickhouse-connect requirement from <2.0,>=1.6.0 to >=1.7.1,<2.0 (#43419)
     add 7e3d092ac40 fix(soft-delete): name the recovery location in the archive confirmation (#43401)
     add 107204a1fc6 fix(sqllab): allow SQL Lab query owners to create charts without all_datasource_access (#42479)
     add 8b792ab6603 chore(deps-dev): bump @swc/core from 1.15.47 to 1.16.0 in /superset-frontend (#43446)
     add a9d54a00379 fix(soft-delete): card-view chart delete shows the archive dialog (#43469)
     add f83fb7c0e07 fix(archived-list): use the semantic-layers-aware label for the dataset type (#43465)
     add bd7b7392122 chore: remove obsolete pandas/SQLAlchemy version compat shim (#43497)
     add 6c2fef29cb7 feat(snowflake): Add support for OAuth 2.0 authentication (#36856)
     add 9dd8c42f3d4 chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43511)
     add 7bad69f523c chore(deps): bump dayjs from 1.11.22 to 1.11.23 in /superset-frontend (#43510)
     add d2aeb29223f chore(deps-dev): bump baseline-browser-mapping from 2.11.14 to 2.11.15 in /superset-frontend (#43508)
     add cbfa94c4dd6 chore(deps): bump antd from 6.6.0 to 6.6.1 in /docs (#43506)
     add d480152735e chore(deps): bump the storybook group in /docs with 2 updates (#43505)
     add ef0ad01aa56 chore(deps-dev): bump the storybook group across 1 directory with 5 updates (#43507)
     add fd3849cef1b chore(deps): bump antd from 6.6.0 to 6.6.1 in /superset-frontend (#43509)
     add f9530f31abb fix(table): keep each metric's own aggregate in the summary row by default (#43421)
     add 02b3e43b66b fix(number-format): preserve custom smart formatter id (#43439)
     add 34ffa37aaa4 chore(ci): drop inert SQLALCHEMY_WARN_20 flag from unit-test CI (#43495)
     add 3585e8235a7 fix(i18n): review Traditional Chinese count labels (#43063)
     add fc4d7221ecb fix(explore): skip re-fetch when navigating away from /explore (#39506)
     add f903e02d910 chore(deps): restore permissive marshmallow lower bound (>=3.0, <5) (#43521)
     add 88d2c2954e5 feat(deletion-retention): persist purge block reason codes on the audit log (#43485)
     add b89da3e9fca docs(versioning): fix post-flip doc and comment drift (#43493)
     add 68386a53ee2 chore(database): remove dead extra validation exception classes (#42411)
     add 90dab7cf61b fix(mcp): accept common chart input variants (#43130)
     add 649d6f1b41f fix(mcp): defer unknown numeric types to compile (#43131)
     add 0dcb2ca53a4 feat(maps): Add Italy regions and autonomous provinces country map (#42309)
     add e6b9205821b fix(country-map): give Alborz its own ISO code instead of reusing Tehran's (#42429)
     add 61ab0cdb5dd fix(ocient): update GIS test fixtures for pyocient's relocated geo types (#43496)
     add 473c318335b chore(superset-core): add __init__.py to semantic_layers (#43528)
     add 62d74be0afe fix(metadb): apply SUPERSET_META_DB_LIMIT after join instead of per-table (#36304) (#42598)
     add 2dfe8a5bd98 fix(OAuth2): Support creating OAuth2 connections via SQLAlchemy URI (#43489)
     add b4f7114a091 fix(semantic-layer): warn that deleting a layer cascade-deletes its dependent views (#42845)
     add 1fd763bd29b fix(mcp): honor and validate chart filters (#43478)
     add 19eca6523fb chore(deps): bump uuid from 14.0.1 to 14.0.2 in /superset-frontend (#43545)
     add 6194c852f1d chore(deps-dev): bump oxfmt from 0.63.0 to 0.64.0 in /docs (#43544)
     add e97db01482b chore(deps-dev): bump oxfmt from 0.63.0 to 0.64.0 in /superset-frontend (#43542)
     add 622bc45c9ec chore(deps-dev): bump @swc/core from 1.16.0 to 1.16.1 in /superset-frontend (#43541)
     add 2bc96a47a45 chore(deps): bump swagger-ui-react from 5.32.13 to 5.32.14 in /docs (#43540)
     add 450e2edc2b0 chore(deps): bump @swc/core from 1.16.0 to 1.16.1 in /docs (#43539)
     add 5a4900abb1a chore(deps-dev): bump vitest from 4.1.10 to 4.1.11 in /superset-websocket (#43538)
     add 686245a905a chore(deps-dev): bump oxfmt from 0.63.0 to 0.64.0 in /superset-websocket (#43537)
     add e7ca8b8a571 fix(chart): render ECharts charts at full resolution in download-as-image (#43456)
     add 0597f36bb62 chore(deps-dev): bump oxlint from 1.78.0 to 1.79.0 in /superset-frontend (#43543)
     add 455e6603c10 feat(reports): gate retry functionality behind ALERT_REPORTS_RETRY flag (#43553)
     add 70c9203aa9c fix(sqllab): release DB connection before fetching query results from backend (#43371)
     add 434511cb376 fix(mcp): reject unsafe dashboard layout replacements (#43476)
     add 13927f27e2b fix(mcp): raise SDK floor (#43530)
     add b8308a44a30 fix(pivot-table): exclude rollup totals from conditional formatting scale (#43481)
     add a140e74f5f5 fix(excel): handle duplicate column labels in xlsx export (#43561)
     add 371e5e25e83 fix(trino): honor the verify arg for the user impersonation flow (#43534)
     add 6b0aa8714d1 chore(deps): raise Pillow/PyJWT floors to match resolved pins (#43519)
     add 1c66b71e232 feat(plugin-chart-echarts): allow decal patterns in custom ECharts options (#43427)
     add 0e172a6ff3c feat(waterfall): add show/hide toggles for X and Y axes (#42371)
     add b71293acde0 fix(sqllab): stop a database with no extra from breaking SET_DATABASES (#43216)
     add ca63bb532d1 fix(plugin-chart-table): preserve comparison arrow when a column-specific formatter entry is missing (#43494)
     add 7d355a254ea fix(Modal): stop the draggable modal from hijacking text selection (#43498)
     add 0ab64e305c0 chore(deps-dev): bump lerna from 10.0.0 to 10.0.1 in /superset-frontend (#43580)
     add 5ea7d05d985 chore(deps): bump immer from 11.1.17 to 11.1.18 in /superset-frontend (#43581)
     add d1b7a4fdb41 chore(deps): bump dompurify from 3.4.13 to 3.4.14 in /superset-frontend (#43579)
     add 5879994e683 fix(charts): resolve export filenames from the chart, not the form data (#43280)
     add fde0fbd315b fix(ci): unblock lint-frontend after the oxlint 1.79.0 bump (#43587)
     add 905a35d05f7 fix(mcp): resolve dashboard permalinks (#43482)
     add 76151beade2 fix(export): truncate exported filenames to prevent Windows path extraction errors (#42531) (#42541)
     add ff1d9f9e095 chore(deps): bump dawidd6/action-download-artifact from 21 to 24 (#43441)
     add bde1c483b06 chore(deps): group Dependabot security-update PRs per directory (#43604)
     add e8aea6b6dfe fix: remove redundant 'tooltip' tooltip in scoping modal (#43455)
     add c2266f860cb chore(deps-dev): update clickhouse-connect requirement from <2.0,>=1.7.1 to >=1.7.2,<2.0 (#43608)
     add 87c48cc473d feat(echarts): make bar chart label position user-configurable (#38695)
     add d013bc7a21f chore(deps): bump baseline-browser-mapping from 2.11.15 to 2.11.16 in /docs (#43613)
     add 926e0e6a920 fix(chart-data): validate select()'s exclude option instead of raising 500s (#42410)
     add 6d8cbbfe8d9 fix(api): stop export downloads inheriting the one-year Cache-Control (#43185)
     add a3072c0bf68 fix(deckgl): give handlebars tooltips an opaque background (#43195)
     add 22027ec24ce fix(explore): require a value for adhoc filters before save (#43317)
     add 74dd6901021 docs(security): document EXTRA_EDITORS_RESOLVER (#43595)
     add 05830ebc77a docs: document PNG/PDF chart export options (#43593)
     add c1b6ff340b0 docs(mcp): document the update_dataset_metric tool (#43596)
     add 5c3c6362ae1 docs(cache): document NATIVE_FILTER_OPTIONS_CACHE_TIMEOUT (#43592)
     add 323741b0439 docs(alerts-reports): document report/alert content format options (#43594)
     add 29f4a05eb7a docs(security): document the RLS indicator badge on dataset list/Explore (#43591)
     add 88c4e689e3a fix(pivot-table): keep D3_FORMAT-styled numbers intact in pivoted Excel export (#42601)
     add 35fc36a97e5 chore(deps-dev): bump baseline-browser-mapping from 2.11.15 to 2.11.16 in /superset-frontend (#43621)
     add 83934c038ed chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43618)
     add 8f82d851cf9 chore(deps-dev): bump tiktoken from 0.13.0 to 0.14.0 (#43617)
     add e9e652d22da chore(deps-dev): bump trino from 0.338.0 to 0.339.0 (#43616)
     add 8c88c0d3ac7 chore(deps-dev): update teradatasql requirement from >=20.0.0.65 to >=20.0.0.66 (#43615)
     add ba5d5091b97 chore(deps): bump holidays from 0.102 to 0.103 (#43614)
     add b8acf4b207b chore(deps-dev): bump syntaqlite from 0.7.1 to 0.9.0 (#43612)
     add ebbe2e87142 chore(deps): bump the storybook group in /docs with 2 updates (#43610)
     add 6814a892303 chore(deps): bump gunicorn from 26.0.0 to 26.2.0 (#43609)
     add 94b59420b76 docs(embedding): document EMBEDDED_DISABLE_PERMALINK_ORIGIN_REWRITE (#43600)
     add bcc6af6c5fb fix(dao): don't mask transient OperationalError as a "not found" result (#43479)
     add a16bc0d94f8 fix(mcp): apply time grain overrides from extra_form_data (#43599)
     add 478f612f258 fix(mcp): add open-world tool annotations (#43529)
     add ea3206b076f fix(mcp): surface rejected filter columns in get_chart_data (#43598)
     add ecbd6578b0d fix(db_engine_specs): always mask OAuth2 client secret in encrypted extra (#43491)
     add e1c7a516745 fix(mcp): flag failed tool calls with isError (#43374)
     add 20be48c0858 fix(explore): catch TemplateError when validating access for permalinked query datasources (#43605)
     add 9f62aace7ef fix(examples): replace deprecated granularity_sqla with granularity (#43432)
     add 7b145a520c9 fix(tags): catch TemplateError when validating access for tagged SQL Lab queries (#43423)
     add 5ff44c5ed66 docs(cli): document import_directory --username option (#43602)
     add f9e43a37d8d docs(theming): document THEME_DEFAULT_MODE config setting (#43601)
     add 13e97ba9139 fix(sql-lab): fix transparent background in ag-grid native menus (#43368)
     add b733b57e9eb docs(mcp): document chart type plugin filtering config (#43597)
     add 8c5be889d9e fix(cockroachdb): replace abandoned cockroachdb package with sqlalchemy-cockroachdb (#43501)
     add fa59b44cfe8 chore(deps): bump mapbox-gl from 3.28.1 to 3.29.0 in /superset-frontend (#43619)
     add b7301ac88a6 fix: Dashboard export with charts from multiple databases (#37120)
     add e39bfb255bf fix(explore): prevent duplicate Date Range tooltips (#43425)
     add fd64efd72db fix(uploads): set catalog on datasets created by file upload (#43301)
     add 81b3e855223 fix(echarts): guard cross-filter when labelMap entry is missing (#42559)
     add 2ebd415b8ad chore(deps-dev): bump mcp from 1.29.1 to 2.0.0 (#43611)
     add 98ec6018df5 fix(embedded): honor "can view query" permission for guest users (#43151)
     add 3ddc3b1d569 fix(cache): fall back to default timeout when cache_timeout is None (#43149)
     add 12cd259c551 fix(dataset): preserve validation error messages (#43631)
     add a59b96c4f52 fix(explore): keep the row count label visible when the row limit is reached (#43296)
     add 933dbbc2a24 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 1.0.1 to 1.0.2 in /superset-frontend (#43645)
     add a30e4a4350d chore(deps): bump github/codeql-action/init from 4.37.7 to 4.37.8 (#43644)
     add 8bec85158ce feat(modals): add renderExtraFields prop to chart and dashboard properties modals (#43622)
     add cb7b790733c fix(dataset): surface real validation message in save-error dialog (#43459)
     add 9bf457dea66 chore(deps): bump github/codeql-action/analyze from 4.37.7 to 4.37.8 (#43643)
     add e18f27e1cef fix(native-filters): allow clearing an optional "select first value" filter (#43405)
     add e518b21994c fix(dashboard): keep the chart menu usable in fullscreen on production builds (#43555)
     add abf338d611d feat(filters): search filter values server-side in Explore (#43518)
     add b3f718da621 fix(explore): keep certification badges after saving or swapping a dataset (#43319)
     add 94dd3d049ce fix(ci): repair scheduled pre-commit drift (#43603)
     add 9a6f6ee0c04 docs: fix docstring parameter names that do not match signatures (#43630)
     add d997d363e35 docs: update frontend Node/npm prerequisites to match engines (#43546)
     add 53e76afd704 feat(ci): enforce min release age for npm dep installation (#43164)
     add a5c68c8df9a fix(number-format): handle sub-byte values and unit rollover in memory formatter (#43549)
     add fc26991cd47 feat(plugin-chart-echarts): add gridline and axis tick controls (#43428)
     add 4ced5ca35a7 chore(superset-core): drop unused `__all__` lists (#43626)
     add 60479fb9586 feat(dashboard): add dashboard.slice.header.menu extension slot (#43624)
     add 5c24f72d92c chore(deps): bump content-disposition from 2.0.1 to 3.0.0 in /superset-frontend (#43382)
     add 0eda633b45f fix(dataset): stop a stale edit modal from silently reverting a saved change (#43583)
     add 99a1f756cd4 fix(trino): coerce string-typed values results back to source type (#43654)
     add 782a57fbfcd chore(deps-dev): bump nwsapi from 2.2.23 to 2.2.24 to fix the SqlEditor jest flake (#43657)
     add 30402b412c2 fix(explore): catch TemplateError when validating access for query-backed form_data (#43470)
     add 058eaf78abe fix(dashboard): remove @has_access_api from filter state REST API (#43564)
     add c7cc22f4fee chore(deps): bump setuptools to 84.0.0 and pip to 26.2.1 (#43413)
     add b2a88425511 chore(deps-dev): bump the swc group in /superset-frontend with 3 updates (#43447)
     add 6f69fc6dba0 feat(postprocessing): teach pivot() to compute percent-of-row/col/total (#42809) (#42976)
     add b30d5690286 fix(chart): map the remaining time grains for Prophet forecasting (#43205)
     add de33efae983 fix(table-chart): support where for adhoc columns with server-side pagination (#42706)
     add 1c8d58a77bd fix(i18n): make language pack endpoint public for embedded dashboards (#42438)
     add b38fa702564 chore(deps-dev): bump eslint from 10.8.1 to 10.9.0 in /superset-frontend (#43677)
     add 7c2a3fa7772 chore(deps-dev): bump baseline-browser-mapping from 2.11.16 to 2.11.17 in /superset-frontend (#43676)
     add 4444a89f267 chore(deps): bump reselect from 5.2.0 to 5.3.0 in /superset-frontend (#43675)
     add 7bc44d55044 chore(deps): bump reselect from 5.2.0 to 5.3.0 in /docs (#43674)
     add 46f17aa8805 chore(deps): bump baseline-browser-mapping from 2.11.16 to 2.11.17 in /docs (#43673)
     add ac88acb14b2 chore(deps-dev): bump eslint from 10.8.1 to 10.9.0 in /superset-websocket (#43670)
     add 2ca3695f30c chore(deps): bump js-yaml to patch quadratic-CPU DoS (superset-frontend) (#43663)
     add ec19a37e9bf chore(deps): bump greenlet from 3.5.4 to 3.5.5 (#43671)
     add 9151b5c6fb0 chore(deps): bump brace-expansion to patch DoS in docs (#43665)
     add 3d91ba3fded chore(deps): bump js-yaml, brace-expansion, d3-color to patch DoS/ReDoS in cypress-base (#43664)
     add 74ea780eaa7 fix(plugin-chart-echarts): misplaced first date label on horizontal bar charts (#43661)
     add 96119ffefce feat(plugin-chart-echarts): add Butterfly Chart (#43346)
     add 87fb7d18e16 fix(semantic-layer): hydrate the semantic view edit modal from /structure (#42839)
     add 5f67e85003d chore(i18n): complete Italian translations with 100% placeholder validation (#43274)
     add 88cd8bf575a fix(ci): repair nightly pre-commit failures (#43366)
     add 2df06dcd571 feat(mcp): add feature-gated interactive pivot support (#43480)
     add bba48329465 fix(sqllab): prefer concluded live query state over a stale history snapshot (#43535)
     add ee4a90892c4 test(explore): zero-value stacked bar segment no longer overlaps its neighbor's label (#42882)
     add 65fa1ce8163 chore(ci): skip Jest test HTML report generation to save up time (#43653)
     add 22891894d4d docs: fix superset-core component source links after src/ui removal (#43690)
     add b310f469c20 feat(dashboard): add a tooltip displaying chart descriptions (#43271)
     add 6abab3c1cb6 feat(butterfly): added cross-filtering and drill-to-detail for the butterfly chart (#43684)
     add f3985d88a1b feat(build): migrate to TS7 and TS7-oriented `oxlint-tsgolint` (#43691)
     add b8b2e5ea8b5 chore(deps): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /docs (#43704)
     add 5b64150d0ac chore(deps-dev): bump webpack-bundle-analyzer from 5.3.1 to 5.3.2 in /superset-frontend (#43706)
     add 6e185ebce8e chore(deps): bump actions/setup-java from 5.7.0 to 6.0.0 (#43707)
     add 9d1b5ebdb7b chore(deps-dev): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /superset-frontend (#43708)
     add 040b33c4502 chore(deps): bump yeoman-generator from 8.2.2 to 8.3.0 in /superset-frontend (#43709)
     add b24cb2af8a1 fix(db_engine_specs): support SQLAlchemy 2 DBAPI discovery (#43700)
     add 5bffceb2951 feat(mcp): let get_dashboard_info accept filter_state directly (#43688)
     add 1f1539fe0eb feat: test(presto) close db_engine_spec unit test gaps (#43607)
     add ac3c158c41e fix(tags): catch TemplateError when validating access for tagged SQL Lab queries on delete (#43433)
     add da27ba59a57 fix(pivot-table): apply "Show values as" percent to exports and reports (#43718)
     add ba0142ca644 fix(dashboard): reconcile stale results tab in Chart Data modal (#43648)
     add b04a1534514 fix(dashboard): stretch Chart Data modal results grid to fill available height (#43454)
     add e3d30bb730e chore(deps-dev): bump oxlint from 1.79.0 to 1.80.0 in /superset-frontend (#43753)
     add 9656ecc3aff chore(deps-dev): bump @types/node from 26.2.0 to 26.3.0 in /superset-frontend (#43752)
     add 3b5a4baa055 chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-frontend (#43751)
     add 842efd5f120 fix(datasets): warn on percent D3 format for count metrics (#43453)
     add 439564041f5 fix(echarts): place weekly time-axis ticks on the data buckets (#43339)
     add 58ef03dabca chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-websocket (#43739)
     add eec1e4d288b chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-websocket (#43740)
     add ed513bbe42a docs: add Veremes to users in the wild (#43754)
     add e683aadd6e0 chore(build): upgrade `webpack-dev-server` v7 and dependent libs (#43766)
     add 32fe4f66128 fix(echarts): make Bar chart value labels fit-aware and readable (#43144)
     add ba50bdff237 fix(echarts): prevent x-axis time labels from overlapping (#43669)
     add c9f625627dc fix(explore): don't drop stashed control values from saved chart params (#43650)
     add 531587a4b26 fix(sql): catch sqlglot ParseError when parsing RLS predicates (#43651)
     add 794dee80c23 docs: point homepage Release Notes link to GitHub releases (#43780)
     add 69333e87db3 chore(deps): bump browserslist from 4.28.4 to 4.28.8 in /docs in the security group across 1 directory (#43773)
     add 8ad5859fdf8 chore(deps-dev): bump browserslist from 4.28.1 to 4.28.8 in /superset-frontend in the security group across 1 directory (#43775)
     add 38331619157 chore(deps): bump browserslist from 4.28.1 to 4.28.8 in /superset-frontend/cypress-base (#43774)
     add 56944319cb1 chore(deps): bump js-yaml from 5.3.0 to 5.4.0 in /docs (#43748)
     add 45b903b19ad chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /docs (#43745)
     add cf77deb678a fix(sqllab): explain dataset save failures instead of "Fatal error" (#43334)
     add 58f17efa6f5 feat(datasource): headless query API for Explorable datasources (#43527)
     add 9b2bb15ecec fix(themes): apply system default/dark theme changes live without a page refresh (#43778)
     add 0c7a47ef231 chore(deps): bump github/codeql-action/init from 4.37.8 to 4.37.9 (#43790)
     add 7321d4aff6f chore: fix typos in comments and docstrings (#43785)
     add 201a33f68f7 fix(charts): reject non-table datasource_type instead of crashing (#43500)
     add 316f6ad971a chore(lint): scope in-repo eslint plugins under @superset-ui (#43054)
     add b7da5336d35 docs(mcp): document embedded guest-token authentication (#43637)
     add 8c2290fcf45 docs(theming): document resultsGrid* Superset-specific tokens (#43638)
     add 46c8c67a400 fix(semantic_layers): mask write-only config fields, gate flag-off endpoints (#43474)
     add c19879ffff2 chore(translations): updated Slovenian translations (#43735)
     add f5e427083e2 fix(native-filters): keep "Select all" count stable while searching the Value filter (#43460)
     add 3bd437869a6 feat(export): let deployments carry extra fields through asset export/import (#43763)
     add 393b00f38ae chore(deps-dev): bump @typescript-eslint/parser from 8.67.0 to 8.68.0 in /superset-websocket (#43789)
     add 0ea234e9ae1 chore(deps): bump github/codeql-action/analyze from 4.37.8 to 4.37.9 (#43791)
     add e7c42dd8ed8 chore(deps-dev): bump fast-uri from 3.1.5 to 3.1.7 in /superset-embedded-sdk (#43796)
     add b49c1fd7e42 fix(security): handle cached schema/catalog names deserialized as lists (#43800)
     add 64bfbf75a49 feat(chart): list semantic views in the Create Chart datasource picker (#43629)
     add e8540b7c495 feat(dataset): warn about dependent charts and dashboards before purging an archived dataset (#43724)
     add 5b8e50e69db fix(reports): downgrade Slack channel-fetch auth-error logging to WARNING (SC-115301) (#42484)
     add a81c0f67739 fix(gsheets): catch JSONDecodeError in validate_parameters for malformed service_account_info (#43772)
     add 3394097c83a fix(snowflake): refresh rejected OAuth tokens (#43623)
     add 6dd841c35b2 fix(jinja): reuse get_request_json_body in get_dataset_id_from_context (#43556)
     add 52a4cb6314a fix(snowflake): quote case-sensitive lowercase column identifiers in generated SQL (#43312)
     add 07fc3144e5a feat(dataset): expose dataset certification controls (#43633)
     add d82a88f479e fix(dashboard): keep filter config modal within iframe (#43632)
     add d921131c5d9 fix(charts): resolve semantic-view datasource name and link in chart list (#43649)
     add b457280b57a chore(api): regenerate the OpenAPI spec (#43788)
     add 4a18556fdc0 fix(reports): prevent blank dashboard captures (#43784)
     add 18465bad51f perf(dashboard): batch dataset lookups during dashboard export (#43017)
     add bf12a21367c fix(charts): sort chart types by display name (#43634)
     add c185a2c6785 chore(deps-dev): bump @types/node from 26.3.0 to 26.4.0 in /superset-frontend (#43819)
     add 464adba69b8 chore(deps-dev): bump minimizer-webpack-plugin from 5.6.1 to 5.7.0 in /superset-frontend (#43818)
     add 3bd0ad52678 chore(deps): bump react-intersection-observer from 11.0.0 to 11.0.1 in /superset-frontend (#43817)
     add 9d855a4adf9 chore(deps-dev): bump @types/node from 26.2.0 to 26.4.0 in /superset-websocket (#43815)
     add 0398b320f94 chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /docs in the security group across 1 directory (#43798)
     add 669a0cefb49 chore(deps): bump the security group across 1 directory with 2 updates (#43797)
     add d9887fd9286 chore(deps): bump js-yaml from 5.4.0 to 5.4.1 in /docs (#43816)
     add a95c40aa1e4 chore(deps): bump qs from 6.15.2 to 6.16.0 in /superset-websocket/utils/client-ws-app in the security group across 1 directory (#43824)
     add d2d965e009f fix(navbar): use down-chevron icon consistently on all navbar dropdowns (#43531)
     add 28578160ff5 docs(pivot-table): document DB-computed totals/subtotals behavior (#43636)
     add b558f41461e feat(dashboard): convert @import to inline CSS in the dashboard CSS editor (#43667)
     add 9828281e7fd fix(charts): exclude string helpers from post_processing operation allowlist (#43345)
     add dd1a475df62 chore(deps-dev): bump baseline-browser-mapping from 2.11.18 to 2.11.19 in /superset-frontend (#43750)
     add 232ccf66d64 chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-frontend (#43749)
     add c91c9018323 chore(deps): bump baseline-browser-mapping from 2.11.18 to 2.11.19 in /docs (#43747)
     add 5d8ff9181a5 chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#43744)
     add a6cbd7c3b58 chore(deps-dev): bump typescript-eslint from 8.67.0 to 8.68.0 in /superset-websocket (#43742)
     add 0bca5af7a9b fix(table): hide the Time Grain control in raw records mode (#43802)
     add 3258f5fa3f6 fix(security): catch JSONDecodeError on stored query_context in query_context_modified (#43795)
     add 765a4ecca51 chore(deps): bump caniuse-lite from 1.0.30001809 to 1.0.30001810 in /docs (#43746)
     add cceb52e776f fix(embedded): don't let guest-user check turn error responses into 500s (#43834)
     add 93df5bc3620 fix(semantic-layers): classify SemanticLayer/SemanticView in FAB role sets (#43783)
     add 8d0637efadf fix(semantic-layers): serve filter-value suggestions for semantic views (#43777)
     add 2aacf579323 chore(deps): bump antd from 6.6.1 to 6.6.2 in /superset-frontend (#43858)
     add a6a794864bf chore(deps-dev): bump minimizer-webpack-plugin from 5.7.0 to 5.8.0 in /superset-frontend (#43857)
     add 0e01b5fb4ca chore(deps): bump baseline-browser-mapping from 2.11.19 to 2.11.20 in /docs (#43851)
     add 173d2173aaf chore(deps-dev): bump baseline-browser-mapping from 2.11.19 to 2.11.20 in /superset-frontend (#43856)
     add 0fc410eeccd chore(deps-dev): bump @testing-library/react from 15.0.7 to 16.3.3 in /superset-frontend (#43855)
     add 34286883d33 chore(deps): bump postcss from 8.5.23 to 8.5.26 in /superset-frontend (#43854)
     add 0a5eddb18b0 chore(deps): bump morgan from 1.11.0 to 1.12.0 in /superset-websocket/utils/client-ws-app (#43850)
     add a0685173932 chore(deps-dev): bump webpack from 5.109.2 to 5.110.1 in /superset-frontend (#43853)
     add c84c7c4bdd2 chore(ci): optimize Dependabot processes (#43681)
     add e9412576b20 feat(build/websocket): upgrade to Typescript 7 + migrate ESLint to TS7-compatible `oxlint` and`tsgolint` (#43703)
     add 8f6caf4ff94 feat(build): upgrade to Typescript 7, Babel 8, Webpack CLI 7 and JSDOM 30 for `superset-embedded-sdk` (#43702)
     add f63a0e9d9c7 feat(conditional-formatting): add manual min/max color-range bounds (#43820)
     add 31a3a190373 chore(deps-dev): bump @types/node from 25.9.5 to 26.4.0 in /superset-embedded-sdk (#43881)
     add d27124e5f6b chore(deps-dev): bump webpack-cli from 7.2.2 to 7.2.3 in /superset-embedded-sdk (#43882)
     add 3b1e43be5c5 chore(deps-dev): bump css-loader from 7.1.4 to 7.1.5 in /superset-frontend (#43880)
     add bc6ff77af01 feat(ci): broaden usage of fast-startup `ubuntu-slim` runner (#43477)
     add d9b201db74c fix(explore): open version-history forks in a usable tab, not a blank one (#43830)
     add 935ee5f1a65 chore(deps): bump simplejson from 4.1.1 to 4.1.2 (#43874)
     add 592d378c0d6 chore(deps-dev): bump pandas-gbq from 0.35.1 to 0.35.2 (#43873)
     add b925246befb chore(deps): bump click from 8.4.2 to 8.5.0 (#43872)
     add b1c33e54353 chore(deps-dev): bump hdbcli from 2.29.25 to 2.29.27 (#43869)
     add 297b0455f61 chore(deps): bump nh3 from 0.3.6 to 0.3.7 (#43868)
     add db60f25ee9a chore(deps-dev): bump babel-jest from 30.4.1 to 30.5.0 in /superset-frontend (#43879)
     add e1ce6b601c0 chore(deps-dev): bump jest-environment-jsdom from 30.4.1 to 30.5.0 in /superset-frontend (#43878)
     add 635de27b259 fix(explore): prevent editable title over-truncation (#43811)
     add 99a910b81c5 fix(echarts): render Plain Timeseries legends as HTML, not canvas (#43314)
     add 0636ac4b114 fix(examples): correct chart metadata (#43810)
     add 581ef8b7c18 chore(deps): bump antd from 6.6.1 to 6.6.2 in /docs (#43852)
     add c1822666dac ci: fail when the published OpenAPI spec is stale (#43841)
     add 6956da1de5d fix(sql): close StarRocks SQL parsing and mutation-detection gaps (#43809)
     add eb2d23b0518 feat(datasets): add partition filter mapping model, migration and validation
     add 3c96ebe2e3d feat(datasets): mirror filters onto the partition column at query time
     add a45d99ffe24 feat(datasets): add partition mapping preview endpoint and editor plumbing

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (c7a6548b4a0)
            \
             N -- N -- N   refs/heads/hughhhh/pfm-3-preview-and-editor (a45d99ffe24)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .codecov.yml                                       |     2 -
 .github/ISSUE_TEMPLATE/bug-report.yml              |     2 +-
 .github/ISSUE_TEMPLATE/cosmetic.md                 |     2 +-
 .github/dependabot.yml                             |    69 +-
 .github/labeler.yml                                |     2 +-
 .github/workflows/bump-python-package.yml          |     2 +-
 .github/workflows/check-openapi-spec-drift.yml     |    71 +
 .github/workflows/codeql-analysis.yml              |     4 +-
 .github/workflows/dependency-review.yml            |    21 +
 .github/workflows/docker.yml                       |     2 +-
 .github/workflows/frontend-bundle-size-nightly.yml |     1 +
 .github/workflows/generate-FOSSA-report.yml        |     2 +-
 .github/workflows/github-action-validator.yml      |     4 +-
 .github/workflows/hold-label-ci-gate.yml           |     4 +-
 .github/workflows/license-check.yml                |     2 +-
 .github/workflows/mirror-service-images.yml        |     2 +-
 .github/workflows/pre-commit.yml                   |     2 +-
 .github/workflows/superset-docs-deploy.yml         |     6 +-
 .github/workflows/superset-docs-verify.yml         |     2 +-
 .github/workflows/superset-e2e.yml                 |    10 +-
 .github/workflows/superset-extensions-cli.yml      |     2 +-
 .github/workflows/superset-frontend.yml            |     5 +-
 .github/workflows/superset-playwright.yml          |     2 +-
 .../workflows/superset-python-integrationtest.yml  |    14 +-
 .github/workflows/superset-python-presto-hive.yml  |    12 +-
 .github/workflows/superset-python-unittest.yml     |    17 +-
 .../workflows/superset-translations-comment.yml    |     2 +-
 .github/workflows/superset-translations.yml        |     2 +-
 .github/workflows/superset-websocket.yml           |     6 +-
 .pre-commit-config.yaml                            |     6 +-
 .rat-excludes                                      |     1 +
 RESOURCES/INTHEWILD.yaml                           |     5 +
 UPDATING.md                                        |   124 +-
 docs/DOCS_CLAUDE.md                                |     6 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |    14 +
 docs/admin_docs/configuration/cache.mdx            |    21 +
 .../configuration/configuring-superset.mdx         |    97 +
 .../importing-exporting-datasources.mdx            |    20 +
 docs/admin_docs/configuration/mcp-server.mdx       |   132 +-
 docs/admin_docs/configuration/theming.mdx          |    54 +
 docs/admin_docs/security/security.mdx              |    72 +-
 docs/data/countries.json                           |     1 +
 .../contributing/development-setup.md              |     8 +-
 .../developer_docs/extensions/components/alert.mdx |     4 +-
 .../developer_docs/extensions/components/index.mdx |     4 +-
 .../version-6.1.0/api.mdx                          |   552 +-
 docs/docs/index.mdx                                |     2 +-
 .../creating-your-first-dashboard.mdx              |    18 +
 docs/docs/using-superset/embedding.mdx             |    15 +
 docs/docs/using-superset/exploring-data.mdx        |    14 +
 docs/docs/using-superset/recently-archived.mdx     |    27 +-
 .../docs/using-superset/using-ai-with-superset.mdx |    23 +-
 docs/docs/using-superset/version-history.mdx       |    24 +-
 docs/eslint.config.js                              |    71 -
 docs/oxlint.json                                   |   139 +
 docs/package.json                                  |    40 +-
 docs/sip/median-stddev-variance-aggregates.md      |   236 +
 docs/src/pages/community.tsx                       |     2 +-
 docs/static/feature-flags.json                     |    30 +-
 docs/static/img/logos/veremes.svg                  |   Bin 0 -> 5469 bytes
 docs/static/resources/openapi.json                 | 25962 +++++-----
 docs/tsconfig.json                                 |    29 +-
 docs/yarn.lock                                     |  2670 +-
 pyproject.toml                                     |    66 +-
 requirements/base.in                               |     6 +-
 requirements/base.txt                              |    23 +-
 requirements/development.in                        |     2 +-
 requirements/development.txt                       |    48 +-
 scripts/benchmark_migration.py                     |     2 +-
 scripts/change_detector.py                         |     1 +
 scripts/check-type.js                              |     6 +-
 superset-core/src/superset_core/common/models.py   |    16 -
 superset-core/src/superset_core/mcp/decorators.py  |     7 -
 superset-core/src/superset_core/queries/daos.py    |     6 -
 superset-core/src/superset_core/queries/models.py  |     6 -
 superset-core/src/superset_core/queries/query.py   |     3 -
 superset-core/src/superset_core/queries/types.py   |    10 -
 superset-core/src/superset_core/rest_api/api.py    |     3 -
 .../src/superset_core/rest_api/decorators.py       |     3 -
 .../src/superset_core/semantic_layers/__init__.py  |     6 +-
 .../src/superset_core/semantic_layers/daos.py      |     3 -
 .../superset_core/semantic_layers/decorators.py    |     3 -
 .../src/superset_core/semantic_layers/layer.py     |     1 +
 .../src/superset_core/semantic_layers/models.py    |     3 -
 .../src/superset_core/semantic_layers/types.py     |    10 +-
 superset-core/src/superset_core/tasks/daos.py      |     3 -
 .../src/superset_core/tasks/decorators.py          |     6 -
 superset-core/src/superset_core/tasks/models.py    |     6 -
 superset-core/src/superset_core/tasks/types.py     |     9 -
 superset-core/tests/semantic_layers/test_types.py  |    97 +
 superset-embedded-sdk/.npmrc                       |     1 +
 superset-embedded-sdk/package-lock.json            |  4355 +-
 superset-embedded-sdk/package.json                 |    20 +-
 superset-embedded-sdk/tsconfig.json                |     2 +
 superset-frontend/.npmrc                           |     1 +
 superset-frontend/cypress-base/package-lock.json   |   266 +-
 superset-frontend/cypress-base/package.json        |    10 +-
 .../eslint-plugin-i18n-strings/package.json        |     2 +-
 .../eslint-rules/eslint-plugin-icons/package.json  |     2 +-
 .../eslint-plugin-theme-colors/package.json        |     2 +-
 superset-frontend/eslint.config.minimal.js         |     6 +-
 superset-frontend/jest.config.js                   |    25 +-
 superset-frontend/oxlint.json                      |     2 +-
 superset-frontend/package-lock.json                |  4568 +-
 superset-frontend/package.json                     |   108 +-
 .../packages/generator-superset/package.json       |     2 +-
 .../packages/superset-core/package.json            |     2 +-
 .../packages/superset-core/src/common/index.ts     |     1 +
 .../packages/superset-core/src/theme/types.ts      |     6 +
 .../superset-ui-chart-controls/package.json        |     2 +-
 .../components/ColumnTypeLabel/ColumnTypeLabel.tsx |     5 +
 .../src/components/MetricOption.tsx                |    16 +-
 .../src/sections/timeComparison.tsx                |     6 +
 .../superset-ui-chart-controls/src/types.ts        |    18 +
 .../src/utils/getColorFormatters.ts                |   204 +-
 .../src/utils/getTotalsMetrics.test.ts             |    29 +-
 .../src/utils/getTotalsMetrics.ts                  |    42 +-
 .../test/components/ColumnTypeLabel.test.tsx       |    17 +
 .../test/components/MetricOption.test.tsx          |    23 +
 .../test/utils/getColorFormatters.test.ts          |   456 +-
 .../packages/superset-ui-core/package.json         |    14 +-
 .../superset-ui-core/src/chart/types/VizType.ts    |     1 +
 .../components/DeleteModal/DeleteModal.test.tsx    |    58 +
 .../src/components/DeleteModal/index.tsx           |    18 +-
 .../src/components/DeleteModal/types.ts            |     6 +
 .../DynamicEditableTitle.regression.test.tsx       |   115 -
 .../DynamicEditableTitle.test.tsx                  |   184 +-
 .../src/components/DynamicEditableTitle/index.tsx  |    23 +-
 .../src/components/Modal/Modal.test.tsx            |   153 +
 .../src/components/Modal/Modal.tsx                 |    25 +-
 .../src/components/Select/AsyncSelect.test.tsx     |   101 +-
 .../src/components/Select/AsyncSelect.tsx          |    18 +-
 .../src/components/Select/Select.test.tsx          |   376 +-
 .../src/components/Select/Select.tsx               |   150 +-
 .../src/components/Select/types.ts                 |    19 +
 .../ThemedAgGridReact/ThemedAgGridReact.test.tsx   |    28 +
 .../src/components/ThemedAgGridReact/index.tsx     |    11 +
 .../factories/createMemoryFormatter.ts             |    18 +-
 .../factories/createSmartNumberFormatter.ts        |     5 +-
 .../superset-ui-core/src/number-format/index.ts    |     2 +
 .../src/query/extractQueryFields.ts                |     2 +
 .../src/query/getClientErrorObject.ts              |    21 +-
 .../superset-ui-core/src/query/types/Metric.ts     |     5 +-
 .../superset-ui-core/src/time-format/index.ts      |     1 +
 .../superset-ui-core/src/ui-overrides/types.ts     |    11 +
 .../superset-ui-core/src/utils/featureFlags.ts     |     1 +
 .../superset-ui-core/src/utils/html.test.tsx       |    37 +
 .../packages/superset-ui-core/src/utils/html.tsx   |    27 +-
 .../packages/superset-ui-core/src/utils/tooltip.ts |    56 +-
 .../factories/createMemoryFormatter.test.ts        |    25 +
 .../factories/createSmartNumberFormatter.test.ts   |     6 +
 .../test/query/extractQueryFields.test.ts          |    10 +
 .../test/query/getClientErrorObject.test.ts        |    18 +
 .../superset-ui-core/test/utils/tooltip.test.ts    |    92 +-
 superset-frontend/playwright.config.ts             |     4 +
 .../playwright/components/core/Menu.ts             |    71 +-
 .../playwright/components/modals/ConfirmDialog.ts  |     6 +-
 .../components/modals/DrillDetailModal.ts          |   133 +
 .../playwright/components/modals/index.ts          |     1 +
 .../playwright/pages/DashboardPage.ts              |   121 +
 .../dashboard/dashboard-drill-to-detail.spec.ts    |   747 +
 .../tests/recently-archived/delete-modal.spec.ts   |    58 -
 .../recently-archived/recently-archived.spec.ts    |    57 +-
 .../tests/version-history/activity-log.spec.ts     |   127 +-
 .../plugin-chart-ag-grid-table/package.json        |     2 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |    11 +-
 .../src/controlPanel.tsx                           |    23 +-
 .../src/renderers/NumericCellRenderer.tsx          |    12 +-
 .../src/transformProps.ts                          |     2 +
 .../test/NumericCellRenderer.test.tsx              |    59 +
 .../test/buildQuery.test.ts                        |    28 +-
 .../test/controlPanel.test.ts                      |    73 +
 .../test/transformProps.test.ts                    |    57 +
 .../plugins/plugin-chart-calendar/src/Calendar.ts  |     5 +-
 .../plugins/plugin-chart-calendar/src/utils.ts     |     8 +
 .../src/vendor/cal-heatmap.ts                      |    21 +-
 .../test/ReactCalendar.test.tsx                    |    23 +
 .../plugin-chart-calendar/test/cal-heatmap.test.ts |    91 +
 .../plugin-chart-calendar/test/utils.test.ts       |    25 +-
 .../src/util/layerUtil.tsx                         |    27 +-
 .../test/util/layerUtil.test.ts                    |    47 +-
 .../plugins/plugin-chart-chord/package.json        |     6 +-
 .../scripts/Country Map GeoJSON Generator.ipynb    |   Bin 11004185 -> 11010873 bytes
 .../plugin-chart-country-map/src/countries.ts      |     5 +
 .../src/countries/iran.geojson                     |   Bin 134537 -> 134537 bytes
 .../italy_regions_and_autonomous_provinces.geojson |   Bin 0 -> 108915 bytes
 .../test/countries.test.ts                         |    58 +
 .../test/iran.geojson.test.ts                      |    69 +
 .../src/BigNumber/BigNumberViz.test.tsx            |    34 +
 .../src/BigNumber/BigNumberViz.tsx                 |     1 +
 .../src/Butterfly/Butterfly.tsx                    |    79 +
 .../src/Butterfly/buildQuery.ts                    |    52 +
 .../src/Butterfly/constants.ts}                    |    19 +-
 .../src/{Waterfall => Butterfly}/controlPanel.tsx  |   205 +-
 .../src/Butterfly/images/example-dark.png          |   Bin 0 -> 48940 bytes
 .../src/Butterfly/images/example.png               |   Bin 0 -> 48389 bytes
 .../src/Butterfly/images/thumbnail-dark.png        |   Bin 0 -> 48859 bytes
 .../src/Butterfly/images/thumbnail.png             |   Bin 0 -> 48351 bytes
 .../plugin-chart-echarts/src/Butterfly/index.ts    |    65 +
 .../src/Butterfly/transformProps.ts                |   353 +
 .../plugin-chart-echarts/src/Butterfly/types.ts    |    57 +
 .../src/Gantt/transformProps.ts                    |     1 +
 .../src/MixedTimeseries/controlPanel.tsx           |    29 +
 .../src/MixedTimeseries/transformProps.ts          |   127 +-
 .../src/MixedTimeseries/types.ts                   |    22 +
 .../plugin-chart-echarts/src/Radar/utils.ts        |    16 +-
 .../src/Timeseries/Area/controlPanel.tsx           |     4 +
 .../src/Timeseries/EchartsTimeseries.test.tsx      |   800 +-
 .../src/Timeseries/EchartsTimeseries.tsx           |   330 +-
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |     4 +
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |     4 +
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |     4 +
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |     4 +
 .../src/Timeseries/Step/controlPanel.tsx           |     4 +
 .../src/Timeseries/TimeseriesLegend.tsx            |   196 +
 .../src/Timeseries/buildQuery.ts                   |     7 +-
 .../src/Timeseries/constants.ts                    |     9 +
 .../src/Timeseries/transformProps.ts               |   328 +-
 .../src/Timeseries/transformers.ts                 |   343 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |    44 +
 .../src/Waterfall/controlPanel.tsx                 |    38 +
 .../src/Waterfall/transformProps.ts                |    10 +-
 .../plugin-chart-echarts/src/Waterfall/types.ts    |     4 +
 .../src/components/Echart.test.tsx                 |    36 +-
 .../plugin-chart-echarts/src/components/Echart.tsx |    26 +-
 .../plugins/plugin-chart-echarts/src/constants.ts  |    16 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  |    98 +
 .../plugins/plugin-chart-echarts/src/index.ts      |     2 +
 .../src/utils/eChartOptionsSchema.ts               |    62 +-
 .../src/utils/eventHandlers.ts                     |     3 +
 .../plugin-chart-echarts/src/utils/forecast.ts     |    29 +-
 .../plugin-chart-echarts/src/utils/formatters.ts   |   150 +
 .../src/utils/safeEChartOptionsParser.test.ts      |   161 +
 .../plugin-chart-echarts/src/utils/series.ts       |   164 +
 .../test/Butterfly/Butterfly.test.tsx              |   202 +
 .../test/Butterfly/buildQuery.test.ts              |    85 +
 .../test/Butterfly/controlPanel.test.ts            |    83 +
 .../test/Butterfly/transformProps.test.ts          |   341 +
 .../test/MixedTimeseries/controlPanel.test.ts      |   109 +
 .../test/MixedTimeseries/transformProps.test.ts    |   470 +-
 .../plugin-chart-echarts/test/Radar/utils.test.ts  |    38 +
 .../test/Timeseries/Bar/controlPanel.test.ts       |    40 +-
 .../test/Timeseries/Bar/transformProps.test.ts     |   240 +-
 .../test/Timeseries/EchartsTimeseries.test.tsx     |   647 +-
 .../test/Timeseries/buildQuery.test.ts             |    22 +
 .../test/Timeseries/transformProps.test.ts         |  1145 +-
 .../test/Timeseries/transformers.test.ts           |   615 +-
 .../test/Waterfall/transformProps.test.ts          |    53 +
 .../test/utils/eventHandlers.test.ts               |    43 +
 .../test/utils/forecast.test.ts                    |    88 +-
 .../plugin-chart-echarts/test/utils/series.test.ts |   145 +
 .../src/transformProps.ts                          |     2 +-
 .../test/transformProps.test.ts                    |    37 +-
 .../plugins/plugin-chart-partition/package.json    |     2 +-
 .../plugins/plugin-chart-pivot-table/package.json  |     2 +-
 .../src/plugin/transformProps.ts                   |    19 +-
 .../test/plugin/transformProps.test.ts             |   149 +
 .../test/plugin/utilities.test.ts                  |    19 +
 .../plugin-chart-point-cluster-map/package.json    |     4 +-
 .../plugins/plugin-chart-table/package.json        |     2 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    54 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |     5 +-
 .../plugin-chart-table/src/controlPanel.tsx        |    23 +-
 .../plugin-chart-table/src/transformProps.ts       |     2 +
 .../plugin-chart-table/test/TableChart.test.tsx    |   106 +
 .../plugin-chart-table/test/buildQuery.test.ts     |    27 +-
 .../plugin-chart-table/test/controlPanel.test.ts   |    73 +
 .../plugins/plugin-chart-world-map/src/WorldMap.ts |    25 +-
 .../plugin-chart-world-map/test/WorldMap.test.ts   |    27 +
 .../src/components/Tooltip.test.tsx                |    64 +
 .../preset-chart-deckgl/src/components/Tooltip.tsx |    26 +-
 superset-frontend/spec/helpers/testing-library.tsx |     2 +-
 superset-frontend/src/SqlLab/actions/sqlLab.ts     |    12 +-
 .../components/QueryHistory/QueryHistory.test.tsx  |   243 +-
 .../src/SqlLab/components/QueryHistory/index.tsx   |    41 +-
 .../QueryHistory/mergeQueryStatus.test.ts          |   151 +
 .../components/QueryHistory/mergeQueryStatus.ts    |    71 +
 .../src/SqlLab/components/ResultSet/index.tsx      |     4 +-
 .../SaveDatasetActionButton.test.tsx               |    43 +-
 .../components/SaveDatasetActionButton/index.tsx   |     9 +-
 .../SaveDatasetModal/SaveDatasetModal.test.tsx     |    41 +
 .../SqlLab/components/SaveDatasetModal/index.tsx   |    16 +-
 .../SqlLab/components/SaveQuery/SaveQuery.test.tsx |    94 +-
 .../src/SqlLab/components/SaveQuery/index.tsx      |    16 +-
 .../SqlLab/components/SqlEditor/SqlEditor.test.tsx |    49 +
 .../src/SqlLab/components/SqlEditor/index.tsx      |     9 +-
 .../src/SqlLab/reducers/sqlLab.test.ts             |    47 +
 superset-frontend/src/SqlLab/reducers/sqlLab.ts    |    23 +-
 .../src/components/Chart/chartReducer.ts           |     5 +
 .../src/components/Chart/chartReducers.test.ts     |    16 +
 .../useDrillDetailMenuItems.test.tsx               |     5 +
 .../DatasourceModal/DatasourceModal.test.tsx       |   245 +-
 .../DatasourceModal.useModal.test.tsx              |     4 +
 .../Datasource/DatasourceModal/index.tsx           |   110 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |   246 +-
 .../DatasourceEditor/datasetCertification.ts       |   111 +
 .../tests/DatasourceEditor.test.tsx                |    11 +
 .../DatasourceEditorDatasetCertification.test.tsx  |   109 +
 .../DatasourceEditorMetricCertification.test.tsx   |    73 +
 .../DatasourceEditorMetricFormatWarning.test.tsx   |   210 +
 .../tests/DatasourceEditorWarningMarkdown.test.tsx |    97 +
 .../tests/datasetCertification.test.ts             |   169 +
 .../tests/hydrateMetricExtra.test.ts               |    96 +
 .../Datasource/components/Fieldset/index.tsx       |    34 +-
 .../src/components/Datasource/index.ts             |     1 +
 .../src/components/Datasource/types.ts             |     6 +
 .../src/components/Datasource/utils/index.ts       |    27 +
 .../src/components/FilterableTable/index.tsx       |     2 +-
 .../src/components/FilterableTable/utils.test.tsx  |    29 +
 .../src/components/FilterableTable/utils.tsx       |     6 +-
 superset-frontend/src/components/ListView/types.ts |     2 +
 .../RowCountLabel/RowCountLabel.test.tsx           |    16 +
 .../src/components/RowCountLabel/index.tsx         |    16 +-
 .../src/constants.test.ts                          |    29 +-
 superset-frontend/src/constants.ts                 |     1 +
 .../src/dashboard/actions/dashboardLayout.ts       |     2 +-
 .../src/dashboard/actions/dashboardState.test.ts   |   101 +-
 .../src/dashboard/actions/dashboardState.ts        |    89 +-
 .../src/dashboard/actions/nativeFilters.ts         |    14 +-
 .../DashboardBuilder/DashboardWrapper.tsx          |     2 +-
 .../dashboard/components/PropertiesModal/index.tsx |    40 +-
 .../PropertiesModal/sections/AccessSection.tsx     |     7 +
 .../sections/StylingSection.test.tsx               |   112 +
 .../PropertiesModal/sections/StylingSection.tsx    |    95 +-
 .../src/dashboard/components/SliceAdder.tsx        |     2 +-
 .../components/SliceHeader/SliceHeader.test.tsx    |   192 +-
 .../components/SliceHeader/SliceInfo.test.tsx      |    64 +
 .../components/SliceHeader/SliceInfo.tsx}          |    38 +-
 .../src/dashboard/components/SliceHeader/index.tsx |    38 +-
 .../SliceHeaderControls.test.tsx                   |    57 +-
 .../components/SliceHeaderControls/Styles.tsx      |    18 +-
 .../components/SliceHeaderControls/index.tsx       |    24 +
 .../gridComponents/ChartHolder/ChartHolder.tsx     |    18 +-
 .../ConfigModal/SharedStyles.test.tsx}             |    42 +-
 .../nativeFilters/ConfigModal/SharedStyles.tsx     |    12 +-
 .../CrossFilters/ScopingModal/ScopingTreePanel.tsx |    13 +-
 .../FilterControls/FilterControl.test.tsx          |    26 +
 .../FilterBar/FilterControls/FilterControl.tsx     |     4 +-
 .../FilterControls/GroupByFilterCard.test.tsx      |    38 +-
 .../FilterBar/FilterControls/GroupByFilterCard.tsx |     2 +-
 .../nativeFilters/FilterBar/utils.test.ts          |    52 +
 .../components/nativeFilters/FilterBar/utils.ts    |     7 +-
 .../FiltersConfigForm/DatasetSelect.test.tsx       |     2 +-
 .../FiltersConfigForm/DatasetSelect.tsx            |    32 +-
 .../transformers/buildTarget.test.ts               |    10 +
 .../FiltersConfigModal/transformers/buildTarget.ts |    12 +-
 .../transformers/customizationTransformer.test.ts  |   102 +
 .../transformers/customizationTransformer.ts       |     5 +-
 .../transformers/filterTransformer.test.ts         |   156 +
 .../transformers/filterTransformer.ts              |     7 +-
 .../nativeFilters/FiltersConfigModal/utils.ts      |    70 -
 .../src/dashboard/util/permissionUtils.test.ts     |    15 +
 .../src/dashboard/util/permissionUtils.ts          |     7 +-
 .../src/dashboard/util/resolveCssImports.test.ts   |   210 +
 .../src/dashboard/util/resolveCssImports.ts        |   280 +
 superset-frontend/src/dataMask/reducer.ts          |     2 +-
 .../src/explore/actions/hydrateExplore.test.ts     |    76 +-
 .../src/explore/actions/hydrateExplore.ts          |    34 +-
 .../src/explore/actions/saveModalActions.test.ts   |   273 +-
 .../src/explore/actions/saveModalActions.ts        |   110 +-
 .../src/explore/components/Control.test.tsx        |    77 +-
 .../src/explore/components/Control.tsx             |    21 +-
 .../src/explore/components/ControlHeader.test.tsx  |   112 +
 .../src/explore/components/ControlHeader.tsx       |    32 +-
 .../components/DataTablesPane/DataTablesPane.tsx   |    26 +-
 .../components/DataTableControls.tsx               |    15 +-
 .../components/ResultsPaneOnDashboard.tsx          |    26 +-
 .../DataTablesPane/components/SamplesPane.tsx      |    23 +-
 .../components/SingleQueryResultPane.tsx           |     4 +
 .../components/useGridResultTable.tsx              |     6 +-
 .../DataTablesPane/components/useResultsPane.tsx   |    13 +
 .../DataTablesPane/test/DataTableControls.test.tsx |    94 +
 .../test/ResultsPaneOnDashboard.test.tsx           |    61 +
 .../DataTablesPane/test/SamplesPane.test.tsx       |    46 +
 .../test/getStaleResultsTabFallback.test.ts        |     2 +-
 .../DataTablesPane/test/useResultsPane.test.tsx    |    43 +-
 .../src/explore/components/DataTablesPane/types.ts |    10 +
 .../src/explore/components/DataTablesPane/utils.ts |    54 +
 .../components/DatasourcePanel/DatasourceItems.tsx |     2 +-
 .../explore/components/PropertiesModal/index.tsx   |    54 +-
 .../AnnotationLayer.test.tsx                       |     8 +-
 .../AnnotationLayerControl/AnnotationLayer.tsx     |     2 +-
 .../ColorBreakpointOption.test.tsx                 |    25 +
 .../ColorBreakpointOption.tsx                      |    17 +-
 .../controls/ColumnConfigControl/constants.tsx     |     7 +
 .../controls/ColumnConfigControl/types.ts          |     4 +-
 .../ConditionalFormattingControl.tsx               |     3 +
 .../FormattingPopover.tsx                          |     2 +
 .../FormattingPopoverContent.test.tsx              |   773 +-
 .../FormattingPopoverContent.tsx                   |   332 +-
 .../ConditionalFormattingControl/constants.ts      |    17 +-
 .../controls/ConditionalFormattingControl/types.ts |    12 +
 .../DatasourceControl/DatasourceControl.test.tsx   |    16 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |    23 +-
 .../tests/DateFilterLabel.test.tsx                 |   133 +-
 .../components/controls/DateFilterControl/types.ts |     6 +
 .../ColumnSelectPopover.test.tsx                   |    16 +-
 .../DndAdhocFilterOption.tsx                       |     2 +-
 .../DndFilterSelect.test.tsx                       |    31 +-
 .../FilterControl/AdhocFilter/AdhocFilter.test.ts  |   128 +
 .../controls/FilterControl/AdhocFilter/index.ts    |    35 +-
 .../AdhocFilterEditPopover.test.tsx                |    23 +
 .../FilterControl/AdhocFilterEditPopover/index.tsx |    18 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |   339 +
 .../index.tsx                                      |   332 +-
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |    18 +
 .../FilterControl/AdhocFilterOption/index.tsx      |     2 +-
 .../controls/FilterControl/utils/translateToSQL.ts |    45 +-
 .../FixedOrMetricControl.test.tsx                  |     9 +-
 .../controls/MetricControl/AdhocMetric.test.ts     |    39 +
 .../controls/MetricControl/AdhocMetric.ts          |    13 +
 .../AdhocMetricEditPopover.test.tsx                |    16 +-
 .../MetricControl/AdhocMetricEditPopover/index.tsx |     3 +-
 .../VizTypeControl/VizTypeControl.test.tsx         |    18 +
 .../controls/VizTypeControl/VizTypeGallery.tsx     |    60 +-
 .../useExploreAdditionalActionsMenu/index.tsx      |    43 +-
 .../useExploreAdditionalActionsMenu.test.tsx       |    40 +
 superset-frontend/src/explore/constants.ts         |    66 +-
 .../exploreUtils/getSimpleSQLExpression.test.ts    |    11 +
 .../src/explore/exploreUtils/index.ts              |    13 +-
 .../src/explore/reducers/exploreReducer.test.ts    |    75 +-
 .../src/features/alerts/AlertReportModal.tsx       |    14 +-
 .../src/features/apiKeys/ApiKeyCreateModal.tsx     |    34 +-
 .../src/features/apiKeys/ApiKeyList.tsx            |    13 +
 .../src/features/apiKeys/apiKeyScopes.test.ts      |    50 +
 .../src/features/apiKeys/apiKeyScopes.ts           |    55 +
 .../src/features/charts/ChartCard.test.tsx         |   167 +
 .../src/features/charts/ChartCard.tsx              |    48 +-
 .../src/features/dashboards/DashboardCard.test.tsx |    51 +-
 .../src/features/dashboards/DashboardCard.tsx      |    12 +-
 .../databases/DatabaseModal/ExtraOptions.tsx       |     7 +-
 .../databases/DatabaseModal/index.test.tsx         |     3 +-
 .../UploadDataModel/UploadDataModal.test.tsx       |    12 +-
 .../AddDataset/DatasetPanel/DatasetPanel.test.tsx  |     9 +-
 .../DatasetPanel/DatasetPanelWrapper.test.tsx      |     9 +-
 .../features/datasets/DatasetSelectLabel/index.tsx |     9 +-
 .../features/datasets/fetchDatasourceList.test.ts  |    75 +
 .../src/features/datasets/fetchDatasourceList.ts   |   113 +
 superset-frontend/src/features/datasets/types.ts   |     3 +
 .../src/features/home/LanguagePicker.test.tsx      |    10 +
 .../src/features/home/LanguagePicker.tsx           |     2 +-
 superset-frontend/src/features/home/Menu.test.tsx  |    14 +
 superset-frontend/src/features/home/Menu.tsx       |    10 +
 .../src/features/home/RightMenu.test.tsx           |    28 +
 superset-frontend/src/features/home/RightMenu.tsx  |    10 +
 .../reports/ReportModal/ReportModal.test.tsx       |    21 +-
 .../src/features/reports/ReportModal/index.tsx     |    22 +-
 .../src/features/roles/RoleFormItems.test.tsx      |     6 +-
 .../src/features/roles/RoleFormItems.tsx           |     6 +
 .../semanticViews/SemanticViewEditModal.test.tsx   |   178 +-
 .../semanticViews/SemanticViewEditModal.tsx        |    71 +-
 .../src/features/users/UserListModal.tsx           |    41 +-
 superset-frontend/src/features/users/utils.test.ts |    99 +
 superset-frontend/src/features/users/utils.ts      |    41 +-
 .../features/versionHistory/normalization.test.ts  |   108 +
 .../src/features/versionHistory/normalization.ts   |   158 +
 .../src/features/versionHistory/reducer.test.ts    |    56 +
 .../src/features/versionHistory/reducer.ts         |   133 +-
 .../versionHistory/sessionLogMiddleware.test.ts    |    46 +-
 .../versionHistory/sessionLogMiddleware.ts         |    85 +-
 .../src/features/versionHistory/types.ts           |    41 +
 .../components/Select/SelectFilterPlugin.test.tsx  |   285 +-
 .../components/Select/SelectFilterPlugin.tsx       |    64 +-
 .../filters/components/Select/buildQuery.test.ts   |    32 +
 .../src/filters/components/Select/buildQuery.ts    |     9 +-
 .../src/hooks/useThemeMenuItems.test.tsx           |    10 +
 .../ArchivedList/ArchivedDatasetPurgeModal.tsx     |   216 +
 .../src/pages/ArchivedList/ArchivedList.test.tsx   |   337 +-
 superset-frontend/src/pages/ArchivedList/index.tsx |   249 +-
 superset-frontend/src/pages/ArchivedList/types.ts  |    38 +
 superset-frontend/src/pages/Chart/Chart.test.tsx   |    48 +-
 superset-frontend/src/pages/Chart/index.tsx        |    10 +
 .../src/pages/ChartCreation/ChartCreation.test.tsx |   334 +-
 .../src/pages/ChartCreation/index.tsx              |   134 +-
 .../pages/ChartList/ChartList.listview.test.tsx    |    76 +-
 .../src/pages/ChartList/ChartList.test.tsx         |   254 +
 superset-frontend/src/pages/ChartList/index.tsx    |   252 +-
 .../src/pages/DashboardList/index.tsx              |     8 +-
 .../DatabaseList.semanticLayerDelete.test.tsx      |   425 +
 superset-frontend/src/pages/DatabaseList/index.tsx |   173 +-
 .../DatasetList/DatasetList.listview.test.tsx      |    28 +
 .../DatasetList/DatasetList.subdirectory.test.tsx  |    37 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |    35 +-
 superset-frontend/src/pages/Home/Home.test.tsx     |     2 +-
 .../pages/SavedQueryList/SavedQueryList.test.tsx   |   141 +-
 .../src/pages/SavedQueryList/index.tsx             |    22 +-
 .../src/pages/SqlLab/LocationContext.test.tsx      |    66 +
 .../src/pages/SqlLab/LocationContext.tsx           |     6 +-
 .../src/pages/ThemeList/ThemeList.test.tsx         |   227 +
 superset-frontend/src/pages/ThemeList/index.tsx    |    67 +-
 superset-frontend/src/setup/setupFormatters.ts     |     2 +-
 superset-frontend/src/theme/ThemeController.ts     |   121 +-
 superset-frontend/src/theme/ThemeProvider.tsx      |     7 +
 .../src/theme/tests/ThemeController.test.ts        |   332 +
 .../src/theme/tests/ThemeProvider.test.tsx         |    15 +
 superset-frontend/src/types/Chart.ts               |     2 +
 superset-frontend/src/types/bootstrapTypes.ts      |     2 +-
 .../src/utils/downloadAsImage.test.ts              |   234 +
 superset-frontend/src/utils/downloadAsImage.tsx    |    90 +-
 .../src/utils/downloadAsPivotExcel.test.ts         |   116 +
 .../src/utils/downloadAsPivotExcel.ts              |    52 +-
 .../src/utils/navigationUtils.test.ts              |   155 +
 superset-frontend/src/utils/navigationUtils.ts     |    31 +-
 superset-frontend/src/utils/softDeleteCopy.test.ts |    18 +-
 superset-frontend/src/utils/softDeleteCopy.ts      |    21 +-
 superset-frontend/src/views/CRUD/hooks.test.tsx    |   258 +
 superset-frontend/src/views/CRUD/hooks.ts          |    48 +-
 superset-frontend/src/views/CRUD/types.ts          |     2 +
 superset-frontend/src/views/CRUD/utils.test.tsx    |    60 +
 superset-frontend/src/views/CRUD/utils.tsx         |    18 +-
 .../components/LeftCell/LeftCell.test.tsx          |    55 +
 .../TimeTable/components/LeftCell/LeftCell.tsx     |    19 +-
 .../src/visualizations/presets/MainPreset.ts       |     4 +
 superset-websocket/.npmrc                          |     1 +
 superset-websocket/.oxfmtrc.json                   |     1 -
 superset-websocket/eslint.config.mjs               |    50 -
 superset-websocket/oxlint.json                     |   146 +
 superset-websocket/package-lock.json               |  2635 +-
 superset-websocket/package.json                    |    27 +-
 superset-websocket/spec/index.test.ts              |    40 +-
 superset-websocket/src/index.ts                    |    18 +-
 superset-websocket/utils/client-ws-app/app.js      |    18 +-
 superset-websocket/utils/client-ws-app/bin/www     |    20 +-
 .../utils/client-ws-app/package-lock.json          |    76 +-
 .../utils/client-ws-app/package.json               |     3 +-
 .../utils/client-ws-app/public/javascripts/app.js  |     2 +-
 .../utils/client-ws-app/routes/index.js            |     9 +-
 superset-websocket/utils/loadtest.js               |     7 +-
 superset/__init__.py                               |    10 -
 superset/charts/api.py                             |   190 +-
 superset/charts/client_processing.py               |   590 +-
 superset/charts/data/api.py                        |    71 +-
 superset/charts/schemas.py                         |   126 +-
 superset/cli/test_db.py                            |     3 -
 superset/cli/update.py                             |    17 +-
 superset/cli/viz_migrations.py                     |     2 +-
 superset/commands/chart/create.py                  |    12 +
 superset/commands/chart/delete.py                  |    60 +-
 superset/commands/chart/export.py                  |    23 +-
 superset/commands/chart/importers/v1/utils.py      |     8 +-
 superset/commands/chart/update.py                  |    59 +-
 superset/commands/dashboard/export.py              |   116 +-
 .../commands/dashboard/importers/dispatcher.py     |    12 +-
 superset/commands/dashboard/importers/v1/utils.py  |     8 +-
 superset/commands/database/exceptions.py           |    36 -
 superset/commands/database/export.py               |     6 +-
 superset/commands/database/importers/v1/utils.py   |    82 +-
 superset/commands/database/oauth2.py               |    11 +-
 superset/commands/database/uploaders/base.py       |     2 +
 superset/commands/dataset/create.py                |    46 +-
 superset/commands/dataset/export.py                |    63 +-
 superset/commands/dataset/importers/dispatcher.py  |    12 +-
 superset/commands/dataset/importers/v1/utils.py    |    92 +-
 superset/commands/dataset/update.py                |     4 +-
 superset/commands/deletion_retention/audit.py      |   122 +-
 .../commands/deletion_retention/force_purge.py     |     5 +-
 .../commands/deletion_retention/purge_cascade.py   |    54 +-
 .../commands/deletion_retention/purge_impact.py    |   128 +
 .../commands/deletion_retention/purge_policy.py    |   114 +-
 superset/commands/explore/permalink/create.py      |     7 +-
 superset/commands/explore/permalink/get.py         |     7 +-
 superset/commands/export/models.py                 |    55 +-
 superset/commands/importers/v1/utils.py            |   100 +-
 superset/commands/purge.py                         |   115 +-
 superset/commands/query/export.py                  |    42 +-
 superset/commands/query/importers/v1/utils.py      |    42 +-
 superset/commands/report/create.py                 |     2 +-
 superset/commands/report/execute.py                |    89 +-
 superset/commands/report/update.py                 |    37 +-
 superset/commands/semantic_layer/create.py         |     8 +-
 superset/commands/semantic_layer/delete.py         |    19 +-
 superset/commands/semantic_layer/update.py         |    57 +-
 superset/commands/sql_lab/execute.py               |    26 +
 superset/commands/sql_lab/permalink/get.py         |    23 +-
 superset/commands/sql_lab/results.py               |    12 +
 .../commands/sql_lab/streaming_export_command.py   |    10 +
 superset/commands/streaming_export/base.py         |    36 +-
 superset/commands/tag/create.py                    |    35 +-
 superset/commands/tag/delete.py                    |    77 +-
 superset/commands/tag/exceptions.py                |    25 +
 superset/commands/tag/export.py                    |     4 +-
 superset/commands/tag/update.py                    |     7 +-
 superset/commands/tag/utils.py                     |    21 -
 superset/commands/theme/export.py                  |     6 +-
 superset/commands/theme/import_themes.py           |    12 +
 superset/commands/theme/update.py                  |    10 +
 superset/commands/utils.py                         |    25 +
 superset/commands/version_restore.py               |     4 +-
 superset/common/chart_data.py                      |     1 +
 superset/common/form_data_query_context.py         |     4 +-
 superset/common/query_context_factory.py           |    21 +-
 superset/common/query_context_processor.py         |    65 +-
 superset/common/query_object.py                    |   141 +-
 superset/common/tabular_query.py                   |   436 +
 superset/config.py                                 |    51 +-
 superset/connectors/sqla/models.py                 |   131 +-
 superset/connectors/sqla/utils.py                  |    15 +-
 superset/constants.py                              |    20 +
 superset/daos/base.py                              |    17 +-
 superset/daos/dashboard.py                         |    12 +-
 superset/daos/datasource.py                        |     6 +-
 superset/daos/report.py                            |    16 +-
 superset/daos/tag.py                               |    18 +-
 superset/dashboards/api.py                         |   112 +-
 superset/dashboards/filter_scope.py                |   275 +
 superset/dashboards/filter_state/api.py            |     6 -
 superset/dashboards/schemas.py                     |     9 +-
 superset/databases/api.py                          |    17 +-
 superset/databases/filters.py                      |     2 +-
 superset/databases/schemas.py                      |     2 +-
 superset/datasets/api.py                           |   245 +-
 superset/datasets/schemas.py                       |    75 +-
 superset/datasource/api.py                         |   390 +-
 superset/datasource/schemas.py                     |   119 +-
 superset/db_engine_specs/README.md                 |     8 +-
 superset/db_engine_specs/__init__.py               |    30 +-
 superset/db_engine_specs/base.py                   |   235 +-
 superset/db_engine_specs/clickhouse.py             |    67 +-
 superset/db_engine_specs/cockroachdb.py            |    11 +-
 superset/db_engine_specs/doris.py                  |     8 +-
 superset/db_engine_specs/duckdb.py                 |    16 +-
 superset/db_engine_specs/greenplum.py              |    10 +
 superset/db_engine_specs/gsheets.py                |    42 +-
 superset/db_engine_specs/hana.py                   |     8 +-
 superset/db_engine_specs/hologres.py               |    10 +
 superset/db_engine_specs/mysql.py                  |    88 +-
 superset/db_engine_specs/netezza.py                |     9 +
 superset/db_engine_specs/oceanbase.py              |     9 +-
 superset/db_engine_specs/postgres.py               |    87 +
 superset/db_engine_specs/presto.py                 |    11 +-
 superset/db_engine_specs/redshift.py               |    22 +-
 superset/db_engine_specs/risingwave.py             |    10 +
 superset/db_engine_specs/snowflake.py              |   208 +-
 superset/db_engine_specs/sqlite.py                 |    22 +-
 superset/db_engine_specs/starrocks.py              |     9 +-
 superset/db_engine_specs/trino.py                  |    16 +-
 superset/db_engine_specs/vertica.py                |     9 +
 superset/db_engine_specs/yugabytedb.py             |    10 +
 superset/examples/birth_names.py                   |    69 +-
 .../datasets/project_management.yaml               |     2 +-
 .../charts/Quarterly_Sales_By_Product_Line.yaml    |     2 +-
 .../charts/Revenue_by_Deal_Size.yaml               |     2 +-
 .../charts/Messages_per_Channel.yaml               |     2 +-
 .../usa_births_names/charts/Boy_Name_Cloud.yaml    |     2 +-
 .../examples/usa_births_names/charts/Boys.yaml     |     4 +-
 .../examples/usa_births_names/charts/Genders.yaml  |     2 +-
 .../usa_births_names/charts/Genders_by_State.yaml  |     2 +-
 .../usa_births_names/charts/Girl_Name_Cloud.yaml   |     2 +-
 .../examples/usa_births_names/charts/Girls.yaml    |     4 +-
 .../usa_births_names/charts/Participants.yaml      |     2 +-
 .../usa_births_names/charts/Pivot_Table_v2.yaml    |     2 +-
 .../charts/Top_10_Boy_Name_Share.yaml              |     4 +-
 .../charts/Top_10_Girl_Name_Share.yaml             |     4 +-
 .../examples/usa_births_names/charts/Trends.yaml   |     2 +-
 superset/examples/utils.py                         |     2 +-
 ...op_10_Games_Proportion_of_Sales_in_Markets.yaml |     2 +-
 .../Total_Sales_per_Market_Grouped_by_Genre.yaml   |     2 +-
 superset/examples/world_bank.py                    |    25 +-
 .../examples/world_health/charts/Box_plot.yaml     |     2 +-
 .../examples/world_health/charts/Growth_Rate.yaml  |     2 +-
 .../charts/Life_Expectancy_VS_Rural.yaml           |     2 +-
 .../charts/Most_Populated_Countries.yaml           |     2 +-
 superset/examples/world_health/charts/Rural.yaml   |     2 +-
 .../world_health/charts/Rural_Breakdown.yaml       |     2 +-
 superset/examples/world_health/charts/Treemap.yaml |     2 +-
 .../world_health/charts/World_s_Pop_Growth.yaml    |     2 +-
 .../world_health/charts/World_s_Population.yaml    |     2 +-
 superset/explorables/base.py                       |    10 +
 superset/explore/form_data/api.py                  |     9 +
 superset/explore/permalink/api.py                  |     5 +
 superset/explore/utils.py                          |    11 +-
 superset/extensions/cache_middleware.py            |     8 +-
 superset/extensions/metadb.py                      |    86 +-
 superset/extensions/storage/api.py                 |    10 +-
 superset/importexport/api.py                       |    12 +-
 superset/initialization/__init__.py                |    30 +-
 superset/jinja_context.py                          |   110 +-
 superset/mcp_service/CLAUDE.md                     |    13 +-
 superset/mcp_service/README.md                     |    21 +-
 superset/mcp_service/__main__.py                   |    27 +-
 superset/mcp_service/annotation_layer/schemas.py   |    78 +-
 .../tool/get_annotation_layer_info.py              |     1 +
 .../tool/get_layer_annotation_info.py              |     1 +
 .../tool/list_annotation_layers.py                 |     1 +
 .../tool/list_layer_annotations.py                 |     1 +
 superset/mcp_service/app.py                        |    24 +-
 superset/mcp_service/auth.py                       |   112 +-
 superset/mcp_service/caching.py                    |    48 +-
 superset/mcp_service/chart/chart_helpers.py        |    27 +-
 superset/mcp_service/chart/chart_utils.py          |    56 +-
 superset/mcp_service/chart/plugin.py               |     4 +
 superset/mcp_service/chart/plugins/__init__.py     |     5 +
 superset/mcp_service/chart/plugins/histogram.py    |    28 +-
 .../mcp_service/chart/plugins/interactive_pivot.py |   235 +
 .../chart/prompts/create_chart_guided.py           |     4 +-
 superset/mcp_service/chart/registry.py             |    15 +
 .../mcp_service/chart/resources/chart_configs.py   |    39 +
 superset/mcp_service/chart/schemas.py              |   428 +-
 superset/mcp_service/chart/tool/delete_chart.py    |    14 +-
 superset/mcp_service/chart/tool/generate_chart.py  |    54 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |   356 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |    45 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |    83 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |   132 +-
 .../chart/tool/get_chart_type_schema.py            |    62 +-
 superset/mcp_service/chart/tool/list_charts.py     |     1 +
 superset/mcp_service/chart/tool/restore_chart.py   |    62 +-
 superset/mcp_service/chart/tool/update_chart.py    |    14 +-
 .../mcp_service/chart/tool/update_chart_preview.py |     4 +
 .../chart/validation/dataset_validator.py          |    30 +-
 .../chart/validation/runtime/format_validator.py   |     9 +-
 .../chart/validation/schema_validator.py           |     9 +-
 superset/mcp_service/composite_token_verifier.py   |    54 +-
 .../mcp_service/dashboard/layout_validation.py     |   312 +
 superset/mcp_service/dashboard/permalink.py        |   184 +
 superset/mcp_service/dashboard/schemas.py          |   618 +-
 .../tool/add_chart_to_existing_dashboard.py        |     2 +
 .../mcp_service/dashboard/tool/delete_dashboard.py |    16 +-
 .../dashboard/tool/duplicate_dashboard.py          |    15 +-
 .../dashboard/tool/generate_dashboard.py           |     2 +
 .../dashboard/tool/get_dashboard_datasets.py       |     1 +
 .../dashboard/tool/get_dashboard_info.py           |   180 +-
 .../dashboard/tool/get_dashboard_layout.py         |    44 +-
 .../mcp_service/dashboard/tool/list_dashboards.py  |     1 +
 .../tool/manage_dashboard_certification.py         |     2 +
 .../dashboard/tool/manage_dashboard_owners.py      |     2 +
 .../dashboard/tool/manage_dashboard_roles.py       |     2 +
 .../dashboard/tool/manage_native_filters.py        |    28 +-
 .../dashboard/tool/remove_chart_from_dashboard.py  |     7 +-
 .../dashboard/tool/restore_dashboard.py            |    67 +-
 .../mcp_service/dashboard/tool/update_dashboard.py |    16 +-
 .../mcp_service/database/tool/get_database_info.py |     1 +
 .../mcp_service/database/tool/list_databases.py    |     1 +
 superset/mcp_service/dataset/schemas.py            |   215 +-
 .../mcp_service/dataset/tool/create_dataset.py     |     2 +
 .../dataset/tool/create_virtual_dataset.py         |    26 +-
 .../mcp_service/dataset/tool/get_dataset_info.py   |     1 +
 superset/mcp_service/dataset/tool/list_datasets.py |     1 +
 superset/mcp_service/dataset/tool/query_dataset.py |    90 +-
 .../dataset/tool/update_dataset_metric.py          |    51 +-
 .../explore/tool/generate_explore_link.py          |     2 +
 superset/mcp_service/mcp_config.py                 |   156 +-
 superset/mcp_service/middleware.py                 |    35 +-
 superset/mcp_service/query/tool/get_query_info.py  |     1 +
 superset/mcp_service/query/tool/list_queries.py    |     1 +
 superset/mcp_service/report/schemas.py             |    18 +-
 .../mcp_service/report/tool/get_report_info.py     |     1 +
 superset/mcp_service/report/tool/list_reports.py   |     1 +
 .../mcp_service/rls/tool/get_rls_filter_info.py    |     1 +
 superset/mcp_service/rls/tool/list_rls_filters.py  |     1 +
 superset/mcp_service/role/schemas.py               |    19 +-
 superset/mcp_service/role/tool/get_role_info.py    |     1 +
 superset/mcp_service/role/tool/list_roles.py       |     1 +
 .../saved_query/tool/get_saved_query_info.py       |     1 +
 .../saved_query/tool/list_saved_queries.py         |     1 +
 .../tool/get_compatible_dimensions.py              |     1 +
 .../semantic_layer/tool/get_compatible_metrics.py  |     1 +
 .../mcp_service/semantic_layer/tool/get_table.py   |    92 +-
 .../semantic_layer/tool/list_metrics.py            |     1 +
 superset/mcp_service/server.py                     |    56 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |     9 +-
 .../sql_lab/tool/open_sql_lab_with_context.py      |    86 +-
 .../mcp_service/sql_lab/tool/save_sql_query.py     |     2 +
 superset/mcp_service/system/schemas.py             |    28 +-
 superset/mcp_service/system/tool/find_users.py     |    13 +-
 .../mcp_service/system/tool/generate_bug_report.py |     1 +
 .../mcp_service/system/tool/get_instance_info.py   |     1 +
 superset/mcp_service/system/tool/get_schema.py     |    10 +-
 superset/mcp_service/system/tool/health_check.py   |     1 +
 superset/mcp_service/tag/schemas.py                |    32 +-
 superset/mcp_service/tag/tool/get_tag_info.py      |     1 +
 superset/mcp_service/tag/tool/list_tags.py         |     1 +
 superset/mcp_service/task/schemas.py               |    11 +-
 superset/mcp_service/task/tool/get_task_info.py    |     1 +
 superset/mcp_service/task/tool/list_tasks.py       |     1 +
 superset/mcp_service/theme/schemas.py              |    50 +-
 superset/mcp_service/theme/tool/create_theme.py    |    12 +-
 superset/mcp_service/theme/tool/get_theme_info.py  |     1 +
 superset/mcp_service/theme/tool/list_themes.py     |     1 +
 superset/mcp_service/user/schemas.py               |    30 +-
 superset/mcp_service/user/tool/get_user_info.py    |     1 +
 superset/mcp_service/user/tool/list_users.py       |     1 +
 superset/mcp_service/utils/__init__.py             |     2 -
 superset/mcp_service/utils/query_utils.py          |    43 +-
 superset/mcp_service/utils/sanitization.py         |   146 -
 superset/migrations/shared/catalogs.py             |     4 +-
 superset/migrations/shared/constraints.py          |     6 +-
 ..._08-54_c3a8f8611885_materializing_permission.py |     2 +-
 ...d8bc074f7aad_add_new_field_is_restricted_to_.py |     2 +-
 ...06-27_08-43_27ae655e4247_make_creator_owners.py |     2 +-
 ...-09-07_23-50_33d996bcc382_update_slice_model.py |     4 +-
 ...2_11-31_eca4694defa7_sqllab_setting_defaults.py |     2 +-
 ...4_12-31_db0c65b146bd_update_slice_model_json.py |     2 +-
 ...7c195a_rewriting_url_from_shortner_with_new_.py |     2 +-
 ...-08_08-19_67a6ac9b727b_update_spatial_params.py |     2 +-
 ...2-17_11-06_21e88bc06c02_annotation_migration.py |     4 +-
 .../2018-02-13_08-07_e866bd2d4976_smaller_grid.py  |     4 +-
 ...-04-03_08-19_130915240929_is_sqllab_viz_flow.py |     2 +-
 ...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py |     2 +-
 ...018-06-04_11-12_c5756bec8b47_time_grain_sqla.py |     4 +-
 ...6-07_09-52_afb7730f6a9c_remove_empty_filters.py |     2 +-
 ...13_10-20_4451805bbaa1_remove_double_percents.py |     4 +-
 .../2018-06-13_14-54_bddc498dd179_adhoc_filters.py |     4 +-
 ...4_14-31_80a67c5192fa_single_pie_chart_metric.py |     4 +-
 ...1c4c6_migrate_num_period_compare_and_period_.py |     4 +-
 .../2018-07-19_23-41_c617da68de7d_form_nullable.py |     2 +-
 ...07-20_15-31_7f2635b51f5d_update_base_columns.py |     2 +-
 ...07-20_15-57_e9df189e5c7e_update_base_metrics.py |     2 +-
 ..._bebcf3fed1fe_convert_dashboard_v1_positions.py |     2 +-
 .../versions/2018-08-01_11-47_7fcdcde0761c_.py     |     2 +-
 ...08545_migrate_time_range_for_default_filters.py |     2 +-
 ...2018-12-11_22-03_fb13d49b72f9_better_filters.py |     4 +-
 ...e1b21cd94a4_change_owner_to_m2m_relation_on_.py |     2 +-
 .../2019-03-21_10-22_d94d33dbe938_form_strip.py    |     2 +-
 ...a3f04bc82_add_parent_ids_in_dashboard_layout.py |     4 +-
 .../2019-06-28_13-17_ab8c66efdd01_resample.py      |     4 +-
 ...ng_unique_constraint_on_dashboard_slices_tbl.py |     2 +-
 ...5afa9079866a_serialize_schema_permissions_py.py |     2 +-
 ...e_form_strip_leading_and_trailing_whitespace.py |     2 +-
 .../2019-10-10_13-52_1495eb914ad3_time_range.py    |     4 +-
 ...127d0d1d_reconvert_legacy_filters_into_adhoc.py |     2 +-
 ..._14-13_3325d4caccc8_dashboard_scoped_filters.py |     2 +-
 ...10-42_f9a30386bd74_cleanup_time_grainularity.py |     2 +-
 ...29_09-24_620241d1153f_update_time_grain_sqla.py |     2 +-
 ...978245563a02_migrate_iframe_to_dash_markdown.py |     2 +-
 ...654_fix_data_access_permissions_for_virtual_.py |     2 +-
 ...b56500de1855_add_uuid_column_to_import_mixin.py |     4 +-
 ...208f_collapse_alerting_models_into_a_single_.py |     4 +-
 ...6e99fb176a0_add_import_mixing_to_saved_query.py |     4 +-
 ...e38177dbf641_security_converge_saved_queries.py |     4 +-
 ...15-25_40f16acf1ba7_security_converge_reports.py |     4 +-
 ...8ee129739cf9_security_converge_css_templates.py |     4 +-
 ..._14-13_ccb74baaa89b_security_converge_charts.py |     4 +-
 ...5-05_45731db65d9c_security_converge_datasets.py |     4 +-
 ...45_1f6dca87d1a2_security_converge_dashboards.py |     4 +-
 ...2_c25cb2c78727_security_converge_annotations.py |     4 +-
 ...-49_42b4c9e01447_security_converge_databases.py |     4 +-
 ...14_13-40_4b84f97828aa_security_converge_logs.py |     4 +-
 ...12-15_e37912a26567_security_converge_queries.py |     4 +-
 ...60bf0649a77_migrate_x_dateunit_in_time_range.py |     2 +-
 ...2fdb_add_granularity_to_charts_where_missing.py |     2 +-
 ...-10_12-32_41ce8799acc3_rename_pie_label_type.py |     4 +-
 ...1412ec1e5a7b_legacy_force_directed_to_echart.py |     4 +-
 ...8_09-13_c501b7c653a3_add_missing_uuid_column.py |     2 +-
 ...989bbe479899_rename_filter_configuration_in_.py |     4 +-
 ...ea61c5e7_remove_dataset_health_check_message.py |     2 +-
 ...88938_country_map_use_lowercase_country_name.py |     4 +-
 ...3a3a8ff221_migrate_filter_sets_to_new_format.py |     4 +-
 ...ed7ec95_migrate_native_filters_to_new_schema.py |     4 +-
 ...3605f370a_fix_schemas_allowed_for_csv_upload.py |     2 +-
 ...15da_migrate_pivot_table_v2_heatmaps_to_new_.py |     2 +-
 ..._17-16_f6196627326f_update_chart_permissions.py |     4 +-
 ...13dd52_change_fetch_values_predicate_to_text.py |     2 +-
 ...4fbb_add_type_to_native_filter_configuration.py |     4 +-
 ...453f4e2e_migrate_timeseries_limit_metric_to_.py |     2 +-
 ...12_11-15_32646df09c64_update_time_grain_sqla.py |     2 +-
 ...e5f1dacd_rename_to_schemas_allowed_for_file_.py |     4 +-
 ...aa3ff_add_force_screenshot_to_alerts_reports.py |     2 +-
 ...5b9441_rename_big_viz_total_form_data_fields.py |     4 +-
 ...d1d2_move_pivot_table_v2_legacy_order_by_to_.py |     4 +-
 ...d8e252_fix_query_and_saved_query_null_schema.py |     2 +-
 ...b0ca7944_change_adhoc_filter_b_from_none_to_.py |     4 +-
 ...14-38_a9422eeaae74_new_dataset_models_take_2.py |     2 +-
 ...d0249074e4_deprecate_time_range_endpoints_v2.py |     2 +-
 ...07e4fdbaba_rm_time_range_endpoints_from_qc_3.py |     2 +-
 ...-39_cbe71abde154_fix_report_schedule_and_log.py |     2 +-
 ...8_16-07_e786798587de_delete_none_permissions.py |     2 +-
 ..._16-17_f3afaf1f11f0_add_unique_name_desc_rls.py |     2 +-
 ...59_7fb8bca906d2_permalink_rename_filterstate.py |     4 +-
 ...5-48_409c7b420ab0_add_created_by_fk_as_owner.py |     2 +-
 ..._13-00_c747c78868b6_migrating_legacy_treemap.py |     4 +-
 ...-07_14-00_06e1e70058c7_migrating_legacy_area.py |     4 +-
 ...665d_fix_table_chart_conditional_formatting_.py |     2 +-
 ...1_4ce1d9b25135_remove_filter_bar_orientation.py |     2 +-
 ...4-46_c0a3ea245b61_remove_show_native_filters.py |     2 +-
 ...ac08bb5b83_invert_horizontal_bar_chart_order.py |     4 +-
 ...7_13-24_b5ea9d343307_bar_chart_stack_options.py |     4 +-
 ...03-27_12-30_7e67aecbf3f1_chart_ds_constraint.py |     2 +-
 ...2a5681ddfd_convert_key_value_entries_to_json.py |     4 +-
 ...-41_4ea966691069_cross_filter_global_scoping.py |     4 +-
 ...02_9ba2ce3086e5_migrate_pivot_table_v1_to_v2.py |     4 +-
 ...-08_10-22_4c5da39be729_migrate_treemap_chart.py |     4 +-
 ...e58e1e58e5c_migrate_dual_line_to_mixed_chart.py |     4 +-
 ...delete_obsolete_druid_nosql_slice_parameters.py |     2 +-
 ...6f8b1280_cleanup_erroneous_parent_filter_ids.py |     2 +-
 ...9_17-54_ee179a490af9_deckgl_path_width_units.py |     2 +-
 ...23_0769ef90fddd_fix_schema_perm_for_datasets.py |     2 +-
 ...086c2676_add_normalize_columns_to_sqla_model.py |     2 +-
 ...317970b4400c_added_time_secondary_column_to_.py |     2 +-
 ...ff00fe8_add_percent_calculation_type_funnel_.py |     4 +-
 ...18_14-41_a32e0c4d8646_migrate_sunburst_chart.py |     4 +-
 ...d09c9_migrate_filter_boxes_to_native_filters.py |     2 +-
 ...d83218_migrate_can_view_and_drill_permission.py |     4 +-
 ...47_be1b217cd8cd_big_number_kpi_single_metric.py |     4 +-
 ...8_15-43_5ad7321c2169_mig_new_csv_upload_perm.py |     4 +-
 ...14-04_d60591c5515f_mig_new_excel_upload_perm.py |     4 +-
 ...36_4a33124c18ad_mig_new_columnar_upload_perm.py |     4 +-
 ...9123a_update_charts_with_old_time_comparison.py |     4 +-
 ...09-34_d482d51c15ca_remove_legacy_plugins_5_0.py |     4 +-
 ...-34_74ad1125881c_converge_upload_permissions.py |     4 +-
 ...fdba9f_merge_x_axis_sort_series_with_x_axis_.py |     4 +-
 ...2_convert_metric_currencies_from_str_to_json.py |     2 +-
 ...8d8526_fix_form_data_string_in_query_context.py |     2 +-
 ...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py |     4 +-
 ...a1b2c3d4e5f6_add_granular_export_permissions.py |     4 +-
 ...-00_b4a3f2e1d0c9_fix_security_view_menu_case.py |     2 +-
 ...23_a7d3f1b9c2e4_cleanup_stale_can_import_pvm.py |     4 +-
 ...rip_metricsqlexpressions_from_ag_grid_params.py |     2 +-
 ...941d5352_restore_pivot_table_percent_display.py |     2 +-
 ...0-00_c4a1b8e2d739_databend_secure_to_sslmode.py |     2 +-
 ...0_39097d124752_add_reason_to_purge_audit_log.py |    60 +
 ...f31c5d726ab_index_dataset_dependency_lookups.py |    51 +
 ...retire_semantic_layer_views_connections_pvms.py |   114 +
 ...0_a7f3c2e91d84_add_partition_filter_mapping.py} |     2 +-
 superset/models/core.py                            |     4 +-
 superset/models/dashboard.py                       |     1 +
 superset/models/helpers.py                         |   732 +-
 superset/models/purge_audit_log.py                 |     6 +
 superset/models/slice.py                           |    76 +-
 superset/models/sql_lab.py                         |     2 +
 superset/queries/saved_queries/api.py              |    14 +-
 superset/reports/api.py                            |    14 +-
 superset/reports/filters.py                        |    30 +-
 superset/reports/logs/api.py                       |     8 +
 superset/reports/models.py                         |     4 +-
 superset/reports/notifications/webhook.py          |   140 +-
 superset/reports/schemas.py                        |    44 +-
 superset/security/api.py                           |    15 +
 superset/security/api_key_scopes.py                |    77 +
 superset/security/manager.py                       |   664 +-
 superset/security/session_invalidation.py          |    30 +-
 superset/semantic_layers/api.py                    |   106 +-
 superset/semantic_layers/mapper.py                 |    55 +-
 superset/semantic_layers/models.py                 |   227 +-
 superset/sql/dialects/__init__.py                  |     2 +
 superset/sql/dialects/starrocks.py                 |   813 +
 superset/sql/execution/celery_task.py              |    15 +-
 superset/sql/execution/executor.py                 |   132 +-
 superset/sql/parse.py                              |   300 +-
 superset/sql_lab.py                                |    12 +-
 superset/tags/api.py                               |    58 +
 superset/tags/models.py                            |     2 +-
 superset/tasks/context.py                          |     7 +-
 superset/tasks/cron_util.py                        |    45 +
 superset/tasks/decorators.py                       |    20 +-
 superset/tasks/deletion_retention.py               |    29 +-
 superset/tasks/filters.py                          |    23 +-
 superset/tasks/manager.py                          |    13 +-
 superset/tasks/scheduler.py                        |    10 +-
 superset/tasks/thumbnails.py                       |     3 +
 superset/tasks/types.py                            |     7 +-
 superset/tasks/utils.py                            |    95 +-
 superset/themes/api.py                             |    69 +-
 superset/thumbnails/digest.py                      |    13 +-
 superset/translations/es/LC_MESSAGES/messages.po   |    39 +-
 superset/translations/it/LC_MESSAGES/messages.po   | 50254 +++++++++----------
 superset/translations/messages.pot                 |    61 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |  5110 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |    89 +-
 superset/utils/cache.py                            |    14 +-
 superset/utils/core.py                             |    89 +-
 superset/utils/database.py                         |    36 +
 superset/utils/date_parser.py                      |    24 +-
 superset/utils/error_sanitization.py               |    22 +-
 superset/utils/excel.py                            |   101 +-
 superset/utils/file.py                             |    71 +-
 superset/utils/json.py                             |     8 +-
 superset/utils/link_redirect.py                    |    12 +-
 superset/utils/network.py                          |    23 +-
 superset/utils/oauth2.py                           |   193 +-
 superset/utils/pandas_postprocessing/__init__.py   |    27 +
 superset/utils/pandas_postprocessing/histogram.py  |    21 +
 superset/utils/pandas_postprocessing/pivot.py      |   195 +-
 superset/utils/pandas_postprocessing/prophet.py    |    15 +
 superset/utils/pandas_postprocessing/resample.py   |    32 +
 superset/utils/pandas_postprocessing/rolling.py    |    15 +
 superset/utils/pandas_postprocessing/select.py     |    29 +-
 superset/utils/pandas_postprocessing/utils.py      |    14 +-
 superset/utils/pandas_sqlalchemy_compat.py         |    80 -
 superset/utils/screenshot_utils.py                 |   432 +-
 superset/utils/screenshots.py                      |    53 +-
 superset/utils/slack.py                            |    28 +-
 superset/utils/webdriver.py                        |    48 +-
 superset/versioning/api_helpers.py                 |    77 +
 superset/versioning/changes/listener.py            |     2 +
 superset/versioning/changes/normalization.py       |   300 +
 superset/versioning/changes/state.py               |    14 +
 superset/versioning/etag.py                        |    44 +
 superset/views/core.py                             |     1 -
 superset/views/custom_tags_api_mixin.py            |    17 +-
 superset/views/datasource/utils.py                 |    10 +-
 superset/views/error_handling.py                   |    11 +-
 superset/views/users/api.py                        |    38 +-
 superset/views/users/schemas.py                    |    28 +-
 tests/integration_tests/base_api_tests.py          |    52 +
 tests/integration_tests/charts/api_tests.py        |   167 +-
 tests/integration_tests/charts/data/api_tests.py   |    47 +-
 .../integration_tests/charts/soft_delete_tests.py  |     5 +-
 tests/integration_tests/dao/conftest.py            |     3 +-
 tests/integration_tests/dashboards/api_tests.py    |   266 +-
 .../integration_tests/dashboards/commands_tests.py |   104 +
 .../dashboards/filter_state/api_tests.py           |   635 +-
 tests/integration_tests/databases/api_tests.py     |    54 +-
 .../databases/commands/upload_test.py              |    30 +
 .../integration_tests/databases/commands_tests.py  |     8 +-
 tests/integration_tests/datasets/api_tests.py      |   146 +-
 .../datasets/soft_delete_tests.py                  |   161 +-
 tests/integration_tests/datasource/api_tests.py    |   241 +
 .../db_engine_specs/postgres_tests.py              |     5 +-
 .../deletion_retention/audit_tests.py              |   248 +-
 .../deletion_retention/force_purge_tests.py        |    34 +
 .../deletion_retention/purge_tests.py              |   118 +-
 tests/integration_tests/fixtures/datasource.py     |     4 +-
 .../composite_pk_association_tables__tests.py      |     2 +-
 .../migrations/composite_pk_round_trip__tests.py   |     4 +-
 tests/integration_tests/model_tests.py             |     8 +-
 .../queries/saved_queries/api_tests.py             |     3 +-
 tests/integration_tests/query_context_tests.py     |    52 +
 tests/integration_tests/reports/alert_tests.py     |     6 +-
 tests/integration_tests/reports/commands_tests.py  |     8 +
 tests/integration_tests/reports/utils.py           |    11 +-
 tests/integration_tests/security_tests.py          |     4 +
 tests/integration_tests/sql_lab/commands_tests.py  |   141 +-
 tests/integration_tests/sqla_models_tests.py       |   149 +
 tests/integration_tests/tags/api_tests.py          |    43 +
 tests/integration_tests/tags/commands_tests.py     |    50 +-
 .../themes/test_theme_api_permissions.py           |    89 +-
 .../versioning/change_records_tests.py             |   137 +
 tests/unit_tests/charts/dao/dao_tests.py           |    13 +-
 .../charts/data/malformed_adhoc_metric_test.py     |   217 +
 tests/unit_tests/charts/test_chart_data_api.py     |   324 +
 .../charts/test_chart_list_datasource.py           |   144 +
 tests/unit_tests/charts/test_client_processing.py  |   609 +-
 tests/unit_tests/charts/test_filters.py            |     2 +-
 tests/unit_tests/charts/test_schemas.py            |   134 +
 .../unit_tests/cli/update_test.py                  |    40 +-
 tests/unit_tests/commands/chart/create_test.py     |   154 +
 .../commands/chart/delete_message_test.py          |    63 +
 .../chart/streaming_export_command_test.py         |    36 +
 tests/unit_tests/commands/chart/update_test.py     |   104 +-
 tests/unit_tests/commands/dashboard/export_test.py |   287 +-
 tests/unit_tests/commands/databases/oauth2_test.py |    25 +
 tests/unit_tests/commands/dataset/test_create.py   |   167 +-
 tests/unit_tests/commands/dataset/update_test.py   |     4 +
 .../deletion_retention/test_purge_impact.py        |    99 +
 .../deletion_retention/test_reason_codes.py        |   182 +
 .../commands/explore/permalink}/__init__.py        |     0
 .../commands/explore/permalink/test_create.py      |    45 +
 .../commands/explore/permalink/test_get.py         |    57 +
 .../unit_tests/commands/extra_asset_fields_test.py |    96 +
 .../importers/v1/import_saved_query_test.py        |   126 +
 .../unit_tests/commands/importers/v1/utils_test.py |   151 +
 tests/unit_tests/commands/report/execute_test.py   |   176 +
 tests/unit_tests/commands/report/update_test.py    |     6 +
 .../commands/semantic_layer/create_test.py         |   184 +
 .../commands/semantic_layer/delete_test.py         |   199 +-
 .../commands/semantic_layer/update_test.py         |   265 +-
 .../commands/sql_lab/permalink_get_test.py         |    87 +
 .../sql_lab/streaming_export_command_test.py       |    19 +
 tests/unit_tests/commands/sql_lab/test_execute.py  |   161 +
 tests/unit_tests/commands/test_utils.py            |    59 +
 .../commands/theme/test_import_themes.py           |   193 +
 .../common/test_form_data_query_context.py         |    25 +
 .../common/test_query_context_factory.py           |     6 +-
 .../common/test_query_context_processor.py         |    49 +-
 tests/unit_tests/common/test_tabular_query.py      |   426 +
 .../common/test_time_column_offset_repro.py        |   204 +
 tests/unit_tests/common/test_time_shifts.py        |   354 +-
 tests/unit_tests/conftest.py                       |     4 +-
 tests/unit_tests/connectors/sqla/models_test.py    |   124 +-
 tests/unit_tests/connectors/sqla/test_utils.py     |    33 +
 tests/unit_tests/connectors/sqla/utils_test.py     |    48 +-
 tests/unit_tests/dao/base_dao_test.py              |   125 +-
 tests/unit_tests/daos/test_report_dao.py           |    57 +-
 tests/unit_tests/daos/test_tasks.py                |    11 +-
 .../commands/importers/dispatcher_test.py          |    36 +-
 .../commands/importers/v1/import_command_test.py   |     9 +-
 tests/unit_tests/dashboards/dao_tests.py           |    11 +-
 tests/unit_tests/dashboards/filter_scope_test.py   |   233 +
 .../unit_tests/dashboards/filter_state_api_test.py |    66 +
 tests/unit_tests/databases/api_test.py             |    12 +
 .../databases/commands/importers/v1/import_test.py |   240 +
 .../unit_tests/databases/error_provenance_test.py  |     2 +-
 tests/unit_tests/databases/filters_test.py         |     6 +-
 tests/unit_tests/databases/schema_tests.py         |    38 +
 tests/unit_tests/datasets/api_tests.py             |   363 +
 .../datasets/commands/importers/dispatcher_test.py |    36 +-
 .../datasets/commands/importers/v1/import_test.py  |   140 +
 tests/unit_tests/datasets/schema_tests.py          |    45 +
 tests/unit_tests/datasource/dao_tests.py           |    43 +
 tests/unit_tests/datasource/test_query_api.py      |   269 +
 tests/unit_tests/db_engine_specs/test_aurora.py    |    37 +
 tests/unit_tests/db_engine_specs/test_base.py      |   153 +-
 tests/unit_tests/db_engine_specs/test_bigquery.py  |    25 +-
 .../unit_tests/db_engine_specs/test_clickhouse.py  |   151 +-
 tests/unit_tests/db_engine_specs/test_crdb.py      |    16 +
 tests/unit_tests/db_engine_specs/test_duckdb.py    |    59 +
 .../test_extended_aggregations_unverified.py       |    68 +
 tests/unit_tests/db_engine_specs/test_gsheets.py   |    68 +-
 tests/unit_tests/db_engine_specs/test_init.py      |   122 +
 tests/unit_tests/db_engine_specs/test_mariadb.py   |    35 +
 tests/unit_tests/db_engine_specs/test_mysql.py     |   131 +-
 tests/unit_tests/db_engine_specs/test_ocient.py    |    15 +-
 tests/unit_tests/db_engine_specs/test_postgres.py  |   323 +
 tests/unit_tests/db_engine_specs/test_presto.py    |   921 +
 tests/unit_tests/db_engine_specs/test_redshift.py  |    30 +
 tests/unit_tests/db_engine_specs/test_snowflake.py |   342 +-
 tests/unit_tests/db_engine_specs/test_sqlite.py    |     4 +-
 .../unit_tests/db_engine_specs/test_timescaledb.py |    37 +
 tests/unit_tests/db_engine_specs/test_trino.py     |   193 +
 .../distributed_lock/distributed_lock_tests.py     |     2 +-
 tests/unit_tests/examples/utils_test.py            |    20 +
 tests/unit_tests/explore/utils_test.py             |    25 +-
 tests/unit_tests/extensions/storage/test_api.py    |    26 +
 .../unit_tests/extensions/test_cache_middleware.py |    11 +
 tests/unit_tests/extensions/test_sqlalchemy.py     |   417 +-
 .../frontend_bundle_size_workflow_test.py          |    51 +
 tests/unit_tests/jinja_context_test.py             |   144 +
 .../tool/test_annotation_layer_tools.py            |    55 +-
 .../chart/test_chart_config_coercion.py            |    16 +
 .../mcp_service/chart/test_chart_helpers.py        |    60 +-
 .../mcp_service/chart/test_chart_schemas.py        |    42 +-
 .../mcp_service/chart/test_chart_utils.py          |   124 +
 .../chart/test_interactive_pivot_chart.py          |   449 +
 .../mcp_service/chart/test_registry_filters.py     |    15 +-
 .../mcp_service/chart/tool/test_generate_chart.py  |   120 +-
 .../mcp_service/chart/tool/test_get_chart_data.py  |   475 +-
 .../mcp_service/chart/tool/test_get_chart_info.py  |    70 +-
 .../chart/tool/test_get_chart_preview.py           |    64 +-
 .../mcp_service/chart/tool/test_get_chart_sql.py   |   396 +-
 .../chart/tool/test_get_chart_type_schema.py       |     7 +
 .../mcp_service/chart/tool/test_restore_chart.py   |   120 +-
 .../mcp_service/chart/tool/test_update_chart.py    |    14 +-
 .../chart/tool/test_update_chart_preview.py        |    79 +
 .../chart/validation/test_dataset_validator.py     |    74 +
 .../dashboard/test_dashboard_schemas.py            |   100 +-
 .../dashboard/test_layout_validation.py            |   401 +
 .../mcp_service/dashboard/test_permalink.py        |   374 +
 .../tool/test_add_chart_to_existing_dashboard.py   |    21 +-
 .../dashboard/tool/test_dashboard_tools.py         |   427 +-
 .../dashboard/tool/test_duplicate_dashboard.py     |    15 +-
 .../dashboard/tool/test_get_dashboard_datasets.py  |     6 +-
 .../dashboard/tool/test_get_dashboard_layout.py    |   143 +-
 .../tool/test_manage_dashboard_certification.py    |     5 +-
 .../dashboard/tool/test_manage_dashboard_owners.py |    18 +-
 .../dashboard/tool/test_manage_native_filters.py   |    33 +-
 .../dashboard/tool/test_restore_dashboard.py       |   121 +-
 .../dashboard/tool/test_update_dashboard.py        |   135 +-
 .../mcp_service/dataset/tool/test_dataset_tools.py |   100 +-
 .../dataset/tool/test_update_dataset_metric.py     |   167 +-
 .../mcp_service/report/tool/test_report_tools.py   |    38 +-
 .../mcp_service/role/tool/test_role_tools.py       |    30 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |    46 +
 .../sql_lab/tool/test_open_sql_lab_with_context.py |    77 +-
 .../sql_lab/tool/test_save_sql_query.py            |    19 +-
 .../mcp_service/system/tool/test_find_users.py     |    65 +-
 .../mcp_service/system/tool/test_get_schema.py     |    39 +-
 .../mcp_service/tag/tool/test_tag_tools.py         |    13 +-
 .../mcp_service/task/tool/test_task_tools.py       |    15 +-
 tests/unit_tests/mcp_service/test_auth_rbac.py     |   159 +-
 .../mcp_service/test_auth_user_resolution.py       |    30 +
 .../mcp_service/test_composite_token_verifier.py   |    48 +-
 .../mcp_service/test_guest_token_auth.py           |    21 +-
 .../unit_tests/mcp_service/test_main_entrypoint.py |   123 +
 tests/unit_tests/mcp_service/test_mcp_caching.py   |    98 +-
 tests/unit_tests/mcp_service/test_mcp_config.py    |    78 +-
 .../mcp_service/test_mcp_config_hs256_guard.py     |   150 +
 tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py |    30 +
 tests/unit_tests/mcp_service/test_mcp_server.py    |   112 +
 .../mcp_service/test_mcp_tool_registration.py      |    42 +
 tests/unit_tests/mcp_service/test_middleware.py    |   166 +
 .../mcp_service/test_result_value_contract.py      |   211 +
 .../mcp_service/theme/tool/test_create_theme.py    |    16 +-
 .../mcp_service/theme/tool/test_get_theme_info.py  |    10 +-
 tests/unit_tests/mcp_service/user/test_schemas.py  |    12 +-
 .../mcp_service/user/tool/test_user_tools.py       |    42 +-
 .../mcp_service/utils/test_sanitization.py         |   335 +-
 .../composite_pk_association_tables_test.py        |     2 +-
 .../test_add_deleted_at_to_dashboards.py           |     2 +-
 .../migrations/test_add_deleted_at_to_slices.py    |     2 +-
 .../migrations/test_add_deleted_at_to_tables.py    |     2 +-
 .../migrations/test_databend_secure_to_sslmode.py  |    16 +-
 .../test_enforce_oauth2_token_uniqueness.py        |     2 +-
 .../test_restore_pivot_table_percent_display.py    |     8 +-
 ...rip_metricsqlexpressions_from_ag_grid_params.py |     8 +-
 tests/unit_tests/models/core_test.py               |    39 +-
 tests/unit_tests/models/helpers_test.py            |   283 +-
 .../models/owner_association_tables_test.py        |     2 +-
 tests/unit_tests/models/slice_test.py              |    84 +-
 .../models/test_hours_offset_bound_truncation.py   |   702 +
 tests/unit_tests/models/test_multivalue_filter.py  |   274 +
 tests/unit_tests/models/test_multivalue_length.py  |   130 +
 tests/unit_tests/openapi/test_static_spec.py       |    54 +
 .../pandas_postprocessing/test_histogram.py        |    25 +
 .../unit_tests/pandas_postprocessing/test_pivot.py |   425 +
 .../pandas_postprocessing/test_prophet.py          |    64 +
 .../pandas_postprocessing/test_resample.py         |    39 +
 .../pandas_postprocessing/test_rolling.py          |    17 +
 .../pandas_postprocessing/test_select.py           |    29 +
 .../unit_tests/pandas_postprocessing/test_utils.py |    24 +-
 tests/unit_tests/queries/query_object_test.py      |   297 +
 tests/unit_tests/reports/api_test.py               |    38 +-
 tests/unit_tests/reports/filters_test.py           |    66 +
 tests/unit_tests/reports/logs_api_test.py          |    37 +
 .../reports/notifications/webhook_tests.py         |   199 +
 tests/unit_tests/reports/schemas_test.py           |    10 +
 tests/unit_tests/security/api_test.py              |    33 +-
 .../security/exclude_users_filter_test.py          |    10 +-
 tests/unit_tests/security/manager_test.py          |   397 +
 tests/unit_tests/security/test_api_key_scopes.py   |   251 +
 .../test_password_change_session_invalidation.py   |   276 +
 .../test_superset_user_api_subject_sync.py         |   229 +
 tests/unit_tests/semantic_layers/api_test.py       |   424 +-
 tests/unit_tests/semantic_layers/mapper_test.py    |    51 +-
 tests/unit_tests/semantic_layers/models_test.py    |   511 +
 .../semantic_layers/values_endpoint_test.py        |   127 +
 tests/unit_tests/sql/execution/test_executor.py    |   177 +
 tests/unit_tests/sql/parse_tests.py                |   673 +
 tests/unit_tests/sql_lab_test.py                   |   157 +-
 tests/unit_tests/tags/api_test.py                  |   164 +
 tests/unit_tests/tags/commands/create_test.py      |    69 +
 tests/unit_tests/tags/commands/delete_test.py      |   302 +
 tests/unit_tests/tags/commands/update_test.py      |   152 +
 tests/unit_tests/tasks/test_cron_util.py           |    56 +-
 tests/unit_tests/tasks/test_filters.py             |    44 +
 tests/unit_tests/tasks/test_utils.py               |    97 +-
 tests/unit_tests/themes/commands_test.py           |    51 +
 tests/unit_tests/thumbnails/test_digest.py         |    88 +-
 tests/unit_tests/utils/cache_test.py               |    93 +
 tests/unit_tests/utils/date_parser_tests.py        |     5 +
 tests/unit_tests/utils/excel_tests.py              |   107 +
 tests/unit_tests/utils/filters_test.py             |    10 +-
 tests/unit_tests/utils/json_tests.py               |    21 +
 tests/unit_tests/utils/map_type_tests.py           |    15 +
 tests/unit_tests/utils/oauth2_tests.py             |   257 +
 .../utils/pandas_sqlalchemy_compat_test.py         |    67 -
 tests/unit_tests/utils/screenshot_test.py          |   107 +
 tests/unit_tests/utils/send_export_zip_tests.py    |    69 +
 tests/unit_tests/utils/slack_test.py               |    56 +
 tests/unit_tests/utils/test_core.py                |    18 +-
 tests/unit_tests/utils/test_error_sanitization.py  |    17 +
 tests/unit_tests/utils/test_file.py                |   188 +-
 tests/unit_tests/utils/test_link_redirect.py       |    18 +
 tests/unit_tests/utils/test_network.py             |    35 +-
 tests/unit_tests/utils/test_screenshot_utils.py    |   486 +-
 tests/unit_tests/utils/webdriver_test.py           |   182 +
 tests/unit_tests/versioning/test_etag.py           |   109 +
 tests/unit_tests/versioning/test_listener.py       |     5 +-
 .../versioning/test_normalization_changes.py       |   186 +
 tests/unit_tests/views/datasource/utils_test.py    |    61 +
 tests/unit_tests/views/test_base.py                |    36 +-
 tests/unit_tests/views/test_current_user_api.py    |   160 +
 .../unit_tests/views/test_custom_tags_api_mixin.py |   109 +
 tests/unit_tests/views/test_error_handling.py      |   132 +
 tests/unit_tests/views/test_soft_delete_filter.py  |     2 +-
 1255 files changed, 116991 insertions(+), 59182 deletions(-)
 create mode 100644 .github/workflows/check-openapi-spec-drift.yml
 delete mode 100644 docs/eslint.config.js
 create mode 100644 docs/oxlint.json
 create mode 100644 docs/sip/median-stddev-variance-aggregates.md
 create mode 100644 docs/static/img/logos/veremes.svg
 copy requirements/development.in => superset-core/src/superset_core/semantic_layers/__init__.py (84%)
 create mode 100644 superset-core/tests/semantic_layers/test_types.py
 create mode 120000 superset-embedded-sdk/.npmrc
 create mode 100644 superset-frontend/.npmrc
 delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/DynamicEditableTitle.regression.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/Modal/Modal.test.tsx
 create mode 100644 superset-frontend/playwright/components/modals/DrillDetailModal.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/dashboard-drill-to-detail.spec.ts
 delete mode 100644 superset-frontend/playwright/tests/recently-archived/delete-modal.spec.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/NumericCellRenderer.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-calendar/test/cal-heatmap.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/src/countries/italy_regions_and_autonomous_provinces.geojson
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/countries.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-country-map/test/iran.geojson.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/Butterfly.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/buildQuery.ts
 copy superset-frontend/{src/utils/downloadAsPivotExcel.ts => plugins/plugin-chart-echarts/src/Butterfly/constants.ts} (73%)
 copy superset-frontend/plugins/plugin-chart-echarts/src/{Waterfall => Butterfly}/controlPanel.tsx (52%)
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/example-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/example.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/thumbnail-dark.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/thumbnail.png
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/index.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/transformProps.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/types.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/TimeseriesLegend.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/Butterfly.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/buildQuery.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/controlPanel.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/transformProps.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/controlPanel.test.ts
 copy superset-websocket/utils/client-ws-app/routes/index.js => superset-frontend/plugins/plugin-chart-parallel-coordinates/test/transformProps.test.ts (57%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/components/Tooltip.test.tsx
 create mode 100644 superset-frontend/src/SqlLab/components/QueryHistory/mergeQueryStatus.test.ts
 create mode 100644 superset-frontend/src/SqlLab/components/QueryHistory/mergeQueryStatus.ts
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/datasetCertification.ts
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorDatasetCertification.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorMetricCertification.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorMetricFormatWarning.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorWarningMarkdown.test.tsx
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/datasetCertification.test.ts
 create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/hydrateMetricExtra.test.ts
 copy superset-websocket/utils/client-ws-app/routes/index.js => superset-frontend/src/constants.test.ts (59%)
 create mode 100644 superset-frontend/src/dashboard/components/SliceHeader/SliceInfo.test.tsx
 copy superset-frontend/{packages/superset-ui-core/src/components/DeleteModal/types.ts => src/dashboard/components/SliceHeader/SliceInfo.tsx} (57%)
 copy superset-frontend/src/{explore/components/DataTablesPane/test/getStaleResultsTabFallback.test.ts => dashboard/components/nativeFilters/ConfigModal/SharedStyles.test.tsx} (50%)
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/customizationTransformer.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/filterTransformer.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.ts
 create mode 100644 superset-frontend/src/explore/components/ControlHeader.test.tsx
 create mode 100644 superset-frontend/src/explore/components/DataTablesPane/test/DataTableControls.test.tsx
 create mode 100644 superset-frontend/src/explore/components/DataTablesPane/utils.ts
 create mode 100644 superset-frontend/src/features/apiKeys/apiKeyScopes.test.ts
 create mode 100644 superset-frontend/src/features/apiKeys/apiKeyScopes.ts
 create mode 100644 superset-frontend/src/features/charts/ChartCard.test.tsx
 create mode 100644 superset-frontend/src/features/datasets/fetchDatasourceList.test.ts
 create mode 100644 superset-frontend/src/features/datasets/fetchDatasourceList.ts
 create mode 100644 superset-frontend/src/features/users/utils.test.ts
 create mode 100644 superset-frontend/src/features/versionHistory/normalization.test.ts
 create mode 100644 superset-frontend/src/features/versionHistory/normalization.ts
 create mode 100644 superset-frontend/src/pages/ArchivedList/ArchivedDatasetPurgeModal.tsx
 create mode 100644 superset-frontend/src/pages/DatabaseList/DatabaseList.semanticLayerDelete.test.tsx
 create mode 100644 superset-frontend/src/pages/SqlLab/LocationContext.test.tsx
 create mode 100644 superset-frontend/src/utils/downloadAsPivotExcel.test.ts
 create mode 120000 superset-websocket/.npmrc
 delete mode 100644 superset-websocket/eslint.config.mjs
 create mode 100644 superset-websocket/oxlint.json
 create mode 100644 superset/commands/deletion_retention/purge_impact.py
 create mode 100644 superset/common/tabular_query.py
 create mode 100644 superset/dashboards/filter_scope.py
 create mode 100644 superset/mcp_service/chart/plugins/interactive_pivot.py
 create mode 100644 superset/mcp_service/dashboard/layout_validation.py
 create mode 100644 superset/mcp_service/dashboard/permalink.py
 create mode 100644 superset/migrations/versions/2026-08-24_12-00_39097d124752_add_reason_to_purge_audit_log.py
 create mode 100644 superset/migrations/versions/2026-08-25_18-00_8f31c5d726ab_index_dataset_dependency_lookups.py
 create mode 100644 superset/migrations/versions/2026-09-03_00-00_b3e9c1a75d24_retire_semantic_layer_views_connections_pvms.py
 rename superset/migrations/versions/{2026-08-31_22-30_a7f3c2e91d84_add_partition_filter_mapping.py => 2026-09-04_00-00_a7f3c2e91d84_add_partition_filter_mapping.py} (99%)
 create mode 100644 superset/security/api_key_scopes.py
 create mode 100644 superset/sql/dialects/starrocks.py
 delete mode 100644 superset/utils/pandas_sqlalchemy_compat.py
 create mode 100644 superset/versioning/changes/normalization.py
 create mode 100644 tests/unit_tests/charts/data/malformed_adhoc_metric_test.py
 create mode 100644 tests/unit_tests/charts/test_chart_list_datasource.py
 copy superset/common/chart_data.py => tests/unit_tests/cli/update_test.py (52%)
 create mode 100644 tests/unit_tests/commands/chart/create_test.py
 create mode 100644 tests/unit_tests/commands/chart/delete_message_test.py
 create mode 100644 tests/unit_tests/commands/deletion_retention/test_purge_impact.py
 create mode 100644 tests/unit_tests/commands/deletion_retention/test_reason_codes.py
 copy {scripts => tests/unit_tests/commands/explore/permalink}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/explore/permalink/test_create.py
 create mode 100644 tests/unit_tests/commands/explore/permalink/test_get.py
 create mode 100644 tests/unit_tests/commands/extra_asset_fields_test.py
 create mode 100644 tests/unit_tests/commands/importers/v1/import_saved_query_test.py
 create mode 100644 tests/unit_tests/commands/sql_lab/permalink_get_test.py
 create mode 100644 tests/unit_tests/commands/sql_lab/test_execute.py
 create mode 100644 tests/unit_tests/commands/theme/test_import_themes.py
 create mode 100644 tests/unit_tests/common/test_tabular_query.py
 create mode 100755 tests/unit_tests/common/test_time_column_offset_repro.py
 copy superset/migrations/versions/2022-07-07_14-00_06e1e70058c7_migrating_legacy_area.py => tests/unit_tests/dashboards/commands/importers/dispatcher_test.py (52%)
 create mode 100644 tests/unit_tests/dashboards/filter_scope_test.py
 create mode 100644 tests/unit_tests/dashboards/filter_state_api_test.py
 copy superset/migrations/versions/2022-07-07_14-00_06e1e70058c7_migrating_legacy_area.py => tests/unit_tests/datasets/commands/importers/dispatcher_test.py (54%)
 create mode 100644 tests/unit_tests/datasource/test_query_api.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_extended_aggregations_unverified.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_mariadb.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_timescaledb.py
 create mode 100644 tests/unit_tests/frontend_bundle_size_workflow_test.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_interactive_pivot_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/validation/test_dataset_validator.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_layout_validation.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/test_permalink.py
 create mode 100644 tests/unit_tests/mcp_service/test_main_entrypoint.py
 create mode 100644 tests/unit_tests/mcp_service/test_mcp_config_hs256_guard.py
 create mode 100644 tests/unit_tests/mcp_service/test_result_value_contract.py
 create mode 100644 tests/unit_tests/models/test_hours_offset_bound_truncation.py
 create mode 100644 tests/unit_tests/models/test_multivalue_filter.py
 create mode 100644 tests/unit_tests/models/test_multivalue_length.py
 create mode 100644 tests/unit_tests/openapi/test_static_spec.py
 create mode 100644 tests/unit_tests/reports/logs_api_test.py
 create mode 100644 tests/unit_tests/security/test_api_key_scopes.py
 create mode 100644 tests/unit_tests/security/test_password_change_session_invalidation.py
 create mode 100644 tests/unit_tests/security/test_superset_user_api_subject_sync.py
 create mode 100644 tests/unit_tests/semantic_layers/values_endpoint_test.py
 create mode 100644 tests/unit_tests/tags/api_test.py
 create mode 100644 tests/unit_tests/tags/commands/delete_test.py
 create mode 100644 tests/unit_tests/tasks/test_filters.py
 delete mode 100644 tests/unit_tests/utils/pandas_sqlalchemy_compat_test.py
 create mode 100644 tests/unit_tests/utils/send_export_zip_tests.py
 create mode 100644 tests/unit_tests/versioning/test_etag.py
 create mode 100644 tests/unit_tests/versioning/test_normalization_changes.py
 create mode 100644 tests/unit_tests/views/test_current_user_api.py
 create mode 100644 tests/unit_tests/views/test_custom_tags_api_mixin.py