This is an automated email from the ASF dual-hosted git repository.
betodealmeida pushed a change to branch chart-samples
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 48958cc8ce6 Address comments
discard 7dac6c1d4f3 Also disable drill-to-detail
discard a1297d10ac5 feat(semantic layers): don't show samples tab in explore
add 01a0c66c798 fix(sunburst): make "Show Null Values" non-breaking and
cover all layers (#41442)
add ee43d8869f6 chore(deps): bump nanoid from 5.1.11 to 5.1.14 in
/superset-frontend (#41450)
add b8f3918bcf1 chore(deps-dev): bump react-resizable from 4.0.1 to 4.0.2
in /superset-frontend (#41448)
add 84e07df735d chore(deps): bump react-draggable from 4.6.0 to 4.7.0 in
/superset-frontend (#41446)
add f49db9e5364 fix(dashboard): restore page scrolling (#41439)
add a5dbb394e5f fix(thumbnails): add deduplication to dashboard thumbnail
Celery tasks (#38576)
add f10315f8fcc test(databases): migrate database modal Cypress tests to
RTL (#41436)
add 667005638a5 fix(dropdown): clear search input after selection in all
multi-select fields (#41074)
add c87fdfc18fc fix(i18n): defer plugin init and menu render until
language pack is ready (#40729)
add 11d7f7fb87f fix: convert ALL CAPS button labels to sentence case
(#40435)
add 0efcbcdd81c test(security): regression coverage for #36130 FAB
permission view templates (#41130)
add c03cdade39a chore(deck.gl): remove leftover debug className from
Legend (#41165)
add bfa6cfac852 fix(database): mask SSH tunnel credentials explicitly on
read paths (#41293)
add 71c8e2f69d2 fix(config): refuse to start with an empty SECRET_KEY
(#41299)
add 068a709c140 fix(config): expose build details (git SHA/build number)
to admins only (#41301)
add eaaab614934 chore(ci): correct setup-python pin version comment to
v6.2.0 (#41383)
add 8aacb6f793c fix(async): derive async channel from guest token for
embedded RLS queries (closes #31492) (#41397)
add 98d0ccd7a7f fix(reports): reliability fixes for alert/report execution
(#41177)
add 834ccf2613d fix(chart): chart description not showing (#41453)
add ac9bf26751c chore(deps): bump vulnerable transitive deps across
lockfiles (#41307)
add 022f66a6941 fix(country-map): update Morocco GeoJSON boundaries
(#41021)
add 6f12dbf0e1c feat(api): log rejected related/distinct field access as
security events (#41306)
add dc64716c615 fix(echarts): bring annotations in front and prevent
tooltip from covering annotation labels (#41174)
add 15626a047c4 fix(sqllab): quote autocomplete table names that need it
(#41199)
add 1280eaee18a fix(mcp): include embedded_uuid in get_dashboard_info
response (#41195)
add ebb32de625c fix(cachekey): use data_cache for chart query result
invalidation (#40493)
add a1470790438 fix(bigquery): backslash-escape apostrophes in filter
values (#38835)
add 0a18779280a fix(echarts): format mixed timeseries value labels by
assigned axis (#40420)
add 21999bb7727 fix(i18n): repair corrupted Romanian catalog so it parses
again (#41467)
add cd8ac41d169 fix(datasource): validate expressions through the shared
adhoc-expression checks (#41427)
add 3eb91855212 fix(viz): use series_limit/series_limit_metric in
query_obj dict (#41002)
add 5ec09318408 fix(pandas_postprocessing): pass string operator names to
GroupBy.agg to avoid FutureWarning (#41025)
add 97cb002f46b fix(a11y): propagate tooltip string as aria-label on
IconTooltip button (#41493)
add 7587d0778a0 chore(ci): correct actions/cache version comment to v5.0.5
(#41484)
add 78dd400ca43 chore(ci): correct actions/cache version comment to match
pinned SHA (#41483)
add b8fd2e9725c feat(websocket,embedded-sdk): replace Jest with modern
Vitest (#38308)
add 25c9f3510ab test(mcp): set embedded on update_dashboard test mock
(#41495)
add d0268442f8b chore(ci): correct actions/cache pin comment to actual
version v5.0.5 (#41482)
add ccbd2842454 chore(deps): bump actions/checkout from 6.0.3 to 7.0.0
(#41447)
add 7fc1113c316 fix(telemetry): use Scarf static pixel instead of gateway
redirect (#41129)
add 670f25e5f45 chore(lint): convert explore controls, SqlLab, and misc
components to function components (#39461)
add a70d0556698 feat(helm): use env redis_driver, render additional
deployment pod spec (#26040)
add 7d5e01b6cfb chore(deps-dev): update taospy requirement from >=2.7.21
to >=2.8.9 (#41481)
add 98d61c5cf89 chore(deps-dev): bump duckdb from 1.5.3 to 1.5.4 (#41480)
add c3a11e31707 chore(deps): bump sqlalchemy-utils from 0.42.0 to 0.42.1
(#41478)
add efed2b09aa3 chore(deps-dev): bump @types/node from 25.9.3 to 26.0.0 in
/superset-frontend (#41451)
add b2a26988987 chore: unify Node version (#41500)
add 6eb51105d01 refactor: update SQLAlchemy case() syntax to 2.0 (#40275)
add 0c12114ea92 fix(explore): stop metric edits from bleeding across
metrics with duplicate optionNames (#41208)
add a529945d3b7 fix(reports): commit permalink before Playwright
navigation (#41051)
add 90fe1f5b7c4 fix(auth): redirect to login on failure to access
dashboard permalink (#40769)
add 825b5828151 fix(mixed-chart): preserve order_desc and
series_limit_metric in buildQuery (#41401)
add 797e497f4b3 fix(dashboard): suppress favorite status error toast on
404 (#41402)
add 7926c3a93aa fix(sqllab): preserve query history after tab migration
(#41403)
add 1b7b9ce9485 fix(tags): remove unsatisfiable foreign keys from
tagged_object.object_id (#41126)
add 9dba4d090f7 fix(explore): hide inactive result tables in mixed chart
view as table (#37777)
add a4d5b15955d fix(slack): support org-scoped tokens on Enterprise Grid
via SLACK_TE… (#41473)
add 7edae0817ca chore(deps): bump zizmorcore/zizmor-action from 0.5.6 to
0.5.7 (#41519)
add d2daf84fd9b chore(deps): bump uuid from 14.0.0 to 14.0.1 in
/superset-frontend (#41524)
add 5b17c5b2dfc chore(deps): stop Dependabot from opening Babel 8 major
bumps (#41534)
add 0370ac8607b chore(deps-dev): bump unzipper from 0.12.3 to 0.12.5 in
/superset-frontend (#41523)
add e807e66a3e9 chore(deps-dev): bump timezone-mock from 1.4.2 to 1.4.3 in
/superset-frontend (#41521)
add e236d831fd5 chore(deps): bump antd from 6.4.4 to 6.4.5 in /docs
(#41518)
add 43383752672 chore(deps): bump nanoid from 5.1.14 to 5.1.15 in
/superset-frontend (#41517)
add f95ebed8ba7 fix: apply object access checks in tag bulk_create and
update commands (#41457)
add a8045d7f65d chore(deps-dev): bump @swc/plugin-emotion from 14.13.0 to
14.14.0 in /superset-frontend (#41515)
add 28f6e1e0232 chore(deps-dev): bump @types/node from 25.9.4 to 26.0.0 in
/superset-websocket (#41514)
add 7dcb98e4d27 chore(deps-dev): bump vite from 8.0.14 to 8.1.0 in
/superset-embedded-sdk (#41507)
add d42076d541b fix(tags): make favorite star toggle in Tags list view
(#41460)
add 725265502f4 perf(frontend): migrate lodash imports to lodash-es for
tree-shaking (#41511)
add 07abda50c5a chore(ci): prune orphaned showtime labels in daily cleanup
(#41464)
add 16a3405e3c1 fix(i18n): skip unparseable catalogs when building
translation index (#41465)
add 11a4a17dffc fix(frontend): finish sentence-case conversion for time
range buttons (#41488)
add adc03ce5258 refactor: make import/expression layer SQLAlchemy
2.0-compatible (#41179)
add 134919ea36d fix(screenshots): catch empty-bytes tiled result and set
ERROR on falsy image (#41097)
add b89b6131492 chore(deps): bump slack-sdk from 3.35.0 to 3.42.0 (#41537)
add fbe500349d8 chore(deps): bump selenium from 4.44.0 to 4.45.0 (#41475)
add b32c96733b5 chore(deps-dev): bump fast-uri from 3.0.1 to 3.1.2 in
/superset-embedded-sdk (#41508)
add 20da836c212 chore(deps-dev): bump oxlint from 1.70.0 to 1.71.0 in
/superset-frontend (#41544)
add 1e42aeb53c5 chore(deps): bump swagger-ui-react from 5.32.6 to 5.32.7
in /docs (#41541)
add 82b6a86ca06 chore(deps-dev): update snowflake-sqlalchemy requirement
from <2,>=1.2.4 to >=1.10.2,<2 (#41540)
add 9380d83dd11 chore(deps-dev): update nzalchemy requirement from
>=11.0.2 to >=11.0.2,<11.2 (#41477)
add 5c272f13152 chore(docs): tighten CSP and remove external widgets
(#36685)
add ba9bd430cb9 fix(a11y): add aria-label to ActionButton span role=button
(#41503)
add ece8d8ffca5 fix(datasource): allow Gamma to load combined datasource
list (#41553)
add 4a32e0b8d13 fix(table): exclude metricSqlExpressions from
ownState→extra_form_data spread (#41555)
add 3b82d2a1706 fix(security): clean up stale can_import permission on
ImportExportRestApi (#41309)
add 765927d681f chore(deps): bump js-yaml from 4.2.0 to 5.0.0 in /docs
(#41520)
add 59196fcac05 chore(deps): bump @swc/core from 1.15.41 to 1.15.43 in
/docs (#41542)
add a009fcec514 chore(deps-dev): bump @swc/core from 1.15.41 to 1.15.43 in
/superset-frontend (#41543)
add 105b8960385 fix(explore): enable free-text entry for temporal D3
format selector in Table chart (#41194)
add b8b23d6219c fix(bigquery): quote dotted STRUCT columns per-segment in
drill to detail (#41462)
add 56bd8ed0be1 chore(deps): bump azure/setup-helm from 5.0.0 to 5.0.1
(#41570)
add 2c476485886 chore(deps-dev): bump globals from 17.6.0 to 17.7.0 in
/docs (#41571)
add c4c531a8552 chore(deps): bump actions/cache from 5.0.5 to 6.1.0
(#41572)
add e0e1831d507 chore(deps): bump actions/setup-java from 5.3.0 to 5.4.0
(#41576)
add 92f48b07257 chore(deps): bump actions/setup-python from 6.2.0 to 6.3.0
(#41573)
add 7827d43ea6e fix(embedded): show already-added allowed domains in embed
modal (closes #35328) (#41399)
add 25f7b907611 fix(dashboard): remove stray focus outline on Filter Badge
popover (closes #38789) (#41398)
add ef4c6123b9d fix(sqllab): preserve whitespace in grid result cells
(#41135)
add a2b5fda6610 fix(Table Chart): Show correct cache time moment for
Query2 (#37482)
add bbab644d122 chore(deps-dev): bump typescript-eslint from 8.61.1 to
8.62.0 in /docs (#41575)
add 7245a092eb5 chore(ci): scope zizmor adhoc-packages on
setup-supersetbot action (#41547)
add 7de77a35bc8 chore(ci): pin @action-validator versions in GHA validator
workflow (#41545)
add 95d688fb057 build(embedded-sdk): remove test files and related files
from build artifact to be published (#41584)
add 2b6806c0904 chore(deps): bump js-yaml from 5.0.0 to 5.1.0 in /docs
(#41566)
add c11fa206ce3 feat(mcp): add duplicate_dashboard tool (#40959)
add c60d8bb656f feat(mcp): add tags + typed metadata fields to
update_dashboard (#40957)
add 42a5f64256b chore(ci): silence zizmor adhoc-packages note for
supersetbot install (#41546)
add e15dc5735fb fix(reports): pre-commit tab permalinks before state
machine transaction (#41096)
add 805c12ef744 fix(dashboard): prevent double-click on create dashboard
from creating duplicates (#40833)
add 4bf203ee708 chore(config): default SMTP_SSL_SERVER_AUTH to True
(#40647)
add a8f43890b1d chore(superset-ui-core): forward-compat fixes for
TypeScript 6.0 (Phase B) (#39535)
add fd86eec889c chore(deps): bump echarts from 5.6.0 to 6.1.0 in
/superset-frontend (#40264)
add 1e130feb807 chore(deps): bump marshmallow-union from 0.1.15 to
0.1.15.post1 (#41539)
add bf88c628149 feat(mcp): add manage_native_filters tool (#40960)
add 2bd9ab4c597 feat(mcp): add remove_chart_from_dashboard tool (#40958)
add fd9c84be430 feat(mcp): add get_dashboard_datasets tool (#40961)
add 2a1f632daa9 fix(dashboard): surface size, limit, and config key in
oversized dashboard error (#41532)
add 35194fe4d59 fix(i18n): key translation-regression check on per-msgid
transitions (#41596)
add ce9b9b05133 feat(i18n): add Japanese (ja) translations (AI-generated,
needs review) (#41466)
add 3e88b487b32 fix(point-cluster-map): guard invalid point radii (#40393)
add 7cc7e9f6e34 fix(async-query): prevent JWT InvalidSubjectError for
guest users (#37862)
add 16e1f41ceff chore(deps): bump swagger-ui-react from 5.32.7 to 5.32.8
in /docs (#41614)
add b9e3f0aa1e2 feat(soft-delete): gate soft delete behind a temporary
SOFT_DELETE release toggle (#41166)
add 36510200147 fix(sql): cap parser input length via SQL_MAX_PARSE_LENGTH
config (#40499)
add 2da2db6c7c0 feat(sql): schema-qualified table denylist +
information_schema/lo_* defaults (#41120)
add 6d2b94ceb80 fix(currency): derive default symbol position from locale
when unset (#40931)
add 438d4d569f8 test(sqllab): repair broken TablePreview and
SavedQueryList jest tests (#41628)
add da4cae16574 chore(deps): bump fastmcp from >=3.2.4 to >=3.4.2 (#41592)
add 7f4cac63c90 fix(mcp): escape LIKE wildcards in find_users to prevent
user enumeration (#41593)
add 55b2da75f65 fix(echarts): allow forcing categorical x-axis for
temporal columns (#41221)
add 2d2a72b721f fix(sqllab): show non-ASCII text in array/JSON columns
instead of \uXXXX escapes (#41533)
add 792d6776349 fix(reports): respect CSV_EXPORT sep and decimal config in
email reports (#38616)
add b3c709b3d5e feat(i18n): backfill German (de) translations
(AI-generated, needs review) (#41608)
add eeacd9b6ddc feat(i18n): backfill Latvian (lv) translations
(AI-generated, needs review) (#41612)
add 692f81d9451 feat(i18n): backfill Finnish (fi) translations
(AI-generated, needs review) (#41613)
add 7d7c3ce7239 feat(ci): install `helm-docs` directly instead of using
whole `brew` setup (#41629)
add b7d5de8e524 fix(sqllab): truncate long tab names in the overflow
("...") dropdown (#41585)
add bed1034c2f7 refactor(frontend): centralize subdirectory URL prefixing
behind nav helpers (#39925)
add 6c579196474 chore(codeowners): update maintainer assignments (#41634)
add e0a3b1c10cf fix(mcp): document select_columns valid fields and URL
scheme for preview tools (#41595)
add 393adc45356 refactor(db): composite PK on M2M association tables
(#39859)
add e58ce1cf39d fix(dashboard): pre-filter time grain for display controls
(#40000)
add f2e322c3c03 chore(deps-dev): bump sigstore from 4.1.0 to 4.1.1 in
/superset-frontend (#41638)
add 8be255de408 chore(i18n): harden backfill_po — full language-name map +
resilient batch translation (#41644)
add af0a55a4f34 feat(dashboards): soft-delete and restore (#40128)
add b3197c9b5e0 fix(table-chart): fix "Search by" control visibility and
improve table controls layout (#36073)
add c718f717cbc feat(i18n): backfill Spanish (es) translations
(AI-generated, needs review) (#41609)
add d1f7dd9c672 fix(deps): override fast-uri to 3.1.3 to fix
CVE-2026-13676 (#41631)
add 6bdcb7a83a1 feat(i18n): backfill Czech (cs) translations
(AI-generated, needs review) (#41647)
add 661d362580d feat(i18n): backfill new safe-link strings in de/lv/fi
(AI-generated, needs review) (#41646)
add 706ff94f0bf feat(i18n): backfill Slovak (sk) translations
(AI-generated, needs review) (#41640)
add d57d69d3a68 feat(i18n): backfill Ukrainian (uk) translations
(AI-generated, needs review) (#41645)
add 748060d35e7 feat(i18n): backfill Thai (th) translations (AI-generated,
needs review) (#41641)
add e3bd6e5c70c chore(deps-dev): bump @playwright/test from 1.61.0 to
1.61.1 in /superset-frontend (#41616)
add d507be2555f chore(deps): bump geostyler-openlayers-parser from 5.7.0
to 5.7.1 in /superset-frontend (#41615)
add c3f5e997a16 feat(mcp): chart type plugin registry for extensible
generate_chart (#39922)
add b2af954e7b8 chore(deps-dev): bump @types/node from 26.0.0 to 26.0.1 in
/superset-frontend (#41675)
add 246bbeb4089 chore(deps): bump google-auth-library from 10.7.0 to
10.9.0 in /superset-frontend (#41672)
add a919dda2ac3 fix(sqllab): filter results table when typing in the
search box (#41625)
add 8343a4fff80 chore(deps-dev): bump @types/node from 26.0.0 to 26.0.1 in
/superset-websocket (#41666)
add a48ca9ce723 fix(sqllab): reject blank saved query and dataset names
(#41624)
add 0a25faabbd6 fix(dashboard): align chart menu button hover state
(#41683)
add 8210904e958 chore(deps): bump nanoid from 5.1.15 to 5.1.16 in
/superset-frontend (#41673)
add 80344852b72 chore(deps): bump docusaurus-plugin-openapi-docs from
5.0.2 to 5.1.0 in /docs (#41671)
add 2992d7b4c87 feat(database): add databricks oauth support (#41421)
add be46d65e3b4 fix(dao): SQL-faithful NULL and non-string handling in
LIKE-family operators (#41653)
add afebdd58d16 chore(deps): bump docusaurus-theme-openapi-docs from 5.0.2
to 5.1.0 in /docs (#41669)
add 6309d08d59f feat(helm): standardize to Kubernetes recommended labels
(app.kubernetes.io/*) (#39350)
add d7e2f18d005 fix(dockerfile): allow GH auth-less fetch of `uv` when
building Superset image locally (#41682)
add 7214e9f9f60 build(dev-deps): upgrade Storybook to v10 in docs
subproject (#41679)
add c1bd45f5618 fix(ci): allow showtime to check out fork PR code under
checkout v7 (#41643)
add e3b2992d6e1 chore(deps): update lodash-es requirement from ^4.17.21 to
^4.18.1 in /superset-frontend/packages/superset-ui-core (#41565)
add be29d877d2f chore(deps-dev): bump @storybook/addon-docs from 10.4.5 to
10.4.6 in /superset-frontend (#41375)
add 9769380d6dc feat(i18n): backfill Polish (pl) translations
(AI-generated, needs review) (#41660)
add 6c2c814b5c0 fix(dashboard): not filterable column now not emitting
cross-filters in table charts (#30827)
add aa40934e7f3 fix(i18n): compile fuzzy translations into the backend .mo
files (#41648)
add 4c193d4dbce feat(i18n): wrap description strings in translation
function (#41626)
add 139df20cde6 fix(i18n): update German security menu translations
(#41587)
add 19e94855a1f fix(explore): prevent Results FilterInput from stealing
focus during remount (#41100)
add 8bf3933972f fix(dashboard): show a not-found state for a deleted
dashboard (#41686)
add 1c74185a71f chore(ci): correct codeql-action version comment to match
pinned SHA (#41695)
add f9bcf189c9f chore(ci): suppress zizmor adhoc-packages on GHA validator
install (#41694)
add 83965b4be87 chore(ci): correct codeql-action version pin comment to
v4.36.2 (#41693)
add 358493a2c50 feat(i18n): backfill Brazilian Portuguese (pt_BR)
translations (AI-generated, needs review) (#41659)
add 9e087702918 feat(i18n): backfill Slovenian (sl) translations
(AI-generated, needs review) (#41658)
add 7eb93c60a3e feat(i18n): backfill Catalan (ca) translations
(AI-generated, needs review) (#41657)
add f61d6d8b84a feat(i18n): backfill Māori (mi) translations
(AI-generated, needs review) (#41656)
add 03703843b7d feat(i18n): backfill French (fr) translations
(AI-generated, needs review) (#41655)
add 66bf81b997a feat(i18n): backfill Russian (ru) translations
(AI-generated, needs review) (#41649)
add 22c3f56d0a7 fix(redshift): suppress unavoidable pkg_resources
deprecation warning (#41691)
add a30846881b8 test(ci): stabilize master checks (#41650)
add ab0e77c1cb7 fix(embedded): allow guest users to sort by visible
columns (#37371)
add 5bbab86a07a fix(schemas): rename deprecated query fields regardless of
falsy values (#41263)
add d8832c382d4 fix(views): emit deprecated-endpoint log warning once per
endpoint per process (#41286)
add a151edeff31 feat(i18n): backfill Dutch (nl) translations
(AI-generated, needs review) (#41704)
add bdc610c5720 fix(db): use a private engine for prequery connections to
avoid listener race (#41642)
add 55088e10da0 feat(database-modal): add validation loading state and
duplicate name check (#36880)
add 49fcaf24205 feat(i18n): backfill Turkish (tr) translations
(AI-generated, needs review) (#41702)
add 47bc3e2dc1c fix: correct Security menu case for MySQL deployments
(#40527)
add ceadce234b9 chore(deps-dev): bump @storybook/react-webpack5 from
10.4.4 to 10.4.6 in /superset-frontend (#41371)
add 7cbdc726e33 chore(deps-dev): bump @storybook/addon-links from 10.4.4
to 10.4.6 in /superset-frontend (#41366)
add 6d22697cba9 feat(theming): make core components fully configurable via
theme tokens (#40985)
add 46a153d17e1 feat(i18n): backfill Persian (Farsi) (fa) translations
(AI-generated, needs review) (#41701)
add 4f37e955b54 fix(plugin-chart-echarts): prevent trendline stroke
clipping at chart edges (#37918)
add 0e6c5838e48 fix(deck.gl): apply categorical scatterplot colors in
Multiple Layers chart (#41490)
add eaf6daa7eb5 chore(deps-dev): bump webpack from 5.107.2 to 5.108.0 in
/docs (#41734)
add d93098f8530 chore(deps-dev): bump baseline-browser-mapping from
2.10.38 to 2.10.40 in /superset-frontend (#41737)
add 2b30605e3c5 chore(deps): bump baseline-browser-mapping from 2.10.38 to
2.10.40 in /docs (#41736)
add 9f8ff1e87f4 chore(deps): bump @deck.gl/mapbox from 9.3.4 to 9.3.5 in
/superset-frontend (#41735)
add 114c2581453 chore(deps-dev): bump webpack from 5.107.2 to 5.108.0 in
/superset-frontend (#41733)
add 0b14f1c2264 fix(a11y): use aria-label instead of non-functional alt
prop on filter icons (#41742)
add 2702113d99b fix(a11y): add aria-label to VizTypeGallery search clear
icon (#41681)
add d443dd17b97 feat(i18n): backfill Korean (ko) translations
(AI-generated, needs review) (#41713)
add b6f8267ed2b feat(i18n): backfill Italian (it) translations
(AI-generated, needs review) (#41712)
add e7b825e26b5 feat(i18n): backfill Portuguese (pt) translations
(AI-generated, needs review) (#41710)
add 7d90684f939 feat(i18n): backfill Chinese (Traditional) (zh_TW)
translations (AI-generated, needs review) (#41709)
add 6d7344750f3 feat(i18n): backfill Chinese (Simplified) (zh)
translations (AI-generated, needs review) (#41708)
add ceeba013057 fix(i18n): correct mistranslated entries flagged in review
(pl/pt_BR/sl/sk/fi) (#41707)
add 4e2160079ad feat(i18n): backfill Arabic (ar) translations
(AI-generated, needs review) (#41705)
add 59d35d16ce3 feat(i18n): adopt French translation improvements from
#41688 (#41752)
add d7ad7fbb49c fix(i18n): repair dropped placeholders and reduced-plural
forms across catalogs (#41722)
add 681275077b3 fix(semantic layers): time comparison with 1 row (#41554)
add b23cef136e5 fix(i18n): un-translate do-not-translate tokens in
es/fi/th catalogs (#41652)
add fd1f313b307 chore(deps): bump flask-appbuilder from 5.2.1 to 5.2.2
(#41766)
add 81a437826f8 chore(deps-dev): update kylinpy requirement from
<2.9,>=2.8.1 to >=2.8.4,<2.9 (#41765)
add 71ac6c64e23 chore(deps): bump rison from 2.0.0 to 2.0.1 (#41762)
add c3fe0a40ebc chore(deps-dev): bump mysqlclient from 2.2.6 to 2.2.8
(#41760)
add 43f28162406 chore(deps-dev): update ydb-sqlglot-plugin requirement
from >=0.2.5 to >=0.2.8 (#41764)
add 210389478ba fix(test): change regex for RTL to retrieve button used
for filter removal (#41767)
add a9aabdaedfc chore(deps): bump gunicorn from 25.3.0 to 26.0.0 (#41761)
add 004c401c973 refactor(dashboard): rename supersetCanCSV to
supersetCanDownload (#24290) (#39118)
add 3e152d9bb7a fix(views): add new_target to deprecated explore_json_data
endpoint (#41771)
add 1e50316bccd chore(reports): deprecate Slack v1 and harden Slack v2
tests (#39914)
add e08c2c12dad fix(native-filters): persist created/pasted default values
in select filter (#40984)
add 8fcc0f8b482 fix(semantic layers): start/end ranges (#41590)
add 687fafd424b build(dev-deps): replace deprecated minimizer deps with
recommendation from Webpack doc (#41756)
add 3ac19470ec2 fix(embedded): register AG Grid modules for view-as-table
modal (#41632)
add d91c5cf09b6 fix(dashboard): prevent dashboard crash when applying
grain filters (#41700) (#41746)
add a687e87b2cd fix(dashboard): use theme colorBorder token for chart tile
borders (#41731)
add dc739e4fb96 fix(ui): standardize card kebab menu behavior (#41741)
add ea40b87e2fd fix(drill-detail): drill to detail by a null value
dimension should use NULL_STRING (#41678)
add 8229c0183dc perf(explore): reuse chart query data in Results tab
(#38165)
add 3303d4e09ef chore(deps): bump lodash-es to ^4.18.1 across all frontend
workspaces (#41774)
add 9a24d42d655 fix(chart): Fix heatmap charts when filtering down to one
row/colum (#40738)
add 7cdfe3ffe7d fix(a11y): add aria-label to CRON schedule input (#41769)
add a8ab5f973dc chore(deps-dev): bump @typescript-eslint/eslint-plugin
from 8.61.1 to 8.62.0 in /superset-frontend (#41577)
add 83826839a0a fix(i18n): inject language pack into bootstrap to
translate code-split chunks (#39357)
add 1575b83f96a chore(deps): bump react-arborist from 3.10.5 to 3.12.0 in
/superset-frontend (#41793)
add d6b31376a51 chore(deps-dev): bump prettier from 3.8.4 to 3.9.1 in
/docs (#41789)
add beff76cb4d4 chore(deps): bump antd from 6.4.5 to 6.5.0 in /docs
(#41788)
add fd8d7009a5b chore(mcp): drop legacy /superset prefix from dashboard
URLs (#41758)
add b4218136bec feat(ag-grid): support Show summary in raw records mode
(#41754)
add a7a051777c2 feat(charts): soft-delete and restore (#40129)
add 2f11240339c chore(deps): bump query-string from 9.4.0 to 9.4.1 in
/superset-frontend (#41782)
add f4cc871f8cd chore(deps): bump js-yaml from 5.1.0 to 5.2.0 in /docs
(#41783)
add 69f052985f7 chore(deps-dev): bump prettier from 3.8.4 to 3.9.3 in
/superset-frontend (#41784)
add c49d01223c7 chore(deps-dev): bump webpack from 5.108.0 to 5.108.2 in
/docs (#41786)
add dc671ae44ac chore(deps-dev): bump eslint from 10.5.0 to 10.6.0 in
/superset-frontend (#41792)
add 06f421ed4af fix(a11y): add aria-label to remove-sheet icon button in
Google Sheets catalog (#41796)
add b5e1aefa2cc feat(semantic layers): don't show samples tab in explore
add 046a589c13c Also disable drill-to-detail
add e10d2a70132 Address comments
add a664294c9f7 Address comments
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 (48958cc8ce6)
\
N -- N -- N refs/heads/chart-samples (a664294c9f7)
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:
.github/CODEOWNERS | 14 +-
.github/actions/setup-backend/action.yml | 2 +-
.github/actions/setup-supersetbot/action.yml | 2 +
.github/dependabot.yml | 7 +
.github/workflows/bump-python-package.yml | 2 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/github-action-validator.yml | 7 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/pre-commit.yml | 19 +-
.github/workflows/release.yml | 4 +-
.../workflows/scheduled-docker-image-refresh.yml | 2 +-
.github/workflows/showtime-cleanup.yml | 7 +-
.github/workflows/showtime-trigger.yml | 7 +-
.github/workflows/superset-docs-deploy.yml | 2 +-
.github/workflows/superset-helm-lint.yml | 2 +-
.github/workflows/superset-helm-release.yml | 2 +-
.github/workflows/superset-websocket.yml | 4 +
.pre-commit-config.yaml | 0
Dockerfile | 4 +-
README.md | 17 +-
UPDATING.md | 159 +
docs/.nvmrc | 2 +-
docs/admin_docs/configuration/alerts-reports.mdx | 17 +-
.../configuration/configuring-superset.mdx | 18 +
docs/admin_docs/installation/docker-compose.mdx | 5 +-
docs/admin_docs/installation/kubernetes.mdx | 12 +-
docs/developer_docs/contributing/howtos.md | 17 +-
docs/docs/faq.mdx | 4 +-
docs/docs/index.mdx | 17 +-
docs/docusaurus.config.ts | 2 +-
docs/package.json | 39 +-
docs/src/webpack.extend.ts | 54 -
docs/static/.htaccess | 9 +-
docs/static/feature-flags.json | 10 +-
.../version-6.0.0/configuration/databases.mdx | 74 +
.../version-6.0.0/intro.md | 17 +-
.../version-6.1.0/index.mdx | 17 +-
.../version-6.1.0/intro.md | 17 +-
docs/yarn.lock | 2369 ++-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 24 +-
helm/superset/README.md.gotmpl | 15 +
helm/superset/templates/_helpers.tpl | 78 +-
helm/superset/templates/configmap-superset.yaml | 8 +-
helm/superset/templates/deployment-beat.yaml | 17 +-
helm/superset/templates/deployment-flower.yaml | 17 +-
helm/superset/templates/deployment-worker.yaml | 21 +-
helm/superset/templates/deployment-ws.yaml | 17 +-
helm/superset/templates/deployment.yaml | 21 +-
helm/superset/templates/hpa-node.yaml | 8 +-
helm/superset/templates/hpa-worker.yaml | 8 +-
helm/superset/templates/ingress.yaml | 8 +-
helm/superset/templates/init-job.yaml | 15 +-
helm/superset/templates/pdb-beat.yaml | 8 +-
helm/superset/templates/pdb-flower.yaml | 8 +-
helm/superset/templates/pdb-worker.yaml | 8 +-
helm/superset/templates/pdb-ws.yaml | 8 +-
helm/superset/templates/pdb.yaml | 8 +-
helm/superset/templates/secret-env.yaml | 9 +-
.../superset/templates/secret-superset-config.yaml | 8 +-
helm/superset/templates/secret-ws.yaml | 8 +-
helm/superset/templates/service-flower.yaml | 11 +-
helm/superset/templates/service-ws.yaml | 11 +-
helm/superset/templates/service.yaml | 11 +-
helm/superset/templates/serviceaccount.yaml | 8 +-
helm/superset/tests/labels_test.yaml | 520 +
helm/superset/values.yaml | 13 +
pyproject.toml | 31 +-
pytest.ini | 2 +-
requirements/base.txt | 14 +-
requirements/development.txt | 84 +-
scripts/translations/backfill_po.py | 99 +-
scripts/translations/build_translation_index.py | 14 +-
.../translations/check_translation_regression.py | 229 +-
superset-embedded-sdk/.nvmrc | 2 +-
superset-embedded-sdk/CONTRIBUTING.md | 1 +
superset-embedded-sdk/README.md | 44 +-
superset-embedded-sdk/babel.config.js | 6 +-
superset-embedded-sdk/package-lock.json | 11755 ++----------
superset-embedded-sdk/package.json | 11 +-
superset-embedded-sdk/release-if-necessary.js | 20 +-
superset-embedded-sdk/src/const.ts | 6 +-
.../src/guestTokenRefresh.test.ts | 11 +-
superset-embedded-sdk/src/guestTokenRefresh.ts | 20 +-
superset-embedded-sdk/src/index.ts | 107 +-
superset-embedded-sdk/src/withTimeout.test.ts | 7 +-
superset-embedded-sdk/tsconfig.json | 8 +-
superset-embedded-sdk/webpack.config.js | 16 +-
superset-frontend/babel.config.js | 1 -
.../cypress/e2e/database/modal.test.ts | 118 -
.../cypress-base/cypress/utils/urls.ts | 9 +-
superset-frontend/cypress-base/package-lock.json | 529 +-
superset-frontend/cypress-base/package.json | 1 +
superset-frontend/jest.config.js | 3 +
superset-frontend/package-lock.json | 2841 +--
superset-frontend/package.json | 55 +-
.../packages/superset-core/package.json | 3 +
.../packages/superset-core/src/theme/Theme.tsx | 2 +-
.../packages/superset-core/src/theme/types.ts | 21 +
.../src/translation/TranslatorSingleton.test.ts | 79 +
.../src/translation/TranslatorSingleton.ts | 29 +
.../packages/superset-core/src/utils/isBlank.ts | 2 +-
.../superset-ui-chart-controls/package.json | 3 +-
.../src/components/CertifiedIconWithTooltip.tsx | 2 +-
.../src/operators/sortOperator.ts | 2 +-
.../src/shared-controls/customControls.tsx | 7 +-
.../src/shared-controls/sharedControls.tsx | 2 +-
.../superset-ui-chart-controls/src/types.ts | 1 +
.../src/utils/getColorFormatters.ts | 2 +-
.../test/operators/histogramOperator.test.ts | 2 +-
.../test/shared-controls/customControls.test.tsx | 36 +-
.../packages/superset-ui-core/package.json | 9 +-
.../src/chart/clients/ChartClient.ts | 4 +-
.../src/chart/components/StatefulChart.tsx | 7 +-
.../src/color/CategoricalColorNamespace.ts | 2 +-
.../src/components/ActionButton/index.tsx | 1 +
.../src/components/AsyncEsmComponent/index.tsx | 10 +-
.../src/components/Button/Button.stories.tsx | 5 +
.../src/components/Button/Button.test.tsx | 62 +
.../src/components/Button/index.tsx | 80 +-
.../src/components/Button/types.ts | 12 +
.../DropdownButton/DropdownButton.stories.tsx | 5 +
.../DropdownButton/DropdownButton.test.tsx | 76 +
.../src/components/DropdownButton/index.tsx | 17 +-
.../src/components/DropdownButton/types.ts | 8 +
.../DropdownContainer.stories.tsx | 2 +-
.../DropdownContainer/DropdownContainer.tsx | 4 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 2 +-
.../superset-ui-core/src/components/Form/types.ts | 1 +
.../src/components/IconTooltip/index.tsx | 1 +
.../src/components/Icons/AntdEnhanced.tsx | 13 +-
.../src/components/InfoTooltip/index.tsx | 2 +-
.../src/components/Label/index.tsx | 2 +-
.../src/components/MetadataBar/MetadataBar.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 2 +-
.../src/components/ModalTrigger/index.tsx | 29 +-
.../src/components/PageHeaderWithActions/index.tsx | 5 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 2 +-
.../src/components/Select/AsyncSelect.test.tsx | 19 +
.../src/components/Select/AsyncSelect.tsx | 93 +-
.../src/components/Select/Select.stories.tsx | 2 +-
.../src/components/Select/Select.test.tsx | 17 +
.../src/components/Select/Select.tsx | 71 +-
.../src/components/Select/styles.tsx | 10 +-
.../src/components/Table/VirtualTable.tsx | 4 +-
.../Table/utils/InteractiveTableUtils.ts | 2 +-
.../src/components/TableCollection/index.tsx | 18 +-
.../src/components/TableView/TableView.tsx | 2 +-
.../TelemetryPixel/TelemetryPixel.test.tsx | 25 +-
.../src/components/TelemetryPixel/index.tsx | 23 +-
.../src/components/TimezoneSelector/index.tsx | 12 +-
.../src/connection/SupersetClientClass.ts | 26 +-
.../src/connection/callApi/parseResponse.ts | 35 +-
.../superset-ui-core/src/connection/index.ts | 3 +
.../src/connection/normalizeBackendUrls.ts | 59 +
.../superset-ui-core/src/connection/types.ts | 12 +-
.../src/currency-format/CurrencyFormatter.ts | 38 +-
.../src/currency-format/currencyLocale.ts | 52 +
.../superset-ui-core/src/currency-format/index.ts | 6 +
.../src/currency-format/symbolPosition.ts | 93 +
.../src/query/api/legacy/getDatasourceMetadata.ts | 2 +-
.../superset-ui-core/src/query/normalizeOrderBy.ts | 2 +-
.../src/query/normalizeTimeColumn.ts | 2 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 1 +
.../src/time-comparison/fetchTimeRange.ts | 12 +-
.../src/time-comparison/getTimeOffset.ts | 2 +-
.../src/utils/convertKeysToCamelCase.ts | 2 +-
.../superset-ui-core/src/utils/lruCache.ts | 7 +-
.../superset-ui-core/src/utils/mapStyles.test.ts | 16 +
.../superset-ui-core/src/utils/mapStyles.ts | 3 +
.../packages/superset-ui-core/src/utils/merge.ts | 2 +-
.../test/chart/clients/ChartClient.test.ts | 26 +-
.../test/components/SafeMarkdown.test.tsx | 2 +-
.../SupersetClientAppRootContract.test.ts | 113 +
.../test/connection/normalizeBackendUrls.test.ts | 89 +
.../test/currency-format/CurrencyFormatter.test.ts | 52 +-
.../test/currency-format/currencyLocale.test.ts | 65 +
.../test/currency-format/symbolPosition.test.ts | 74 +
.../query/api/legacy/getDatasourceMetadata.test.ts | 4 +-
.../packages/superset-ui-core/types/assets.d.ts | 1 +
.../playwright/pages/DashboardPage.ts | 4 +-
superset-frontend/playwright/pages/ExplorePage.ts | 46 +
.../tests/dataset/create-dataset.spec.ts | 3 +-
.../experimental/explore/results-tab-reuse.spec.ts | 123 +
superset-frontend/playwright/utils/urls.ts | 2 +-
.../scripts/Country Map GeoJSON Generator.ipynb | Bin 11215237 ->
11681332 bytes
.../src/countries/morocco.geojson | Bin 53627 -> 47809 bytes
.../plugins/legacy-preset-chart-nvd3/package.json | 3 +-
.../legacy-preset-chart-nvd3/src/NVD3Vis.ts | 2 +-
.../plugin-chart-ag-grid-table/package.json | 3 +-
.../src/AgGridTable/index.tsx | 2 +-
.../src/AgGridTableChart.tsx | 65 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 33 +-
.../src/controlPanel.tsx | 31 +-
.../src/transformProps.ts | 29 +-
.../plugin-chart-ag-grid-table/src/types.ts | 1 +
.../plugin-chart-ag-grid-table/src/utils/extent.ts | 2 +-
.../src/utils/externalAPIs.ts | 2 +
.../src/utils/getInitialFilterModel.ts | 2 +-
.../test/AgGridTableChart.test.tsx | 369 +
.../test/buildQuery.test.ts | 129 +
.../test/controlPanel.test.ts | 36 +
.../plugins/plugin-chart-cartodiagram/package.json | 3 +-
.../src/components/OlChartMap.tsx | 2 +-
.../plugin-chart-cartodiagram/src/plugin/index.ts | 3 +-
.../src/util/transformPropsUtil.ts | 2 +-
.../plugins/plugin-chart-echarts/package.json | 3 +-
.../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx | 2 +-
.../BigNumberPeriodOverPeriod/buildQuery.ts | 2 +-
.../BigNumberPeriodOverPeriod/controlPanel.ts | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/index.ts | 3 +-
.../useOverflowDetection.ts | 2 +-
.../BigNumberWithTrendline/transformProps.ts | 16 +-
.../src/Gauge/transformProps.ts | 2 +-
.../src/Heatmap/transformProps.ts | 2 +-
.../src/Histogram/transformProps.ts | 2 +-
.../src/MixedTimeseries/buildQuery.ts | 13 +-
.../src/MixedTimeseries/controlPanel.tsx | 2 +-
.../src/MixedTimeseries/transformProps.ts | 28 +-
.../src/Sunburst/transformProps.ts | 4 +-
.../src/Timeseries/transformProps.ts | 2 +-
.../src/Timeseries/transformers.ts | 4 +
.../plugins/plugin-chart-echarts/src/constants.ts | 4 +
.../plugin-chart-echarts/src/utils/annotation.ts | 2 +-
.../plugin-chart-echarts/src/utils/series.ts | 2 +-
.../src/utils/themeOverrides.ts | 2 +-
.../plugin-chart-echarts/src/utils/tooltip.ts | 50 +-
.../plugin-chart-echarts/src/utils/treeBuilder.ts | 19 +-
.../test/BigNumber/transformProps.test.ts | 16 +-
.../test/MixedTimeseries/buildQuery.test.ts | 36 +-
.../test/MixedTimeseries/transformProps.test.ts | 195 +-
.../test/Sunburst/transformProps.test.ts | 54 +-
.../test/Timeseries/transformProps.test.ts | 41 +
.../test/utils/treeBuilder.test.ts | 141 +-
.../plugins/plugin-chart-handlebars/package.json | 3 +-
.../src/components/Handlebars/HandlebarsViewer.tsx | 2 +-
.../plugins/plugin-chart-handlebars/src/consts.ts | 2 +-
.../src/plugin/controls/orderBy.tsx | 2 +-
.../src/components/ScatterPlotOverlay.tsx | 8 +-
.../test/ScatterPlotOverlay.test.tsx | 52 +-
.../plugins/plugin-chart-table/package.json | 3 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 54 +-
.../DataTable/components/SearchSelectDropdown.tsx | 17 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 29 +-
.../plugins/plugin-chart-table/src/buildQuery.ts | 2 +-
.../plugin-chart-table/src/controlPanel.tsx | 2 +-
.../plugin-chart-table/src/transformProps.ts | 7 +-
.../plugins/plugin-chart-table/src/utils/extent.ts | 2 +-
.../plugin-chart-table/test/TableChart.test.tsx | 34 +-
.../plugins/plugin-chart-word-cloud/package.json | 3 +-
.../src/chart/WordCloud.tsx | 2 +-
.../plugin/controls/ColorSchemeControl/index.tsx | 2 +-
.../plugins/preset-chart-deckgl/package.json | 5 +-
.../src/CategoricalDeckGLContainer.test.tsx | 68 +
.../src/CategoricalDeckGLContainer.tsx | 83 +-
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 2 +-
.../src/Multi/Multi.color.test.tsx | 245 +
.../preset-chart-deckgl/src/Multi/Multi.tsx | 60 +-
.../plugins/preset-chart-deckgl/src/factory.tsx | 2 +-
.../src/utilities/HandlebarsRenderer.tsx | 2 +-
.../src/utilities/TooltipTemplateControl.tsx | 2 +-
.../preset-chart-deckgl/src/utils/addColor.test.ts | 103 +
.../preset-chart-deckgl/src/utils/addColor.ts | 111 +
.../spec/helpers/sourceTreeScanner.ts | 183 +
.../spec/helpers/withApplicationRoot.ts | 53 +
.../src/SqlLab/SqlLabGlobalStyles.tsx | 30 +
.../src/SqlLab/actions/sqlLab.test.ts | 27 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 8 +-
.../src/SqlLab/components/App/App.test.tsx | 4 +-
.../src/SqlLab/components/App/index.tsx | 198 +-
.../src/SqlLab/components/AppLayout/index.tsx | 2 +-
.../components/EditorWrapper/useKeywords.test.ts | 62 +-
.../SqlLab/components/EditorWrapper/useKeywords.ts | 10 +-
.../src/SqlLab/components/PopEditorTab/index.tsx | 2 +-
.../SqlLab/components/QueryAutoRefresh/index.tsx | 2 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 2 +-
.../src/SqlLab/components/QueryTable/index.tsx | 5 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 168 +
.../src/SqlLab/components/ResultSet/index.tsx | 17 +-
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 38 +
.../SqlLab/components/SaveDatasetModal/index.tsx | 18 +-
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 28 +
.../src/SqlLab/components/SaveQuery/index.tsx | 9 +-
.../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx | 2 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 4 +-
.../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx | 587 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 2 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 303 +-
.../components/TablePreview/TablePreview.test.tsx | 6 +-
.../components/TemplateParamsEditor/index.tsx | 2 +-
.../src/SqlLab/hooks/useQueryEditor/index.ts | 2 +-
.../middlewares/persistSqlLabStateEnhancer.ts | 2 +-
superset-frontend/src/SqlLab/reducers/sqlLab.ts | 2 +-
.../SqlLab/utils/reduxStateToLocalStorageHelper.ts | 2 +-
...zationTimeGrainsTransformer.integration.test.ts | 153 +
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 25 +-
.../TimeGrainPreFilter.integration.test.tsx | 181 +
.../components/TimeGrain/types.ts | 1 +
.../src/components/AlteredSliceTag/index.tsx | 2 +-
.../src/components/Chart/ChartRenderer.tsx | 2 +-
.../components/Chart/DrillBy/DrillByModal.test.tsx | 2 +-
.../Chart/DrillBy/DrillBySubmenu.test.tsx | 13 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 2 +-
.../src/components/Chart/DrillDetail/utils.ts | 2 +-
.../src/components/Chart/chartAction.ts | 4 +-
.../src/components/Chart/chartReducer.ts | 2 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 60 +-
.../useDrillDetailMenuItems.test.tsx | 18 +
.../CopyToClipboard/CopyToClipboard.test.tsx | 29 +
.../src/components/CopyToClipboard/index.tsx | 183 +-
.../components/Datasource/FoldersEditor/index.tsx | 2 +-
.../CollectionTable/CollectionTable.test.tsx | 2 +-
.../components/CollectionTable/index.tsx | 731 +-
.../DatasourceEditor/DatasourceEditor.tsx | 2044 +--
.../DashboardLinksExternal.test.tsx | 10 +-
.../components/DashboardLinksExternal/index.tsx | 2 +-
.../tests/DatasourceEditor.test.tsx | 58 +-
.../tests/DatasourceEditorCurrency.test.tsx | 14 +-
.../src/components/DynamicPlugins/index.tsx | 2 +-
.../src/components/ErrorBoundary/index.tsx | 1 +
.../src/components/FacePile/index.tsx | 2 +-
.../src/components/FilterableTable/index.tsx | 20 +-
.../src/components/GridTable/index.tsx | 18 +
.../KebabMenuButton/KebabMenuButton.test.tsx | 90 +
.../src/components/KebabMenuButton/index.tsx | 83 +
.../src/components/ListView/CardCollection.tsx | 2 +-
.../src/components/ListView/CrossLinks.test.tsx | 7 +-
.../src/components/ListView/CrossLinks.tsx | 2 +-
.../ListView/Filters/CompactSelectPanel.tsx | 2 +-
.../src/components/ListView/Filters/TimeRange.tsx | 4 +-
superset-frontend/src/components/ListView/utils.ts | 2 +-
.../StreamingExportModal/useStreamingExport.ts | 6 +-
superset-frontend/src/components/Tag/index.tsx | 2 +-
superset-frontend/src/components/index.ts | 1 +
.../src/core/navigation/index.test.ts | 12 +-
superset-frontend/src/core/navigation/index.ts | 6 +-
.../src/dashboard/actions/dashboardState.test.ts | 96 +-
.../src/dashboard/actions/dashboardState.ts | 21 +-
.../src/dashboard/actions/datasources.ts | 2 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 4 +-
.../src/dashboard/actions/nativeFilters.ts | 2 +-
.../src/dashboard/components/ColorSchemeSelect.tsx | 2 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 48 +-
.../DashboardBuilder/DashboardBuilder.tsx | 9 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 8 +-
.../DashboardBuilder/DashboardContainer.tsx | 12 +-
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../EmbeddedModal/EmbeddedModal.test.tsx | 12 +
.../dashboard/components/EmbeddedModal/index.tsx | 2 +-
.../DetailsPanel/DetailsPanel.test.tsx | 17 +
.../dashboard/components/FiltersBadge/Styles.tsx | 12 +
.../dashboard/components/FiltersBadge/index.tsx | 2 +-
.../dashboard/components/Header/Header.test.tsx | 28 +
.../src/dashboard/components/Header/index.tsx | 4 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 2 +-
.../dashboard/components/PropertiesModal/index.tsx | 2 +-
.../src/dashboard/components/SliceAdder.test.tsx | 10 +-
.../src/dashboard/components/SliceAdder.tsx | 2 +-
.../components/SliceHeader/SliceHeader.test.tsx | 10 +-
.../src/dashboard/components/SliceHeader/index.tsx | 4 +-
.../SliceHeaderControls.subdirectory.test.tsx | 172 +
.../SliceHeaderControls.test.tsx | 114 +-
.../components/SliceHeaderControls/index.tsx | 60 +-
.../components/SliceHeaderControls/types.ts | 2 +-
.../components/SyncDashboardState/index.tsx | 2 +-
.../URLShortLinkButton/URLShortLinkButton.test.tsx | 9 +-
.../src/dashboard/components/dnd/handleHover.ts | 2 +-
.../components/gridComponents/Chart/Chart.test.tsx | 22 +-
.../components/gridComponents/Chart/Chart.tsx | 8 +-
.../gridComponents/Tab/Tab.subdirectory.test.tsx | 146 +
.../components/gridComponents/Tab/Tab.test.tsx | 31 +
.../components/gridComponents/Tab/Tab.tsx | 5 +-
.../components/gridComponents/Tabs/Tabs.test.tsx | 2 +-
.../components/gridComponents/Tabs/Tabs.tsx | 2 +-
.../FilterBar/FilterBar.subdirectory.test.ts | 207 +
.../FilterControls/FilterValue.timeGrain.test.ts | 60 -
.../FilterBar/FilterControls/FilterValue.tsx | 57 +-
.../FilterBar/FilterControls/utils.ts | 2 +-
.../nativeFilters/FilterBar/Vertical.tsx | 2 +-
.../components/nativeFilters/FilterBar/index.tsx | 8 +-
.../components/nativeFilters/FilterBar/utils.ts | 2 +-
.../FiltersConfigModal/FilterConfigPane.test.tsx | 4 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 2 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 18 +-
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 2 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 13 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 2 +-
.../FiltersConfigModal/ItemTitleContainer.tsx | 2 +-
.../hooks/useItemStateManager.ts | 2 +-
.../FiltersConfigModal/hooks/useModalSaveLogic.ts | 2 +-
.../transformers/customizationTransformer.ts | 8 +-
.../nativeFilters/FiltersConfigModal/types.ts | 1 +
.../dashboard/containers/DashboardPage.test.tsx | 45 +-
.../src/dashboard/containers/DashboardPage.tsx | 39 +-
.../src/dashboard/hooks/useDownloadScreenshot.ts | 2 +-
.../src/dashboard/reducers/datasources.ts | 2 +-
.../dashboard/util/activeAllDashboardFilters.ts | 2 +-
.../src/dashboard/util/activeDashboardFilters.ts | 4 +-
.../util/charts/getFormDataWithExtraFilters.ts | 6 +-
.../src/dashboard/util/crossFilters.ts | 2 +-
.../src/dashboard/util/getDashboardUrl.ts | 2 +-
.../dashboard/util/getFilterScopeFromNodesTree.ts | 2 +-
.../src/dashboard/util/getFilterScopeNodesTree.ts | 2 +-
.../src/dashboard/util/risonFilters.ts | 24 +-
superset-frontend/src/dataMask/reducer.ts | 2 +-
superset-frontend/src/embedded/index.test.tsx | 66 +
superset-frontend/src/embedded/index.tsx | 82 +-
superset-frontend/src/embedded/utils.test.ts | 2 +-
superset-frontend/src/embedded/utils.ts | 2 +-
.../src/explore/actions/saveModalActions.ts | 2 +-
.../src/explore/components/Control.tsx | 2 +-
.../explore/components/ControlPanelsContainer.tsx | 2 +-
.../DataTableControl/FilterInput.test.tsx | 43 +-
.../explore/components/DataTableControl/index.tsx | 17 +-
.../components/DataTablesPane/DataTablesPane.tsx | 49 +-
.../components/DataTableControls.tsx | 2 +-
.../components/ResultsPaneOnDashboard.tsx | 2 +
.../DataTablesPane/components/useResultsPane.tsx | 96 +-
.../components/DataTablesPane/test/fixture.tsx | 8 +-
.../test/getStaleResultsTabFallback.test.ts} | 29 +-
.../DataTablesPane/test/useResultsPane.test.tsx | 201 +
.../src/explore/components/DataTablesPane/types.ts | 6 +-
.../EmbedCodeContent.subdirectory.test.tsx | 78 +
.../explore/components/ExploreChartPanel/index.tsx | 1 +
.../ExploreViewContainer.test.tsx | 6 +-
.../components/ExploreViewContainer/index.tsx | 10 +-
.../src/explore/components/SaveModal.test.tsx | 397 +-
.../src/explore/components/SaveModal.tsx | 1393 +-
.../AnnotationLayerControl/AnnotationLayer.tsx | 1299 +-
.../controls/AnnotationLayerControl/index.tsx | 364 +-
.../explore/components/controls/BoundsControl.tsx | 2 +-
.../components/controls/CheckboxControl.tsx | 49 +-
.../controls/ColorSchemeControl/index.tsx | 2 +-
.../ColumnConfigConstants.test.tsx | 5 +
.../ColumnConfigControl/ControlForm/index.tsx | 2 +-
.../controls/ColumnConfigControl/constants.tsx | 1 +
.../components/controls/ComparisonRangeLabel.tsx | 2 +-
.../DatasourceControl/DatasourceControl.test.tsx | 128 +-
.../controls/DatasourceControl/index.tsx | 771 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 4 +-
.../tests/DateFilterLabel.test.tsx | 6 +-
.../DndColumnMetricSelect.tsx | 2 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 2 +-
.../DndMetricSelect.test.tsx | 72 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 26 +-
.../DndColumnSelectControl/useResizeButton.tsx | 2 +-
.../FilterControl/AdhocFilterControl/index.tsx | 443 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 663 +-
.../useAdvancedDataTypes.ts | 2 +-
.../AdhocFilterPopoverTrigger/index.tsx | 145 +-
.../controls/FixedOrMetricControl/index.tsx | 282 +-
.../controls/MapViewControl/MapViewControl.tsx | 4 +-
.../controls/MetricControl/AdhocMetric.ts | 24 +
.../MetricControl/AdhocMetricEditPopover/index.tsx | 883 +-
.../controls/MetricControl/AdhocMetricOption.tsx | 104 +-
.../MetricControl/AdhocMetricPopoverTrigger.tsx | 497 +-
.../controls/MetricControl/MetricsControl.test.tsx | 47 +
.../controls/MetricControl/MetricsControl.tsx | 14 +-
.../explore/components/controls/SelectControl.tsx | 333 +-
.../components/controls/SpatialControl.test.tsx | 178 +
.../explore/components/controls/SpatialControl.tsx | 358 +-
.../components/controls/TextAreaControl.test.tsx | 4 +-
.../components/controls/TextAreaControl.tsx | 380 +-
.../components/controls/TextControl/index.tsx | 171 +-
.../components/controls/TimeOffsetControl.tsx | 2 +-
.../TimeSeriesColumnControl.test.tsx | 13 +-
.../controls/TimeSeriesColumnControl/index.tsx | 413 +-
.../explore/components/controls/ViewQuery.test.tsx | 1 +
.../src/explore/components/controls/ViewQuery.tsx | 9 +-
.../components/controls/ViewQueryModalFooter.tsx | 2 +-
.../components/controls/ViewportControl.tsx | 102 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 6 +-
.../DashboardsSubMenu.test.tsx | 31 +-
.../DashboardsSubMenu.tsx | 4 +-
.../getControlValuesCompatibleWithDatasource.ts | 2 +-
.../getFormDataWithDashboardContext.ts | 2 +-
.../explore/controlUtils/standardizedFormData.ts | 2 +-
.../src/explore/exploreUtils/exploreUtils.test.tsx | 22 +-
.../src/explore/exploreUtils/exportChart.test.ts | 17 +-
.../src/explore/exploreUtils/getExploreUrl.test.ts | 10 +-
.../explore/exploreUtils/getURIDirectory.test.ts | 6 +-
.../src/explore/exploreUtils/index.ts | 4 +-
.../src/explore/reducers/exploreReducer.ts | 2 +-
.../src/extensions/ExtensionsLoader.test.ts | 108 +
.../src/extensions/ExtensionsLoader.ts | 7 +-
.../src/features/alerts/AlertReportModal.tsx | 2 +-
.../alerts/components/AlertReportCronScheduler.tsx | 1 +
.../AllEntitiesTable.subdirectory.test.tsx | 152 +
.../src/features/allEntities/AllEntitiesTable.tsx | 5 +-
.../src/features/charts/ChartCard.tsx | 12 +-
.../src/features/dashboards/DashboardCard.tsx | 15 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +
.../DatabaseConnectionForm/TableCatalog.tsx | 4 +
.../DatabaseConnectionForm/ValidatedInputField.tsx | 2 +
.../DatabaseModal.subdirectory.test.ts | 160 +
.../databases/DatabaseModal/SSHTunnelForm.tsx | 150 +-
.../databases/DatabaseModal/SSHTunnelSwitch.tsx | 2 +-
.../databases/DatabaseModal/index.test.tsx | 385 +-
.../src/features/databases/DatabaseModal/index.tsx | 57 +-
.../DatasetPanel.subdirectory.test.tsx | 114 +
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 12 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 2 +-
.../src/features/home/Menu.subdirectory.test.tsx | 230 +
superset-frontend/src/features/home/Menu.test.tsx | 184 +
superset-frontend/src/features/home/Menu.tsx | 60 +-
.../src/features/home/RightMenu.test.tsx | 64 +
superset-frontend/src/features/home/RightMenu.tsx | 69 +-
.../src/features/home/SavedQueries.tsx | 25 +-
superset-frontend/src/features/home/SubMenu.tsx | 2 +-
superset-frontend/src/features/home/types.ts | 1 +
.../src/features/reports/ReportModal/actions.ts | 2 +-
.../src/features/reports/ReportModal/reducer.ts | 2 +-
.../src/features/roles/RoleListEditModal.test.tsx | 16 +-
.../src/features/themes/ThemeModal.tsx | 2 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 2 +-
.../components/Select/SelectFilterPlugin.test.tsx | 55 +
.../components/Select/SelectFilterPlugin.tsx | 32 +-
.../TimeGrain/TimeGrainFilterPlugin.test.tsx | 12 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 14 +-
.../TimeGrainPreFilter.integration.test.tsx | 23 +-
.../src/filters/components/TimeGrain/types.ts | 2 +-
.../src/hooks/apiResources/sqlEditorTabs.ts | 2 +-
superset-frontend/src/middleware/logger.test.ts | 6 +-
.../src/middleware/loggerMiddleware.ts | 11 +-
.../src/pages/AnnotationLayerList/index.tsx | 6 +-
.../src/pages/AnnotationList/index.tsx | 3 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 44 +-
.../src/pages/ChartCreation/index.tsx | 435 +-
.../pages/ChartList/ChartList.listview.test.tsx | 4 +-
.../src/pages/ChartList/ChartList.testHelpers.tsx | 18 +-
superset-frontend/src/pages/ChartList/index.tsx | 2 +-
.../DashboardList/DashboardList.testHelpers.tsx | 10 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 7 +-
.../DatasetList/DatasetList.subdirectory.test.tsx | 135 +
superset-frontend/src/pages/DatasetList/index.tsx | 18 +-
.../FileHandler/FileHandler.subdirectory.test.tsx | 267 +
.../src/pages/FileHandler/index.test.tsx | 10 +-
superset-frontend/src/pages/FileHandler/index.tsx | 10 +-
superset-frontend/src/pages/Home/index.tsx | 2 +-
superset-frontend/src/pages/Login/Login.test.tsx | 67 +-
superset-frontend/src/pages/Login/index.tsx | 11 +-
.../pages/RedirectWarning/RedirectWarning.test.tsx | 78 +
.../src/pages/RedirectWarning/index.tsx | 38 +-
.../src/pages/RedirectWarning/utils.test.ts | 59 +
.../src/pages/RedirectWarning/utils.ts | 15 +
superset-frontend/src/pages/Register/index.tsx | 7 +-
.../pages/SavedQueryList/SavedQueryList.test.tsx | 6 +-
.../src/pages/SavedQueryList/index.tsx | 17 +-
superset-frontend/src/pages/SqlLab/SqlLab.test.tsx | 2 +-
superset-frontend/src/pages/Tags/Tags.test.tsx | 134 +
superset-frontend/src/pages/Tags/index.tsx | 15 +-
superset-frontend/src/preamble.ts | 73 +-
superset-frontend/src/pwa-manifest.json | 65 -
superset-frontend/src/reduxUtils.ts | 2 +-
.../src/setup/setupFormatters.test.ts | 71 +
superset-frontend/src/setup/setupFormatters.ts | 5 +
.../src/theme/utils/antdTokenNames.test.ts | 34 +
.../src/theme/utils/antdTokenNames.ts | 19 +
superset-frontend/src/types/bootstrapTypes.ts | 3 +-
.../src/utils/DebouncedMessageQueue.ts | 2 +-
superset-frontend/src/utils/assetUrl.test.ts | 39 +
superset-frontend/src/utils/assetUrl.ts | 17 +-
superset-frontend/src/utils/colorScheme.ts | 2 +-
superset-frontend/src/utils/downloadAsImage.tsx | 2 +-
superset-frontend/src/utils/downloadAsPdf.ts | 2 +-
.../src/utils/getBootstrapData.test.ts | 73 +-
superset-frontend/src/utils/getBootstrapData.ts | 56 +-
.../src/utils/getChartFormDiffs/index.ts | 2 +-
.../src/utils/navigationUtils.AppLink.test.tsx | 95 +
.../src/utils/navigationUtils.appRoot.test.tsx | 136 +
.../src/utils/navigationUtils.directDom.test.tsx | 244 +
.../src/utils/navigationUtils.invariants.test.ts | 375 +
.../src/utils/navigationUtils.schemes.test.ts | 207 +
.../src/utils/navigationUtils.test.ts | 780 +
superset-frontend/src/utils/navigationUtils.ts | 486 +-
.../src/utils/pathUtils.parity.test.ts | 166 +
superset-frontend/src/utils/pathUtils.test.ts | 151 +
superset-frontend/src/utils/pathUtils.ts | 44 +-
.../src/utils/sanitizeFormData/index.ts | 2 +-
superset-frontend/src/utils/urlUtils.test.ts | 131 +
superset-frontend/src/utils/urlUtils.ts | 43 +-
superset-frontend/src/views/App.tsx | 73 +-
superset-frontend/src/views/CRUD/hooks.ts | 64 +-
superset-frontend/src/views/CRUD/utils.tsx | 2 +-
superset-frontend/src/views/menu.tsx | 55 +-
superset-frontend/src/views/routePaths.ts | 12 +-
superset-frontend/src/views/routes.test.tsx | 49 +
superset-frontend/src/views/routes.tsx | 12 +-
superset-frontend/webpack.config.js | 29 +-
superset-websocket/.nvmrc | 2 +-
superset-websocket/README.md | 3 +-
superset-websocket/jest.config.js | 22 -
superset-websocket/package-lock.json | 12571 +++----------
superset-websocket/package.json | 17 +-
superset-websocket/spec/config.test.ts | 2 +-
superset-websocket/spec/index.test.ts | 250 +-
superset-websocket/src/index.ts | 4 +-
superset-websocket/utils/README.md | 1 +
superset-websocket/utils/client-ws-app/.nvmrc | 2 +-
superset-websocket/utils/client-ws-app/README.md | 1 +
superset/__init__.py | 18 +-
superset/app.py | 37 +-
superset/async_events/async_query_manager.py | 71 +-
superset/cachekeys/api.py | 5 +-
superset/charts/api.py | 110 +-
superset/charts/client_processing.py | 6 +
superset/charts/filters.py | 38 +
superset/charts/schemas.py | 3 +-
superset/commands/chart/exceptions.py | 10 +
superset/commands/chart/importers/v1/utils.py | 109 +-
.../commands/chart/restore.py | 36 +-
superset/commands/dashboard/create.py | 7 +-
superset/commands/dashboard/exceptions.py | 18 +
superset/commands/dashboard/importers/v1/utils.py | 142 +-
superset/commands/dashboard/restore.py | 84 +
superset/commands/database/validate.py | 149 +-
superset/commands/dataset/importers/v1/utils.py | 6 +-
superset/commands/distributed_lock/acquire.py | 36 +-
superset/commands/importers/v1/utils.py | 20 +-
superset/commands/report/exceptions.py | 35 +
superset/commands/report/execute.py | 194 +-
superset/commands/sql_lab/estimate.py | 79 +-
superset/commands/tag/create.py | 24 +-
superset/commands/tag/update.py | 21 +-
superset/commands/tag/utils.py | 21 +
superset/common/query_actions.py | 9 +
superset/config.py | 115 +-
superset/connectors/sqla/models.py | 73 +-
superset/daos/base.py | 71 +-
superset/daos/dashboard.py | 83 +-
superset/dashboards/api.py | 117 +-
superset/dashboards/filters.py | 36 +
superset/databases/api.py | 14 +-
superset/databases/schemas.py | 22 +
superset/datasource/api.py | 3 +
superset/db_engine_specs/bigquery.py | 93 +-
superset/db_engine_specs/databricks.py | 195 +-
superset/db_engine_specs/redshift.py | 18 +
superset/distributed_lock/__init__.py | 6 +-
superset/exceptions.py | 8 +
superset/extensions/__init__.py | 11 +-
superset/initialization/__init__.py | 47 +-
superset/mcp_service/app.py | 25 +-
superset/mcp_service/chart/chart_utils.py | 146 +-
superset/mcp_service/chart/compile.py | 51 +-
superset/mcp_service/chart/plugin.py | 262 +
superset/mcp_service/chart/plugins/__init__.py | 58 +
superset/mcp_service/chart/plugins/big_number.py | 248 +
superset/mcp_service/chart/plugins/handlebars.py | 194 +
.../mcp_service/chart/plugins/mixed_timeseries.py | 173 +
superset/mcp_service/chart/plugins/pie.py | 140 +
superset/mcp_service/chart/plugins/pivot_table.py | 164 +
superset/mcp_service/chart/plugins/table.py | 136 +
superset/mcp_service/chart/plugins/xy.py | 202 +
superset/mcp_service/chart/registry.py | 279 +
superset/mcp_service/chart/schemas.py | 104 +-
superset/mcp_service/chart/tool/generate_chart.py | 20 +-
superset/mcp_service/chart/tool/get_chart_info.py | 15 +
.../mcp_service/chart/tool/get_chart_preview.py | 4 +
superset/mcp_service/chart/tool/update_chart.py | 25 +
.../mcp_service/chart/tool/update_chart_preview.py | 4 +-
.../chart/validation/dataset_validator.py | 275 +-
.../chart/validation/runtime/__init__.py | 100 +-
.../chart/validation/schema_validator.py | 483 +-
superset/mcp_service/dashboard/schemas.py | 731 +-
superset/mcp_service/dashboard/tool/__init__.py | 8 +
.../tool/add_chart_to_existing_dashboard.py | 8 +-
.../dashboard/tool/duplicate_dashboard.py | 425 +
.../dashboard/tool/generate_dashboard.py | 3 +-
.../dashboard/tool/get_dashboard_datasets.py | 156 +
.../dashboard/tool/get_dashboard_info.py | 3 +-
.../dashboard/tool/manage_native_filters.py | 511 +
.../dashboard/tool/remove_chart_from_dashboard.py | 538 +
.../mcp_service/dashboard/tool/update_dashboard.py | 153 +-
superset/mcp_service/dataset/schemas.py | 15 +-
.../mcp_service/dataset/tool/get_dataset_info.py | 17 +
.../mcp_service/docs/tool-search-optimization.md | 2 +-
.../explore/tool/generate_explore_link.py | 3 +-
superset/mcp_service/flask_singleton.py | 22 +
superset/mcp_service/jwt_verifier.py | 5 +
superset/mcp_service/mcp_config.py | 60 +-
superset/mcp_service/middleware.py | 1 +
.../sql_lab/tool/open_sql_lab_with_context.py | 2 +
superset/mcp_service/system/tool/find_users.py | 11 +-
superset/mcp_service/utils/__init__.py | 1 +
superset/mcp_service/utils/sanitization.py | 10 +
.../common => superset/middleware}/__init__.py | 0
superset/middleware/legacy_prefix_redirect.py | 256 +
...2bee73611e32_composite_pk_association_tables.py | 606 +
...12-00_7c4a8d09ca37_add_deleted_at_to_slices.py} | 47 +-
...05_9e1f3b8c4d2a_add_deleted_at_to_dashboards.py | 203 +
...-00_b4a3f2e1d0c9_fix_security_view_menu_case.py | 125 +
...23_a7d3f1b9c2e4_cleanup_stale_can_import_pvm.py | 120 +
superset/models/core.py | 82 +-
superset/models/dashboard.py | 104 +-
superset/models/helpers.py | 177 +-
superset/models/slice.py | 42 +-
superset/queries/filters.py | 7 +-
superset/queries/saved_queries/api.py | 5 +
superset/queries/saved_queries/filters.py | 8 +-
superset/queries/saved_queries/schemas.py | 10 +-
superset/reports/models.py | 6 +-
superset/reports/notifications/slack.py | 7 +-
superset/reports/notifications/slackv2.py | 57 +-
superset/reports/notifications/webhook.py | 21 +-
superset/result_set.py | 6 +-
superset/security/manager.py | 292 +-
superset/semantic_layers/mapper.py | 23 +-
superset/sql/execution/executor.py | 62 +-
superset/sql/parse.py | 275 +-
superset/sql_lab.py | 35 +-
superset/tags/models.py | 14 +-
superset/tasks/async_queries.py | 2 +-
superset/tasks/thumbnails.py | 10 +-
superset/templates/superset/spa.html | 36 +-
superset/translations/ar/LC_MESSAGES/messages.po | 2510 ++-
superset/translations/ca/LC_MESSAGES/messages.po | 1584 +-
superset/translations/cs/LC_MESSAGES/messages.po | 614 +-
superset/translations/de/LC_MESSAGES/messages.po | 4872 +++--
superset/translations/en/LC_MESSAGES/messages.po | 22 +
superset/translations/es/LC_MESSAGES/messages.po | 580 +-
superset/translations/fa/LC_MESSAGES/messages.po | 2011 ++-
superset/translations/fi/LC_MESSAGES/messages.po | 709 +-
superset/translations/fr/LC_MESSAGES/messages.po | 5319 +++---
superset/translations/it/LC_MESSAGES/messages.po | 17225 +++++++++++++++---
superset/translations/ja/LC_MESSAGES/messages.po | 2329 +--
superset/translations/ko/LC_MESSAGES/messages.po | 17961 +++++++++++++++----
superset/translations/lv/LC_MESSAGES/messages.po | 588 +-
superset/translations/messages.pot | 28 +
superset/translations/mi/LC_MESSAGES/messages.po | 1576 +-
superset/translations/nl/LC_MESSAGES/messages.po | 2314 ++-
superset/translations/pl/LC_MESSAGES/messages.po | 1990 +-
superset/translations/pt/LC_MESSAGES/messages.po | 15549 +++++++++++++---
.../translations/pt_BR/LC_MESSAGES/messages.po | 1983 +-
superset/translations/ro/LC_MESSAGES/messages.po | 21 +-
superset/translations/ru/LC_MESSAGES/messages.po | 623 +-
superset/translations/sk/LC_MESSAGES/messages.po | 600 +-
superset/translations/sl/LC_MESSAGES/messages.po | 1893 +-
superset/translations/sr/LC_MESSAGES/messages.po | 10 +
.../translations/sr_Latn/LC_MESSAGES/messages.po | 10 +
superset/translations/th/LC_MESSAGES/messages.po | 703 +-
superset/translations/tr/LC_MESSAGES/messages.po | 2115 ++-
superset/translations/uk/LC_MESSAGES/messages.po | 596 +-
superset/translations/zh/LC_MESSAGES/messages.po | 3493 +++-
.../translations/zh_TW/LC_MESSAGES/messages.po | 5096 ++++--
superset/utils/core.py | 18 +-
superset/utils/encrypt.py | 7 +-
superset/utils/json.py | 5 +
superset/utils/mock_data.py | 4 +-
superset/utils/pandas_postprocessing/rank.py | 3 +-
superset/utils/pandas_postprocessing/utils.py | 14 +-
superset/utils/screenshots.py | 109 +-
superset/utils/slack.py | 156 +-
superset/utils/version.py | 17 +
superset/utils/webdriver.py | 85 +-
superset/views/all_entities.py | 2 +-
superset/views/base.py | 68 +-
superset/views/base_api.py | 27 +-
superset/views/core.py | 68 +-
superset/views/datasource/views.py | 6 +-
superset/views/explore.py | 19 +-
superset/views/filters.py | 12 +-
superset/views/groups.py | 2 +-
superset/views/health.py | 19 +-
superset/views/logs.py | 2 +-
superset/views/pwa_manifest.py | 159 +
superset/views/roles.py | 2 +-
superset/views/tags.py | 2 +-
superset/views/user_registrations.py | 2 +-
superset/views/users_list.py | 2 +-
superset/views/utils.py | 159 +-
superset/viz.py | 4 +-
tests/integration_tests/base_api_tests.py | 10 +-
tests/integration_tests/base_tests.py | 12 +-
tests/integration_tests/cachekeys/api_tests.py | 47 +-
tests/integration_tests/charts/commands_tests.py | 2 +-
.../integration_tests/charts/soft_delete_tests.py | 579 +
tests/integration_tests/core_tests.py | 96 +-
tests/integration_tests/dashboard_tests.py | 26 +-
tests/integration_tests/dashboards/api_tests.py | 6 +-
.../dashboards/soft_delete_tests.py | 732 +
.../dashboards/superset_factory_util.py | 14 +-
tests/integration_tests/databases/api_tests.py | 71 +
tests/integration_tests/datasource/api_tests.py | 28 +-
tests/integration_tests/datasource_tests.py | 17 +
.../db_engine_specs/presto_tests.py | 12 +-
tests/integration_tests/email_tests.py | 12 +-
tests/integration_tests/event_logger_tests.py | 6 +-
tests/integration_tests/log_api_tests.py | 8 +-
...f1b9c2e4_cleanup_stale_can_import_pvm__tests.py | 84 +
...3f2e1d0c9_fix_security_view_menu_case__tests.py | 213 +
.../composite_pk_association_tables__tests.py | 137 +
.../migrations/composite_pk_round_trip__tests.py | 208 +
.../queries/saved_queries/api_tests.py | 63 +
.../commands/execute_dashboard_report_tests.py | 2 +-
tests/integration_tests/reports/commands_tests.py | 23 +-
tests/integration_tests/security/api_tests.py | 10 +-
tests/integration_tests/security_tests.py | 7 +-
tests/integration_tests/strategy_tests.py | 2 +-
tests/integration_tests/tags/api_tests.py | 80 +-
tests/integration_tests/utils/encrypt_tests.py | 41 +-
tests/integration_tests/utils_tests.py | 2 +-
.../views/test_explore_redirect.py | 326 +
.../async_events/async_query_manager_tests.py | 146 +-
.../charts/commands/importers/v1/import_test.py | 181 +
tests/unit_tests/charts/test_client_processing.py | 187 +-
tests/unit_tests/commands/chart/restore_test.py | 90 +
tests/unit_tests/commands/dashboard/create_test.py | 29 +
.../unit_tests/commands/dashboard/restore_test.py | 201 +
.../unit_tests/commands/databases/validate_test.py | 484 +
tests/unit_tests/commands/report/execute_test.py | 382 +-
tests/unit_tests/commands/sql_lab/test_estimate.py | 78 +-
.../common/test_query_actions_drill_detail.py | 70 +
.../common/test_query_context_factory.py | 4 +-
tests/unit_tests/config_test.py | 120 +
tests/unit_tests/dao/base_dao_test.py | 64 +
tests/unit_tests/dao/dashboard_test.py | 119 +
tests/unit_tests/daos/test_base_dao_soft_delete.py | 50 +-
.../commands/importers/v1/import_test.py | 357 +
tests/unit_tests/databases/schema_tests.py | 27 +
.../datasets/test_datetime_format_detector.py | 4 +-
tests/unit_tests/db_engine_specs/test_bigquery.py | 262 +
.../unit_tests/db_engine_specs/test_databricks.py | 731 +-
.../db_engine_specs/test_databricks_multi_cloud.py | 127 +
tests/unit_tests/db_engine_specs/test_starrocks.py | 4 +-
tests/unit_tests/initialization_test.py | 132 +-
.../mcp_service/chart/test_big_number_chart.py | 23 +-
.../mcp_service/chart/test_chart_schemas.py | 48 +
.../mcp_service/chart/test_chart_utils.py | 4 +-
tests/unit_tests/mcp_service/chart/test_compile.py | 4 +-
.../unit_tests/mcp_service/chart/test_registry.py | 252 +
.../mcp_service/chart/test_registry_filters.py | 222 +
.../mcp_service/chart/tool/test_get_chart_info.py | 28 +
.../mcp_service/chart/tool/test_update_chart.py | 241 +
.../validation/test_column_name_normalization.py | 523 +-
.../chart/validation/test_runtime_validator.py | 102 +-
.../dashboard/test_dashboard_schemas.py | 78 +-
.../tool/test_add_chart_to_existing_dashboard.py | 3 +-
.../dashboard/tool/test_dashboard_generation.py | 15 +-
.../dashboard/tool/test_dashboard_tools.py | 101 +-
.../dashboard/tool/test_duplicate_dashboard.py | 645 +
.../dashboard/tool/test_get_dashboard_datasets.py | 393 +
.../dashboard/tool/test_manage_native_filters.py | 818 +
.../tool/test_remove_chart_from_dashboard.py | 724 +
.../dashboard/tool/test_update_dashboard.py | 199 +-
.../mcp_service/system/tool/test_find_users.py | 81 +
.../mcp_service/utils/test_sanitization.py | 41 +
.../unit_tests/middleware}/__init__.py | 0
.../middleware/test_legacy_prefix_redirect.py | 726 +
.../composite_pk_association_tables_test.py | 170 +
.../test_add_deleted_at_to_dashboards.py | 241 +
.../migrations/test_add_deleted_at_to_slices.py | 190 +
tests/unit_tests/models/core_test.py | 352 +
tests/unit_tests/models/dashboard_test.py | 87 +-
tests/unit_tests/models/helpers_test.py | 219 +-
tests/unit_tests/models/slice_test.py | 58 +
tests/unit_tests/models/test_soft_delete_mixin.py | 38 +
.../unit_tests/models/test_validate_expression.py | 42 +-
.../pandas_postprocessing/test_aggregate.py | 28 +
.../pandas_postprocessing/test_prophet.py | 7 +-
.../unit_tests/pandas_postprocessing/test_rank.py | 54 +
.../queries/saved_queries_schema_test.py} | 18 +-
.../reports/notifications/slack_tests.py | 676 +-
.../reports/notifications/webhook_tests.py | 155 +
tests/unit_tests/result_set_test.py | 31 +
.../scripts/translations/backfill_po_test.py | 93 +
.../translations/build_translation_index_test.py | 49 +
.../check_translation_regression_test.py | 160 +
tests/unit_tests/security/guest_rls_test.py | 4 +-
tests/unit_tests/security/manager_test.py | 720 +
tests/unit_tests/semantic_layers/mapper_test.py | 125 +-
tests/unit_tests/sql/execution/test_executor.py | 86 +-
tests/unit_tests/sql/parse_tests.py | 562 +
tests/unit_tests/tags/models_test.py | 15 +-
tests/unit_tests/tasks/test_thumbnails.py | 145 +
tests/unit_tests/test_check_secret_key.py | 74 +
tests/unit_tests/test_subdirectory_url_for.py | 256 +
tests/unit_tests/test_viz_cache_key.py | 4 +-
tests/unit_tests/utils/encrypt_test.py | 38 +-
tests/unit_tests/utils/json_tests.py | 14 +
tests/unit_tests/utils/slack_test.py | 308 +-
tests/unit_tests/utils/test_core.py | 26 +-
.../unit_tests/utils/test_screenshot_cache_fix.py | 138 +-
tests/unit_tests/utils/version_test.py | 60 +
tests/unit_tests/utils/webdriver_test.py | 249 +-
tests/unit_tests/views/test_base.py | 89 +-
tests/unit_tests/views/test_bootstrap_auth.py | 72 +-
tests/unit_tests/views/test_health.py | 69 +
tests/unit_tests/views/test_pwa_manifest.py | 354 +
.../views/test_redirect_view_subdirectory.py | 221 +
tests/unit_tests/views/test_spa_service_worker.py | 182 +
892 files changed, 131809 insertions(+), 54566 deletions(-)
mode change 100644 => 100755 .pre-commit-config.yaml
mode change 100644 => 120000 docs/.nvmrc
create mode 100644 helm/superset/tests/labels_test.yaml
mode change 100644 => 120000 superset-embedded-sdk/.nvmrc
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/database/modal.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/DropdownButton/DropdownButton.test.tsx
create mode 100644
superset-frontend/packages/superset-ui-core/src/connection/normalizeBackendUrls.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/currency-format/currencyLocale.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/currency-format/symbolPosition.ts
create mode 100644
superset-frontend/packages/superset-ui-core/test/connection/SupersetClientAppRootContract.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/test/connection/normalizeBackendUrls.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/test/currency-format/currencyLocale.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/test/currency-format/symbolPosition.test.ts
create mode 100644
superset-frontend/playwright/tests/experimental/explore/results-tab-reuse.spec.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/CategoricalDeckGLContainer.test.tsx
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/Multi/Multi.color.test.tsx
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/utils/addColor.test.ts
create mode 100644
superset-frontend/plugins/preset-chart-deckgl/src/utils/addColor.ts
create mode 100644 superset-frontend/spec/helpers/sourceTreeScanner.ts
create mode 100644 superset-frontend/spec/helpers/withApplicationRoot.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/TimeGrain/CustomizationTimeGrainsTransformer.integration.test.ts
create mode 100644
superset-frontend/src/chartCustomizations/components/TimeGrain/TimeGrainPreFilter.integration.test.tsx
create mode 100644
superset-frontend/src/components/KebabMenuButton/KebabMenuButton.test.tsx
create mode 100644 superset-frontend/src/components/KebabMenuButton/index.tsx
create mode 100644
superset-frontend/src/dashboard/components/SliceHeaderControls/SliceHeaderControls.subdirectory.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/gridComponents/Tab/Tab.subdirectory.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterBar.subdirectory.test.ts
delete mode 100644
superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.timeGrain.test.ts
create mode 100644 superset-frontend/src/embedded/index.test.tsx
mode change 100644 => 100755
superset-frontend/src/explore/components/DataTableControl/FilterInput.test.tsx
mode change 100644 => 100755
superset-frontend/src/explore/components/DataTableControl/index.tsx
copy superset-frontend/src/explore/{exploreUtils/getLegacyEndpointType.test.ts
=> components/DataTablesPane/test/getStaleResultsTabFallback.test.ts} (52%)
create mode 100644
superset-frontend/src/explore/components/DataTablesPane/test/useResultsPane.test.tsx
create mode 100644
superset-frontend/src/explore/components/EmbedCodeContent.subdirectory.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/SpatialControl.test.tsx
create mode 100644
superset-frontend/src/features/allEntities/AllEntitiesTable.subdirectory.test.tsx
create mode 100644
superset-frontend/src/features/databases/DatabaseModal/DatabaseModal.subdirectory.test.ts
create mode 100644
superset-frontend/src/features/datasets/AddDataset/DatasetPanel/DatasetPanel.subdirectory.test.tsx
create mode 100644
superset-frontend/src/features/home/Menu.subdirectory.test.tsx
create mode 100644
superset-frontend/src/pages/DatasetList/DatasetList.subdirectory.test.tsx
create mode 100644
superset-frontend/src/pages/FileHandler/FileHandler.subdirectory.test.tsx
create mode 100644
superset-frontend/src/pages/RedirectWarning/RedirectWarning.test.tsx
create mode 100644 superset-frontend/src/pages/Tags/Tags.test.tsx
delete mode 100644 superset-frontend/src/pwa-manifest.json
create mode 100644 superset-frontend/src/setup/setupFormatters.test.ts
create mode 100644 superset-frontend/src/utils/navigationUtils.AppLink.test.tsx
create mode 100644 superset-frontend/src/utils/navigationUtils.appRoot.test.tsx
create mode 100644
superset-frontend/src/utils/navigationUtils.directDom.test.tsx
create mode 100644
superset-frontend/src/utils/navigationUtils.invariants.test.ts
create mode 100644 superset-frontend/src/utils/navigationUtils.schemes.test.ts
create mode 100644 superset-frontend/src/utils/navigationUtils.test.ts
create mode 100644 superset-frontend/src/utils/pathUtils.parity.test.ts
mode change 100644 => 120000 superset-websocket/.nvmrc
delete mode 100644 superset-websocket/jest.config.js
mode change 100644 => 120000 superset-websocket/utils/client-ws-app/.nvmrc
copy tests/unit_tests/mcp_service/test_schema_discovery.py =>
superset/commands/chart/restore.py (53%)
create mode 100644 superset/commands/dashboard/restore.py
create mode 100755 superset/mcp_service/chart/plugin.py
create mode 100644 superset/mcp_service/chart/plugins/__init__.py
create mode 100644 superset/mcp_service/chart/plugins/big_number.py
create mode 100644 superset/mcp_service/chart/plugins/handlebars.py
create mode 100644 superset/mcp_service/chart/plugins/mixed_timeseries.py
create mode 100644 superset/mcp_service/chart/plugins/pie.py
create mode 100644 superset/mcp_service/chart/plugins/pivot_table.py
create mode 100644 superset/mcp_service/chart/plugins/table.py
create mode 100755 superset/mcp_service/chart/plugins/xy.py
create mode 100644 superset/mcp_service/chart/registry.py
mode change 100644 => 100755
superset/mcp_service/chart/validation/runtime/__init__.py
create mode 100644 superset/mcp_service/dashboard/tool/duplicate_dashboard.py
create mode 100644
superset/mcp_service/dashboard/tool/get_dashboard_datasets.py
create mode 100644 superset/mcp_service/dashboard/tool/manage_native_filters.py
create mode 100644
superset/mcp_service/dashboard/tool/remove_chart_from_dashboard.py
mode change 100644 => 100755 superset/mcp_service/system/tool/find_users.py
copy {superset-core/src/superset_core/common =>
superset/middleware}/__init__.py (100%)
create mode 100644 superset/middleware/legacy_prefix_redirect.py
create mode 100644
superset/migrations/versions/2026-05-01_23-36_2bee73611e32_composite_pk_association_tables.py
copy
superset/migrations/versions/{2025-07-15_18-41_cd1fb11291f2_add_theme_id_to_dashboard_model.py
=> 2026-05-08_12-00_7c4a8d09ca37_add_deleted_at_to_slices.py} (53%)
create mode 100644
superset/migrations/versions/2026-05-08_12-05_9e1f3b8c4d2a_add_deleted_at_to_dashboards.py
create mode 100644
superset/migrations/versions/2026-05-29_00-00_b4a3f2e1d0c9_fix_security_view_menu_case.py
create mode 100644
superset/migrations/versions/2026-06-23_03-23_a7d3f1b9c2e4_cleanup_stale_can_import_pvm.py
create mode 100644 superset/views/pwa_manifest.py
create mode 100644 tests/integration_tests/charts/soft_delete_tests.py
create mode 100644 tests/integration_tests/dashboards/soft_delete_tests.py
create mode 100644
tests/integration_tests/migrations/a7d3f1b9c2e4_cleanup_stale_can_import_pvm__tests.py
create mode 100644
tests/integration_tests/migrations/b4a3f2e1d0c9_fix_security_view_menu_case__tests.py
create mode 100644
tests/integration_tests/migrations/composite_pk_association_tables__tests.py
create mode 100644
tests/integration_tests/migrations/composite_pk_round_trip__tests.py
create mode 100644 tests/integration_tests/views/test_explore_redirect.py
create mode 100644 tests/unit_tests/commands/chart/restore_test.py
create mode 100644 tests/unit_tests/commands/dashboard/restore_test.py
create mode 100644 tests/unit_tests/common/test_query_actions_drill_detail.py
create mode 100644 tests/unit_tests/dao/dashboard_test.py
create mode 100644
tests/unit_tests/db_engine_specs/test_databricks_multi_cloud.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_registry.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_registry_filters.py
mode change 100644 => 100755
tests/unit_tests/mcp_service/chart/validation/test_column_name_normalization.py
mode change 100644 => 100755
tests/unit_tests/mcp_service/chart/validation/test_runtime_validator.py
create mode 100644
tests/unit_tests/mcp_service/dashboard/tool/test_duplicate_dashboard.py
create mode 100644
tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_datasets.py
create mode 100644
tests/unit_tests/mcp_service/dashboard/tool/test_manage_native_filters.py
create mode 100644
tests/unit_tests/mcp_service/dashboard/tool/test_remove_chart_from_dashboard.py
copy {superset-core/src/superset_core/common =>
tests/unit_tests/middleware}/__init__.py (100%)
create mode 100644 tests/unit_tests/middleware/test_legacy_prefix_redirect.py
create mode 100644
tests/unit_tests/migrations/composite_pk_association_tables_test.py
create mode 100644
tests/unit_tests/migrations/test_add_deleted_at_to_dashboards.py
create mode 100644 tests/unit_tests/migrations/test_add_deleted_at_to_slices.py
create mode 100644 tests/unit_tests/pandas_postprocessing/test_rank.py
copy tests/{integration_tests/fixtures/client.py =>
unit_tests/queries/saved_queries_schema_test.py} (60%)
create mode 100644 tests/unit_tests/tasks/test_thumbnails.py
create mode 100644 tests/unit_tests/test_check_secret_key.py
create mode 100644 tests/unit_tests/test_subdirectory_url_for.py
create mode 100644 tests/unit_tests/utils/version_test.py
create mode 100644 tests/unit_tests/views/test_health.py
create mode 100644 tests/unit_tests/views/test_pwa_manifest.py
create mode 100644 tests/unit_tests/views/test_redirect_view_subdirectory.py
create mode 100644 tests/unit_tests/views/test_spa_service_worker.py