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/09/05 15:48:36 UTC
(superset) branch feat/migrate-frontend-to-esm updated (3be843a5bfa -> fd489851fc7)
This is an automated email from the ASF dual-hosted git repository.
hainenber pushed a change to branch feat/migrate-frontend-to-esm
in repository https://gitbox.apache.org/repos/asf/superset.git
from 3be843a5bfa Merge branch 'master' into feat/migrate-frontend-to-esm
add b8b2e5ea8b5 chore(deps): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /docs (#43704)
add 5b64150d0ac chore(deps-dev): bump webpack-bundle-analyzer from 5.3.1 to 5.3.2 in /superset-frontend (#43706)
add 6e185ebce8e chore(deps): bump actions/setup-java from 5.7.0 to 6.0.0 (#43707)
add 9d1b5ebdb7b chore(deps-dev): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /superset-frontend (#43708)
add 040b33c4502 chore(deps): bump yeoman-generator from 8.2.2 to 8.3.0 in /superset-frontend (#43709)
add b24cb2af8a1 fix(db_engine_specs): support SQLAlchemy 2 DBAPI discovery (#43700)
add 5bffceb2951 feat(mcp): let get_dashboard_info accept filter_state directly (#43688)
add 1f1539fe0eb feat: test(presto) close db_engine_spec unit test gaps (#43607)
add ac3c158c41e fix(tags): catch TemplateError when validating access for tagged SQL Lab queries on delete (#43433)
add da27ba59a57 fix(pivot-table): apply "Show values as" percent to exports and reports (#43718)
add ba0142ca644 fix(dashboard): reconcile stale results tab in Chart Data modal (#43648)
add b04a1534514 fix(dashboard): stretch Chart Data modal results grid to fill available height (#43454)
add e3d30bb730e chore(deps-dev): bump oxlint from 1.79.0 to 1.80.0 in /superset-frontend (#43753)
add 9656ecc3aff chore(deps-dev): bump @types/node from 26.2.0 to 26.3.0 in /superset-frontend (#43752)
add 3b5a4baa055 chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-frontend (#43751)
add 842efd5f120 fix(datasets): warn on percent D3 format for count metrics (#43453)
add 439564041f5 fix(echarts): place weekly time-axis ticks on the data buckets (#43339)
add 58ef03dabca chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-websocket (#43739)
add eec1e4d288b chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-websocket (#43740)
add ed513bbe42a docs: add Veremes to users in the wild (#43754)
add e683aadd6e0 chore(build): upgrade `webpack-dev-server` v7 and dependent libs (#43766)
add 32fe4f66128 fix(echarts): make Bar chart value labels fit-aware and readable (#43144)
add ba50bdff237 fix(echarts): prevent x-axis time labels from overlapping (#43669)
add c9f625627dc fix(explore): don't drop stashed control values from saved chart params (#43650)
add 531587a4b26 fix(sql): catch sqlglot ParseError when parsing RLS predicates (#43651)
add 794dee80c23 docs: point homepage Release Notes link to GitHub releases (#43780)
add 69333e87db3 chore(deps): bump browserslist from 4.28.4 to 4.28.8 in /docs in the security group across 1 directory (#43773)
add 8ad5859fdf8 chore(deps-dev): bump browserslist from 4.28.1 to 4.28.8 in /superset-frontend in the security group across 1 directory (#43775)
add 38331619157 chore(deps): bump browserslist from 4.28.1 to 4.28.8 in /superset-frontend/cypress-base (#43774)
add 56944319cb1 chore(deps): bump js-yaml from 5.3.0 to 5.4.0 in /docs (#43748)
add 45b903b19ad chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /docs (#43745)
add cf77deb678a fix(sqllab): explain dataset save failures instead of "Fatal error" (#43334)
add 58f17efa6f5 feat(datasource): headless query API for Explorable datasources (#43527)
add 9b2bb15ecec fix(themes): apply system default/dark theme changes live without a page refresh (#43778)
add 0c7a47ef231 chore(deps): bump github/codeql-action/init from 4.37.8 to 4.37.9 (#43790)
add 7321d4aff6f chore: fix typos in comments and docstrings (#43785)
add 201a33f68f7 fix(charts): reject non-table datasource_type instead of crashing (#43500)
add 316f6ad971a chore(lint): scope in-repo eslint plugins under @superset-ui (#43054)
add b7da5336d35 docs(mcp): document embedded guest-token authentication (#43637)
add 8c2290fcf45 docs(theming): document resultsGrid* Superset-specific tokens (#43638)
add 46c8c67a400 fix(semantic_layers): mask write-only config fields, gate flag-off endpoints (#43474)
add c19879ffff2 chore(translations): updated Slovenian translations (#43735)
add f5e427083e2 fix(native-filters): keep "Select all" count stable while searching the Value filter (#43460)
add 3bd437869a6 feat(export): let deployments carry extra fields through asset export/import (#43763)
add 393b00f38ae chore(deps-dev): bump @typescript-eslint/parser from 8.67.0 to 8.68.0 in /superset-websocket (#43789)
add 0ea234e9ae1 chore(deps): bump github/codeql-action/analyze from 4.37.8 to 4.37.9 (#43791)
add e7c42dd8ed8 chore(deps-dev): bump fast-uri from 3.1.5 to 3.1.7 in /superset-embedded-sdk (#43796)
add b49c1fd7e42 fix(security): handle cached schema/catalog names deserialized as lists (#43800)
add 64bfbf75a49 feat(chart): list semantic views in the Create Chart datasource picker (#43629)
add e8540b7c495 feat(dataset): warn about dependent charts and dashboards before purging an archived dataset (#43724)
add 5b8e50e69db fix(reports): downgrade Slack channel-fetch auth-error logging to WARNING (SC-115301) (#42484)
add a81c0f67739 fix(gsheets): catch JSONDecodeError in validate_parameters for malformed service_account_info (#43772)
add 3394097c83a fix(snowflake): refresh rejected OAuth tokens (#43623)
add 6dd841c35b2 fix(jinja): reuse get_request_json_body in get_dataset_id_from_context (#43556)
add 52a4cb6314a fix(snowflake): quote case-sensitive lowercase column identifiers in generated SQL (#43312)
add 07fc3144e5a feat(dataset): expose dataset certification controls (#43633)
add d82a88f479e fix(dashboard): keep filter config modal within iframe (#43632)
add d921131c5d9 fix(charts): resolve semantic-view datasource name and link in chart list (#43649)
add b457280b57a chore(api): regenerate the OpenAPI spec (#43788)
add 4a18556fdc0 fix(reports): prevent blank dashboard captures (#43784)
add 18465bad51f perf(dashboard): batch dataset lookups during dashboard export (#43017)
add bf12a21367c fix(charts): sort chart types by display name (#43634)
add c185a2c6785 chore(deps-dev): bump @types/node from 26.3.0 to 26.4.0 in /superset-frontend (#43819)
add 464adba69b8 chore(deps-dev): bump minimizer-webpack-plugin from 5.6.1 to 5.7.0 in /superset-frontend (#43818)
add 3bd0ad52678 chore(deps): bump react-intersection-observer from 11.0.0 to 11.0.1 in /superset-frontend (#43817)
add 9d855a4adf9 chore(deps-dev): bump @types/node from 26.2.0 to 26.4.0 in /superset-websocket (#43815)
add 0398b320f94 chore(deps): bump fast-uri from 3.1.5 to 3.1.7 in /docs in the security group across 1 directory (#43798)
add 669a0cefb49 chore(deps): bump the security group across 1 directory with 2 updates (#43797)
add d9887fd9286 chore(deps): bump js-yaml from 5.4.0 to 5.4.1 in /docs (#43816)
add a95c40aa1e4 chore(deps): bump qs from 6.15.2 to 6.16.0 in /superset-websocket/utils/client-ws-app in the security group across 1 directory (#43824)
add d2d965e009f fix(navbar): use down-chevron icon consistently on all navbar dropdowns (#43531)
add 28578160ff5 docs(pivot-table): document DB-computed totals/subtotals behavior (#43636)
add b558f41461e feat(dashboard): convert @import to inline CSS in the dashboard CSS editor (#43667)
add 9828281e7fd fix(charts): exclude string helpers from post_processing operation allowlist (#43345)
add dd1a475df62 chore(deps-dev): bump baseline-browser-mapping from 2.11.18 to 2.11.19 in /superset-frontend (#43750)
add 232ccf66d64 chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-frontend (#43749)
add c91c9018323 chore(deps): bump baseline-browser-mapping from 2.11.18 to 2.11.19 in /docs (#43747)
add 5d8ff9181a5 chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#43744)
add a6cbd7c3b58 chore(deps-dev): bump typescript-eslint from 8.67.0 to 8.68.0 in /superset-websocket (#43742)
add 0bca5af7a9b fix(table): hide the Time Grain control in raw records mode (#43802)
add 3258f5fa3f6 fix(security): catch JSONDecodeError on stored query_context in query_context_modified (#43795)
add 765a4ecca51 chore(deps): bump caniuse-lite from 1.0.30001809 to 1.0.30001810 in /docs (#43746)
add cceb52e776f fix(embedded): don't let guest-user check turn error responses into 500s (#43834)
add 93df5bc3620 fix(semantic-layers): classify SemanticLayer/SemanticView in FAB role sets (#43783)
add 8d0637efadf fix(semantic-layers): serve filter-value suggestions for semantic views (#43777)
add 2aacf579323 chore(deps): bump antd from 6.6.1 to 6.6.2 in /superset-frontend (#43858)
add a6a794864bf chore(deps-dev): bump minimizer-webpack-plugin from 5.7.0 to 5.8.0 in /superset-frontend (#43857)
add 0e01b5fb4ca chore(deps): bump baseline-browser-mapping from 2.11.19 to 2.11.20 in /docs (#43851)
add 173d2173aaf chore(deps-dev): bump baseline-browser-mapping from 2.11.19 to 2.11.20 in /superset-frontend (#43856)
add 0fc410eeccd chore(deps-dev): bump @testing-library/react from 15.0.7 to 16.3.3 in /superset-frontend (#43855)
add 34286883d33 chore(deps): bump postcss from 8.5.23 to 8.5.26 in /superset-frontend (#43854)
add 0a5eddb18b0 chore(deps): bump morgan from 1.11.0 to 1.12.0 in /superset-websocket/utils/client-ws-app (#43850)
add a0685173932 chore(deps-dev): bump webpack from 5.109.2 to 5.110.1 in /superset-frontend (#43853)
add c84c7c4bdd2 chore(ci): optimize Dependabot processes (#43681)
add e9412576b20 feat(build/websocket): upgrade to Typescript 7 + migrate ESLint to TS7-compatible `oxlint` and`tsgolint` (#43703)
add 8f6caf4ff94 feat(build): upgrade to Typescript 7, Babel 8, Webpack CLI 7 and JSDOM 30 for `superset-embedded-sdk` (#43702)
add f63a0e9d9c7 feat(conditional-formatting): add manual min/max color-range bounds (#43820)
add 31a3a190373 chore(deps-dev): bump @types/node from 25.9.5 to 26.4.0 in /superset-embedded-sdk (#43881)
add d27124e5f6b chore(deps-dev): bump webpack-cli from 7.2.2 to 7.2.3 in /superset-embedded-sdk (#43882)
add 3b1e43be5c5 chore(deps-dev): bump css-loader from 7.1.4 to 7.1.5 in /superset-frontend (#43880)
add bc6ff77af01 feat(ci): broaden usage of fast-startup `ubuntu-slim` runner (#43477)
add d9b201db74c fix(explore): open version-history forks in a usable tab, not a blank one (#43830)
add 935ee5f1a65 chore(deps): bump simplejson from 4.1.1 to 4.1.2 (#43874)
add 592d378c0d6 chore(deps-dev): bump pandas-gbq from 0.35.1 to 0.35.2 (#43873)
add b925246befb chore(deps): bump click from 8.4.2 to 8.5.0 (#43872)
add b1c33e54353 chore(deps-dev): bump hdbcli from 2.29.25 to 2.29.27 (#43869)
add 297b0455f61 chore(deps): bump nh3 from 0.3.6 to 0.3.7 (#43868)
add db60f25ee9a chore(deps-dev): bump babel-jest from 30.4.1 to 30.5.0 in /superset-frontend (#43879)
add e1ce6b601c0 chore(deps-dev): bump jest-environment-jsdom from 30.4.1 to 30.5.0 in /superset-frontend (#43878)
add 635de27b259 fix(explore): prevent editable title over-truncation (#43811)
add 99a910b81c5 fix(echarts): render Plain Timeseries legends as HTML, not canvas (#43314)
add 0636ac4b114 fix(examples): correct chart metadata (#43810)
add 581ef8b7c18 chore(deps): bump antd from 6.6.1 to 6.6.2 in /docs (#43852)
add c1822666dac ci: fail when the published OpenAPI spec is stale (#43841)
add 6956da1de5d fix(sql): close StarRocks SQL parsing and mutation-detection gaps (#43809)
add c3109899e27 fix(dashboard): is_externally_managed still allows edits (#38584)
add 0d025daaf7e fix(plugin-chart-table): defer search until IME composition ends (#43756)
add ee03ee17199 test(treemap): pin border-free labels so tiles render without seams (#43890)
add 9fb02296d85 test(dashboard): migrate tabs resize E2E to Playwright (#41434)
add 67a417812d3 fix(reports): look up fetched report schedules by the list API id fields (#43365)
add db0af5c610e fix(embedded): guard guest payload check against scalar control values (#43577)
add 67605734320 fix(dashboard): show loading state on + Dashboard during the create navigation (#43683)
add b4325e2ce34 fix(handlebars): separate CSS style block from template with a blank line (#43722)
add ff90a60b09d fix(partition): normalize ancestor-path array names to leaf values (#43731)
add c1ca29fe09d fix(core): render duration values instead of NaN:NaN:NaN (#43839)
add b8cdebcaba2 chore(deps-dev): bump jest from 30.4.2 to 30.5.0 in /superset-frontend (#43877)
add ccfaa2302a5 chore(deps): bump slack-sdk from 3.43.0 to 3.44.1 (#43871)
add a49581dd76f chore(deps): bump msgpack from 1.2.1 to 1.2.2 (#43867)
add fb12d4ae120 fix(importers): catch JSONDecodeError in load_configs masked_encrypted_extra merge (#43261)
add c77efa77edf fix(sqla): normalize PostgreSQL date trunc metric units (#42095)
add 01b8eb50a0d feat(semantic-layers): hide Samples tab and disable drill-to-detail for semantic views (#42534)
add 724d9045c67 chore(api): regenerate the spec for ReportScheduleRestApi.report_format (#43910)
add ed4d413d77d ci: remove unused submoduled GHA workflows (#43865)
add 334700fc331 fix(sqla): parenthesize calculated column expressions in SELECT/GROUP BY/ORDER BY and series-limit queries (#43864)
add 0820a0ac141 fix(sqllab): correct Run dropdown crash and caret color regression (#43849)
add b2fd72559a7 feat(gunicorn): statsd support (#32487)
add a3aba2a16a3 ci: show the spec diff when the staleness check fails (#43912)
add 8fb5b8f2fbc feat: migrate Global Async Queries onto the Global Task Framework (#43407)
add 630982e2695 fix(dashboard): resolve chart datasources across types in access checks (#43781)
add 0ac1a6fade3 fix(versioning): keep the dashboard version-history panel inside the viewport (#43836)
add 8963613e920 fix(versioning): match version-history search on the change author name (#43835)
add 3b492233c71 fix(versioning): bound dashboard related history by the chart attach window (#43837)
add 48500822471 fix(dashboard): don't 500 on inconsistent position_json (#43575)
add 1e76fb60981 chore(deps-dev): update teradatasql requirement from >=20.0.0.66 to >=20.0.0.67 (#43925)
add 5c4c8b831f9 chore(deps): bump cryptography from 50.0.0 to 50.0.1 (#43923)
add 9e9a3d06ad8 chore(deps-dev): bump grpcio from 1.83.0 to 1.83.1 (#43922)
add 974f36f94f7 chore(deps-dev): bump google-cloud-bigquery from 3.43.0 to 3.45.0 (#43926)
add 1315f5ff6bc chore(deps): bump pydantic from 2.13.4 to 2.13.5 (#43924)
add fd489851fc7 Merge branch 'master' into feat/migrate-frontend-to-esm
No new revisions were added by this update.
Summary of changes:
.github/actions/comment-on-pr | 1 -
.github/actions/latest-tag | 1 -
.github/dependabot.yml | 30 +
.github/workflows/check-openapi-spec-drift.yml | 99 +
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/docker.yml | 25 +-
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/github-action-validator.yml | 4 +-
.github/workflows/hold-label-ci-gate.yml | 4 +-
.github/workflows/latest-release-tag.yml | 42 -
.github/workflows/license-check.yml | 2 +-
.github/workflows/pre-commit.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 2 +-
.github/workflows/superset-e2e.yml | 2 +-
.github/workflows/superset-extensions-cli.yml | 2 +-
.github/workflows/superset-frontend.yml | 4 +-
.github/workflows/superset-playwright.yml | 2 +-
.../workflows/superset-python-integrationtest.yml | 2 +-
.github/workflows/superset-python-presto-hive.yml | 2 +-
.github/workflows/superset-python-unittest.yml | 2 +-
.../workflows/superset-translations-comment.yml | 2 +-
.github/workflows/superset-translations.yml | 2 +-
.github/workflows/superset-websocket.yml | 6 +-
.gitmodules | 6 -
.pre-commit-config.yaml | 11 +-
Dockerfile | 37 +
RESOURCES/INTHEWILD.yaml | 5 +
SECURITY.md | 10 +
UPDATING.md | 188 +-
docker-compose-non-dev.yml | 35 +
docker/entrypoints/run-server.sh | 9 +
docker/entrypoints/run-websocket.sh | 44 +
docker/superset-websocket/config.example.json | 4 +-
docs/admin_docs/configuration/cache.mdx | 55 +-
.../configuration/configuring-superset.mdx | 49 +
docs/admin_docs/configuration/event-logging.mdx | 27 +-
docs/admin_docs/configuration/mcp-server.mdx | 54 +
docs/admin_docs/configuration/theming.mdx | 33 +
docs/admin_docs/security/securing_superset.mdx | 5 +-
docs/developer_docs/api.mdx | 9 -
docs/developer_docs/extensions/tasks.md | 194 +-
.../version-6.1.0/api.mdx | 552 +-
docs/docs/index.mdx | 2 +-
.../creating-your-first-dashboard.mdx | 6 +
docs/docs/using-superset/exploring-data.mdx | 14 +
docs/docs/using-superset/recently-archived.mdx | 19 +
docs/package.json | 10 +-
docs/scripts/fix-openapi-spec.py | 1 -
docs/scripts/generate-api-index.mjs | 1 -
docs/static/img/logos/veremes.svg | Bin 0 -> 5469 bytes
docs/static/resources/openapi.json | 25088 ++++++-------
docs/yarn.lock | 392 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 2 +-
helm/superset/values.yaml | 5 +-
pyproject.toml | 27 +-
requirements/base.in | 2 +-
requirements/base.txt | 16 +-
requirements/development.txt | 22 +-
scripts/check-type.js | 6 +-
scripts/{check-custom-rules.sh => oxfmt.sh} | 44 +-
.../src/superset_core/semantic_layers/types.py | 2 +
.../src/superset_core/tasks/decorators.py | 9 +
superset-core/src/superset_core/tasks/models.py | 71 +-
.../src/superset_core/tasks/subscription.py | 140 +
superset-core/src/superset_core/tasks/types.py | 87 +-
superset-embedded-sdk/package-lock.json | 4355 ++-
superset-embedded-sdk/package.json | 20 +-
superset-embedded-sdk/tsconfig.json | 2 +
superset-frontend/cypress-base/package-lock.json | 109 +-
.../eslint-plugin-i18n-strings/package.json | 2 +-
.../eslint-rules/eslint-plugin-icons/package.json | 2 +-
.../eslint-plugin-theme-colors/package.json | 2 +-
superset-frontend/eslint.config.minimal.js | 6 +-
superset-frontend/jest.config.js | 6 +-
superset-frontend/package-lock.json | 34949 +++++++++++--------
superset-frontend/package.json | 50 +-
.../packages/generator-superset/package.json | 4 +-
.../packages/superset-core/package.json | 2 +-
.../packages/superset-core/src/theme/types.ts | 6 +
.../superset-ui-chart-controls/package.json | 2 +-
.../superset-ui-chart-controls/src/types.ts | 18 +
.../src/utils/getColorFormatters.ts | 204 +-
.../test/utils/getColorFormatters.test.ts | 456 +-
.../packages/superset-ui-core/package.json | 6 +-
.../src/chart/components/StatefulChart.test.tsx | 200 +-
.../src/chart/components/StatefulChart.tsx | 78 +-
.../packages/superset-ui-core/src/chart/index.ts | 4 +-
.../src/chart/models/ChartProps.ts | 22 +-
.../components/DeleteModal/DeleteModal.test.tsx | 58 +
.../src/components/DeleteModal/index.tsx | 21 +-
.../src/components/DeleteModal/types.ts | 6 +
.../DropdownButton/DropdownButton.test.tsx | 14 +
.../DynamicEditableTitle.regression.test.tsx | 115 -
.../DynamicEditableTitle.test.tsx | 184 +-
.../src/components/DynamicEditableTitle/index.tsx | 23 +-
.../src/components/Select/AsyncSelect.test.tsx | 91 +
.../src/components/Select/AsyncSelect.tsx | 18 +-
.../src/components/Select/Select.test.tsx | 370 +
.../src/components/Select/Select.tsx | 150 +-
.../src/components/Select/types.ts | 15 +
.../TableCollection/TableCollection.test.tsx | 26 +
.../src/components/TableCollection/index.tsx | 68 +-
.../superset-ui-core/src/number-format/index.ts | 2 +
.../src/query/buildQueryContext.ts | 4 +
.../superset-ui-core/src/query/types/Query.ts | 2 +
.../src/query/types/QueryFormData.ts | 2 +
.../src/time-format/utils/stringifyTimeInput.ts | 15 +-
.../test/query/buildQueryContext.test.ts | 13 +
.../time-format/utils/stringifyTimeInput.test.ts | 58 +
.../playwright/pages/DashboardPage.ts | 19 +
.../tests/dashboard/dashboard-tabs.spec.ts | 222 +
.../tests/dashboard/dashboard-test-helpers.ts | 19 +-
.../plugin-chart-ag-grid-table/package.json | 2 +-
.../src/controlPanel.tsx | 9 +
.../src/transformProps.ts | 2 +
.../src/utils/DateWithFormatter.ts | 7 +
.../test/controlPanel.test.ts | 73 +
.../test/transformProps.test.ts | 57 +
.../test/utils/DateWithFormatter.test.ts | 60 +
.../src/MixedTimeseries/transformProps.ts | 95 +-
.../src/Timeseries/EchartsTimeseries.test.tsx | 62 +
.../src/Timeseries/EchartsTimeseries.tsx | 125 +-
.../src/Timeseries/TimeseriesLegend.tsx | 196 +
.../src/Timeseries/constants.ts | 5 +
.../src/Timeseries/transformProps.ts | 301 +-
.../src/Timeseries/transformers.ts | 345 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 28 +
.../plugins/plugin-chart-echarts/src/constants.ts | 16 +
.../plugins/plugin-chart-echarts/src/controls.tsx | 31 +-
.../plugin-chart-echarts/src/utils/formatters.ts | 150 +
.../plugin-chart-echarts/src/utils/series.ts | 164 +
.../test/MixedTimeseries/transformProps.test.ts | 199 +
.../test/Timeseries/Bar/controlPanel.test.ts | 86 +-
.../test/Timeseries/Bar/transformProps.test.ts | 240 +-
.../test/Timeseries/EchartsTimeseries.test.tsx | 223 +-
.../test/Timeseries/transformProps.test.ts | 700 +-
.../test/Timeseries/transformers.test.ts | 470 +-
.../test/Treemap/transformProps.test.ts | 44 +
.../plugin-chart-echarts/test/utils/series.test.ts | 145 +
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../plugin-chart-handlebars/src/Handlebars.tsx | 13 +-
.../src/components/Handlebars/HandlebarsViewer.tsx | 51 +-
.../test/Handlebars.test.tsx | 194 +
.../plugins/plugin-chart-partition/package.json | 2 +-
.../plugin-chart-partition/src/Partition.ts | 29 +-
.../plugins/plugin-chart-pivot-table/package.json | 4 +-
.../plugins/plugin-chart-table/package.json | 2 +-
.../src/DataTable/components/GlobalFilter.tsx | 33 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 11 +-
.../plugin-chart-table/src/controlPanel.tsx | 9 +
.../plugin-chart-table/src/transformProps.ts | 2 +
.../src/utils/DateWithFormatter.ts | 7 +
.../plugin-chart-table/test/TableChart.test.tsx | 277 +
.../plugin-chart-table/test/controlPanel.test.ts | 73 +
.../test/utils/DateWithFormatter.test.ts | 60 +
superset-frontend/spec/helpers/shim.tsx | 2 +
.../RunQueryActionButton.test.tsx | 24 +
.../components/RunQueryActionButton/index.tsx | 6 +-
.../SaveDatasetActionButton.test.tsx | 17 +
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 41 +
.../SqlLab/components/SaveDatasetModal/index.tsx | 16 +-
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 95 +-
.../src/SqlLab/components/SaveQuery/index.tsx | 17 +-
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 1 +
.../src/SqlLab/components/SqlEditor/index.tsx | 1 -
superset-frontend/src/components/Chart/Chart.tsx | 6 +
.../src/components/Chart/ChartContainer.tsx | 13 +-
.../src/components/Chart/ChartRenderer.test.tsx | 34 +
.../src/components/Chart/ChartRenderer.tsx | 33 +-
.../src/components/Chart/DrillBy/DrillByModal.tsx | 17 +-
.../Chart/DrillDetail/DrillDetailPane.test.tsx | 15 +-
.../Chart/DrillDetail/DrillDetailPane.tsx | 7 +-
.../src/components/Chart/chartAction.ts | 188 +-
.../src/components/Chart/chartActions.test.ts | 117 +-
.../DatasourceModal/DatasourceModal.test.tsx | 94 +
.../Datasource/DatasourceModal/index.tsx | 8 +-
.../DatasourceEditor/DatasourceEditor.tsx | 173 +-
.../DatasourceEditor/datasetCertification.ts | 111 +
.../DatasourceEditorDatasetCertification.test.tsx | 109 +
.../DatasourceEditorMetricFormatWarning.test.tsx | 210 +
.../tests/datasetCertification.test.ts | 169 +
.../Datasource/components/Fieldset/index.tsx | 20 +-
.../ErrorMessage/PreformattedErrorDescription.tsx} | 25 +-
.../src/components/ListView/ListView.tsx | 4 +
superset-frontend/src/components/ListView/types.ts | 2 +
.../DashboardBuilder/DashboardBuilder.tsx | 47 +-
.../dashboard/components/PropertiesModal/index.tsx | 40 +
.../sections/AsyncModeSection.test.tsx | 48 +
.../PropertiesModal/sections/AsyncModeSection.tsx | 60 +
.../sections/StylingSection.test.tsx | 112 +
.../PropertiesModal/sections/StylingSection.tsx | 95 +-
.../components/PropertiesModal/sections/index.ts | 1 +
.../ConfigModal/SharedStyles.test.tsx} | 42 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 12 +-
.../FilterBar/FilterControls/FilterValue.test.tsx | 60 +-
.../FilterBar/FilterControls/FilterValue.tsx | 48 +-
.../FiltersConfigForm/DatasetSelect.tsx | 32 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 48 +-
superset-frontend/src/dashboard/types.ts | 2 +
.../src/dashboard/util/permissionUtils.test.ts | 1 +
.../src/dashboard/util/resolveCssImports.test.ts | 210 +
.../src/dashboard/util/resolveCssImports.ts | 280 +
.../src/explore/actions/saveModalActions.test.ts | 127 +-
.../src/explore/actions/saveModalActions.ts | 53 +-
.../components/DataTablesPane/DataTablesPane.tsx | 26 +-
.../components/ResultsPaneOnDashboard.tsx | 26 +-
.../DataTablesPane/components/SamplesPane.tsx | 7 +-
.../DataTablesPane/components/useResultsPane.tsx | 7 +-
.../DataTablesPane/test/DataTablesPane.test.tsx | 18 +-
.../test/ResultsPaneOnDashboard.test.tsx | 61 +
.../DataTablesPane/test/SamplesPane.test.tsx | 3 +-
.../test/getStaleResultsTabFallback.test.ts | 2 +-
.../DataTablesPane/test/useResultsPane.test.tsx | 18 +
.../src/explore/components/DataTablesPane/utils.ts | 54 +
.../src/explore/components/SaveModal.test.tsx | 122 +-
.../src/explore/components/SaveModal.tsx | 16 +-
.../ConditionalFormattingControl.tsx | 3 +
.../FormattingPopover.tsx | 2 +
.../FormattingPopoverContent.test.tsx | 773 +-
.../FormattingPopoverContent.tsx | 332 +-
.../ConditionalFormattingControl/constants.ts | 17 +-
.../controls/ConditionalFormattingControl/types.ts | 12 +
.../controls/DateFilterControl/DateFilterLabel.tsx | 3 +-
.../tests/DateFilterLabel.test.tsx | 43 +-
.../src/explore/exploreUtils/index.ts | 18 +-
.../features/datasets/DatasetSelectLabel/index.tsx | 9 +-
.../features/datasets/fetchDatasourceList.test.ts | 75 +
.../src/features/datasets/fetchDatasourceList.ts | 113 +
superset-frontend/src/features/datasets/types.ts | 3 +
.../src/features/home/DashboardTable.test.tsx | 8 +
.../src/features/home/DashboardTable.tsx | 7 +
.../src/features/home/LanguagePicker.test.tsx | 10 +
.../src/features/home/LanguagePicker.tsx | 2 +-
superset-frontend/src/features/home/Menu.test.tsx | 14 +
superset-frontend/src/features/home/Menu.tsx | 10 +
.../src/features/home/RightMenu.test.tsx | 28 +
superset-frontend/src/features/home/RightMenu.tsx | 10 +
.../HeaderReportDropdown/index.test.tsx | 31 +
.../reports/ReportModal/ReportModal.test.tsx | 166 +
.../src/features/reports/ReportModal/actions.ts | 2 +
.../src/features/reports/ReportModal/index.tsx | 16 +-
.../features/reports/ReportModal/reducer.test.ts | 82 +-
.../src/features/reports/ReportModal/reducer.ts | 12 +-
superset-frontend/src/features/reports/types.ts | 2 +
.../src/features/tasks/LiveDuration.test.tsx | 100 +
.../src/features/tasks/LiveDuration.tsx | 57 +
.../tasks/TaskDependenciesPopover.test.tsx | 83 +
.../src/features/tasks/TaskDependenciesPopover.tsx | 141 +
.../src/features/tasks/TaskPayloadPopover.test.tsx | 74 +
.../src/features/tasks/TaskPayloadPopover.tsx | 45 +-
.../src/features/tasks/timeUtils.test.ts | 12 +-
superset-frontend/src/features/tasks/timeUtils.ts | 59 +-
superset-frontend/src/features/tasks/types.ts | 104 +-
.../versionHistory/ChartVersionPreview.test.tsx | 21 +-
.../versionHistory/ChartVersionPreview.tsx | 17 +-
.../DashboardVersionHistory.test.tsx | 55 +-
.../features/versionHistory/normalization.test.ts | 50 -
.../src/features/versionHistory/normalization.ts | 45 +-
.../components/Select/SelectFilterPlugin.test.tsx | 101 +
.../components/Select/SelectFilterPlugin.tsx | 1 +
superset-frontend/src/hooks/useTabId.test.ts | 153 +
superset-frontend/src/hooks/useTabId.ts | 166 +-
.../src/hooks/useThemeMenuItems.test.tsx | 10 +
.../src/middleware/asyncEvent.test.ts | 1316 +-
superset-frontend/src/middleware/asyncEvent.ts | 810 +-
superset-frontend/src/middleware/realtime.test.ts | 390 +
superset-frontend/src/middleware/realtime.ts | 451 +
.../ArchivedList/ArchivedDatasetPurgeModal.tsx | 216 +
.../src/pages/ArchivedList/ArchivedList.test.tsx | 200 +-
superset-frontend/src/pages/ArchivedList/index.tsx | 230 +-
superset-frontend/src/pages/ArchivedList/types.ts | 38 +
.../src/pages/ChartCreation/ChartCreation.test.tsx | 334 +-
.../src/pages/ChartCreation/index.tsx | 134 +-
.../pages/ChartList/ChartList.listview.test.tsx | 76 +-
superset-frontend/src/pages/ChartList/index.tsx | 28 +-
.../DashboardList/DashboardList.behavior.test.tsx | 30 +
.../src/pages/DashboardList/index.tsx | 8 +
.../src/pages/TaskList/TaskList.test.tsx | 24 +-
superset-frontend/src/pages/TaskList/index.tsx | 217 +-
.../src/pages/ThemeList/ThemeList.test.tsx | 227 +
superset-frontend/src/pages/ThemeList/index.tsx | 67 +-
superset-frontend/src/setup/setupFormatters.ts | 2 +-
superset-frontend/src/theme/ThemeController.ts | 121 +-
superset-frontend/src/theme/ThemeProvider.tsx | 7 +
.../src/theme/tests/ThemeController.test.ts | 332 +
.../src/theme/tests/ThemeProvider.test.tsx | 15 +
superset-frontend/src/types/Dashboard.ts | 1 +
superset-frontend/src/types/bootstrapTypes.ts | 2 +-
superset-frontend/src/utils/asyncMode.test.ts | 91 +
superset-frontend/src/utils/asyncMode.ts | 69 +
.../src/utils/navigationUtils.test.ts | 155 +
superset-frontend/src/utils/navigationUtils.ts | 31 +-
superset-frontend/src/views/CRUD/hooks.test.tsx | 334 +
superset-frontend/src/views/CRUD/hooks.ts | 129 +
superset-websocket/.oxfmtrc.json | 1 -
superset-websocket/Dockerfile | 8 +-
superset-websocket/README.md | 272 +-
superset-websocket/config.example.json | 4 +-
superset-websocket/config.test.json | 4 +-
superset-websocket/eslint.config.mjs | 50 -
{docs => superset-websocket}/oxlint.json | 41 +-
superset-websocket/package-lock.json | 2561 +-
superset-websocket/package.json | 28 +-
superset-websocket/spec/config.test.ts | 30 +
superset-websocket/spec/index.test.ts | 1155 +-
superset-websocket/src/config.ts | 76 +-
superset-websocket/src/index.ts | 778 +-
superset-websocket/utils/README.md | 6 +-
superset-websocket/utils/client-ws-app/app.js | 18 +-
superset-websocket/utils/client-ws-app/bin/www | 20 +-
.../utils/client-ws-app/package-lock.json | 76 +-
.../utils/client-ws-app/package.json | 3 +-
.../utils/client-ws-app/public/javascripts/app.js | 2 +-
.../utils/client-ws-app/routes/index.js | 26 +-
superset-websocket/utils/loadtest.js | 74 +-
superset/async_events/api.py | 179 -
superset/async_events/async_query_manager.py | 468 -
.../async_events/async_query_manager_factory.py | 35 -
superset/charts/api.py | 146 +-
superset/charts/client_processing.py | 590 +-
superset/charts/data/api.py | 177 +-
superset/charts/data/query_context_cache_loader.py | 30 -
superset/charts/schemas.py | 141 +-
superset/cli/update.py | 17 +-
superset/commands/chart/create.py | 14 +-
.../chart/data/create_async_job_command.py | 43 -
superset/commands/chart/data/get_data_command.py | 4 +
superset/commands/chart/export.py | 8 +-
superset/commands/chart/importers/v1/utils.py | 8 +-
superset/commands/chart/update.py | 41 +-
superset/commands/dashboard/export.py | 106 +-
superset/commands/dashboard/importers/v1/utils.py | 8 +-
superset/commands/dashboard/update.py | 14 +-
superset/commands/dataset/create.py | 46 +-
.../commands/deletion_retention/force_purge.py | 3 +
.../commands/deletion_retention/purge_cascade.py | 18 +-
.../commands/deletion_retention/purge_impact.py | 128 +
.../commands/deletion_retention/purge_policy.py | 20 +-
superset/commands/distributed_lock/acquire.py | 32 +-
superset/commands/distributed_lock/base.py | 17 +-
superset/commands/distributed_lock/release.py | 76 +-
superset/commands/export/models.py | 15 +-
superset/commands/importers/v1/utils.py | 29 +
superset/commands/purge.py | 115 +-
superset/commands/semantic_layer/update.py | 44 +
superset/commands/tag/delete.py | 28 +-
superset/commands/tag/exceptions.py | 12 +
superset/commands/tasks/cancel.py | 117 +-
superset/commands/tasks/exceptions.py | 7 +
superset/commands/tasks/internal_update.py | 43 +-
superset/commands/tasks/reap.py | 187 +
superset/commands/tasks/submit.py | 292 +-
superset/common/chart_data.py | 1 +
superset/common/query_context.py | 35 +-
superset/common/query_context_factory.py | 4 +
superset/common/query_context_processor.py | 213 +-
superset/common/query_object.py | 12 +-
superset/common/query_object_factory.py | 13 +-
superset/common/query_serialization.py | 131 +
superset/common/tabular_query.py | 436 +
superset/common/utils/query_cache_manager.py | 16 +-
superset/config.py | 215 +-
superset/connectors/sqla/models.py | 60 +-
superset/connectors/sqla/utils.py | 15 +-
superset/constants.py | 22 +-
superset/coordination/__init__.py | 37 +
superset/coordination/base.py | 567 +
.../cache_backend.py | 267 +-
.../rank.py => coordination/exceptions.py} | 28 +-
superset/coordination/types.py | 85 +
superset/daos/base.py | 43 +-
superset/daos/database.py | 3 +-
superset/daos/datasource.py | 6 +-
superset/daos/key_value.py | 9 +-
superset/daos/semantic_layer.py | 6 +-
superset/daos/tasks.py | 521 +-
superset/dashboards/api.py | 4 +
superset/dashboards/filters.py | 50 +-
superset/dashboards/schemas.py | 13 +-
superset/databases/filters.py | 2 +-
superset/databases/schemas.py | 2 +-
superset/datasets/api.py | 157 +-
superset/datasets/schemas.py | 54 +-
superset/datasource/api.py | 360 +-
superset/datasource/schemas.py | 119 +-
superset/db_engine_specs/__init__.py | 7 +-
superset/db_engine_specs/base.py | 48 +-
superset/db_engine_specs/gsheets.py | 17 +-
superset/db_engine_specs/postgres.py | 16 +-
superset/db_engine_specs/snowflake.py | 27 +-
superset/distributed_lock/__init__.py | 7 +-
superset/examples/birth_names.py | 55 +-
.../datasets/project_management.yaml | 2 +-
.../charts/Quarterly_Sales_By_Product_Line.yaml | 2 +-
.../charts/Revenue_by_Deal_Size.yaml | 2 +-
.../charts/Messages_per_Channel.yaml | 2 +-
.../usa_births_names/charts/Genders_by_State.yaml | 2 +-
.../charts/Top_10_Boy_Name_Share.yaml | 4 +-
.../charts/Top_10_Girl_Name_Share.yaml | 4 +-
.../examples/usa_births_names/charts/Trends.yaml | 2 +-
...op_10_Games_Proportion_of_Sales_in_Markets.yaml | 2 +-
.../Total_Sales_per_Market_Grouped_by_Genre.yaml | 2 +-
superset/examples/world_bank.py | 25 +-
.../examples/world_health/charts/Growth_Rate.yaml | 2 +-
.../world_health/charts/World_s_Pop_Growth.yaml | 2 +-
superset/explorables/base.py | 10 +
superset/extensions/__init__.py | 6 -
superset/initialization/__init__.py | 58 +-
superset/jinja_context.py | 4 +-
superset/mcp_service/dashboard/schemas.py | 9 +
.../dashboard/tool/get_dashboard_info.py | 32 +-
.../dataset/tool/create_virtual_dataset.py | 2 +
superset/mcp_service/dataset/tool/query_dataset.py | 89 +-
.../mcp_service/semantic_layer/tool/get_table.py | 91 +-
superset/mcp_service/utils/query_utils.py | 43 +-
..._7e2c9a4f1b83_create_task_dependencies_table.py | 195 +
...31c5d726ab_index_dataset_dependency_lookups.py} | 40 +-
...retire_semantic_layer_views_connections_pvms.py | 114 +
superset/models/core.py | 9 +-
superset/models/dashboard.py | 129 +-
superset/models/helpers.py | 238 +-
superset/models/slice.py | 130 +-
superset/models/sql_lab.py | 25 +-
superset/models/task_dependencies.py | 69 +
superset/models/task_subscribers.py | 38 +-
superset/models/tasks.py | 139 +-
superset/reports/api.py | 15 +-
superset/security/manager.py | 173 +-
superset/semantic_layers/api.py | 61 +-
superset/semantic_layers/mapper.py | 55 +-
superset/semantic_layers/models.py | 173 +-
superset/sql/dialects/__init__.py | 2 +
superset/sql/dialects/postgres.py | 79 +
superset/sql/dialects/starrocks.py | 813 +
superset/sql/execution/celery_task.py | 15 +-
superset/sql/execution/executor.py | 90 +-
superset/sql/metric_normalization.py | 181 +
superset/sql/parse.py | 126 +-
superset/sql_lab.py | 2 +-
superset/tasks/api.py | 110 +-
superset/tasks/async_queries.py | 499 +-
superset/tasks/context.py | 394 +-
superset/tasks/decorators.py | 326 +-
superset/tasks/dependencies.py | 126 +
superset/tasks/filters.py | 20 +-
superset/tasks/guest.py | 86 +
superset/tasks/heartbeat.py | 167 +
superset/tasks/locks.py | 84 +-
superset/tasks/manager.py | 895 +-
superset/tasks/query_cancel.py | 165 +
superset/tasks/registry.py | 36 +-
superset/tasks/scheduler.py | 297 +-
superset/tasks/schemas.py | 161 +-
superset/tasks/subscription.py | 84 +
superset/tasks/utils.py | 197 +-
superset/themes/api.py | 53 +
superset/translations/messages.pot | 33 +
superset/translations/sl/LC_MESSAGES/messages.po | 5110 +--
superset/utils/cache.py | 30 +-
superset/utils/cache_manager.py | 4 +-
superset/utils/error_sanitization.py | 22 +-
superset/utils/excel.py | 28 +-
superset/utils/feature_flag_manager.py | 64 +-
superset/utils/oauth2.py | 193 +-
superset/utils/pandas_postprocessing/__init__.py | 10 +
superset/utils/pandas_postprocessing/pivot.py | 17 +-
superset/utils/screenshot_utils.py | 331 +-
superset/utils/slack.py | 28 +-
superset/versioning/activity/orchestrator.py | 19 +-
superset/versioning/activity/queries.py | 83 +-
superset/views/base.py | 15 +-
superset/views/datasource/views.py | 96 +-
.../{mcp_service/theme => websocket}/__init__.py | 9 +-
superset/websocket/channel.py | 234 +
.../utils/__init__.py => websocket/permissions.py} | 23 +-
tests/integration_tests/async_events/api_tests.py | 210 -
tests/integration_tests/charts/api_tests.py | 157 +
tests/integration_tests/charts/commands_tests.py | 88 +-
tests/integration_tests/charts/data/api_tests.py | 131 +-
tests/integration_tests/dashboards/api_tests.py | 2 +
.../datasets/soft_delete_tests.py | 161 +-
tests/integration_tests/datasource/api_tests.py | 151 +
tests/integration_tests/datasource_tests.py | 10 +-
.../db_engine_specs/base_engine_spec_tests.py | 7 +-
.../deletion_retention/force_purge_tests.py | 33 +
tests/integration_tests/query_context_tests.py | 73 +
tests/integration_tests/reports/api_tests.py | 1 +
tests/integration_tests/sqla_models_tests.py | 59 +-
tests/integration_tests/superset_test_config.py | 1 -
tests/integration_tests/tasks/api_tests.py | 230 +
.../integration_tests/tasks/async_queries_tests.py | 155 -
.../tasks/commands/test_cancel.py | 174 +-
.../integration_tests/tasks/commands/test_reap.py | 170 +
.../tasks/commands/test_submit.py | 54 +
.../integration_tests/tasks/test_sync_join_wait.py | 6 +-
.../themes/test_theme_api_permissions.py | 55 +
tests/unit_tests/async_events/__init__.py | 16 -
.../async_events/async_query_manager_tests.py | 535 -
.../charts/data/test_empty_query_context.py | 7 +
tests/unit_tests/charts/test_chart_data_api.py | 183 +-
.../charts/test_chart_list_datasource.py | 144 +
tests/unit_tests/charts/test_client_processing.py | 609 +-
tests/unit_tests/charts/test_schemas.py | 53 +
.../test_dynamodb.py => cli/update_test.py} | 38 +-
.../chart/create_async_job_command_test.py | 51 -
tests/unit_tests/commands/chart/create_test.py | 154 +
tests/unit_tests/commands/chart/update_test.py | 104 +-
tests/unit_tests/commands/dashboard/export_test.py | 287 +-
tests/unit_tests/commands/dashboard/update_test.py | 82 +
tests/unit_tests/commands/dataset/test_create.py | 167 +-
.../deletion_retention/test_purge_impact.py | 99 +
.../unit_tests/commands/extra_asset_fields_test.py | 96 +
.../unit_tests/commands/importers/v1/utils_test.py | 102 +
.../commands/semantic_layer/update_test.py | 110 +
.../unit_tests/commands/tasks}/__init__.py | 0
.../commands/tasks/test_internal_update.py | 65 +
.../unit_tests/common/test_async_min_cache_ttl.py | 67 +
.../common/test_query_context_processor.py | 186 +-
.../common/test_query_context_processor_timing.py | 7 +-
.../unit_tests/common/test_query_object_factory.py | 23 +
.../unit_tests/common/test_query_serialization.py | 193 +
tests/unit_tests/common/test_tabular_query.py | 426 +
tests/unit_tests/connectors/sqla/models_test.py | 155 +-
tests/unit_tests/connectors/sqla/test_utils.py | 33 +
tests/unit_tests/connectors/sqla/utils_test.py | 48 +-
.../unit_tests/coordination}/__init__.py | 0
.../test_cache_backend.py | 89 +-
tests/unit_tests/coordination/test_service.py | 458 +
tests/unit_tests/daos/test_tasks.py | 424 +
tests/unit_tests/dashboards/api_test.py | 79 +
.../dashboards/semantic_view_access_test.py | 645 +
tests/unit_tests/datasets/api_tests.py | 217 +
tests/unit_tests/datasource/dao_tests.py | 43 +
tests/unit_tests/datasource/test_query_api.py | 269 +
tests/unit_tests/db_engine_specs/test_base.py | 59 +-
tests/unit_tests/db_engine_specs/test_gsheets.py | 31 +
tests/unit_tests/db_engine_specs/test_init.py | 35 +
tests/unit_tests/db_engine_specs/test_postgres.py | 66 +
tests/unit_tests/db_engine_specs/test_presto.py | 888 +
tests/unit_tests/db_engine_specs/test_redshift.py | 32 +
tests/unit_tests/db_engine_specs/test_snowflake.py | 39 +
.../distributed_lock/distributed_lock_tests.py | 243 +-
tests/unit_tests/feature_flag_test.py | 82 +
.../check_async_query_secret_test.py | 140 -
.../initialization/check_encryption_engine_test.py | 2 +-
.../initialization/check_websocket_secret_test.py | 68 +
tests/unit_tests/initialization_test.py | 1 -
tests/unit_tests/jinja_context_test.py | 31 +-
.../dashboard/test_dashboard_schemas.py | 11 +
.../dashboard/tool/test_dashboard_tools.py | 166 +
tests/unit_tests/models/core_test.py | 23 +
tests/unit_tests/models/dashboard_test.py | 571 +
tests/unit_tests/models/helpers_test.py | 674 +-
tests/unit_tests/models/slice_test.py | 84 +-
tests/unit_tests/queries/query_object_test.py | 17 +
tests/unit_tests/reports/api_test.py | 38 +-
tests/unit_tests/security/manager_test.py | 262 +
.../test_realtime_notification_permissions.py | 61 +
tests/unit_tests/semantic_layers/api_test.py | 251 +-
tests/unit_tests/semantic_layers/mapper_test.py | 51 +-
tests/unit_tests/semantic_layers/models_test.py | 400 +
.../semantic_layers/values_endpoint_test.py | 127 +
tests/unit_tests/sql/metric_normalization_tests.py | 255 +
tests/unit_tests/sql/parse_tests.py | 507 +
tests/unit_tests/subjects/test_raise_for_access.py | 22 +-
tests/unit_tests/tags/commands/delete_test.py | 104 +
tests/unit_tests/tasks/test_async_queries.py | 661 +-
tests/unit_tests/tasks/test_context.py | 92 +
tests/unit_tests/tasks/test_decorators.py | 126 +-
tests/unit_tests/tasks/test_dependencies.py | 499 +
tests/unit_tests/tasks/test_filters.py | 61 +
tests/unit_tests/tasks/test_guest.py | 127 +
tests/unit_tests/tasks/test_handlers.py | 161 +-
tests/unit_tests/tasks/test_heartbeat.py | 157 +
tests/unit_tests/tasks/test_locks.py | 111 +
tests/unit_tests/tasks/test_manager.py | 881 +-
tests/unit_tests/tasks/test_models.py | 73 +
tests/unit_tests/tasks/test_query_cancel.py | 207 +
tests/unit_tests/tasks/test_reap.py | 193 +
tests/unit_tests/tasks/test_scheduler_executor.py | 185 +
tests/unit_tests/tasks/test_schemas.py | 89 +-
tests/unit_tests/tasks/test_submit.py | 126 +
tests/unit_tests/tasks/test_subscription.py | 68 +
tests/unit_tests/tasks/test_timeout.py | 335 +-
tests/unit_tests/tasks/test_utils.py | 19 +-
tests/unit_tests/utils/cache_test.py | 45 +
tests/unit_tests/utils/oauth2_tests.py | 257 +
tests/unit_tests/utils/slack_test.py | 56 +
tests/unit_tests/utils/test_error_sanitization.py | 17 +
tests/unit_tests/utils/test_screenshot_utils.py | 468 +-
tests/unit_tests/versioning/test_activity.py | 127 +
tests/unit_tests/views/datasource/views_test.py | 157 +-
tests/unit_tests/views/test_base.py | 51 +
tests/unit_tests/views/test_error_handling.py | 56 +
.../unit_tests/websocket}/__init__.py | 0
tests/unit_tests/websocket/test_channel.py | 319 +
597 files changed, 86460 insertions(+), 44926 deletions(-)
delete mode 160000 .github/actions/comment-on-pr
delete mode 160000 .github/actions/latest-tag
create mode 100644 .github/workflows/check-openapi-spec-drift.yml
delete mode 100644 .github/workflows/latest-release-tag.yml
create mode 100755 docker/entrypoints/run-websocket.sh
create mode 100644 docs/static/img/logos/veremes.svg
copy scripts/{check-custom-rules.sh => oxfmt.sh} (55%)
create mode 100644 superset-core/src/superset_core/tasks/subscription.py
delete mode 100644 superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/DynamicEditableTitle.regression.test.tsx
create mode 100644 superset-frontend/packages/superset-ui-core/test/time-format/utils/stringifyTimeInput.test.ts
create mode 100644 superset-frontend/playwright/tests/dashboard/dashboard-tabs.spec.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/DateWithFormatter.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/TimeseriesLegend.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-handlebars/test/Handlebars.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-table/test/utils/DateWithFormatter.test.ts
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/datasetCertification.ts
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorDatasetCertification.test.tsx
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorMetricFormatWarning.test.tsx
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/datasetCertification.test.ts
copy superset-frontend/{packages/superset-ui-core/src/components/Badge/index.tsx => src/components/ErrorMessage/PreformattedErrorDescription.tsx} (65%)
create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/sections/AsyncModeSection.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/sections/AsyncModeSection.tsx
copy superset-frontend/src/dashboard/components/{resizable/ResizableContainer.test.tsx => nativeFilters/ConfigModal/SharedStyles.test.tsx} (54%)
create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.test.ts
create mode 100644 superset-frontend/src/dashboard/util/resolveCssImports.ts
create mode 100644 superset-frontend/src/explore/components/DataTablesPane/utils.ts
create mode 100644 superset-frontend/src/features/datasets/fetchDatasourceList.test.ts
create mode 100644 superset-frontend/src/features/datasets/fetchDatasourceList.ts
create mode 100644 superset-frontend/src/features/tasks/LiveDuration.test.tsx
create mode 100644 superset-frontend/src/features/tasks/LiveDuration.tsx
create mode 100644 superset-frontend/src/features/tasks/TaskDependenciesPopover.test.tsx
create mode 100644 superset-frontend/src/features/tasks/TaskDependenciesPopover.tsx
create mode 100644 superset-frontend/src/features/tasks/TaskPayloadPopover.test.tsx
create mode 100644 superset-frontend/src/hooks/useTabId.test.ts
create mode 100644 superset-frontend/src/middleware/realtime.test.ts
create mode 100644 superset-frontend/src/middleware/realtime.ts
create mode 100644 superset-frontend/src/pages/ArchivedList/ArchivedDatasetPurgeModal.tsx
create mode 100644 superset-frontend/src/utils/asyncMode.test.ts
create mode 100644 superset-frontend/src/utils/asyncMode.ts
delete mode 100644 superset-websocket/eslint.config.mjs
copy {docs => superset-websocket}/oxlint.json (89%)
delete mode 100644 superset/async_events/api.py
delete mode 100644 superset/async_events/async_query_manager.py
delete mode 100644 superset/async_events/async_query_manager_factory.py
delete mode 100644 superset/charts/data/query_context_cache_loader.py
delete mode 100644 superset/commands/chart/data/create_async_job_command.py
create mode 100644 superset/commands/deletion_retention/purge_impact.py
create mode 100644 superset/commands/tasks/reap.py
create mode 100644 superset/common/query_serialization.py
create mode 100644 superset/common/tabular_query.py
create mode 100644 superset/coordination/__init__.py
create mode 100644 superset/coordination/base.py
rename superset/{async_events => coordination}/cache_backend.py (75%)
copy superset/{utils/pandas_postprocessing/rank.py => coordination/exceptions.py} (58%)
create mode 100644 superset/coordination/types.py
create mode 100644 superset/migrations/versions/2026-08-21_12-00_7e2c9a4f1b83_create_task_dependencies_table.py
copy superset/migrations/versions/{2024-05-02_13-40_3dfd0e78650e_add_query_sql_editor_id_index.py => 2026-08-25_18-00_8f31c5d726ab_index_dataset_dependency_lookups.py} (52%)
create mode 100644 superset/migrations/versions/2026-09-03_00-00_b3e9c1a75d24_retire_semantic_layer_views_connections_pvms.py
create mode 100644 superset/models/task_dependencies.py
create mode 100644 superset/sql/dialects/postgres.py
create mode 100644 superset/sql/dialects/starrocks.py
create mode 100644 superset/sql/metric_normalization.py
create mode 100644 superset/tasks/dependencies.py
create mode 100644 superset/tasks/guest.py
create mode 100644 superset/tasks/heartbeat.py
create mode 100644 superset/tasks/query_cancel.py
create mode 100644 superset/tasks/subscription.py
copy superset/{mcp_service/theme => websocket}/__init__.py (74%)
create mode 100644 superset/websocket/channel.py
copy superset/{mcp_service/utils/__init__.py => websocket/permissions.py} (59%)
delete mode 100644 tests/integration_tests/async_events/api_tests.py
delete mode 100644 tests/integration_tests/tasks/async_queries_tests.py
create mode 100644 tests/integration_tests/tasks/commands/test_reap.py
delete mode 100644 tests/unit_tests/async_events/__init__.py
delete mode 100644 tests/unit_tests/async_events/async_query_manager_tests.py
create mode 100644 tests/unit_tests/charts/test_chart_list_datasource.py
copy tests/unit_tests/{db_engine_specs/test_dynamodb.py => cli/update_test.py} (52%)
delete mode 100644 tests/unit_tests/commands/chart/create_async_job_command_test.py
create mode 100644 tests/unit_tests/commands/chart/create_test.py
create mode 100644 tests/unit_tests/commands/dashboard/update_test.py
create mode 100644 tests/unit_tests/commands/deletion_retention/test_purge_impact.py
create mode 100644 tests/unit_tests/commands/extra_asset_fields_test.py
rename {superset/async_events => tests/unit_tests/commands/tasks}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/tasks/test_internal_update.py
create mode 100644 tests/unit_tests/common/test_async_min_cache_ttl.py
create mode 100644 tests/unit_tests/common/test_query_serialization.py
create mode 100644 tests/unit_tests/common/test_tabular_query.py
copy {scripts => tests/unit_tests/coordination}/__init__.py (100%)
rename tests/unit_tests/{async_events => coordination}/test_cache_backend.py (56%)
create mode 100644 tests/unit_tests/coordination/test_service.py
create mode 100644 tests/unit_tests/dashboards/semantic_view_access_test.py
create mode 100644 tests/unit_tests/datasource/test_query_api.py
delete mode 100644 tests/unit_tests/initialization/check_async_query_secret_test.py
create mode 100644 tests/unit_tests/initialization/check_websocket_secret_test.py
create mode 100644 tests/unit_tests/security/test_realtime_notification_permissions.py
create mode 100644 tests/unit_tests/semantic_layers/values_endpoint_test.py
create mode 100644 tests/unit_tests/sql/metric_normalization_tests.py
create mode 100644 tests/unit_tests/tasks/test_context.py
create mode 100644 tests/unit_tests/tasks/test_dependencies.py
create mode 100644 tests/unit_tests/tasks/test_guest.py
create mode 100644 tests/unit_tests/tasks/test_heartbeat.py
create mode 100644 tests/unit_tests/tasks/test_locks.py
create mode 100644 tests/unit_tests/tasks/test_models.py
create mode 100644 tests/unit_tests/tasks/test_query_cancel.py
create mode 100644 tests/unit_tests/tasks/test_reap.py
create mode 100644 tests/unit_tests/tasks/test_scheduler_executor.py
create mode 100644 tests/unit_tests/tasks/test_submit.py
create mode 100644 tests/unit_tests/tasks/test_subscription.py
copy {scripts => tests/unit_tests/websocket}/__init__.py (100%)
create mode 100644 tests/unit_tests/websocket/test_channel.py