You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ha...@apache.org on 2026/07/18 03:19:10 UTC
(superset) branch feat/replace-http-server-with-python-native-equivalent updated (a0c960f2530 -> bd03dec23d3)
This is an automated email from the ASF dual-hosted git repository.
hainenber pushed a change to branch feat/replace-http-server-with-python-native-equivalent
in repository https://gitbox.apache.org/repos/asf/superset.git
from a0c960f2530 feat(ci): optimize Storybook testing in CI by replacing `http-server` with Python3 static server
add 51ce2b11ad3 chore(deps-dev): update impyla requirement from <0.23,>0.16.2 to >=0.24.0,<0.25 (#41951)
add 7a752d1c228 fix(dashboard): restore arrow key navigation in modal inputs opened from dropdown (#37978)
add 5c12f216d51 feat(mcp): add delete_chart and delete_dashboard tools (#41472)
add 678fcba8b48 feat(helm): Superset 6 structured config schema with deprecation path (#41777)
add b641008da6a fix(versioning): preserve complete multi-flush history (#41940)
add df209cedbf8 chore(deps-dev): update sqlalchemy-firebird requirement from <2.2,>=0.7.0 to >=0.8.0,<2.2 (#41950)
add e8521471820 test: add edge-case tests for datetime_to_epoch function (#39404)
add a03cabffa77 perf(csv): avoid regex in CSV value escaping (#40195)
add 0ecf34d80e1 fix(a11y): add aria-label to ViewportControl text inputs (#41931)
add b237aefb1ea fix(a11y): add aria-label to RightMenu documentation and bug-report icon links (#41903)
add f5deda78641 fix(dataset): copy catalog field when duplicating a BigQuery dataset (#41106)
add 189f258e0ce fix(drill): coerce temporal drill filter values (#40180)
add 5e6b29d1a32 chore(deps-dev): bump sqlalchemy-hana from 0.4.0 to 3.0.3 (#41953)
add 49dc0acd827 fix(pre-commit): prettier hook drops first file and never batches (#41944)
add b8c0171976d test(rls): assert related/subjects honors search filter for roles (#31466) (#41969)
add 958d1ab256a test(rls): assert dataset search returns all mask matches (#29707) (#41968)
add 13c5a324027 fix(tests): correct stale TYPE_CHECKING import path in base_data_loader (#41972)
add a1d1d69f5ea ci: enforce SQLAlchemy 2.0 deprecation warnings in unit-test CI (#41915)
add 2a18a556b09 chore(frontend): lint Emotion CSS-in-JS with Stylelint (#41871)
add db1912c6d98 chore(deps): bump cachetools from 6.2.1 to 7.1.4 (#41947)
add 0ca51d9796a fix(Database Connection Form): Added validation to db credential input (#37919)
add e403d9b0742 chore(lint): convert legacy plugin chart components to function components (#39452)
add 12f28ce2354 chore(deps): bump holidays from 0.82 to 0.99 (#41949)
add 98c3ec7a718 chore(deps): bump sqlglot from 30.8.0 to 30.12.0 (#41948)
add d380663e710 chore(deps-dev): bump syntaqlite from 0.4.2 to 0.6.0 (#41952)
add c0e5f5226d4 fix(explore): let chart owners overwrite when owners come through as objects (#41352)
add c762b75ddc5 chore(lint): upgrade no-unused-vars rule from warn to error (#41132)
add 8f339545adb chore(deps-dev): bump baseline-browser-mapping from 2.10.41 to 2.10.42 in /superset-frontend (#41993)
add 73925922a9a chore(deps): bump react-arborist from 3.12.0 to 3.13.2 in /superset-frontend (#41992)
add bb5d7dbb17b chore(deps): bump immer from 11.1.9 to 11.1.11 in /superset-frontend (#41991)
add 9180ace1ddc chore(deps): bump actions/labeler from 6.1.0 to 6.2.0 (#41988)
add 96bf1a1e4cd chore(deps): bump caniuse-lite from 1.0.30001800 to 1.0.30001802 in /docs (#41987)
add 0cf217cdea5 chore(deps-dev): bump vitest from 4.1.9 to 4.1.10 in /superset-websocket (#41986)
add f7b7bad9a88 chore(deps-dev): bump tsx from 4.22.5 to 4.23.0 in /superset-frontend (#41985)
add 1c7a3f395f4 chore(deps): bump fs-extra from 11.3.2 to 11.3.6 in /superset-frontend (#41990)
add 3c6982252b2 chore(deps-dev): bump webpack from 5.108.3 to 5.108.4 in /superset-frontend (#41989)
add 029d49539bc fix(event-log): match embedded routes precisely in logger middleware (#41942)
add 2fac66d1a30 feat(mcp): add update_dataset_metric tool for editing saved dataset metrics (#40975)
add 8f75f1a353d fix(dashboard): deleted Display Control reappears after Apply Filters (#41999)
add 68ebc22e1ee refactor: replace Engine.execute() with Connection.execute() (#41917)
add 5dd060b714a fix(chart-echarts): disable animation for report screenshots so time-shift lines render fully (#42003)
add 1627fab741b fix(i18n): make every catalog compile clean, canonicalize, fix ja plurals (#41828)
add e063f5093c9 feat(frontend): upgrade Ant Design from v5 to v6 (#41636)
add 873566c8272 fix(mcp): stop masking dashboard lookup DB errors as not-found (#41919)
add d43a0d7633a chore: sqlalchemy.database package warnings are irrelevant (#41978)
add 64df96be00a fix(nvd3): invoke shiftMetric() in TimePivot formDataOverrides (#41916)
add 521e51429a7 chore: as_declarative() warnings are irrelevant (#41982)
add c5131bff47e chore(a11y): enable 9 more jsx-a11y oxlint rules as errors (#42006)
add 62ccdfacc2f fix(mcp): make list-item truncation cap configurable in get_dashboard_info (#41698)
add 18f1dd394bb test(security): prove Drill By access does not require can_explore (#27900) (#41967)
add d4a31d1d78a fix: add subdirectory deployment support for brandSpinnerUrl (#37523)
add 8262aa7d6b4 fix(explore): restore drag-and-drop reordering broken by @dnd-kit migration (#41637)
add 9818da445ab fix(a11y): add aria-label to cross-filter search icon (#41619)
add 3e957b63d47 fix(a11y): make CopyToClipboard keyboard-operable for custom copyNode elements (#41958)
add ce8219672ec fix(a11y): add accessible labels to EmbedCodeContent height/width inputs (#41995)
add 25ce83cc58c fix(dashboard): apply auto-refresh interval in standalone mode (#41740)
add 3c648ca2645 fix(swagger): support URL prefix via APPLICATION_ROOT in OpenAPI and Swagger UI (#40908)
add 2857b29ab97 test(sqla): assert simple metric quotes columns requiring quoting (#30637) (#41961)
add 836dce9b058 fix(i18n): reset embedded start guard and align menu error handling (#41491)
add a2a71760ede fix(e2e): repair master Playwright smoke tests (#42013)
add 993a43396ae fix: restore all-files pre-commit checks (#42014)
add e420812eb74 test(filters): guard BIGINT filter value precision (#27510) (#41963)
add 8afad27c848 chore: convert warning to error if parameters not passed as collection (#41977)
add e165762bb7c refactor: begin transaction to automatically commit (#41979)
add 42523f8cc4c fix(async-queries): back off polling when async event requests keep failing (#42012)
add ccfccdf237e chore(deps-dev): bump oxlint from 1.72.0 to 1.73.0 in /superset-frontend (#42031)
add 115ce12ff7f chore(deps-dev): bump @typescript-eslint/parser from 8.62.1 to 8.63.0 in /superset-frontend (#42030)
add 35d05cc2787 chore(deps-dev): bump @swc/plugin-emotion from 14.14.1 to 14.15.0 in /superset-frontend (#42029)
add e86dcf7b82e chore(deps): bump actions/setup-java from 5.4.0 to 5.5.0 (#42028)
add 41efdb3082f chore(deps-dev): bump webpack-sources from 3.5.0 to 3.5.1 in /superset-frontend (#42027)
add 68881a60ca2 chore(deps): bump caniuse-lite from 1.0.30001802 to 1.0.30001803 in /docs (#42026)
add d49365757c0 chore(deps-dev): bump @typescript-eslint/parser from 8.61.0 to 8.63.0 in /docs (#42025)
add 258f4c035b9 chore(deps-dev): bump typescript-eslint from 8.62.1 to 8.63.0 in /superset-websocket (#42022)
add cc32d16e0cc chore(deps-dev): bump @typescript-eslint/parser from 8.62.0 to 8.63.0 in /superset-websocket (#42021)
add d5e75c48135 fix(ci): correct setup-node version comment in tag-release.yml (#42039)
add 7075e9f253c fix(event-log): match embedded routes without trailing slash in logger middleware (#42005)
add 24959d1656d fix(ci): correct setup-node version comment in tech-debt.yml (#42037)
add 4e10a962531 chore(ci): correct actions/setup-node version comment to v6.4.0 (#42038)
add 0dcf67fa27d chore(deps-dev): bump typescript-eslint from 8.62.1 to 8.63.0 in /docs (#42024)
add c4bee525eaa fix(ci): correct mismatched version comment on actions/setup-node pin (#42036)
add 1f41899deb7 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.62.1 to 8.63.0 in /superset-frontend (#42023)
add 76bb5f8e698 fix(dashboard): prevent native filter loss when saving chart customizations (#42032)
add ef3a9e925ec chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.62.0 to 8.63.0 in /superset-websocket (#42020)
add 4b07d43050a fix(sqllab): collapse left sidebar shows compact db selector in top bar (#41898)
add 256cc71c877 refactor: import from sqlalchemy.orm (#41981)
add e3a0d0e41ec fix(versioning): isolate action metadata writes (#41943)
add c04a0295ef6 fix(chart): keep query-context updates bound to the chart's datasource (#40955)
add 4446967d0fe chore(lint): convert Storybook stories and shared helpers to function components (#39451)
add bd9ba242662 fix(mcp): add AliasChoices to chart/dashboard/dataset request schemas (#41597)
add 0a3c263606e fix(migration): strip metricSqlExpressions from ag_grid_table params (#41591)
add d68e84e7315 fix(databricks): classify insufficient-permissions errors as 4xx (#41945)
add be768efc0f4 fix(ci): make pre-commit fail closed instead of silently passing on an empty file list (#42044)
add 13121fcd587 fix(ci): skip unsupported React 19 Dependabot updates (#42047)
add 9db88203e16 fix(migration): use sqlalchemy.orm.declarative_base to avoid MovedIn20Warning (#42056)
add ad8f2cf2680 chore(deps): bump github/codeql-action/analyze from 4.36.3 to 4.37.0 (#42069)
add 6dcd95e14ab chore(deps-dev): bump syntaqlite from 0.6.0 to 0.7.0 (#42067)
add b4373f60b3e chore(deps-dev): bump fastmcp from 3.4.2 to 3.4.3 (#42065)
add abafe195bf9 chore(deps): bump click from 8.4.1 to 8.4.2 (#42064)
add 7953382d100 feat(submenu_export): Add export to png and pdf options for charts (#38535)
add d80267d00b1 chore(deps): bump github/codeql-action/init from 4.36.3 to 4.37.0 (#42068)
add aa85455a5cf fix(i18n): Update Japanese translations (#41984)
add a540f56f5ca fix(reports): raise typed executor-not-found error in alert-query path (#41486)
add 2af66b2c9b5 fix(async-queries): add Celery task expiry to GAQ async query tasks (#42084)
add 6c2b7aceb5a fix(mcp): correct decorator order on query_dataset tool (#41925)
add f010affbc27 fix(reports): paginate Slack recipient picker for large workspaces (#41998)
add 53c4603c8c1 chore(deps-dev): bump @types/node from 26.1.0 to 26.1.1 in /superset-frontend (#42077)
add 071c4315803 chore(deps-dev): bump @types/node from 26.1.0 to 26.1.1 in /superset-websocket (#42076)
add 7bc1895050c chore(deps-dev): update pydoris requirement from <2.0.0,>=1.0.0 to >=1.2.0,<2.0.0 (#42063)
add e66d58361a7 chore(deps-dev): update clickhouse-connect requirement from <2.0,>=1.1.1 to >=1.4.2,<2.0 (#42062)
add 5c8e14e9dc2 chore(deps-dev): bump hdbcli from 2.28.21 to 2.29.23 (#42060)
add 753113d1692 chore(deps-dev): bump trino from 0.337.0 to 0.338.0 (#42059)
add cec9afb165b fix(mcp): await ctx.info calls in update_dashboard tool (#41920)
add f38fff2a19f test(mcp): close systematic test-coverage gaps in mcp_service (#41924)
add 90f9238f8a5 fix(charts): preserve time filter for expression axes (#42052)
add beb9d536873 fix(plugin-chart-echarts): use echarts 5.6.0 i18n export path for locale import (#42055)
add e28b259de00 fix(semantic-layers): expose time grains in Explore for SemanticView datasources (#41456)
add c6da740ce26 fix(app-root): restore legacy redirects for HEAD and the /superset app root (#42015)
add da518d7a107 fix(a11y): associate Description label with TagModal input (#42034)
add e564389a01d fix(a11y): associate Name label with input in CssTemplateModal (#42081)
add 689fc34ac25 fix: replace deprecated appbuilder.app with current_app in test_explore_redirect (#42086)
add 6fe4655ba2b fix(semantic-layers): separate grain and offset time-axis resolvers (#42093)
add c540f782a3d fix(ci): remove Python 3.10 from the test matrix to unblock CI (#42058)
add 1f786f19499 chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 in /superset-frontend (#42094)
add 1b0c6aaed36 chore(a11y): enable jsx-a11y/click-events-have-key-events as error (#42009)
add 2bbb7d06386 feat(mcp): histogram and box plot chart type plugins (#41860)
add 8ce6d429428 feat(mcp): add restore_chart and restore_dashboard tools (#41842)
add 409605de708 fix(plugin-chart-echarts): key Mixed Timeseries label maps by rendered series names (#41933)
add d57569c54a0 feat(reports): add XLSX (Excel) attachments for Alerts & Reports (#41424)
add 635b18103dc fix(reports): null-guard execution against missing target (#39973)
add 86030485180 fix(dashboard): block dependent filter from fetching until defaultToFirstItem parent selects (#40978)
add 13d38a9cbdb test(security): assert intended trailing-slash behavior of security API (#29934) (#41965)
add f697a0c24de test(charts): assert drill-to-detail carries applied filters (#28562) (#41960)
add aea4585c6d3 fix(embedded-sdk): handle malformed JWT refresh timing (#40490)
add 2f7afe4b47d feat(mcp): deleted_state trash listing for list_charts and list_dashboards (#41855)
add de300c70b9f test(app-root): close two blind spots in the subdirectory redirect tests (#42016)
add e84f8707872 chore(deps-dev): bump @formatjs/intl-durationformat from 0.10.15 to 0.10.16 in /superset-frontend (#42105)
add 3b7647eb6ec fix(alerts): remove double border on InputNumber fields in report modal (#42090)
add 059f6944eb7 fix(migration): use non-deprecated sqlalchemy.orm.declarative_base (#42080)
add 661535e3909 refactor: automatically load with engine/connection (#41980)
add 2dfd08fdb3e fix(plugin-chart-echarts): clarify Tooltip sort by metric description for stacked charts (#42106)
add 33bc35d1354 feat(i18n): backfill Italian (it) translations (AI-generated, needs review) (#42101)
add 5b57eb38d21 feat(i18n): backfill Chinese (Traditional) (zh_TW) translations (AI-generated, needs review) (#42102)
add 6f154377d77 feat(i18n): backfill Romanian (ro) translations (AI-generated, needs review) (#42100)
add b459601ceb5 feat(i18n): backfill missing translations across 24 catalogs (AI-generated, needs review) (#42099)
add 9e38c1dd13d chore(a11y): enable jsx-a11y/no-static-element-interactions as error (#42096)
add 30b93ab7432 fix(frontend): fix edit/delete permissions for charts, dashboards, and datasets (#18870) (#32981) (#32995)
add edca579625a fix(alerts): show typed text in email recipients selector (#42091)
add c45b9002e64 feat(mcp): register /health HTTP endpoint (#41755)
add 50672304840 chore(lint): display import/no-duplicates lint rule violation as error (#42042)
add 20e6dfd37df fix(dashboard): seed default active tab path at hydration (#42075)
add 9f8e1508ca6 fix(plugin-chart-echarts): show forecast tooltip values when they equal zero (#41311)
add f467d36a24c fix(i18n): accept script subtags (e.g. sr_Latn) in backfill_po language codes (#42103)
add 157ef61fd83 fix(charts): render time comparison without a time grain (#42054)
add dbef0c3feea fix(plugin-chart-ag-grid-table): render Show summary totals row on ag-grid 36 (#42115)
add 7eab41f9048 chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 in /superset-websocket (#42134)
add ba309fd016f chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 in /superset-frontend (#42133)
add 778800ba821 chore(deps): bump mapbox-gl from 3.25.0 to 3.26.0 in /superset-frontend (#42132)
add 9bb0e376b36 chore(deps): bump docusaurus-plugin-openapi-docs from 5.1.0 to 5.1.1 in /docs (#42131)
add 8d36dca9e83 chore(deps): bump react-diff-viewer-continued from 4.2.2 to 4.3.0 in /superset-frontend (#42130)
add bef03fb8508 chore(deps-dev): bump prettier from 3.9.4 to 3.9.5 in /docs (#42128)
add 929ec58276f chore(deps): bump docusaurus-theme-openapi-docs from 5.1.0 to 5.1.1 in /docs (#42129)
add 60fb1c6f019 docs(mcp): document all 7 generate_chart chart_type values, fix stale config comment (#41599)
add 9ccd365652a feat(echarts): respect time grain in time-series tooltips (#41350)
add 69b144ec16a feat(dashboards): Add open graph metadata for dashboards (#33550)
add fc506c06daa feat: added email delivery of XLSX reports (#40885)
add 905b20a3f2c fix(ci): retry change_detector GitHub API calls on transient errors (#42138)
add c0781ba3164 chore(i18n): update Russian translations (#41885)
add c05ac138fb9 fix(table): prevent pagination reset on cell click (#42136)
add 9f230bcfc0c fix(cli): add --username option to import-directory command (#40994)
add f3255c46ac8 feat(mcp): add dashboard owner, role, and certification management tools (#41606)
add 73aa8ef280d docs(mcp): fix instruction/docstring drift and annotation metadata in mcp_service (#41922)
add eef3dac72f8 fix(nav): prevent top navbar from flashing to vertical layout on load (#40781)
add f8cfa459efb fix(presto): fix latest_sub_partition guard bypass + escape partition filter values (#41877)
add a99c98c6fee feat(mcp): waterfall chart type plugin (#42070)
add 5b837e844e9 fix(sqla): cast native UUID columns to string for LIKE/ILIKE filters (#41804)
add c84a154b524 feat(helm): support additive extra init containers (#42114)
add 5750d82426c fix(pandas_postprocessing): avoid FutureWarning for mean/median in boxplot (#42004)
add 5bf26f77f82 fix(label): restore spacing between icon and label text (#42141)
add 6a330c251b3 chore(deps): bump redis from 5.3.1 to 8.0.1 (#41813)
add 91f814abead feat(pie): add the ability to make half a donut (#35459)
add 68297886d42 fix(ci): stop concurrency cancellation from bricking required checks on approval-gated PRs (#42148)
add ce8d4397cdd test(jinja): prove current_user_* macros produce collision-free cache keys (#42122)
add 25f6c6c80bc fix(pivot-table): add bottom border to last grouped row (#36081)
add b432f8c9175 fix(docs): use modern driver package for CrateDB (#42125)
add 0f61d9a3fb8 fix(bigquery): ensure BigQuery client uses project from engine URI (#41975)
add bd03dec23d3 chore(lint): display import/no-duplicates lint rule violation as error
No new revisions were added by this update.
Summary of changes:
.github/actions/file-changes-action | 1 -
.github/actions/setup-backend/action.yml | 2 -
.github/dependabot.yml | 10 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/embedded-sdk-release.yml | 2 +-
.github/workflows/embedded-sdk-test.yml | 2 +-
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/labeler.yml | 2 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/pr-lint.yml | 10 +-
.github/workflows/pre-commit.yml | 85 +-
.github/workflows/release.yml | 2 +-
.../workflows/scheduled-docker-image-refresh.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-docs-verify.yml | 4 +-
.github/workflows/superset-e2e.yml | 4 +-
.github/workflows/superset-extensions-cli.yml | 2 +-
.github/workflows/superset-helm-lint.yml | 9 +-
.github/workflows/superset-playwright.yml | 2 +-
.../workflows/superset-python-integrationtest.yml | 2 +-
.github/workflows/superset-python-unittest.yml | 8 +-
.github/workflows/superset-translations.yml | 2 +-
.github/workflows/tag-release.yml | 4 +-
.github/workflows/tech-debt.yml | 2 +-
.gitmodules | 3 -
.pre-commit-config.yaml | 15 +-
.rat-excludes | 1 +
UPDATING.md | 17 +
docs/admin_docs/configuration/alerts-reports.mdx | 4 +-
docs/admin_docs/configuration/mcp-server.mdx | 2 +
docs/package.json | 12 +-
docs/src/data/databases.json | 2 +-
.../version-6.0.0/configuration/alerts-reports.mdx | 2 +-
docs/yarn.lock | 188 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 64 +-
helm/superset/UPGRADING.md | 161 +
helm/superset/templates/NOTES.txt | 6 +
helm/superset/templates/_helpers.tpl | 641 ++-
helm/superset/templates/deployment-beat.yaml | 18 +-
helm/superset/templates/deployment-flower.yaml | 13 +-
helm/superset/templates/deployment-worker.yaml | 18 +-
helm/superset/templates/deployment-ws.yaml | 3 +
helm/superset/templates/deployment.yaml | 20 +-
helm/superset/templates/init-job.yaml | 8 +-
helm/superset/templates/secret-env.yaml | 36 +-
.../superset/templates/secret-superset-config.yaml | 4 +-
helm/superset/tests/checksum_test.yaml | 132 +
helm/superset/tests/config_test.yaml | 94 +
.../superset/tests/deprecation_test.yaml | 23 +-
helm/superset/tests/init_containers_test.yaml | 168 +
helm/superset/tests/initscript_test.yaml | 63 +
helm/superset/tests/secret_env_test.yaml | 71 +
.../superset/tests/serviceaccount_test.yaml | 44 +-
.../superset/tests/values_defaults_test.yaml | 24 +-
helm/superset/values.schema.json | 140 +
helm/superset/values.yaml | 158 +-
pyproject.toml | 28 +-
pytest.ini | 11 +-
requirements/base.txt | 11 +-
requirements/development.txt | 19 +-
.../superset_core/common => scripts}/__init__.py | 0
scripts/benchmark_migration.py | 9 +-
scripts/change_detector.py | 39 +-
scripts/{check-custom-rules.sh => stylelint.sh} | 9 +-
scripts/translations/babel_update.sh | 29 +
scripts/translations/backfill_po.py | 24 +-
.../src/guestTokenRefresh.test.ts | 20 +
superset-embedded-sdk/src/guestTokenRefresh.ts | 28 +-
superset-frontend/.storybook/preview.jsx | 2 +-
superset-frontend/.storybook/shared/Expandable.tsx | 57 +-
superset-frontend/.storybook/shared/VerifyCORS.tsx | 113 +-
superset-frontend/.stylelintignore | 9 +
.../cypress-base/cypress/e2e/dashboard/utils.ts | 15 +-
.../cypress-base/cypress/e2e/explore/utils.ts | 4 +-
.../cypress-base/cypress/support/directories.ts | 30 +-
superset-frontend/jest.config.js | 2 +-
superset-frontend/oxlint.json | 42 +-
superset-frontend/package-lock.json | 3027 +++++++++++---
superset-frontend/package.json | 47 +-
.../packages/superset-core/package.json | 2 +-
.../superset-core/src/theme/GlobalStyles.tsx | 22 +-
.../superset-core/src/theme/Theme.test.tsx | 121 +-
.../src/theme/__snapshots__/Theme.test.tsx.snap | 730 ++++
.../superset-core/src/theme/utils/index.ts | 14 +-
.../superset-ui-chart-controls/package.json | 2 +-
.../packages/superset-ui-core/package.json | 6 +-
.../components/Matrixify/MatrixifyGridCell.tsx | 2 +-
.../Matrixify/MatrixifyGridRenderer.test.tsx | 3 +-
.../components/Matrixify/MatrixifyGridRenderer.tsx | 3 +-
.../chart/stories/ChartDataProvider.stories.tsx | 3 +-
.../components/ActionButton/ActionButton.test.tsx | 14 +-
.../src/components/ActionButton/index.tsx | 2 +
.../src/components/AsyncAceEditor/index.tsx | 1 -
.../src/components/Button/Button.test.tsx | 2 +-
.../src/components/Collapse/Collapse.test.tsx | 6 +-
.../src/components/Collapse/Collapse.tsx | 4 +-
.../src/components/CronPicker/CronPicker.test.tsx | 24 +-
.../src/components/CronPicker/index.tsx | 6 +-
.../DropdownContainer/DropdownContainer.tsx | 9 +-
.../src/components/FaveStar/index.tsx | 1 +
.../src/components/Form/LabeledErrorBoundInput.tsx | 8 +
.../superset-ui-core/src/components/Form/types.ts | 5 +
.../src/components/Icons/Icons.stories.tsx | 6 +-
.../src/components/Label/Label.test.tsx | 35 +
.../src/components/Label/index.tsx | 37 +-
.../src/components/Modal/Modal.tsx | 6 +-
.../components/ModalTrigger/ModalTrigger.test.tsx | 48 +-
.../src/components/ModalTrigger/index.tsx | 36 +-
.../PageHeaderWithActions.test.tsx | 4 +-
.../src/components/PopoverSection/index.tsx | 9 +-
.../src/components/RefreshLabel/index.tsx | 1 +
.../src/components/Select/AsyncSelect.test.tsx | 36 +-
.../src/components/Select/AsyncSelect.tsx | 22 +-
.../src/components/Select/Select.test.tsx | 44 +-
.../src/components/Select/Select.tsx | 17 +-
.../src/components/Select/constants.test.ts | 48 +-
.../src/components/Select/constants.ts | 51 +-
.../src/components/Select/styles.tsx | 12 +-
.../src/components/Select/types.ts | 14 +-
.../TableCollection/TableCollection.test.tsx | 9 +-
.../src/components/Tabs/Tabs.test.tsx | 18 +-
.../superset-ui-core/src/components/Tabs/Tabs.tsx | 8 +-
.../src/components/TimezoneSelector/index.tsx | 2 +-
.../src/components/Tooltip/Tooltip.stories.tsx | 2 +-
.../src/components/Tooltip/index.tsx | 3 +-
.../TooltipParagraph/TooltipParagraph.test.tsx | 37 +-
.../src/components/antdDomContract.test.tsx | 240 ++
.../number-format/stories/NumberFormat.stories.tsx | 198 +-
.../src/time-format/stories/TimeFormat.stories.tsx | 175 +-
.../src/utils/handleKeyboardActivation.test.ts | 62 +
.../src/utils/handleKeyboardActivation.ts | 48 +
.../packages/superset-ui-core/src/utils/index.ts | 1 +
.../test/query/types/PostProcessing.test.ts | 4 +-
.../playwright/components/core/Select.ts | 2 +-
.../components/modals/NativeFiltersConfigModal.ts | 86 +
.../playwright/components/modals/index.ts | 1 +
.../generators/docs/docs-screenshots.spec.ts | 3 +-
.../playwright/pages/ChartCreationPage.ts | 9 +-
.../playwright/pages/DashboardPage.ts | 52 +-
superset-frontend/playwright/pages/ExplorePage.ts | 2 +-
.../SaveDatasetModal.ts => pages/HomePage.ts} | 36 +-
.../tests/dashboard/clear-all-filters.spec.ts | 22 +-
.../tests/dashboard/delete-display-control.spec.ts | 233 ++
.../tests/home/welcome.spec.ts} | 27 +-
.../legacy-plugin-chart-calendar/src/Calendar.ts | 2 +-
.../src/CountryMap.ts | 2 +-
.../src/HorizonChart.tsx | 101 +-
.../legacy-plugin-chart-horizon/src/HorizonRow.tsx | 268 +-
.../test/HorizonChart.test.tsx | 51 +
.../test/HorizonRow.test.tsx | 102 +
.../src/PairedTTest.tsx | 77 +-
.../src/TTestTable.tsx | 545 +--
.../test/TTestTable.test.tsx | 365 ++
.../src/TimePivot/controlPanel.ts | 5 +-
.../test/TimePivot/controlPanel.test.ts | 57 +
.../src/AgGridTable/components/CustomHeader.tsx | 40 +-
.../src/AgGridTableChart.tsx | 1 -
.../src/renderers/NumericCellRenderer.tsx | 16 +-
.../src/styles/index.tsx | 15 +-
.../src/transformProps.ts | 50 +-
.../src/utils/getCellStyle.ts | 10 +-
.../src/utils/useColDefs.ts | 4 +-
.../test/transformProps.test.ts | 50 +
.../test/utils/getCellStyle.test.ts | 108 +
.../src/BigNumber/BigNumberViz.tsx | 4 -
.../src/MixedTimeseries/EchartsMixedTimeseries.tsx | 55 +-
.../src/MixedTimeseries/transformProps.ts | 79 +-
.../plugin-chart-echarts/src/Pie/controlPanel.tsx | 40 +
.../plugin-chart-echarts/src/Pie/transformProps.ts | 169 +-
.../plugins/plugin-chart-echarts/src/Pie/types.ts | 37 +
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 9 +-
.../src/Timeseries/transformProps.ts | 26 +-
.../src/components/Echart.test.tsx | 53 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 32 +-
.../plugins/plugin-chart-echarts/src/controls.tsx | 2 +-
.../plugin-chart-echarts/src/utils/forecast.ts | 15 +-
.../plugin-chart-echarts/src/utils/formatters.ts | 20 +-
.../EchartsMixedTimeseries.test.tsx | 223 ++
.../test/MixedTimeseries/transformProps.test.ts | 285 ++
.../test/Pie/transformProps.test.ts | 255 +-
.../test/Timeseries/transformProps.test.ts | 79 +-
.../test/Timeseries/transformers.test.ts | 6 +-
.../test/utils/forecast.test.ts | 69 +
.../test/utils/formatters.test.ts | 65 +
.../plugins/plugin-chart-pivot-table/package.json | 4 +
.../src/PivotTableChart.tsx | 84 +-
.../src/react-pivottable/Styles.ts | 4 +
.../src/react-pivottable/TableRenderers.tsx | 26 +-
.../test/PivotTableChart.test.tsx | 370 ++
.../test/TableRenderer.test.tsx | 158 +
.../test/react-pivottable/tableRenders.test.tsx | 7 +-
.../plugin-chart-pivot-table/test/testData.ts | 232 ++
.../test/testHelpers.tsx | 0
.../test/tsconfig.json | 0
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 1 +
.../plugins/plugin-chart-table/src/Styles.tsx | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 44 +-
.../plugin-chart-table/test/TableChart.test.tsx | 51 +-
.../src/chart/WordCloud.tsx | 273 +-
.../src/plugin/controls/ColorSchemeControl.tsx | 5 +-
.../src/plugin/controls/RotationControl.tsx | 6 +-
.../test/WordCloud.test.tsx | 161 +
.../src/DeckGLContainer.test.tsx | 1 +
.../src/layers/Arc/stories/Arc.stories.tsx | 3 +-
.../src/layers/Geojson/transformProps.ts | 6 +-
.../spec/helpers/jsDomWithFetchAPI.ts | 58 +-
.../spec/helpers/mockBootstrapData.ts | 47 +
superset-frontend/spec/helpers/shim.tsx | 2 +-
.../src/SqlLab/SqlLabGlobalStyles.tsx | 10 +-
.../src/SqlLab/actions/sqlLab.test.ts | 55 +-
superset-frontend/src/SqlLab/actions/sqlLab.ts | 24 +-
.../src/SqlLab/components/App/index.tsx | 6 +-
.../SqlLab/components/AppLayout/AppLayout.test.tsx | 41 +
.../src/SqlLab/components/AppLayout/index.tsx | 5 +-
.../src/SqlLab/components/ColumnElement/index.tsx | 2 +-
.../src/SqlLab/components/EditorWrapper/index.tsx | 4 +-
.../src/SqlLab/components/ResultSet/index.tsx | 4 +-
.../ScheduleQueryButton.test.tsx | 137 +
.../components/ScheduleQueryButton/index.tsx | 9 +-
.../src/SqlLab/components/SouthPane/index.tsx | 4 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 66 +-
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 57 +-
.../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx | 2 +
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 2 -
.../SqlLab/components/SqlEditorTopBar/index.tsx | 3 +
.../TabbedSqlEditors/TabbedSqlEditors.test.tsx | 2 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 28 +-
.../src/SqlLab/reducers/sqlLab.test.ts | 39 +
superset-frontend/src/SqlLab/reducers/sqlLab.ts | 2 +-
superset-frontend/src/components/Chart/Chart.tsx | 8 +-
.../src/components/Chart/ChartRenderer.tsx | 1 -
.../src/components/Chart/DrillBy/DrillByModal.tsx | 19 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 4 +-
.../Chart/DrillDetail/DrillDetailPane.test.tsx | 4 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 1 +
.../CopyToClipboard/CopyToClipboard.test.tsx | 13 +
.../src/components/CopyToClipboard/index.tsx | 10 +-
.../src/components/DatabaseSelector/index.tsx | 6 +-
.../src/components/DatabaseSelector/types.ts | 1 +
.../Datasource/FoldersEditor/TreeItem.styles.ts | 2 +-
.../DatasourceEditor/DatasourceEditor.tsx | 17 +-
.../components/DatasetUsageTab/index.tsx | 1 -
.../tests/DatasourceEditor.test.tsx | 2 +-
.../ErrorMessage/DatabaseErrorMessage.tsx | 3 +-
.../src/components/ErrorMessage/ErrorAlert.tsx | 9 +-
.../ErrorMessage/FrontendNetworkErrorMessage.tsx | 1 -
.../ErrorMessage/ParameterErrorMessage.tsx | 3 +-
.../ErrorMessage/TimeoutErrorMessage.tsx | 3 +-
.../src/components/GridTable/index.tsx | 1 -
.../src/components/ListView/ListView.test.tsx | 28 +-
.../src/components/ListView/ListView.tsx | 10 +-
.../src/components/MessageToasts/Toast.tsx | 2 +-
.../components/Modal/CollapsibleModalSection.tsx | 2 -
.../src/components/Modal/ModalFormField.tsx | 4 -
.../src/components/Modal/StandardModal.tsx | 8 +-
.../src/components/PanelToolbar/index.tsx | 3 +-
.../src/components/ResizableSidebar/index.tsx | 2 +-
.../ResizableSidebar/useStoredSidebarWidth.ts | 2 +-
.../TableSelector/TableSelector.test.tsx | 4 +-
.../src/components/Tag/utils.test.tsx | 2 +-
superset-frontend/src/core/sqlLab/models.ts | 4 +-
.../dashboard/actions/chartCustomizationActions.ts | 1 +
.../src/dashboard/actions/hydrate.test.ts | 276 ++
superset-frontend/src/dashboard/actions/hydrate.ts | 16 +-
.../src/dashboard/actions/nativeFilters.ts | 2 +
.../components/AddSliceCard/AddSliceCard.test.tsx | 9 +-
.../components/AddSliceCard/AddSliceCard.tsx | 2 +-
.../components/BuilderComponentPane/index.tsx | 4 +-
.../components/CustomizationsBadge/index.tsx | 25 +-
.../src/dashboard/components/Dashboard.tsx | 20 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 52 +
.../DashboardBuilder/DashboardBuilder.tsx | 9 +-
.../DashboardBuilder/DashboardContainer.tsx | 2 +-
.../src/dashboard/components/DashboardGrid.tsx | 8 +-
.../dashboard/components/FiltersBadge/Styles.tsx | 1 -
.../components/Header/HeadlessAutoRefresh.test.tsx | 100 +
.../components/Header/HeadlessAutoRefresh.tsx | 91 +
.../src/dashboard/components/Header/index.tsx | 2 +-
.../src/dashboard/components/IconButton.test.tsx | 75 +
.../src/dashboard/components/IconButton.tsx | 78 +-
.../src/dashboard/components/SaveModal.tsx | 8 +-
.../SliceHeaderControls.test.tsx | 119 +
.../components/SliceHeaderControls/index.tsx | 109 +-
.../components/URLShortLinkButton/index.tsx | 1 +
.../components/filterscope/FilterScopeSelector.tsx | 2 +-
.../gridComponents/Divider/Divider.test.tsx | 2 +-
.../components/gridComponents/Tab/Tab.tsx | 4 +
.../components/gridComponents/Tabs/Tabs.test.tsx | 4 +-
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 2 -
.../src/dashboard/components/menu/HoverMenu.tsx | 2 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 2 +-
.../FilterBar/CrossFilters/CrossFilter.test.tsx | 2 +-
.../CrossFilters/CrossFilterTitle.test.tsx | 9 +
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 1 +
.../ScopingModal/ChartsScopingListPanel.tsx | 1 +
.../FilterBar/FilterConfigurationLink/index.tsx | 2 +
.../useFilterConfigModal.tsx | 4 +-
.../FilterControls/FilterControlShared.tsx | 4 +-
.../FilterBar/FilterControls/FilterControls.tsx | 2 +-
.../FilterBar/FilterControls/FilterValue.test.tsx | 109 +
.../FilterBar/FilterControls/FilterValue.tsx | 31 +-
.../FilterBar/UrlFilters/Vertical.test.tsx | 4 +-
.../nativeFilters/FilterBar/Vertical.tsx | 5 +-
.../components/nativeFilters/FilterBar/index.tsx | 13 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 2 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 3 +
.../FiltersConfigForm/DatasetSelect.test.tsx | 4 +-
.../FiltersConfigForm/DependencyList.tsx | 2 +-
.../FiltersConfigForm/RemovedFilter.tsx | 2 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 10 +-
.../FiltersConfigModal/ItemTitleContainer.tsx | 3 +
.../FiltersConfigModal/NewItemDropdown.tsx | 84 +-
.../hooks/useCustomizationOperations.ts | 2 +-
.../hooks/useFilterOperations.ts | 2 +-
.../components/nativeFilters/state.test.ts | 97 +-
.../dashboard/components/nativeFilters/state.ts | 60 +-
.../src/dashboard/reducers/dashboardState.test.ts | 83 +
.../src/dashboard/reducers/nativeFilters.test.ts | 54 +-
.../src/dashboard/reducers/nativeFilters.ts | 19 +-
superset-frontend/src/dashboard/styles.ts | 4 +-
superset-frontend/src/dashboard/types.ts | 3 +
.../dashboard/util/getDefaultActiveTabs.test.ts | 112 +
.../src/dashboard/util/getDefaultActiveTabs.ts | 54 +
.../src/dashboard/util/getRelatedCharts.test.ts | 7 +
.../src/dashboard/util/getRelatedCharts.ts | 5 +-
.../src/dashboard/util/permissionUtils.test.ts | 27 +
.../src/dashboard/util/permissionUtils.ts | 19 +-
superset-frontend/src/embedded/index.test.tsx | 155 +-
superset-frontend/src/embedded/index.tsx | 121 +-
.../src/explore/components/ControlHeader.tsx | 2 +
.../explore/components/ControlPanelsContainer.tsx | 18 +-
.../explore/components/DataTableControl/index.tsx | 2 +-
.../components/DataTablesPane/DataTablesPane.tsx | 18 +-
.../components/DataTableControls.tsx | 1 +
.../components/ResultsPaneOnDashboard.tsx | 4 +-
.../DataTablesPane/components/SamplesPane.tsx | 1 -
.../DatasourcePanelDragOption/index.tsx | 2 +-
.../explore/components/DatasourcePanel/index.tsx | 10 +-
.../explore/components/EmbedCodeContent.test.tsx | 6 +
.../src/explore/components/EmbedCodeContent.tsx | 15 +-
.../src/explore/components/ExploreAlert.tsx | 2 +-
.../components/ExploreChartHeader/index.tsx | 3 +-
.../ExploreChartHeader/useExploreMetadataBar.tsx | 3 +-
.../explore/components/ExploreChartPanel/index.tsx | 11 +-
.../ExploreContainer/ExploreDndContext.test.tsx | 189 +-
.../ExploreContainer/ExploreDndContext.tsx | 93 +-
.../components/ExploreViewContainer/index.tsx | 11 +-
.../src/explore/components/SaveModal.test.tsx | 21 +
.../src/explore/components/SaveModal.tsx | 22 +-
.../ColumnConfigControl/ColumnConfigControl.tsx | 4 +
.../FormattingPopoverContent.test.tsx | 4 +-
.../components/controls/ContourControl/index.tsx | 14 +-
.../controls/DatasourceControl/index.tsx | 1 -
.../components/DateFunctionTooltip.tsx | 32 +-
.../DateFilterControl/tests/CustomFrame.test.tsx | 20 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 10 +
.../DndColumnMetricSelect.test.tsx | 5 +-
.../DndColumnMetricSelect.tsx | 12 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 5 +-
.../DndColumnSelectPopoverTitle.tsx | 3 +
.../DndColumnSelectControl/DndFilterSelect.tsx | 13 +-
.../DndMetricSelect.test.tsx | 14 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 24 +-
.../controls/DndColumnSelectControl/Option.tsx | 1 +
.../DndColumnSelectControl/OptionWrapper.tsx | 7 +-
.../DndColumnSelectControl/utils/optionSelector.ts | 8 +-
.../FilterControl/AdhocFilterControl/index.tsx | 29 +-
.../AdhocFilterEditPopover.test.tsx | 5 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 2 +-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 2 +-
.../index.tsx | 2 +-
.../controls/LayerConfigsControl/LayerTreeItem.tsx | 3 +
.../MetricControl/AdhocMetricEditPopover/index.tsx | 11 +-
.../MetricControl/AdhocMetricEditPopoverTitle.tsx | 8 +-
.../controls/NumberControl/NumberControl.test.tsx | 2 +-
.../components/controls/OptionControls/index.tsx | 8 +-
.../components/controls/SelectControl.test.tsx | 78 +-
.../components/controls/TextControl/index.tsx | 7 +-
.../components/controls/ViewportControl.tsx | 1 +
.../controls/VizTypeControl/VizTypeGallery.tsx | 4 +-
.../components/controls/VizTypeControl/index.tsx | 13 +-
.../useExploreAdditionalActionsMenu/index.tsx | 131 +-
.../useExploreAdditionalActionsMenu.test.tsx | 103 +-
.../explore/controlUtils/getSectionsToRender.ts | 6 +-
.../src/features/alerts/AlertReportModal.test.tsx | 152 +-
.../src/features/alerts/AlertReportModal.tsx | 12 +-
.../alerts/components/NotificationMethod.test.tsx | 140 +
.../alerts/components/NotificationMethod.tsx | 232 +-
.../NotificationMethodEmailRecipients.test.tsx | 102 +
.../src/features/allEntities/AllEntitiesTable.tsx | 2 +-
.../src/features/annotations/AnnotationModal.tsx | 2 +-
.../src/features/charts/ChartCard.tsx | 105 +-
.../cssTemplates/CssTemplateModal.test.tsx | 9 +
.../src/features/cssTemplates/CssTemplateModal.tsx | 5 +-
.../src/features/dashboards/DashboardCard.tsx | 87 +-
.../DatabaseConnectionForm/EncryptedField.test.tsx | 142 +-
.../DatabaseConnectionForm/EncryptedField.tsx | 73 +-
.../databases/DatabaseModal/index.test.tsx | 2 +-
.../src/features/databases/DatabaseModal/index.tsx | 4 +-
.../src/features/databases/DatabaseModal/styles.ts | 33 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 4 +-
.../features/databases/UploadDataModel/index.tsx | 4 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 59 +-
.../src/features/home/ChartTable.test.tsx | 6 +
superset-frontend/src/features/home/ChartTable.tsx | 6 +-
.../src/features/home/DashboardTable.test.tsx | 7 +
.../src/features/home/DashboardTable.tsx | 2 +-
superset-frontend/src/features/home/Menu.test.tsx | 84 +-
superset-frontend/src/features/home/Menu.tsx | 11 +-
superset-frontend/src/features/home/RightMenu.tsx | 2 +
.../src/features/home/SavedQueries.tsx | 1 -
.../src/features/queries/QueryPreviewModal.tsx | 2 +
.../reports/ReportModal/ReportModal.test.tsx | 9 +-
.../src/features/reports/ReportModal/index.tsx | 4 +
superset-frontend/src/features/reports/types.ts | 1 +
.../src/features/roles/RoleListEditModal.test.tsx | 2 +-
.../semanticLayers/MultiEnumControl.test.tsx | 2 +-
.../features/semanticLayers/SemanticLayerModal.tsx | 5 -
.../semanticLayers/jsonFormsAntdRenderers.test.tsx | 125 +
.../src/features/tags/BulkTagModal.tsx | 2 +-
.../src/features/tags/TagModal.test.tsx | 5 +
superset-frontend/src/features/tags/TagModal.tsx | 7 +-
.../src/features/tasks/TaskPayloadPopover.tsx | 4 +-
.../src/features/tasks/TaskStackTracePopover.tsx | 4 +-
.../src/features/userInfo/UserInfoModal.tsx | 2 +-
superset-frontend/src/features/users/utils.ts | 2 +-
.../components/Select/SelectFilterPlugin.test.tsx | 8 +-
.../components/Select/SelectFilterPlugin.tsx | 3 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 3 +-
superset-frontend/src/filters/utils.test.ts | 22 +
superset-frontend/src/logger/LogUtils.ts | 4 +
.../src/middleware/asyncEvent.test.ts | 231 ++
superset-frontend/src/middleware/asyncEvent.ts | 29 +-
superset-frontend/src/middleware/logger.test.ts | 30 +
.../src/middleware/loggerMiddleware.ts | 11 +-
superset-frontend/src/pages/AllEntities/index.tsx | 4 +-
.../src/pages/ChartCreation/index.tsx | 88 +-
.../pages/ChartList/ChartList.cardview.test.tsx | 5 +
.../pages/ChartList/ChartList.listview.test.tsx | 7 +-
.../pages/ChartList/ChartList.permissions.test.tsx | 56 +-
superset-frontend/src/pages/ChartList/index.tsx | 95 +-
.../DashboardList/DashboardList.behavior.test.tsx | 5 +
.../DashboardList.permissions.test.tsx | 7 +-
.../src/pages/DashboardList/DashboardList.test.tsx | 5 +
.../src/pages/DashboardList/index.tsx | 85 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 107 +-
.../DatasetList/DatasetList.behavior.test.tsx | 5 +
.../DatasetList/DatasetList.listview.test.tsx | 51 +-
.../pages/DatasetList/DatasetList.testHelpers.tsx | 5 +
superset-frontend/src/pages/DatasetList/index.tsx | 153 +-
superset-frontend/src/pages/GroupsList/index.tsx | 2 +-
superset-frontend/src/pages/Home/index.tsx | 4 +-
.../src/pages/RowLevelSecurityList/index.tsx | 4 +-
superset-frontend/src/pages/Tags/index.tsx | 8 +-
superset-frontend/src/pages/TaskList/index.tsx | 4 +
superset-frontend/src/pages/UsersList/index.tsx | 2 +-
superset-frontend/src/setup/setupCodeOverrides.ts | 4 +-
superset-frontend/src/theme/ThemeController.ts | 7 +-
.../src/utils/downloadAsImage.test.ts | 53 +-
superset-frontend/src/utils/downloadAsImage.tsx | 68 +-
superset-frontend/src/utils/export.test.ts | 5 +-
superset-frontend/src/views/CRUD/types.ts | 4 +-
superset-frontend/src/views/CRUD/utils.tsx | 17 +-
superset-frontend/src/views/menu.test.tsx | 109 +
superset-frontend/src/views/menu.tsx | 18 +-
.../visualizations/TimeTable/TimeTable.test.tsx | 4 +-
.../src/visualizations/TimeTable/TimeTable.tsx | 2 +-
...t-runner-jest.config.js => stylelint.config.js} | 27 +-
superset-websocket/package-lock.json | 398 +-
superset-websocket/package.json | 12 +-
superset/async_events/async_query_manager.py | 30 +-
superset/async_events/cache_backend.py | 61 +-
superset/charts/client_processing.py | 44 +-
superset/cli/importexport.py | 34 +-
superset/cli/test_db.py | 14 +-
superset/commands/chart/exceptions.py | 13 +
superset/commands/chart/update.py | 54 +
superset/commands/dataset/duplicate.py | 63 +-
superset/commands/report/alert.py | 13 +
superset/commands/report/exceptions.py | 13 +
superset/commands/report/execute.py | 146 +-
superset/common/query_context_factory.py | 20 +
superset/config.py | 12 +
superset/connectors/sqla/models.py | 2 +-
superset/connectors/sqla/utils.py | 2 +-
superset/db_engine_specs/bigquery.py | 6 +-
superset/db_engine_specs/crate.py | 2 +-
superset/db_engine_specs/databricks.py | 75 +-
superset/db_engine_specs/doris.py | 12 +-
superset/db_engine_specs/duckdb.py | 13 +-
superset/db_engine_specs/hive.py | 36 +-
superset/db_engine_specs/impala.py | 11 +-
superset/db_engine_specs/postgres.py | 15 +-
superset/db_engine_specs/presto.py | 19 +-
superset/db_engine_specs/snowflake.py | 13 +-
superset/db_engine_specs/starrocks.py | 42 +-
superset/embedded/view.py | 3 +
superset/extensions/metadb.py | 34 +-
superset/initialization/__init__.py | 21 +
superset/mcp_service/CLAUDE.md | 8 +-
superset/mcp_service/app.py | 69 +-
superset/mcp_service/chart/chart_utils.py | 98 +-
superset/mcp_service/chart/plugins/__init__.py | 9 +
superset/mcp_service/chart/plugins/box_plot.py | 155 +
superset/mcp_service/chart/plugins/histogram.py | 197 +
superset/mcp_service/chart/plugins/waterfall.py | 186 +
superset/mcp_service/chart/schemas.py | 409 +-
superset/mcp_service/chart/tool/__init__.py | 4 +
superset/mcp_service/chart/tool/delete_chart.py | 186 +
superset/mcp_service/chart/tool/generate_chart.py | 69 +-
superset/mcp_service/chart/tool/get_chart_data.py | 3 +
.../mcp_service/chart/tool/get_chart_preview.py | 5 +-
.../chart/tool/get_chart_type_schema.py | 54 +-
superset/mcp_service/chart/tool/list_charts.py | 7 +-
superset/mcp_service/chart/tool/restore_chart.py | 180 +
.../mcp_service/chart/tool/update_chart_preview.py | 2 +-
.../chart/validation/dataset_validator.py | 7 +-
superset/mcp_service/constants.py | 2 +
superset/mcp_service/dashboard/schemas.py | 532 ++-
superset/mcp_service/dashboard/tool/__init__.py | 10 +
.../mcp_service/dashboard/tool/delete_dashboard.py | 235 ++
.../dashboard/tool/get_dashboard_info.py | 8 +
.../mcp_service/dashboard/tool/governance_utils.py | 120 +
.../mcp_service/dashboard/tool/list_dashboards.py | 5 +-
.../tool/manage_dashboard_certification.py | 155 +
.../dashboard/tool/manage_dashboard_owners.py | 383 ++
.../dashboard/tool/manage_dashboard_roles.py | 326 ++
.../dashboard/tool/restore_dashboard.py | 193 +
.../mcp_service/dashboard/tool/update_dashboard.py | 21 +-
superset/mcp_service/dataset/dataset_utils.py | 50 +
superset/mcp_service/dataset/schemas.py | 163 +-
superset/mcp_service/dataset/tool/__init__.py | 2 +
superset/mcp_service/dataset/tool/query_dataset.py | 32 +-
.../dataset/tool/update_dataset_metric.py | 294 ++
superset/mcp_service/mcp_config.py | 27 +-
superset/mcp_service/mcp_core.py | 96 +-
superset/mcp_service/middleware.py | 40 +-
superset/mcp_service/server.py | 17 +
superset/mcp_service/sql_lab/tool/execute_sql.py | 89 +-
superset/mcp_service/storage.py | 11 +-
superset/mcp_service/utils/token_utils.py | 12 +-
superset/middleware/legacy_prefix_redirect.py | 46 +-
superset/migrations/shared/catalogs.py | 3 +-
superset/migrations/shared/migrate_viz/base.py | 3 +-
superset/migrations/shared/security_converge.py | 3 +-
..._08-54_c3a8f8611885_materializing_permission.py | 2 +-
...d8bc074f7aad_add_new_field_is_restricted_to_.py | 2 +-
...06-27_08-43_27ae655e4247_make_creator_owners.py | 3 +-
...-09-07_23-50_33d996bcc382_update_slice_model.py | 2 +-
...2_11-31_eca4694defa7_sqllab_setting_defaults.py | 2 +-
...4_12-31_db0c65b146bd_update_slice_model_json.py | 2 +-
...7c195a_rewriting_url_from_shortner_with_new_.py | 2 +-
...-08_08-19_67a6ac9b727b_update_spatial_params.py | 2 +-
...2-17_11-06_21e88bc06c02_annotation_migration.py | 2 +-
.../2018-02-13_08-07_e866bd2d4976_smaller_grid.py | 2 +-
...-04-03_08-19_130915240929_is_sqllab_viz_flow.py | 2 +-
...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py | 2 +-
...018-06-04_11-12_c5756bec8b47_time_grain_sqla.py | 2 +-
...6-07_09-52_afb7730f6a9c_remove_empty_filters.py | 2 +-
...13_10-20_4451805bbaa1_remove_double_percents.py | 2 +-
.../2018-06-13_14-54_bddc498dd179_adhoc_filters.py | 2 +-
...4_14-31_80a67c5192fa_single_pie_chart_metric.py | 2 +-
...1c4c6_migrate_num_period_compare_and_period_.py | 2 +-
.../2018-07-19_23-41_c617da68de7d_form_nullable.py | 2 +-
...07-20_15-31_7f2635b51f5d_update_base_columns.py | 2 +-
...07-20_15-57_e9df189e5c7e_update_base_metrics.py | 2 +-
..._bebcf3fed1fe_convert_dashboard_v1_positions.py | 3 +-
...8-07-26_11-10_c82ee8a39623_add_implicit_tags.py | 2 +-
.../versions/2018-08-01_11-47_7fcdcde0761c_.py | 2 +-
...08545_migrate_time_range_for_default_filters.py | 2 +-
...2018-12-11_22-03_fb13d49b72f9_better_filters.py | 2 +-
.../2019-03-21_10-22_d94d33dbe938_form_strip.py | 2 +-
...a3f04bc82_add_parent_ids_in_dashboard_layout.py | 2 +-
.../2019-06-28_13-17_ab8c66efdd01_resample.py | 2 +-
...ng_unique_constraint_on_dashboard_slices_tbl.py | 2 +-
...5afa9079866a_serialize_schema_permissions_py.py | 3 +-
...e_form_strip_leading_and_trailing_whitespace.py | 2 +-
.../2019-10-10_13-52_1495eb914ad3_time_range.py | 2 +-
...127d0d1d_reconvert_legacy_filters_into_adhoc.py | 2 +-
...-08_01-17_e96dbf2cfef0_datasource_cluster_fk.py | 8 +-
..._14-13_3325d4caccc8_dashboard_scoped_filters.py | 3 +-
...10-42_f9a30386bd74_cleanup_time_grainularity.py | 2 +-
...57699a813e_add_tables_relation_to_row_level_.py | 8 +-
...29_09-24_620241d1153f_update_time_grain_sqla.py | 2 +-
...978245563a02_migrate_iframe_to_dash_markdown.py | 3 +-
...828ac4e_add_rls_filter_type_and_grouping_key.py | 2 +-
...654_fix_data_access_permissions_for_virtual_.py | 3 +-
...b56500de1855_add_uuid_column_to_import_mixin.py | 3 +-
...208f_collapse_alerting_models_into_a_single_.py | 9 +-
...6e99fb176a0_add_import_mixing_to_saved_query.py | 2 +-
...60bf0649a77_migrate_x_dateunit_in_time_range.py | 2 +-
...2fdb_add_granularity_to_charts_where_missing.py | 2 +-
...-10_12-32_41ce8799acc3_rename_pie_label_type.py | 2 +-
...1412ec1e5a7b_legacy_force_directed_to_echart.py | 2 +-
...989bbe479899_rename_filter_configuration_in_.py | 2 +-
...ea61c5e7_remove_dataset_health_check_message.py | 2 +-
...88938_country_map_use_lowercase_country_name.py | 2 +-
...3a3a8ff221_migrate_filter_sets_to_new_format.py | 2 +-
...ed7ec95_migrate_native_filters_to_new_schema.py | 2 +-
...3605f370a_fix_schemas_allowed_for_csv_upload.py | 2 +-
...15da_migrate_pivot_table_v2_heatmaps_to_new_.py | 2 +-
...4fbb_add_type_to_native_filter_configuration.py | 2 +-
...453f4e2e_migrate_timeseries_limit_metric_to_.py | 2 +-
...12_11-15_32646df09c64_update_time_grain_sqla.py | 2 +-
...e5f1dacd_rename_to_schemas_allowed_for_file_.py | 2 +-
...aa3ff_add_force_screenshot_to_alerts_reports.py | 2 +-
...5b9441_rename_big_viz_total_form_data_fields.py | 2 +-
...d1d2_move_pivot_table_v2_legacy_order_by_to_.py | 2 +-
...d8e252_fix_query_and_saved_query_null_schema.py | 2 +-
...b0ca7944_change_adhoc_filter_b_from_none_to_.py | 2 +-
...14-38_a9422eeaae74_new_dataset_models_take_2.py | 9 +-
...d0249074e4_deprecate_time_range_endpoints_v2.py | 2 +-
...07e4fdbaba_rm_time_range_endpoints_from_qc_3.py | 2 +-
...-39_cbe71abde154_fix_report_schedule_and_log.py | 2 +-
...8_16-07_e786798587de_delete_none_permissions.py | 3 +-
..._16-17_f3afaf1f11f0_add_unique_name_desc_rls.py | 3 +-
...59_7fb8bca906d2_permalink_rename_filterstate.py | 3 +-
...5-48_409c7b420ab0_add_created_by_fk_as_owner.py | 2 +-
...665d_fix_table_chart_conditional_formatting_.py | 2 +-
...1_4ce1d9b25135_remove_filter_bar_orientation.py | 2 +-
...4-46_c0a3ea245b61_remove_show_native_filters.py | 2 +-
...ac08bb5b83_invert_horizontal_bar_chart_order.py | 2 +-
...7_13-24_b5ea9d343307_bar_chart_stack_options.py | 2 +-
...03-27_12-30_7e67aecbf3f1_chart_ds_constraint.py | 2 +-
...2a5681ddfd_convert_key_value_entries_to_json.py | 3 +-
...-41_4ea966691069_cross_filter_global_scoping.py | 2 +-
...delete_obsolete_druid_nosql_slice_parameters.py | 2 +-
...6f8b1280_cleanup_erroneous_parent_filter_ids.py | 2 +-
...9_17-54_ee179a490af9_deckgl_path_width_units.py | 2 +-
...23_0769ef90fddd_fix_schema_perm_for_datasets.py | 2 +-
...086c2676_add_normalize_columns_to_sqla_model.py | 2 +-
...317970b4400c_added_time_secondary_column_to_.py | 2 +-
...ff00fe8_add_percent_calculation_type_funnel_.py | 2 +-
...d09c9_migrate_filter_boxes_to_native_filters.py | 3 +-
...47_be1b217cd8cd_big_number_kpi_single_metric.py | 2 +-
...9123a_update_charts_with_old_time_comparison.py | 2 +-
...fdba9f_merge_x_axis_sort_series_with_x_axis_.py | 2 +-
...2_convert_metric_currencies_from_str_to_json.py | 2 +-
...8d8526_fix_form_data_string_in_query_context.py | 2 +-
...rip_metricsqlexpressions_from_ag_grid_params.py | 110 +
superset/models/core.py | 1 -
superset/models/helpers.py | 290 +-
.../extensions => superset/openapi}/__init__.py | 4 +
superset/openapi/manager.py | 143 +
superset/reports/api.py | 11 +-
superset/reports/models.py | 6 +
superset/reports/notifications/base.py | 1 +
superset/reports/notifications/email.py | 55 +-
superset/reports/notifications/slack.py | 2 +
superset/reports/notifications/slackv2.py | 2 +
superset/reports/notifications/webhook.py | 12 +
superset/reports/schemas.py | 3 +
superset/semantic_layers/mapper.py | 108 +-
superset/semantic_layers/models.py | 70 +-
superset/sql/dialects/firebolt.py | 5 +-
superset/sqllab/sql_json_executer.py | 8 +-
superset/subjects/utils.py | 35 +
superset/templates/superset/spa.html | 6 +
superset/translations/ar/LC_MESSAGES/messages.po | 1103 +++--
superset/translations/ca/LC_MESSAGES/messages.po | 674 +++-
superset/translations/cs/LC_MESSAGES/messages.po | 669 +++-
superset/translations/de/LC_MESSAGES/messages.po | 681 +++-
superset/translations/en/LC_MESSAGES/messages.po | 472 ++-
superset/translations/es/LC_MESSAGES/messages.po | 718 +++-
superset/translations/fa/LC_MESSAGES/messages.po | 692 +++-
superset/translations/fi/LC_MESSAGES/messages.po | 720 +++-
superset/translations/fr/LC_MESSAGES/messages.po | 675 +++-
superset/translations/it/LC_MESSAGES/messages.po | 4218 +++++++++++---------
superset/translations/ja/LC_MESSAGES/messages.po | 3696 ++++++++---------
superset/translations/ko/LC_MESSAGES/messages.po | 1137 ++++--
superset/translations/lv/LC_MESSAGES/messages.po | 656 ++-
superset/translations/messages.pot | 451 ++-
superset/translations/mi/LC_MESSAGES/messages.po | 679 +++-
superset/translations/nl/LC_MESSAGES/messages.po | 674 +++-
superset/translations/pl/LC_MESSAGES/messages.po | 686 +++-
superset/translations/pt/LC_MESSAGES/messages.po | 1185 ++++--
.../translations/pt_BR/LC_MESSAGES/messages.po | 688 +++-
superset/translations/ro/LC_MESSAGES/messages.po | 3787 ++++++++++++++----
superset/translations/ru/LC_MESSAGES/messages.po | 1806 +++++----
superset/translations/sk/LC_MESSAGES/messages.po | 671 +++-
superset/translations/sl/LC_MESSAGES/messages.po | 674 +++-
superset/translations/sr/LC_MESSAGES/messages.po | 773 +++-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 772 +++-
superset/translations/th/LC_MESSAGES/messages.po | 717 +++-
superset/translations/tr/LC_MESSAGES/messages.po | 682 +++-
superset/translations/uk/LC_MESSAGES/messages.po | 669 +++-
superset/translations/zh/LC_MESSAGES/messages.po | 1031 +++--
.../translations/zh_TW/LC_MESSAGES/messages.po | 2662 +++++++-----
superset/utils/core.py | 50 +-
superset/utils/csv.py | 48 +-
superset/utils/date_parser.py | 77 +-
superset/utils/mock_data.py | 16 +-
superset/utils/pandas_postprocessing/boxplot.py | 10 +-
superset/versioning/changes/listener.py | 287 +-
superset/versioning/changes/state.py | 33 +-
superset/views/base.py | 27 +
superset/views/core.py | 1 +
.../example_data/data_loading/base_data_loader.py | 2 +-
.../data_loading/pandas/pandas_data_loader.py | 3 +-
tests/integration_tests/base_tests.py | 3 +-
tests/integration_tests/celery_tests.py | 6 +-
tests/integration_tests/cli_tests.py | 118 +-
tests/integration_tests/conftest.py | 90 +-
tests/integration_tests/dao/base_dao_test.py | 2 +-
.../databases/commands/upload_test.py | 55 +-
tests/integration_tests/datasets/api_tests.py | 27 +-
tests/integration_tests/datasets/commands_tests.py | 20 +-
tests/integration_tests/datasource_tests.py | 36 +-
.../db_engine_specs/hive_tests.py | 20 +-
.../db_engine_specs/presto_tests.py | 30 +-
tests/integration_tests/fixtures/datasource.py | 2 +-
.../integration_tests/fixtures/energy_dashboard.py | 3 +-
.../fixtures/unicode_dashboard.py | 3 +-
.../fixtures/world_bank_dashboard.py | 3 +-
tests/integration_tests/query_context_tests.py | 11 +-
tests/integration_tests/reports/commands_tests.py | 145 +-
tests/integration_tests/reports/utils.py | 3 +
.../security/row_level_security_tests.py | 107 +
tests/integration_tests/sqllab_tests.py | 44 +-
.../versioning/transaction_correctness_tests.py | 308 ++
.../views/test_explore_redirect.py | 41 +-
.../async_events/async_query_manager_tests.py | 83 +-
.../unit_tests/async_events/test_cache_backend.py | 148 +
tests/unit_tests/charts/test_client_processing.py | 96 +
tests/unit_tests/commands/chart/update_test.py | 91 +-
.../unit_tests/commands/dataset/test_duplicate.py | 13 +
tests/unit_tests/commands/report/alert_test.py | 40 +-
tests/unit_tests/commands/report/execute_test.py | 358 +-
tests/unit_tests/common/test_query_actions.py | 88 +
.../common/test_query_context_factory.py | 132 +
.../common/test_query_context_processor.py | 298 +-
tests/unit_tests/common/test_time_shifts.py | 399 +-
tests/unit_tests/dao/base_dao_test.py | 2 +-
tests/unit_tests/db_engine_specs/test_bigquery.py | 72 +
.../unit_tests/db_engine_specs/test_databricks.py | 74 +
tests/unit_tests/db_engine_specs/test_datastore.py | 2 +-
tests/unit_tests/db_engine_specs/test_doris.py | 17 +-
tests/unit_tests/db_engine_specs/test_presto.py | 66 +
tests/unit_tests/db_engine_specs/test_sqlite.py | 9 +-
tests/unit_tests/db_engine_specs/test_starrocks.py | 6 +-
tests/unit_tests/db_engine_specs/test_trino.py | 14 +-
tests/unit_tests/explore/utils_test.py | 74 +
tests/unit_tests/extensions/test_sqlalchemy.py | 115 +-
tests/unit_tests/jinja_context_test.py | 130 +
.../mcp_service/chart/test_chart_schemas.py | 67 +
.../chart/test_histogram_boxplot_charts.py | 465 +++
.../mcp_service/chart/test_waterfall_chart.py | 316 ++
.../mcp_service/chart/tool/test_delete_chart.py | 229 ++
.../mcp_service/chart/tool/test_generate_chart.py | 1 +
.../chart/tool/test_get_chart_type_schema.py | 9 +-
.../chart/tool/test_list_charts_deleted_state.py | 171 +
.../mcp_service/chart/tool/test_restore_chart.py | 242 ++
.../dashboard/test_dashboard_schemas.py | 73 +
.../mcp_service/{ => dashboard/tool}/conftest.py | 34 +-
.../dashboard/tool/test_dashboard_tools.py | 29 +
.../dashboard/tool/test_delete_dashboard.py | 254 ++
.../tool/test_list_dashboards_deleted_state.py | 176 +
.../tool/test_manage_dashboard_certification.py | 365 ++
.../dashboard/tool/test_manage_dashboard_owners.py | 639 +++
.../dashboard/tool/test_manage_dashboard_roles.py | 573 +++
.../dashboard/tool/test_restore_dashboard.py | 250 ++
.../dashboard/tool/test_update_dashboard.py | 62 +-
.../database/tool/test_database_tools.py | 74 +-
.../mcp_service/dataset/test_dataset_schemas.py | 54 +
.../mcp_service/dataset/tool/test_query_dataset.py | 92 +-
.../dataset/tool/test_update_dataset_metric.py | 541 +++
.../mcp_service/rls/tool/test_rls_tools.py | 72 +-
.../tool/test_get_compatible_dimensions.py | 89 +
.../tool/test_get_compatible_metrics.py | 89 +
.../semantic_layer/tool/test_get_table.py | 229 ++
.../semantic_layer/tool/test_list_metrics.py | 266 +-
.../sql_lab/tool/test_open_sql_lab_with_context.py | 119 +-
.../mcp_service/system/resources}/__init__.py | 0
.../system/resources/test_schema_discovery.py | 133 +
.../mcp_service/system/tool/test_health_check.py | 134 +
.../mcp_service/tag/tool/test_tag_tools.py | 69 +-
tests/unit_tests/mcp_service/test_mcp_core.py | 73 +-
tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py | 228 ++
tests/unit_tests/mcp_service/test_mcp_server.py | 60 +
tests/unit_tests/mcp_service/test_middleware.py | 89 +
.../mcp_service/test_rbac_tool_enforcement.py | 256 ++
.../mcp_service/theme/tool/test_get_theme_info.py | 39 +
.../mcp_service/theme/tool/test_list_themes.py | 173 +
.../mcp_service/user/tool/test_user_tools.py | 66 +-
.../mcp_service/utils/test_cache_utils.py | 271 ++
.../mcp_service/utils/test_oauth2_utils.py | 96 +
.../mcp_service/utils/test_retry_utils.py | 396 ++
.../mcp_service/utils/test_token_utils.py | 72 +
.../middleware/test_legacy_prefix_redirect.py | 214 +-
.../test_add_deleted_at_to_dashboards.py | 14 +-
.../migrations/test_add_deleted_at_to_slices.py | 10 +-
.../migrations/test_add_deleted_at_to_tables.py | 10 +-
...rip_metricsqlexpressions_from_ag_grid_params.py | 203 +
tests/unit_tests/models/core_test.py | 5 +-
tests/unit_tests/models/helpers_test.py | 394 +-
.../unit_tests/models/test_no_filter_time_range.py | 42 +-
.../unit_tests/openapi}/__init__.py | 0
tests/unit_tests/openapi/test_manager.py | 77 +
.../pandas_postprocessing/test_boxplot.py | 24 +
tests/unit_tests/reports/api_test.py | 41 +
tests/unit_tests/reports/model_test.py | 9 +-
.../reports/notifications/email_tests.py | 124 +
.../reports/notifications/slack_tests.py | 78 +
.../reports/notifications/webhook_tests.py | 31 +
tests/unit_tests/scripts/change_detector_test.py | 96 +
.../scripts/translations/backfill_po_test.py | 18 +
tests/unit_tests/security/api_test.py | 55 +
tests/unit_tests/semantic_layers/mapper_test.py | 377 ++
tests/unit_tests/semantic_layers/models_test.py | 112 +
tests/unit_tests/sqllab/test_sql_json_executer.py | 150 +
tests/unit_tests/subjects/test_utils.py | 56 +
tests/unit_tests/utils/csv_tests.py | 3 +
tests/unit_tests/utils/date_parser_tests.py | 107 +
tests/unit_tests/utils/test_core.py | 38 +
tests/unit_tests/utils/test_date_parsing.py | 91 +
tests/unit_tests/versioning/test_listener.py | 204 +
tests/unit_tests/views/test_base_theme_helpers.py | 132 +
.../views/test_redirect_view_subdirectory.py | 63 +-
820 files changed, 60417 insertions(+), 15847 deletions(-)
delete mode 160000 .github/actions/file-changes-action
create mode 100644 helm/superset/UPGRADING.md
create mode 100644 helm/superset/tests/checksum_test.yaml
create mode 100644 helm/superset/tests/config_test.yaml
copy MANIFEST.in => helm/superset/tests/deprecation_test.yaml (66%)
create mode 100644 helm/superset/tests/init_containers_test.yaml
create mode 100644 helm/superset/tests/initscript_test.yaml
create mode 100644 helm/superset/tests/secret_env_test.yaml
copy .dockerignore => helm/superset/tests/serviceaccount_test.yaml (63%)
copy docker/entrypoints/docker-ci.sh => helm/superset/tests/values_defaults_test.yaml (71%)
mode change 100755 => 100644
create mode 100644 helm/superset/values.schema.json
copy {superset-core/src/superset_core/common => scripts}/__init__.py (100%)
copy scripts/{check-custom-rules.sh => stylelint.sh} (81%)
create mode 100644 superset-frontend/.stylelintignore
create mode 100644 superset-frontend/packages/superset-core/src/theme/__snapshots__/Theme.test.tsx.snap
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/antdDomContract.test.tsx
create mode 100644 superset-frontend/packages/superset-ui-core/src/utils/handleKeyboardActivation.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/utils/handleKeyboardActivation.ts
create mode 100644 superset-frontend/playwright/components/modals/NativeFiltersConfigModal.ts
copy superset-frontend/playwright/{components/modals/SaveDatasetModal.ts => pages/HomePage.ts} (57%)
create mode 100644 superset-frontend/playwright/tests/dashboard/delete-display-control.spec.ts
copy superset-frontend/{src/SqlLab/hooks/useAppDispatch.ts => playwright/tests/home/welcome.spec.ts} (51%)
create mode 100644 superset-frontend/plugins/legacy-plugin-chart-horizon/test/HorizonChart.test.tsx
create mode 100644 superset-frontend/plugins/legacy-plugin-chart-horizon/test/HorizonRow.test.tsx
create mode 100644 superset-frontend/plugins/legacy-plugin-chart-paired-t-test/test/TTestTable.test.tsx
create mode 100644 superset-frontend/plugins/legacy-preset-chart-nvd3/test/TimePivot/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getCellStyle.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/MixedTimeseries/EchartsMixedTimeseries.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/test/PivotTableChart.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/test/TableRenderer.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/test/testData.ts
copy superset-frontend/plugins/{plugin-chart-table => plugin-chart-pivot-table}/test/testHelpers.tsx (100%)
copy superset-frontend/plugins/{plugin-chart-table => plugin-chart-pivot-table}/test/tsconfig.json (100%)
create mode 100644 superset-frontend/plugins/plugin-chart-word-cloud/test/WordCloud.test.tsx
create mode 100644 superset-frontend/spec/helpers/mockBootstrapData.ts
create mode 100644 superset-frontend/src/SqlLab/components/ScheduleQueryButton/ScheduleQueryButton.test.tsx
create mode 100644 superset-frontend/src/dashboard/actions/hydrate.test.ts
create mode 100644 superset-frontend/src/dashboard/components/Header/HeadlessAutoRefresh.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/Header/HeadlessAutoRefresh.tsx
create mode 100644 superset-frontend/src/dashboard/components/IconButton.test.tsx
create mode 100644 superset-frontend/src/dashboard/util/getDefaultActiveTabs.test.ts
create mode 100644 superset-frontend/src/dashboard/util/getDefaultActiveTabs.ts
create mode 100644 superset-frontend/src/features/alerts/components/NotificationMethodEmailRecipients.test.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/jsonFormsAntdRenderers.test.tsx
create mode 100644 superset-frontend/src/views/menu.test.tsx
copy superset-frontend/{test-runner-jest.config.js => stylelint.config.js} (65%)
create mode 100644 superset/mcp_service/chart/plugins/box_plot.py
create mode 100644 superset/mcp_service/chart/plugins/histogram.py
create mode 100644 superset/mcp_service/chart/plugins/waterfall.py
create mode 100644 superset/mcp_service/chart/tool/delete_chart.py
create mode 100644 superset/mcp_service/chart/tool/restore_chart.py
create mode 100644 superset/mcp_service/dashboard/tool/delete_dashboard.py
create mode 100644 superset/mcp_service/dashboard/tool/governance_utils.py
create mode 100644 superset/mcp_service/dashboard/tool/manage_dashboard_certification.py
create mode 100644 superset/mcp_service/dashboard/tool/manage_dashboard_owners.py
create mode 100644 superset/mcp_service/dashboard/tool/manage_dashboard_roles.py
create mode 100644 superset/mcp_service/dashboard/tool/restore_dashboard.py
create mode 100644 superset/mcp_service/dataset/dataset_utils.py
create mode 100644 superset/mcp_service/dataset/tool/update_dataset_metric.py
create mode 100644 superset/migrations/versions/2026-06-30_00-00_d24e6b0a9c7f_strip_metricsqlexpressions_from_ag_grid_params.py
copy {superset-core/src/superset_core/extensions => superset/openapi}/__init__.py (88%)
create mode 100644 superset/openapi/manager.py
create mode 100644 tests/integration_tests/versioning/transaction_correctness_tests.py
create mode 100644 tests/unit_tests/async_events/test_cache_backend.py
create mode 100644 tests/unit_tests/common/test_query_actions.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_histogram_boxplot_charts.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_waterfall_chart.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_delete_chart.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_list_charts_deleted_state.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_restore_chart.py
copy tests/unit_tests/mcp_service/{ => dashboard/tool}/conftest.py (55%)
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_delete_dashboard.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_list_dashboards_deleted_state.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_manage_dashboard_certification.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_manage_dashboard_owners.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_manage_dashboard_roles.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_restore_dashboard.py
create mode 100644 tests/unit_tests/mcp_service/dataset/test_dataset_schemas.py
create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_update_dataset_metric.py
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/system/resources}/__init__.py (100%)
create mode 100644 tests/unit_tests/mcp_service/system/resources/test_schema_discovery.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py
create mode 100644 tests/unit_tests/mcp_service/test_rbac_tool_enforcement.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_cache_utils.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_oauth2_utils.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_retry_utils.py
create mode 100644 tests/unit_tests/migrations/test_strip_metricsqlexpressions_from_ag_grid_params.py
copy {superset-core/src/superset_core/common => tests/unit_tests/openapi}/__init__.py (100%)
create mode 100644 tests/unit_tests/openapi/test_manager.py
create mode 100644 tests/unit_tests/scripts/change_detector_test.py
create mode 100644 tests/unit_tests/sqllab/test_sql_json_executer.py
create mode 100644 tests/unit_tests/versioning/test_listener.py