You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by en...@apache.org on 2026/07/03 11:20:20 UTC
(superset) branch fix/104810-date-filter-hour-offset updated (ebcc9903403 -> 879aefc5095)
This is an automated email from the ASF dual-hosted git repository.
EnxDev pushed a change to branch fix/104810-date-filter-hour-offset
in repository https://gitbox.apache.org/repos/asf/superset.git
from ebcc9903403 fix: honor dataset Hour Offset in temporal filters (#104810)
add 3261d102708 chore(frontend): enforce TypeScript-only source files (#41385)
add 2d78a8733cd fix(plugin-chart-ag-grid-table): show correct percent-metric totals in summary row (#41247)
add 7bb4e82a827 fix(dashboard): Remove 308 redirect when creating new dashboards (#41343)
add f6ce1054508 fix(pandas-postprocessing): handle prophet errors and validate minimum data points for forecast (#41180)
add 3ec4bd23c4d fix(deps): restore np.nan in offset_metrics_df empty branch (#41267)
add 09c7ba14df4 fix(export): sanitize control characters in titles to prevent export failures (#39294)
add 6f12d173133 fix(charts): show user-friendly error for HTTP 413 payload too large (#37131)
add 73637748698 fix(theming): deep-merge partial THEME_DEFAULT overrides with built-in defaults (#41347)
add b955c90de40 fix(sqllab): Invalid multi sorting state in table header (#40680)
add 518cadd907c fix(mcp_service): reduce deprecated authlib.jose.errors imports (#41248)
add 076d8c15089 docs(security): add a secrets register and rotation schedule (#41308)
add 6166af3c3c8 fix(mcp): reject non-finite JWT exp instead of 500ing on int() overflow (#41394)
add f40abbbefd1 fix(mcp): fail closed when the JWT verifier has no pinned algorithm (#41296)
add da9fbadaf65 fix(logout): purge the namespaced Cache API store on logout (#41303)
add 4519a5c52d8 fix(safe-markdown): do not mutate the shared sanitization schema (#41298)
add 4f4663418f3 fix(tests): stabilize update_chart MCP test failing on previous-Python CI leg (#41310)
add 1f16d10cbf9 chore(deps): bump pyjwt to 2.13.0 (CVE-2026-48526) (#41288)
add 0fd244b5c6f fix(security): reject unknown fields on guest-token RLS rules (#41217)
add 81f7e42f4ee fix(rls): preserve tables/roles on partial RLS rule updates (#41294)
add 0667ba60971 chore(deps): bump dompurify and http-proxy-middleware (security) (#41289)
add e0f3f93cd4e fix(mcp): require MCP_JWT_AUDIENCE when MCP JWT auth is enabled (#41292)
add 2b25345ed9e chore(deps-dev): bump baseline-browser-mapping from 2.10.37 to 2.10.38 in /superset-frontend (#41413)
add b4f43bd7e02 chore(deps): bump baseline-browser-mapping from 2.10.37 to 2.10.38 in /docs (#41405)
add fe2424ec14a chore(deps): bump mapbox-gl from 3.24.1 to 3.25.0 in /superset-frontend (#41409)
add a90c8e03476 feat(extensions): add Chat contribution type (SIP-214) (#41205)
add 9a11c15a333 feat(explore): add full-range option for time-shift comparison (#41334)
add baca76ebe0c fix(slack): fix indented triple-quoted string in v1 API deprecation warning (#41393)
add 83f7dc9d5b3 chore(codeowners): add translation maintainers (#41429)
add 4b9b8187b3c fix(config): make Swagger UI opt-in (off by default) (#41300)
add d8bcc664727 feat(mcp): dashboard layout, theme, and CSS control + update_dashboard tool (#40399)
add 9965c056995 fix(semantic layers): small fixes (#40474)
add de01fe2ff0e fix(chart-controls): fix RadioButtonControl crash on empty options and false values (#41170)
add aac02ab6793 fix(deck.gl): use interval notation for Polygon legend bucket labels (#41400)
add 95ecdd37537 fix(menu): highlight active nav tab in non-English locales (#41183)
add c94bc7178f0 fix(world-map): rely on built-in highlightOnHover to reset hover highlight (#41158)
add 8fed514e794 fix(dashboard): keep pasted filter values outside the loaded page (#41136)
add d763255e159 chore(i18n): update Turkish translations messages.po (#39064)
add 2b09b6bc1df feat(mcp): list_charts accepts `dashboards` filter (#40397)
add f08f0682409 fix(sqllab): replace native prompt with modal for tab rename (#41329)
add 7410ff73c0a ci: schedule a weekly Docker image rebuild against the latest release (#40426)
add 0d43c2c12c3 feat(reports): trigger alerts (#41336)
add 7e17c70cba2 fix: Filter null child names in treeBuilder utility (#31477)
add 35365d639d5 fix(deckgl): render legend swatch as a coloured box, not an emoji glyph (#40784)
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 879aefc5095 Merge branch 'master' into fix/104810-date-filter-hour-offset
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 16 +-
.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 | 177 +
.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 +
.github/workflows/tag-release.yml | 6 +
.pre-commit-config.yaml | 0
Dockerfile | 4 +-
README.md | 17 +-
UPDATING.md | 149 +
docker/.env | 2 +
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/admin_docs/security/securing_superset.mdx | 19 +
docs/developer_docs/contributing/howtos.md | 17 +-
.../extensions/contribution-types.md | 23 +-
.../extensions/extension-points/chat.md | 141 +
docs/developer_docs/sidebars.js | 2 +
docs/docs/faq.mdx | 4 +-
docs/docs/index.mdx | 17 +-
docs/docusaurus.config.ts | 2 +-
docs/package.json | 35 +-
docs/src/webpack.extend.ts | 54 -
docs/static/.htaccess | 9 +-
docs/static/feature-flags.json | 6 +
.../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 | 2024 ++-
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 | 19 +-
pytest.ini | 2 +-
requirements/base.txt | 10 +-
requirements/development.txt | 78 +-
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 | 1767 +--
superset-frontend/package.json | 46 +-
.../packages/superset-core/package.json | 11 +
.../packages/superset-core/src/chat/index.ts | 156 +
.../packages/superset-core/src/common/index.ts | 2 -
.../superset-core/src/contributions/index.ts | 12 +-
.../packages/superset-core/src/index.ts | 2 +
.../packages/superset-core/src/navigation/index.ts | 81 +
.../packages/superset-core/src/theme/Theme.tsx | 2 +-
.../packages/superset-core/src/theme/types.ts | 21 +
.../packages/superset-core/src/utils/isBlank.ts | 2 +-
.../packages/superset-core/src/views/index.ts | 10 +-
.../superset-ui-chart-controls/package.json | 3 +-
.../src/components/CertifiedIconWithTooltip.tsx | 2 +-
.../src/operators/sortOperator.ts | 2 +-
.../src/sections/advancedAnalytics.tsx | 20 +
.../components/RadioButtonControl.tsx | 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 +-
.../components/RadioButtonControl.test.tsx | 45 +
.../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 | 13 +-
.../src/components/Select/AsyncSelect.tsx | 84 +-
.../src/components/Select/Select.stories.tsx | 2 +-
.../src/components/Select/Select.test.tsx | 121 +
.../src/components/Select/Select.tsx | 90 +-
.../src/components/Select/styles.tsx | 10 +-
.../src/components/Select/types.ts | 12 +
.../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/SupersetClient.ts | 1 +
.../src/connection/SupersetClientClass.ts | 46 +-
.../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 | 13 +-
.../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 | 32 +
.../test/connection/SupersetClient.test.ts | 6 +-
.../SupersetClientAppRootContract.test.ts | 113 +
.../test/connection/SupersetClientClass.test.ts | 71 +
.../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 +-
.../tests/dataset/create-dataset.spec.ts | 3 +-
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
.../legacy-plugin-chart-world-map/src/WorldMap.ts | 34 +-
.../test/WorldMap.test.ts | 263 +-
.../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 | 2 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 32 +-
.../src/controlPanel.tsx | 2 +-
.../src/transformProps.ts | 2 +-
.../plugin-chart-ag-grid-table/src/utils/extent.ts | 2 +-
.../src/utils/getInitialFilterModel.ts | 2 +-
.../test/buildQuery.test.ts | 69 +
.../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 | 21 +-
.../src/MixedTimeseries/transformProps.ts | 28 +-
.../src/Sunburst/controlPanel.tsx | 14 +
.../src/Sunburst/transformProps.ts | 4 +
.../src/Timeseries/buildQuery.ts | 6 +
.../src/Timeseries/transformProps.ts | 13 +-
.../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 | 16 +-
.../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 | 375 +
.../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 +-
.../plugin-chart-point-cluster-map/package.json | 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 | 48 +-
.../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 +-
.../plugin-chart-table/test/buildQuery.test.ts | 77 +
.../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 | 3 +-
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 2 +-
.../preset-chart-deckgl/src/Multi/Multi.tsx | 2 +-
.../src/components/Legend.test.tsx | 71 +
.../preset-chart-deckgl/src/components/Legend.tsx | 58 +-
.../plugins/preset-chart-deckgl/src/factory.tsx | 2 +-
.../src/utilities/HandlebarsRenderer.tsx | 2 +-
.../src/utilities/TooltipTemplateControl.tsx | 2 +-
.../plugins/preset-chart-deckgl/src/utils.test.ts | 47 +-
.../plugins/preset-chart-deckgl/src/utils.ts | 9 +-
superset-frontend/scripts/check-custom-rules.js | 75 +-
.../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 | 428 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 84 +-
.../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 | 2 +-
.../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/Header.test.tsx | 186 +-
.../src/components/GridTable/Header.tsx | 58 +-
.../src/components/GridTable/index.tsx | 18 +
.../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/core/chat/ChatHost.test.tsx | 277 +
superset-frontend/src/core/chat/ChatHost.tsx | 133 +
.../src/core/chat/ChatProvider.test.ts | 257 +
superset-frontend/src/core/chat/ChatProvider.ts | 209 +
superset-frontend/src/core/chat/index.test.ts | 68 +
superset-frontend/src/core/chat/index.ts | 82 +
.../src/core/editors/EditorProviders.test.ts | 27 -
.../src/core/editors/EditorProviders.ts | 60 +-
superset-frontend/src/core/editors/index.ts | 135 +-
superset-frontend/src/core/index.ts | 2 +
superset-frontend/src/core/menus/index.ts | 23 +-
.../src/core/navigation/index.test.ts | 124 +
superset-frontend/src/core/navigation/index.ts | 98 +
superset-frontend/src/core/sqlLab/index.ts | 2 +-
.../src/core/{utils.ts => storeUtils.ts} | 15 +-
superset-frontend/src/core/utils.ts | 67 +-
superset-frontend/src/core/views/index.ts | 39 +-
.../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 | 2 +-
.../src/dashboard/actions/nativeFilters.ts | 2 +-
.../src/dashboard/components/ColorSchemeSelect.tsx | 2 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 2 +-
.../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 +-
.../SliceHeaderControls.subdirectory.test.tsx | 172 +
.../SliceHeaderControls.test.tsx | 112 +
.../components/SliceHeaderControls/index.tsx | 24 +-
.../components/SyncDashboardState/index.tsx | 2 +-
.../URLShortLinkButton/URLShortLinkButton.test.tsx | 9 +-
.../src/dashboard/components/dnd/handleHover.ts | 2 +-
.../components/gridComponents/Chart/Chart.tsx | 65 +-
.../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 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 18 +-
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 2 +-
.../FiltersConfigModal/FiltersConfigModal.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 | 42 +-
.../src/dashboard/hooks/useDownloadScreenshot.ts | 2 +-
.../src/dashboard/reducers/datasources.ts | 2 +-
.../dashboard/util/activeAllDashboardFilters.ts | 2 +-
.../src/dashboard/util/activeDashboardFilters.ts | 2 +-
.../util/charts/getFormDataWithExtraFilters.ts | 2 +-
.../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.tsx | 80 +-
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 | 43 +-
.../components/DataTableControls.tsx | 2 +-
.../DataTablesPane/components/useResultsPane.tsx | 2 +-
.../test/getStaleResultsTabFallback.test.ts} | 30 +-
.../src/explore/components/DataTablesPane/types.ts | 2 +-
.../EmbedCodeContent.subdirectory.test.tsx | 78 +
.../ExploreViewContainer.test.tsx | 6 +-
.../components/ExploreViewContainer/index.tsx | 13 +-
.../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 +-
.../DashboardsSubMenu.test.tsx | 31 +-
.../DashboardsSubMenu.tsx | 4 +-
.../useExploreAdditionalActionsMenu/index.tsx | 176 +-
.../useExploreAdditionalActionsMenu.test.tsx | 150 +
.../getControlValuesCompatibleWithDatasource.ts | 2 +-
.../getFormDataWithDashboardContext.ts | 2 +-
.../explore/controlUtils/standardizedFormData.ts | 2 +-
.../src/explore/exploreUtils/exploreUtils.test.tsx | 22 +-
.../src/explore/exploreUtils/exportChart.test.ts | 233 +-
.../src/explore/exploreUtils/getExploreUrl.test.ts | 10 +-
.../explore/exploreUtils/getURIDirectory.test.ts | 6 +-
.../src/explore/exploreUtils/index.ts | 56 +-
.../src/explore/reducers/exploreReducer.ts | 2 +-
.../src/extensions/ExtensionsLoader.test.ts | 109 +-
.../src/extensions/ExtensionsLoader.ts | 7 +-
.../src/extensions/ExtensionsStartup.test.tsx | 10 +
.../src/extensions/ExtensionsStartup.tsx | 29 +-
superset-frontend/src/extensions/Namespaces.ts | 60 +
.../src/features/alerts/AlertReportModal.tsx | 2 +-
.../alerts/hooks/useExecuteReportSchedule.test.ts | 125 +
.../alerts/hooks/useExecuteReportSchedule.ts | 96 +
.../AllEntitiesTable.subdirectory.test.tsx | 152 +
.../src/features/allEntities/AllEntitiesTable.tsx | 5 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +
.../DatabaseConnectionForm/TableCatalog.tsx | 3 +
.../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/DashboardTable.test.tsx | 2 +-
.../src/features/home/DashboardTable.tsx | 2 +-
superset-frontend/src/features/home/EmptyState.tsx | 2 +-
.../src/features/home/Menu.subdirectory.test.tsx | 230 +
superset-frontend/src/features/home/Menu.test.tsx | 294 +-
superset-frontend/src/features/home/Menu.tsx | 94 +-
.../src/features/home/RightMenu.test.tsx | 108 +-
superset-frontend/src/features/home/RightMenu.tsx | 80 +-
.../src/features/home/SavedQueries.tsx | 4 +-
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 +-
.../semanticLayers/SemanticLayerModal.test.tsx | 99 +-
.../features/semanticLayers/SemanticLayerModal.tsx | 77 +-
.../features/semanticLayers/jsonFormsHelpers.tsx | 56 +-
.../src/features/themes/ThemeModal.tsx | 2 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 2 +-
.../components/Select/SelectFilterPlugin.tsx | 3 +-
.../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 +-
.../pages/AlertReportList/AlertReportList.test.tsx | 67 +
.../src/pages/AlertReportList/index.tsx | 61 +-
.../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 +-
.../src/pages/DashboardList/index.tsx | 2 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 7 +-
.../DatasetList/DatasetList.behavior.test.tsx | 135 +
.../DatasetList/DatasetList.subdirectory.test.tsx | 135 +
superset-frontend/src/pages/DatasetList/index.tsx | 52 +-
.../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 | 4 +-
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 +-
superset-frontend/src/utils/export.test.ts | 58 +-
superset-frontend/src/utils/export.ts | 30 +-
.../src/utils/getBootstrapData.test.ts | 73 +-
superset-frontend/src/utils/getBootstrapData.ts | 56 +-
.../src/utils/getChartFormDiffs/index.ts | 2 +-
superset-frontend/src/utils/localStorageHelpers.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 +-
.../sanitizeDocumentTitle.test.ts} | 26 +-
.../utils/sanitizeDocumentTitle.ts} | 11 +-
.../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 | 171 +-
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 | 60 +
superset-frontend/src/views/routes.test.tsx | 49 +
superset-frontend/src/views/routes.tsx | 220 +-
superset-frontend/webpack.config.js | 6 +-
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/client_processing.py | 6 +
superset/charts/schemas.py | 15 +-
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 | 39 +
superset/commands/report/execute.py | 115 +-
superset/commands/report/execute_now.py | 134 +
superset/commands/security/update.py | 33 +-
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_object.py | 3 +
superset/common/utils/dataframe_utils.py | 9 +-
superset/config.py | 130 +-
superset/connectors/sqla/models.py | 73 +-
superset/daos/base.py | 179 +-
superset/daos/chart.py | 1 +
superset/daos/dashboard.py | 53 +-
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/extensions/utils.py | 1 +
superset/initialization/__init__.py | 47 +-
superset/mcp_service/app.py | 27 +-
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 | 111 +-
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 | 957 +-
superset/mcp_service/dashboard/tool/__init__.py | 10 +
.../tool/add_chart_to_existing_dashboard.py | 8 +-
.../dashboard/tool/duplicate_dashboard.py | 427 +
.../dashboard/tool/generate_dashboard.py | 153 +-
.../dashboard/tool/get_dashboard_datasets.py | 156 +
.../dashboard/tool/get_dashboard_info.py | 3 +-
.../dashboard/tool/manage_native_filters.py | 513 +
.../dashboard/tool/remove_chart_from_dashboard.py | 540 +
.../mcp_service/dashboard/tool/update_dashboard.py | 374 +
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 | 72 +-
superset/mcp_service/mcp_config.py | 88 +-
superset/mcp_service/middleware.py | 1 +
superset/mcp_service/server.py | 7 +
.../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 +
...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 | 249 +-
superset/models/slice.py | 34 +-
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/api.py | 81 +
superset/reports/models.py | 6 +-
superset/reports/notifications/webhook.py | 21 +-
superset/reports/schemas.py | 12 +
superset/result_set.py | 6 +-
superset/row_level_security/schemas.py | 1 +
superset/security/api.py | 39 +-
superset/security/manager.py | 292 +-
superset/sql/execution/executor.py | 62 +-
superset/sql/parse.py | 275 +-
superset/sql_lab.py | 35 +-
superset/superset_typing.py | 1 +
superset/tags/models.py | 14 +-
superset/tasks/async_queries.py | 2 +-
superset/tasks/thumbnails.py | 10 +-
superset/templates/superset/spa.html | 6 +-
superset/translations/ar/LC_MESSAGES/messages.po | 9 +
superset/translations/ca/LC_MESSAGES/messages.po | 1571 ++-
superset/translations/cs/LC_MESSAGES/messages.po | 601 +-
superset/translations/de/LC_MESSAGES/messages.po | 4859 ++++---
superset/translations/en/LC_MESSAGES/messages.po | 9 +
superset/translations/es/LC_MESSAGES/messages.po | 550 +-
superset/translations/fa/LC_MESSAGES/messages.po | 1972 ++-
superset/translations/fi/LC_MESSAGES/messages.po | 580 +-
superset/translations/fr/LC_MESSAGES/messages.po | 1031 +-
superset/translations/it/LC_MESSAGES/messages.po | 9 +
superset/translations/ja/LC_MESSAGES/messages.po | 2316 ++--
superset/translations/ko/LC_MESSAGES/messages.po | 9 +
superset/translations/lv/LC_MESSAGES/messages.po | 575 +-
superset/translations/messages.pot | 15 +
superset/translations/mi/LC_MESSAGES/messages.po | 1487 ++-
superset/translations/nl/LC_MESSAGES/messages.po | 2301 +++-
superset/translations/pl/LC_MESSAGES/messages.po | 1959 ++-
superset/translations/pt/LC_MESSAGES/messages.po | 9 +
.../translations/pt_BR/LC_MESSAGES/messages.po | 1957 ++-
superset/translations/ro/LC_MESSAGES/messages.po | 11 +-
superset/translations/ru/LC_MESSAGES/messages.po | 610 +-
superset/translations/sk/LC_MESSAGES/messages.po | 579 +-
superset/translations/sl/LC_MESSAGES/messages.po | 1876 ++-
superset/translations/th/LC_MESSAGES/messages.po | 570 +-
superset/translations/tr/LC_MESSAGES/messages.po | 8892 ++++++++-----
superset/translations/uk/LC_MESSAGES/messages.po | 583 +-
superset/translations/zh/LC_MESSAGES/messages.po | 9 +
.../translations/zh_TW/LC_MESSAGES/messages.po | 9 +
superset/utils/core.py | 18 +-
superset/utils/encrypt.py | 7 +-
superset/utils/file.py | 13 +
superset/utils/json.py | 5 +
superset/utils/mock_data.py | 4 +-
superset/utils/pandas_postprocessing/prophet.py | 18 +-
superset/utils/pandas_postprocessing/utils.py | 26 +-
superset/utils/screenshots.py | 109 +-
superset/utils/slack.py | 62 +-
superset/utils/version.py | 17 +
superset/utils/webdriver.py | 85 +-
superset/views/all_entities.py | 2 +-
superset/views/base.py | 60 +-
superset/views/base_api.py | 27 +-
superset/views/core.py | 66 +-
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/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 +
tests/integration_tests/reports/api_tests.py | 96 +-
.../commands/execute_dashboard_report_tests.py | 2 +-
tests/integration_tests/reports/commands_tests.py | 10 +-
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/superset_test_config.py | 4 +
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 +-
tests/unit_tests/charts/test_client_processing.py | 187 +-
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 | 276 +-
.../unit_tests/commands/report/test_execute_now.py | 198 +
tests/unit_tests/commands/security/rls_test.py | 91 +
tests/unit_tests/commands/sql_lab/test_estimate.py | 78 +-
.../common/test_query_context_factory.py | 4 +-
tests/unit_tests/common/test_time_shifts.py | 88 +
tests/unit_tests/config_swagger_ui_test.py | 77 +
tests/unit_tests/config_test.py | 120 +
tests/unit_tests/dao/base_dao_test.py | 64 +
tests/unit_tests/daos/test_base_dao_soft_delete.py | 50 +-
.../daos/test_base_relationship_filters.py | 203 +
.../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_list_charts.py | 23 +
.../mcp_service/chart/tool/test_update_chart.py | 246 +-
.../validation/test_column_name_normalization.py | 523 +-
.../chart/validation/test_runtime_validator.py | 102 +-
.../dashboard/test_dashboard_schemas.py | 369 +-
.../tool/test_add_chart_to_existing_dashboard.py | 3 +-
.../dashboard/tool/test_dashboard_generation.py | 278 +-
.../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 | 490 +
.../mcp_service/system/tool/test_find_users.py | 81 +
tests/unit_tests/mcp_service/test_jwt_verifier.py | 77 +
tests/unit_tests/mcp_service/test_mcp_config.py | 47 +
tests/unit_tests/mcp_service/test_mcp_server.py | 28 +
.../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 +
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 | 39 +
tests/unit_tests/queries/query_object_test.py | 1 +
.../queries/saved_queries_schema_test.py | 24 +-
.../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/api_test.py | 59 +-
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 | 6 +-
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 | 73 +-
tests/unit_tests/utils/test_core.py | 26 +-
tests/unit_tests/utils/test_file.py | 22 +-
.../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 | 84 +
tests/unit_tests/views/test_base_theme_helpers.py | 74 +-
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 +
931 files changed, 84767 insertions(+), 43553 deletions(-)
create mode 100644 .github/workflows/scheduled-docker-image-refresh.yml
mode change 100644 => 100755 .pre-commit-config.yaml
mode change 100644 => 120000 docs/.nvmrc
create mode 100644 docs/developer_docs/extensions/extension-points/chat.md
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-core/src/chat/index.ts
create mode 100644 superset-frontend/packages/superset-core/src/navigation/index.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/plugins/preset-chart-deckgl/src/components/Legend.test.tsx
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/core/chat/ChatHost.test.tsx
create mode 100644 superset-frontend/src/core/chat/ChatHost.tsx
create mode 100644 superset-frontend/src/core/chat/ChatProvider.test.ts
create mode 100644 superset-frontend/src/core/chat/ChatProvider.ts
create mode 100644 superset-frontend/src/core/chat/index.test.ts
create mode 100644 superset-frontend/src/core/chat/index.ts
create mode 100644 superset-frontend/src/core/navigation/index.test.ts
create mode 100644 superset-frontend/src/core/navigation/index.ts
copy superset-frontend/src/core/{utils.ts => storeUtils.ts} (77%)
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
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/components/{controls/ColumnConfigControl/ColumnConfigConstants.test.tsx => DataTablesPane/test/getStaleResultsTabFallback.test.ts} (51%)
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/explore/components/useExploreAdditionalActionsMenu/useExploreAdditionalActionsMenu.test.tsx
create mode 100644 superset-frontend/src/extensions/Namespaces.ts
create mode 100644 superset-frontend/src/features/alerts/hooks/useExecuteReportSchedule.test.ts
create mode 100644 superset-frontend/src/features/alerts/hooks/useExecuteReportSchedule.ts
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
copy superset-frontend/src/{explore/components/controls/ColumnConfigControl/ColumnConfigConstants.test.tsx => utils/sanitizeDocumentTitle.test.ts} (56%)
copy superset-frontend/{packages/superset-core/src/utils/isBlank.ts => src/utils/sanitizeDocumentTitle.ts} (71%)
create mode 100644 superset-frontend/src/views/routePaths.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
create mode 100644 superset/commands/dashboard/restore.py
create mode 100644 superset/commands/report/execute_now.py
create mode 100755 superset/mcp_service/chart/plugin.py
create mode 100644 superset/mcp_service/chart/plugins/__init__.py
create mode 100644 superset/mcp_service/chart/plugins/big_number.py
create mode 100644 superset/mcp_service/chart/plugins/handlebars.py
create mode 100644 superset/mcp_service/chart/plugins/mixed_timeseries.py
create mode 100644 superset/mcp_service/chart/plugins/pie.py
create mode 100644 superset/mcp_service/chart/plugins/pivot_table.py
create mode 100644 superset/mcp_service/chart/plugins/table.py
create mode 100755 superset/mcp_service/chart/plugins/xy.py
create mode 100644 superset/mcp_service/chart/registry.py
mode change 100644 => 100755 superset/mcp_service/chart/validation/runtime/__init__.py
create mode 100644 superset/mcp_service/dashboard/tool/duplicate_dashboard.py
create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_datasets.py
create mode 100644 superset/mcp_service/dashboard/tool/manage_native_filters.py
create mode 100644 superset/mcp_service/dashboard/tool/remove_chart_from_dashboard.py
create mode 100644 superset/mcp_service/dashboard/tool/update_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
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/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/dashboard/restore_test.py
create mode 100644 tests/unit_tests/commands/report/test_execute_now.py
create mode 100644 tests/unit_tests/config_swagger_ui_test.py
create mode 100644 tests/unit_tests/daos/test_base_relationship_filters.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
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_update_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
copy superset/views/logs.py => tests/unit_tests/queries/saved_queries_schema_test.py (59%)
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