You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jl...@apache.org on 2026/10/22 00:48:57 UTC
(superset) branch fix-bigint-chart-precision updated (00b6cc5f748 -> 1a6a2ff6c95)
This is an automated email from the ASF dual-hosted git repository.
sadpandajoe pushed a change to branch fix-bigint-chart-precision
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 00b6cc5f748 fix(charts): keep large nullable-integer dimensions exact in chart data
discard 8b4f2a90cf3 fix(exports): keep large nullable integers exact in Excel exports
discard 4b7c4444681 test(charts): add RED guard for large-integer rounding in chart-data normalization
add f8e8cfe6e43 chore(openapi): regenerate the published spec for the semantic delete 409s (#45262)
add ffee0a843f1 feat(db_engine_specs): enable MEDIAN/STDDEV_SAMP/VAR_SAMP for Databricks and Snowflake (#44627)
add 0ce9b6ca46c chore(deps): bump urllib3 to 2.8.0 and werkzeug to 3.1.9 (#45255)
add 5cf0b8c6046 test(semantic views): finish selected refreshes before test teardown (#45282)
add bbc61ac3a78 chore(deps-dev): bump the swc group across 1 directory with 2 updates (#45290)
add b411454508c chore(deps): bump the babel group across 2 directories with 5 updates (#45289)
add 37c33788f69 fix(dashboard): bind native filter datasources by type so semantic views load (#45069)
add fa0999745fb fix(explore): raise a validation error instead of asserting when an IN filter has no value (SC-124271) (#44986)
add b9709c39576 chore(deps): bump js-yaml from 5.4.2 to 5.4.3 in /docs (#45291)
add 367b6f5cbf5 chore(deps): bump maplibre-gl from 6.12.0 to 6.13.0 in /superset-frontend (#45295)
add c969ac425d6 chore(deps): bump actions/download-artifact from 8.0.1 to 8.0.2 (#45284)
add 54d2421ded3 test(bigquery): verify string-literal escaping against a real GoogleSQL engine (#44546)
add 9e4adb98717 fix(alerts): handle report filter loading states and errors (#45142)
add 96e22f4eaba fix(contour): preserve undefined unused fields (#44967)
add 9659a13ae8e docs(config): document AFTER_ASSET_CREATE hook (#44126)
add 564b85aa395 build: group Dependabot PRs for GHA refs from `actions` org (#45296)
add 8db419ce1ab feat(build): migrate custom lint rule to Oxlint (#44201)
add 6a7cfd5ba12 chore(deps): bump actions/setup-node from 7.0.0 to 7.1.0 (#45285)
add 9bd8cd9f33f chore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 (#45286)
add 1aeb8642447 chore(deps-dev): bump baseline-browser-mapping from 2.11.26 to 2.11.27 in /superset-frontend (#45299)
add 0dc57e9a9de fix(semantic-views): stop debounced refreshes after the modal unmounts (#45281)
add e6b1d766183 feat(auth): add self-service forgot-password recovery for AUTH_DB (sip-201) (#45277)
add 4c546edbd8f perf(security): resolve user_view_menu_names via role semi-join (#45303)
add f7ad2aba62f chore(deps): bump the codeql group across 1 directory with 3 updates (#45326)
add f808b982a59 fix(charts): reject query_context missing datasource/queries on save (#44549)
add 72bfc4134f2 fix(semantic-layer): classify provider errors in value suggestions (#45147)
add fed77adfee5 fix(mcp): preserve embedded guest identity during permalink lookup (#45346)
add e0e728ef764 chore(deps): bump geolib from 3.3.14 to 4.0.0 in /superset-frontend (#45328)
add 6132c019432 fix(extensions-cli): fix scaffold template dep mismatches vs. host (#45244)
add d548e8dce9c fix(filters): use manual semantic-view range bounds (#44999)
add 4b9856bfefd fix(rls): apply Public role RLS rules to anonymous users (#45333)
add 3841bc9e0ec chore(deps): bump immer from 11.1.18 to 11.1.21 in /superset-frontend (#45330)
add 81e558a6a80 chore(deps-dev): bump sqlalchemy-bigquery from 1.17.2 to 1.17.3 (#45319)
add d176d68451b chore(deps-dev): bump elasticsearch-dbapi from 0.2.13 to 0.3.0 (#45318)
add 13bd0cd9326 fix(sql): keep stop and finish outcomes consistent when they race (#45283)
add f33b030d710 fix(explore): correct HOLIDAY tooltip wording (#45276)
add d9bc4ea8580 fix(plugin-chart-pivot-table): sticky-position row labels and corner header cells (#43917)
add 2020fea4acb feat(storybook/build): generate Playwright-runnable tests from Storybook stories (#44964)
add e835d670d2e chore(deps-dev): bump prophet from 1.4.0 to 1.5.0 (#45324)
add 1aaabd8e435 fix(websocket): support Sentinel and full TLS options for Redis/Valkey (#45355)
add 3d82e3dfbcb chore(deps): bump cachetools from 7.2.0 to 7.2.1 (#45323)
add 5c5061b1c8e chore(deps-dev): bump clickhouse-connect from 1.9.0 to 1.10.0 (#45321)
add a23199762c5 fix(mypy): make UUIDMixin.uuid's nullable type resolve deterministically (#44817)
add e734cd00d43 chore(deps): bump react-syntax-highlighter from 16.1.1 to 16.1.2 in /superset-frontend (#45370)
add f2b71475ce2 chore(deps): bump @googleapis/sheets from 18.1.0 to 18.1.1 in /superset-frontend (#45369)
add 3dfb42a2937 chore(deps): bump astral-sh/setup-uv from 10.2.0 to 10.3.0 (#45368)
add 576cc9e0952 chore(deps): bump helm/chart-testing-action from 2.8.0 to 2.9.0 (#45367)
add 50d34f8aaa2 chore(deps-dev): bump syntaqlite from 0.9.0 to 0.12.1 (#45320)
add ad63b3eb7ab fix(impala): stop SQL Lab queries through the live cursor only (#45232)
add 86e186b5f60 fix(tests): stop the unit suite from retaining one Superset app per module (#45364)
add 19bb09461dc fix(examples): rewrite chart datasource references on import (#45378)
add 9c7ca9ba107 fix(docs): improve Kapa AI widget dark mode compatibility (#39102)
add 61d27b4aebe fix(sql): handle trailing comments after empty statements (#45274)
add 58b1de82815 fix(datasets): don't call physical datasets "virtual" in sync columns toast (#45376)
add 853f207c668 fix(dashboard): apply temporal x-axis cross-filters to target charts (#45310)
add c650cbd3c61 fix(import): return 422 instead of 500 for corrupt ZIP uploads (#45380)
add a9a7a35c4b4 fix(dashboard): show an access error for charts the viewer cannot read (#45398)
add 44eac5b37b2 fix(soft-delete): align dashboard card dialogs and archive permission hints (#45302)
add 21fad62645a fix(semantic-layer): resolve grain variants deterministically (#44454)
add a13af92ff34 fix(semantic-layer): return 400 for mapper validation refusals (#45292)
add a5d29a9d27d test(e2e): add a stub semantic-layer provider for Playwright (#45103)
add 84be38cfc90 chore(deps): update pygithub requirement from >=2.1.1 to >=2.10.0 (#45413)
add 31ee5719f77 fix(semantic layers): reject unknown compatibility selections (#45359)
add e336cd04c3c fix(mcp): keep refusal and rejection categories in get_chart_data (#45360)
add 5e1962e9a1d test(mcp): correct Dublin fold timestamp expectations (#45358)
add ae71281c519 fix(dashboard): resolve to a fixed point when un-clipping scrollable chart content (#44102)
add 4569608fc44 fix(pivot-table): keep MIN/MAX of non-numeric columns off the additive fast-path (#45408)
add dfd13baab0e fix(versioning): don't record dataset column and metric extra rewrites as edits (#45349)
add 4f49d24151d test(i18n): run the babel_update.sh msgcat tests on CI (#45247)
add e837c37bc29 fix(semantic-layer): raise typed rejections from the E2E stub provider (#45401)
add 4ccd337b932 chore(deps-dev): bump oracledb from 4.0.2 to 26.0.0 (#44443)
add 297449d68e7 fix(semantic layers): return 400 for ambiguous variants in compatibility name check (#45426)
add 663d691c311 fix(embedded): apply the chart-data guest redaction to samples and the legacy query endpoint (#45273)
add acdd2d27667 chore(deps-dev): bump oxlint-tsgolint in /docs (#45450)
add b8a4a5e20ad chore(deps): bump the swc group across 2 directories with 1 update (#45449)
add c812be8019f chore(deps): bump EnricoMi/publish-unit-test-result-action from 2.24.0 to 2.25.0 (#45448)
add 22654af3337 chore(deps): bump express from 5.2.1 to 5.3.0 in /superset-websocket/utils/client-ws-app (#45447)
add 118acbcde35 chore(deps): bump pydantic from 2.13.5 to 2.14.0 (#45417)
add 56ff8920385 fix(security): don't let dataset editorship substitute for data access (#45266)
add 99ecfe5801c chore(deps): bump sqlalchemy-utils from 0.42.1 to 0.43.0 (#45416)
add f0cfaff7881 fix(sql): decode async SQLExecutor results from the results backend (#45348)
add 8e6e91e4dc0 feat(semantic-layers): add the provider execution context contract (#45251)
add 53f14e7b7b1 fix(semantic-layer): refuse a chart's own filter on a column the semantic view lacks (#45294)
add 98d5fa50b4c fix(semantic-layer): validate views before creation (#45287)
add d36febc96ec fix(versioning): don't record save-path defaults as user changes (#45352)
add 5a1831000a9 fix: add dblink and pg_* state-mutating functions to SQL denylist (#45089)
add 88e92663b8f fix(semantic-layers): restore mocking compatibility after implementation became a plain property (#45501)
add 152e1e9de9a fix(dataset): convert timezone-aware values with the dataset timezone (#45344)
add 25e94d00d37 fix(pivot-table): stop the grand-total corner from silently picking one metric (#44657)
add d285a1abae8 fix(dashboards): prevent horizontal filter bar from vanishing on cross-filter (#45050) (#45051)
add 15f55686ea9 fix(dashboard): respect DASHBOARD_AUTO_REFRESH_INTERVALS configuration in refresh dropdown (#45039)
add 1e18d01d76d feat(mcp): add caller-scoped PNG chart previews (#44558)
add 9c287d989a8 feat(build): migrate to Typescript 6 (#44726)
add 7b23ddea9f6 chore(build): migrate from external `copy-webpack-plugin` to Webpack-native `output.copy` (#44965)
add 0a17a75f9a8 chore(deps): bump the storybook group across 2 directories with 4 updates (#45513)
add d5bccecf581 chore(deps): bump chromaui/action from 18.11.0 to 18.12.1 (#45512)
add 77b0fd62ea7 docs: add Plum to In the Wild (#45518)
add 3cf94c87aef chore(deps-dev): bump @types/node from 26.6.4 to 26.6.5 in /superset-embedded-sdk (#45514)
add 1df897b3bba fix(pivot-table): blank mixed-metric totals in exports and reports (#45311)
add 38353434467 fix(cache): honor disabled datasource suggestion caches (#45288)
add ad30c898f86 fix(dashboard): copy a layout that omits the source's current charts (#45472)
add 3988a771f37 fix(dataset): warn immediately when normalize_columns is toggled on (#44617)
add 3c42a68d439 test(mcp): refresh native tool inventory for PNG chart previews (#45511)
add 1811fe5167f fix(dashboard): stop Edit Properties hanging on dashboards with many charts (#45354)
add 65cfc1ed18c fix(deck.gl): set maplibre-gl 6's worker URL so vector basemaps load (#45396)
add 973ac9b8efb fix(export): honor CSV_EXPORT encoding in streaming CSV exports (#45351)
add a708a08cdb0 feat(semantic-layers): declare provider obligations and add a registration test fixture (#45393)
add 488a3c53b45 fix(soft-delete): show Recently Archived in the menu to everyone who can open it (#45523)
add 82a7ec91d6e feat(semantic-layers): apply a default chronological order for time-series queries (#45389)
add fe79ab48e93 fix(tags): make owner-tag creation safe under concurrent creates (#45498)
add e315ed365e8 test(reports): cover scheduled reports on semantic-view charts (#45526)
add 036d1dafe2c fix(semantic-layers): report async chart query validation errors as failures (#45525)
add d73c9b93398 fix(alerts): don't flag "Every minute" schedule as invalid in cron picker (#45468)
add 63c6d273616 chore(plugin-chart-ag-grid-table): remove unused useTableTheme hook (#45469)
add aa3df7caf77 fix(explore): hide empty Actual range for comparison header (#44996)
add f0b43df751a fix(dashboard): remap native filter scopes when duplicating charts on save as (#45038)
add b1fe28b5791 fix(ci): narrow nullable filters in metric_filter_test and resync oxfmt formatting (#45239)
add 875dcbb1bb0 feat(action-log): open JSON payloads in a tree modal (#45337)
add c01e784fc64 fix(ci): restore the full-repo mypy check on two semantic-layer and sqla test files (#45315)
add 293f159deaf fix(sqllab): keep the results grid header opaque when rows scroll under it (#45480)
add 25186586572 fix(chart): keep the chart on screen during a dashboard auto-refresh (#45234)
add fcff5931594 fix(sqllab): ignore a Run/Stop click whose gesture started on the other action (#45336)
add 87dc979e986 fix(table-chart): show the record count in the search box (#45497)
add ec40973ae81 fix(semantic-layer): reject SQL extras in direct mapper calls (#45534)
add ddbf152ac92 fix(dashboard): keep archived charts' membership when restoring a version (#45482)
add 208438b18b6 test(tasks): cover the embedded-guest error text on task show and list (#45533)
add 2d0203e3699 fix(plugin-chart-echarts): merge a series object in ECharts Options into every series (#45421)
add 77ded19ba5c fix(sqllab): commit the recomputed row limit before async dispatch (#45178)
add a1fd5b1f81e fix(sqllab): resolve query datasources when opening SQL Lab (#45374)
add c06005afb1e fix(dashboard): load the saved description into dashboard info (#45298)
add 2978799419e fix(models): keep NULL rows in !=, NOT LIKE and NOT ILIKE filters (#45317)
add 33687492472 test(explore): cover chart header actions, chart pills, and view container wiring (#44848)
add 304f5a38b58 test(playwright): add Featured Charts render smoke and Explore image download (#44844)
add 6842e2f76b3 test(explore): cover cartodiagram and primitive explore controls (#44850)
add c807ee7f909 fix(native-filters): keep pending removal timers when another filter is removed (#44837)
add 7ff5709882f fix(candlestick): give OHLC labels their own translatable strings (#45458)
add 0f376ba9f97 fix(semantic-layers): show per-view errors when adding semantic views (#45524)
add 190873e9832 fix(version-history): preview banner, history panel layout, scope labels and current-version marking (#45471)
add 6dc0641c91a fix(reports): keep the first column header in XLSX exports of semantic-view tables (#45527)
add 4e7e2b7390d fix(tests): narrow Optional StatementResult.data in async result tests (#45517)
add 836c0f3f95d fix(table): reset default margins on the pagination list (#45365)
add 8d3ade7e0a8 test(trino): close db_engine_spec test gaps (#45361)
add 3d902d9eb3a chore(deps): bump the security group across 2 directories with 2 updates (#45542)
add 527021d5819 chore(deps): bump react-virtualized-auto-sizer from 1.0.26 to 2.0.3 in /superset-frontend (#45197)
add c11f993af37 fix(auth): close forced-password-change redirect loop and sweep stale legacy password perms from all roles (#44857)
add 7d0e1c939ee fix(frontend): retry a failed lazy import before surfacing ChunkLoadError (#43215)
add abc1b50f65d fix(mcp): clean up nits from PNG chart preview review (#45509)
add b6ef0bf48d8 chore(tags): stop auto-generating type:/editor:/favorited_by: tags (#43471)
add cb04282f501 chore(deps): bump swagger-ui-react from 5.33.1 to 5.33.2 in /docs (#45567)
add f1d8161777c chore(deps): bump chromaui/action from 18.12.1 to 18.12.2 (#45564)
add f9aec7515b4 chore(deps): bump actions/setup-java from 6.0.1 to 6.1.0 in the gh-actions group (#45563)
add 75be8f981a6 feat(improvements): let deployments withhold assets from list queries and commands (#45451)
add f9a0d8af493 chore(deps-dev): bump oxlint from 1.87.0 to 1.88.0 in /docs (#45566)
add fa8a035fcf6 fix(mcp): stop rejecting titles that contain "data:" in prose (#45485)
add e8824351f19 fix(mcp): isolate dashboard copies and clarify chart evidence (#45504)
add cdc9430597c fix(db_engine_specs): patch oceanbase_py's dialect for SQLAlchemy 2.0 (#45507)
add 00688c7871b chore(deps-dev): update pinotdb requirement from <10.0.0,>=8.0.0 to >=9.2.2,<10.0.0 (#45414)
add 73737afbfbb chore(deps): bump pyarrow from 25.0.1 to 26.0.0 (#45412)
add 067d536e216 chore(deps-dev): bump fastmcp from 3.4.7 to 4.1.0 (#45415)
add b7bfbd365e6 chore(deps-dev): bump oxfmt in /docs (#45565)
add 2b1046959d2 chore: bump pillow, certifi and geopy pins, tidy two small code nits (#45578)
add 54aaf3ad7d7 fix(mcp): surface missing query_context warning in get_chart_data result (#45250)
add fdb22260e25 fix(number-format): make the adaptive formatters follow D3_FORMAT (#45241)
add c3279f01921 ci: skip jobs that cannot complete on forks and private mirrors (#45035)
add 385844237e6 fix(explore): preserve zero thresholds in contour controls (#44966)
add 3de22376c5c fix(dashboards): update last modified timestamp when adding chart to dashboard (#44305) (#44358)
add 77ebc0e55f3 fix(chart): keep dataset_uuid in exports when the dataset is deleted (#44347)
add 452dea81f23 chore(deps-dev): bump @playwright/test from 1.62.1 to 1.64.0 in /superset-frontend (#45371)
add bc83e3e6fdb fix(mcp): propose a matching value when a dashboard filter value is rejected (#45547)
add b129d6a4c12 fix(semantic-layer): narrow Filter|OrFilter unions in test helpers for mypy (#45268)
add ff214bdfb14 fix(sqllab): clip multi-line result values to their row (#45487)
add 62d22e0697c fix(semantic-layer): type the E2E stub filters for the full filter union (#45419)
add 5eaad449f5c fix(import): return 422 instead of 500 for unsafe ZIP import bundles (#45440)
add 676af61b1c9 fix(jinja): keep filters with 0 or false values in get_filters and fi… (#45437)
add 47358be13c1 fix(import): return 422 instead of 500 for non-UTF-8 members in import bundles (#45424)
add b4f8ca407a3 chore(deps-dev): bump vite from 8.3.1 to 8.3.5 in /superset-websocket in the security group across 1 directory (#45590)
add 7ff7f9048bf fix(semantic-layer): handle absent fetch-values predicate (#45539)
add 9ce458594fe fix(connection): encode next in the unauthorized login redirect (#45477)
add 2304d1b80f2 fix(datasets): re-check statement count after query mutation (#45453)
add fca7ec3639b test(charts): add RED guard for large-integer rounding in chart-data normalization
add f5b5d519fa9 fix(exports): keep large nullable integers exact in Excel exports
add dacf77a05a6 fix(charts): keep large nullable-integer dimensions exact in chart data
add 1a6a2ff6c95 test(charts): cover a full per-query result type inside a post-processed context
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (00b6cc5f748)
\
N -- N -- N refs/heads/fix-bigint-chart-precision (1a6a2ff6c95)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 5 +-
.github/workflows/bashlib.sh | 13 +
.github/workflows/bump-python-package.yml | 2 +-
.github/workflows/chromatic.yml | 2 +-
.github/workflows/codeql-analysis.yml | 23 +-
.github/workflows/docker.yml | 27 +-
.github/workflows/embedded-sdk-release.yml | 2 +-
.github/workflows/embedded-sdk-test.yml | 2 +-
.github/workflows/frontend-bundle-size-nightly.yml | 3 +
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/github-action-validator.yml | 16 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/pre-commit.yml | 16 +-
.github/workflows/python-nightly-canary.yml | 9 +
.github/workflows/release.yml | 2 +-
.../scripts/check-code-scanning-available.sh | 64 +
.../scripts/check-code-scanning-available.test.sh | 118 +
.github/workflows/showtime-cleanup.yml | 3 +
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-docs-verify.yml | 9 +-
.github/workflows/superset-e2e.yml | 22 +-
.github/workflows/superset-extensions-cli.yml | 2 +-
.github/workflows/superset-frontend.yml | 24 +-
.github/workflows/superset-helm-lint-test.yml | 2 +-
.../workflows/superset-python-integrationtest.yml | 2 +-
.../workflows/superset-python-unittest-report.yml | 6 +-
.github/workflows/superset-python-unittest.yml | 17 +-
.../workflows/superset-translations-comment.yml | 2 +-
.github/workflows/superset-translations.yml | 13 +-
.github/workflows/superset-websocket.yml | 2 +-
.github/workflows/tag-release.yml | 4 +-
.github/workflows/tech-debt.yml | 2 +-
.github/workflows/testcontainers.yml | 10 +-
.gitignore | 2 +
.pre-commit-config.yaml | 39 +-
RELEASING/requirements.txt | 2 +-
RESOURCES/INTHEWILD.yaml | 5 +
UPDATING.md | 291 +-
docs/admin_docs/configuration/cache.mdx | 16 +
.../configuration/configuring-superset.mdx | 79 +
docs/admin_docs/configuration/mcp-server.mdx | 82 +-
docs/admin_docs/security/security.mdx | 63 +
.../extensions/contribution-types.md | 83 +-
docs/developer_docs/extensions/development.md | 37 +
.../extensions/semantic-execution-context.md | 102 +
docs/developer_docs/extensions/semantic-filters.md | 4 +
docs/developer_docs/semantic-layer-cache-clear.md | 17 +-
docs/developer_docs/semantic-query-errors.md | 50 +-
.../creating-your-first-dashboard.mdx | 43 +-
docs/docs/using-superset/exploring-data.mdx | 49 +
docs/docs/using-superset/recently-archived.mdx | 4 +
.../using-superset/semantic-layer-connections.mdx | 6 +
.../using-superset/semantic-member-selections.mdx | 10 +
docs/docs/using-superset/version-history.mdx | 8 +-
docs/docusaurus.config.ts | 53 +-
docs/package.json | 16 +-
docs/scripts/generate-database-docs.mjs | 84 +
docs/sip/pivot-table-aggregation-parity.md | 112 +
docs/src/components/databases/DatabasePage.tsx | 27 +
docs/src/components/databases/types.ts | 6 +
docs/src/data/databases.json | 35 +-
docs/static/img/logos/plum.svg | Bin 0 -> 4215 bytes
docs/static/resources/openapi.json | 314 +-
docs/yarn.lock | 788 +-
pyproject.toml | 28 +-
requirements/base.in | 8 +-
requirements/base.txt | 24 +-
requirements/development.in | 9 +-
requirements/development.txt | 74 +-
scripts/change_detector.py | 1 +
scripts/eslint.sh | 30 -
superset-core/pyproject.toml | 5 +-
.../src/superset_core/semantic_layers/context.py | 62 +
.../src/superset_core/semantic_layers/layer.py | 45 +-
.../src/superset_core/semantic_layers/testing.py | 61 +
.../src/superset_core/semantic_layers/types.py | 42 +-
.../src/superset_core/semantic_layers/view.py | 33 +-
.../tests/semantic_layers/example_provider.py | 167 +
.../semantic_layers/test_execution_context.py | 71 +
.../tests/semantic_layers/test_registration.py | 153 +
superset-embedded-sdk/package-lock.json | 178 +-
superset-embedded-sdk/package.json | 8 +-
.../src/superset_extensions_cli/cli.py | 7 +-
.../templates/frontend/package.json.j2 | 9 +-
superset-extensions-cli/tests/test_cli_build.py | 4 +-
superset-frontend/.storybook/main.mjs | 10 +-
.../playwright.storybook-ci.config.ts} | 24 +-
superset-frontend/.storybook/setup-stories.test.ts | 156 +
superset-frontend/.storybook/setup-stories.ts | 179 +
.../external.d.ts => .storybook/stories.spec.ts} | 14 +-
.../i18n-strings/index.js} | 116 +-
.../i18n-strings}/no-eager-t-in-config.test.ts | 13 +-
.../i18n-strings}/no-template-vars.test.ts | 12 +-
.../i18n-strings}/package.json | 9 +-
.../index.ts => custom-lint-rules/icons/index.js} | 61 +-
.../icons}/no-fontawesome.test.ts | 13 +-
.../icons}/package.json | 9 +-
.../theme-colors/colors.js} | 7 +-
.../theme-colors/index.js} | 111 +-
.../theme-colors/no-literal-colors.test.ts | 81 +
.../theme-colors}/package.json | 12 +-
superset-frontend/eslint.config.minimal.js | 130 -
superset-frontend/jest.config.js | 3 +-
superset-frontend/oxlint.custom-lint-rules.mts | 121 +
superset-frontend/oxlint.json | 20 +-
superset-frontend/package-lock.json | 31386 ++++++++-----------
superset-frontend/package.json | 80 +-
.../packages/superset-core/package.json | 2 +-
.../packages/superset-core/tsconfig.json | 18 +-
.../src/operators/utils/extractExtraMetrics.ts | 4 +-
.../components/RadioButtonControl.tsx | 9 +-
.../src/utils/getTemporalColumns.ts | 4 +-
.../src/utils/metricColumnFilter.ts | 4 +-
.../superset-ui-chart-controls/tsconfig.json | 18 +-
.../packages/superset-ui-core/package.json | 6 +-
.../src/components/CronPicker/CronPicker.test.tsx | 28 +-
.../src/components/CronPicker/index.tsx | 6 +-
.../DropdownContainer/DropdownContainer.test.tsx | 28 +
.../src/components/DropdownContainer/types.ts | 4 +-
.../src/components/Loading/Loading.stories.tsx | 5 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 2 +-
.../src/components/Typography/index.tsx | 3 +-
.../src/connection/SupersetClientClass.ts | 4 +-
.../src/number-format/NumberFormatterRegistry.ts | 28 +-
.../factories/createSmartNumberFormatter.ts | 56 +-
.../test/connection/SupersetClientClass.test.ts | 5 +-
.../number-format/NumberFormatterRegistry.test.ts | 18 +
.../factories/createSmartNumberFormatter.test.ts | 14 +
.../packages/superset-ui-core/tsconfig.json | 18 +-
.../packages/superset-ui-switchboard/tsconfig.json | 18 +-
.../playwright/helpers/api/assertions.ts | 16 +-
.../playwright/helpers/api/dashboard.ts | 28 +
.../playwright/helpers/api/semanticLayer.test.ts | 65 +
.../playwright/helpers/api/semanticLayer.ts | 136 +
.../playwright/helpers/fixtures/testAssets.ts | 25 +-
superset-frontend/playwright/pages/ExplorePage.ts | 23 +-
.../playwright/tests/chart/chart-list.spec.ts | 4 +-
.../tests/dashboard/dashboard-list.spec.ts | 4 +-
.../tests/dashboard/dashboard-test-helpers.ts | 20 +-
.../tests/dashboard/featured-charts-render.spec.ts | 234 +
.../dashboard/version-history-placement.spec.ts | 39 +-
.../playwright/tests/dataset/dataset-list.spec.ts | 4 +-
.../tests/explore/explore-download-image.spec.ts | 65 +
.../semantic-view/semantic-view-dashboard.spec.ts | 204 +
.../tests/version-history/activity-log.spec.ts | 14 +-
.../src/utils/useTableTheme.ts | 42 -
.../plugin-chart-ag-grid-table/tsconfig.json | 18 +-
.../plugins/plugin-chart-calendar/tsconfig.json | 18 +-
.../src/components/OlChartMap.tsx | 18 +-
.../test/components/OlChartMap.test.tsx | 108 +
.../plugin-chart-cartodiagram/tsconfig.json | 18 +-
.../plugin-chart-cartodiagram/types/external.d.ts | 2 +
.../plugins/plugin-chart-chord/tsconfig.json | 18 +-
.../plugins/plugin-chart-country-map/tsconfig.json | 18 +-
.../src/Candlestick/constants.ts | 12 +-
.../src/Candlestick/controlPanel.tsx | 8 +-
.../src/Timeseries/EchartsTimeseries.tsx | 4 +
.../src/utils/mergeCustomEChartOptions.test.ts | 67 +
.../src/utils/mergeCustomEChartOptions.ts | 17 +
.../test/Candlestick/controlPanel.test.ts | 10 +
.../test/Candlestick/transformProps.test.ts | 17 +
.../test/Rose/buildQuery.test.ts | 12 +-
.../test/Timeseries/EchartsTimeseries.test.tsx | 6 +
.../test/Timeseries/transformProps.test.ts | 4 +
.../plugins/plugin-chart-echarts/tsconfig.json | 18 +-
.../plugins/plugin-chart-handlebars/tsconfig.json | 18 +-
.../plugins/plugin-chart-horizon/tsconfig.json | 18 +-
.../plugin-chart-paired-t-test/tsconfig.json | 18 +-
.../tsconfig.json | 18 +-
.../plugins/plugin-chart-partition/tsconfig.json | 18 +-
.../src/PivotTableChart.tsx | 2 +
.../src/plugin/buildQuery.ts | 35 +-
.../src/plugin/controlPanel.tsx | 54 +-
.../src/plugin/resultAggregation.ts | 121 +
.../src/plugin/transformProps.ts | 37 +-
.../src/plugin/utilities.ts | 42 +-
.../src/react-pivottable/Styles.ts | 98 +-
.../src/react-pivottable/TableRenderers.tsx | 106 +-
.../src/react-pivottable/utilities.ts | 739 +-
.../plugins/plugin-chart-pivot-table/src/types.ts | 1 +
.../test/PivotTableChart.test.tsx | 22 +
.../test/plugin/buildQuery.test.ts | 21 +
.../test/plugin/transformProps.test.ts | 82 +-
.../test/plugin/utilities.test.ts | 49 +-
.../test/react-pivottable/Styles.test.tsx | 328 +
.../test/react-pivottable/tableRenders.test.tsx | 90 +-
.../test/react-pivottable/utilities.test.ts | 890 +-
.../plugin-chart-pivot-table/test/testData.ts | 68 +
.../plugins/plugin-chart-pivot-table/tsconfig.json | 18 +-
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../src/MapLibre.tsx | 35 +-
.../test/MapLibre.test.tsx | 69 +-
.../plugin-chart-point-cluster-map/tsconfig.json | 16 +-
.../types/external.d.ts | 2 +
.../plugins/plugin-chart-table/src/Styles.tsx | 4 +
.../plugins/plugin-chart-table/src/TableChart.tsx | 7 +-
.../plugin-chart-table/test/TableChart.test.tsx | 129 +-
.../plugins/plugin-chart-table/tsconfig.json | 18 +-
.../plugins/plugin-chart-word-cloud/tsconfig.json | 18 +-
.../plugins/plugin-chart-world-map/tsconfig.json | 18 +-
.../plugins/preset-chart-deckgl/package.json | 2 +-
.../src/CategoricalDeckGLContainer.test.tsx | 213 +-
.../src/CategoricalDeckGLContainer.tsx | 73 +-
.../src/DeckGLContainer.test.tsx | 28 +
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 11 +
.../preset-chart-deckgl/src/Multi/Multi.tsx | 25 +-
.../preset-chart-deckgl/src/Multi/MultiV1.test.tsx | 66 +-
.../plugins/preset-chart-deckgl/src/Multi/index.ts | 2 +-
.../src/Multi/transformProps.test.ts | 43 +
.../external.d.ts => src/Multi/transformProps.ts} | 22 +-
.../preset-chart-deckgl/src/factory.test.tsx | 117 +
.../plugins/preset-chart-deckgl/src/factory.tsx | 25 +
.../preset-chart-deckgl/src/layers/Arc/Arc.test.ts | 6 +
.../src/layers/Contour/Contour.test.ts | 56 +
.../src/layers/Contour/Contour.tsx | 2 +-
.../src/layers/Polygon/Polygon.test.tsx | 100 +
.../src/layers/Polygon/Polygon.tsx | 22 +
.../plugins/preset-chart-deckgl/tsconfig.json | 16 +-
.../preset-chart-deckgl/types/external.d.ts | 2 +
.../types/global.d.ts} | 13 +-
superset-frontend/scripts/check-custom-rules.js | 6 +-
.../scripts/internal/oxlint-metrics-uploader.js | 174 +-
.../fixtures/mockSemanticDashboardDatasources.ts | 177 +
superset-frontend/spec/helpers/runStopButton.ts | 55 +
.../spec/scripts/oxlint-metrics-uploader.test.ts | 327 +-
.../src/SqlLab/actions/sqlLab.test.ts | 308 +
superset-frontend/src/SqlLab/actions/sqlLab.ts | 68 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 13 +-
.../src/SqlLab/components/ResultSet/index.tsx | 10 +-
.../RunQueryActionButton.test.tsx | 545 +-
.../components/RunQueryActionButton/index.tsx | 37 +-
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 17 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 10 +-
.../TableExploreTree/TableExploreTree.test.tsx | 13 +-
.../SqlLab/components/TableExploreTree/index.tsx | 10 +-
.../components/TablePreview/TablePreview.test.tsx | 13 +-
.../src/SqlLab/components/TablePreview/index.tsx | 8 +-
.../src/components/Chart/Chart.test.tsx | 38 +
superset-frontend/src/components/Chart/Chart.tsx | 8 +
.../Chart/ChartRenderer.refresh.test.tsx | 302 +
.../src/components/Chart/ChartRenderer.test.tsx | 19 +
.../src/components/Chart/ChartRenderer.tsx | 90 +-
.../src/components/Chart/chartAction.ts | 34 +
.../src/components/Chart/chartActions.test.ts | 62 +
.../FoldersEditor/FoldersEditor.test.tsx | 17 +-
.../components/Datasource/FoldersEditor/index.tsx | 12 +-
.../DatasourceEditor/DatasourceEditor.tsx | 45 +-
...atasourceEditorNormalizeColumnsWarning.test.tsx | 146 +
.../src/components/Datasource/utils/index.ts | 12 +-
.../src/components/Datasource/utils/utils.test.tsx | 28 +-
.../src/components/GridTable/GridTable.test.tsx | 46 +-
.../src/components/GridTable/index.tsx | 19 +-
.../src/components/JsonModal/JsonModal.test.tsx | 18 +
.../src/components/JsonModal/utils.ts | 10 +-
.../src/dashboard/actions/hydrate.test.ts | 43 +
superset-frontend/src/dashboard/actions/hydrate.ts | 32 +-
.../components/AnchorLink/AnchorLink.test.tsx | 2 +-
.../DashboardBuilder/DashboardBuilder.test.tsx | 137 +-
.../DashboardBuilder/DashboardBuilder.tsx | 155 +-
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../src/dashboard/components/Header/index.tsx | 4 +-
.../PropertiesModal.manyCharts.test.tsx | 107 +
.../dashboard/components/PropertiesModal/index.tsx | 9 +-
.../PropertiesModal/sections/AccessSection.tsx | 2 +-
.../RefreshFrequencySelect.test.tsx | 99 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 43 +-
.../src/dashboard/components/SliceAdder.test.tsx | 2 +-
.../src/dashboard/components/SliceAdder.tsx | 8 +-
.../components/gridComponents/Header/Header.tsx | 2 +-
.../DownloadMenuItems/DownloadMenuItems.test.tsx | 4 +-
.../FilterControls.overflow.test.tsx | 269 +
.../FilterBar/FilterControls/FilterControls.tsx | 4 +-
.../FilterBar/FilterControls/FilterValue.test.tsx | 73 +
.../FilterBar/FilterControls/FilterValue.tsx | 28 +-
.../ColumnSelect.requestLifetime.test.tsx | 155 +
.../FiltersConfigForm/ColumnSelect.tsx | 38 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 338 +-
.../FiltersConfigForm/getControlItemsMap.test.tsx | 19 +-
.../FiltersConfigForm/getControlItemsMap.tsx | 3 +-
.../FiltersConfigForm/utils.test.ts | 120 +-
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 48 +-
.../FiltersConfigModal.semanticDefault.test.tsx | 1173 +
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 72 +-
.../hooks/useFilterOperations.test.ts | 145 +-
.../hooks/useItemStateManager.ts | 28 +-
.../nativeFilters/FiltersConfigModal/types.ts | 4 +
.../src/dashboard/containers/DashboardPage.tsx | 5 +-
superset-frontend/src/dashboard/types.ts | 2 +-
.../util/charts/getFormDataWithExtraFilters.ts | 7 +-
.../util/getFormDataWithExtraFilters.test.ts | 49 +
superset-frontend/src/embedded/index.tsx | 5 +-
.../src/explore/actions/saveModalActions.test.ts | 212 +
.../src/explore/actions/saveModalActions.ts | 14 +
.../components/ChartPills.behavior.test.tsx | 158 +
.../DatasourcePanel.real-autosizer.test.tsx | 7 +-
.../DatasourcePanel/DatasourcePanel.test.tsx | 13 +-
.../explore/components/DatasourcePanel/index.tsx | 10 +-
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 289 +
.../ExploreChartPanel/ExploreChartPanel.test.tsx | 28 +-
.../explore/components/ExploreChartPanel/index.tsx | 6 +
.../ExploreViewContainer.test.tsx | 276 +-
.../components/ExploreViewContainer/index.tsx | 6 +-
.../components/LegacyAggregationAlert.test.tsx | 302 +
.../explore/components/LegacyAggregationAlert.tsx | 115 +
.../RunQueryButton/RunQueryButton.test.tsx | 361 +-
.../explore/components/RunQueryButton/index.tsx | 6 +-
.../controls/ComparisonRangeLabel.test.tsx | 38 +-
.../components/controls/ComparisonRangeLabel.tsx | 24 +-
.../ConditionalFormattingControl.test.tsx | 112 +-
.../ConditionalFormattingControl.tsx | 12 +-
.../ContourControl/ContourControl.test.tsx | 128 +
.../controls/ContourControl/ContourOption.tsx | 8 +-
.../ContourPopoverControl-unused-fields.test.tsx | 60 +
.../ContourControl/ContourPopoverControl.tsx | 21 +-
.../controls/CustomListItem/index.test.tsx | 48 +
.../DatasourceControl/DatasourceControl.test.tsx | 2 +-
.../components/DateFunctionTooltip.tsx | 2 +-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 69 +-
.../index.tsx | 38 +-
.../controls/FixedOrMetricControl/index.tsx | 2 +-
.../components/controls/JSEditorControl.test.tsx | 9 +-
.../components/controls/JSEditorControl.tsx | 10 +-
.../LayerConfigsControl.test.tsx | 271 +
.../MapViewControl/MapViewControl.test.tsx | 134 +
.../MapViewControl/MapViewPopoverContent.test.tsx | 78 +
.../components/controls/SliderControl.test.tsx | 71 +
.../components/controls/SwitchControl.test.tsx | 57 +
.../controls/TimeRangeControl/index.test.tsx | 55 +
.../controls/VerticalRadioControl.test.tsx | 83 +
.../controls/ViewQueryModalFooter.test.tsx | 142 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 24 +-
.../ZoomConfigControl/ZoomConfigControl.test.tsx | 195 +-
.../ZoomConfigControl/ZoomConfigsChart.test.tsx | 178 +
superset-frontend/src/explore/constants.ts | 10 +
.../exploreUtils/legacyAggregationTag.test.ts | 137 +
.../explore/exploreUtils/legacyAggregationTag.ts | 93 +
superset-frontend/src/explore/types.ts | 2 +
.../src/features/alerts/AlertReportModal.test.tsx | 1128 +
.../src/features/alerts/AlertReportModal.tsx | 338 +-
.../src/features/charts/ChartCard.test.tsx | 32 +
.../src/features/charts/ChartCard.tsx | 10 +-
.../src/features/dashboards/DashboardCard.test.tsx | 47 +-
.../src/features/dashboards/DashboardCard.tsx | 14 +-
.../src/features/home/DashboardTable.test.tsx | 58 +-
.../src/features/home/DashboardTable.tsx | 31 +-
.../src/features/home/RightMenu.test.tsx | 76 +
superset-frontend/src/features/home/RightMenu.tsx | 16 +
.../semanticViews/AddSemanticViewModal.test.tsx | 422 +-
.../semanticViews/AddSemanticViewModal.tsx | 142 +-
.../src/features/semanticViews/creationResult.ts | 90 +
superset-frontend/src/features/tags/tags.ts | 2 +-
.../src/features/versionHistory/ActionRow.tsx | 5 +-
.../versionHistory/CurrentVersionSection.tsx | 12 +-
.../DashboardVersionHistory.test.tsx | 4 +-
.../versionHistory/RelatedUpdateRow.test.tsx | 27 +
.../features/versionHistory/RelatedUpdateRow.tsx | 5 +-
.../features/versionHistory/SaveGroupItem.test.tsx | 88 +-
.../src/features/versionHistory/SaveGroupItem.tsx | 66 +-
.../versionHistory/VersionHistoryPanel.test.tsx | 139 +-
.../versionHistory/VersionHistoryPanel.tsx | 54 +-
.../src/features/versionHistory/display.test.ts | 75 +
.../src/features/versionHistory/display.ts | 61 +-
.../versionHistory/useVersionActivity.test.ts | 4 +-
.../filters/components/Range/RangeChart.test.tsx | 115 +
.../components/Range/RangeFilterPlugin.test.tsx | 475 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 195 +-
.../filters/components/Range/buildQuery.test.ts | 50 +
.../src/filters/components/Range/buildQuery.ts | 4 +
.../src/filters/components/Range/index.ts | 2 +
.../filters/components/Range/isSemanticRange.ts} | 22 +-
.../src/filters/components/Range/transformProps.ts | 2 +-
.../src/hooks/apiResources/dashboards.test.ts | 48 +
.../src/hooks/apiResources/dashboards.ts | 1 +
superset-frontend/src/hooks/useRunStopButton.ts | 181 +
.../src/pages/ActionLog/ActionLog.test.tsx | 76 +
superset-frontend/src/pages/ActionLog/index.tsx | 67 +-
.../pages/ChartList/ChartList.permissions.test.tsx | 27 +-
superset-frontend/src/pages/ChartList/index.tsx | 10 +-
.../DashboardList/DashboardList.cardview.test.tsx | 77 +-
.../DashboardList.permissions.test.tsx | 34 +-
.../src/pages/DashboardList/index.tsx | 31 +-
.../DatasetList/DatasetList.permissions.test.tsx | 30 +
superset-frontend/src/pages/DatasetList/index.tsx | 10 +-
.../pages/ForgotPassword/ForgotPassword.test.tsx | 157 +
.../src/pages/ForgotPassword/index.tsx | 168 +
superset-frontend/src/pages/Login/Login.test.tsx | 39 +
superset-frontend/src/pages/Login/index.tsx | 39 +-
.../test-runner.ts => src/pages/Login/styles.ts} | 40 +-
.../src/pages/ResetPassword/ResetPassword.test.tsx | 301 +
.../src/pages/ResetPassword/index.tsx | 285 +
superset-frontend/src/types/Dashboard.ts | 1 +
superset-frontend/src/types/bootstrapTypes.ts | 1 +
superset-frontend/src/utils/lazyWithRetry.test.tsx | 140 +
superset-frontend/src/utils/lazyWithRetry.ts | 135 +
.../src/utils/semanticViewStructure.test.ts | 50 +
.../src/utils/semanticViewStructure.ts | 2 +-
superset-frontend/src/views/routePaths.ts | 2 +
superset-frontend/src/views/routes.test.tsx | 10 +
superset-frontend/src/views/routes.tsx | 100 +-
superset-frontend/tsconfig.json | 20 +-
superset-frontend/webpack.config.js | 36 +-
superset-websocket/README.md | 25 +
superset-websocket/config.example.json | 10 +-
superset-websocket/package-lock.json | 550 +-
superset-websocket/package.json | 8 +-
superset-websocket/spec/config.test.ts | 42 +
superset-websocket/spec/index.test.ts | 161 +-
superset-websocket/src/config.ts | 75 +
superset-websocket/src/index.ts | 93 +-
.../utils/client-ws-app/package-lock.json | 147 +-
.../utils/client-ws-app/package.json | 2 +-
superset/app.py | 36 +-
superset/charts/api.py | 7 +-
superset/charts/client_processing.py | 302 +-
superset/charts/data/api.py | 48 +-
superset/charts/data/dashboard_filter_context.py | 22 +
superset/charts/filters.py | 8 +
superset/charts/schemas.py | 4 +-
superset/cli/update.py | 17 -
superset/commands/chart/create.py | 4 +
superset/commands/chart/data/get_data_command.py | 37 +-
superset/commands/chart/exceptions.py | 4 +
superset/commands/chart/export.py | 34 +-
superset/commands/chart/update.py | 19 +
superset/commands/chart/utils.py | 39 +
superset/commands/dashboard/export.py | 51 +-
superset/commands/dataset/create.py | 69 +-
superset/commands/dataset/duplicate.py | 48 +-
superset/commands/dataset/exceptions.py | 46 +
superset/commands/dataset/importers/v1/utils.py | 194 +-
superset/commands/dataset/update.py | 127 +-
superset/commands/export/assets.py | 75 +-
superset/commands/export/models.py | 18 +-
superset/commands/importers/v1/examples.py | 8 +-
superset/commands/importers/v1/utils.py | 73 +-
superset/commands/report/base.py | 73 +
superset/commands/security/exceptions.py | 15 +
superset/commands/security/password_recovery.py | 315 +
superset/commands/semantic_layer/create.py | 44 +-
superset/commands/semantic_layer/utils.py | 2 +-
superset/commands/sql_lab/execute.py | 12 +
superset/commands/streaming_export/base.py | 34 +-
superset/common/db_query_status.py | 6 +
superset/common/form_data_query_context.py | 30 +
superset/common/query_context_factory.py | 20 +-
superset/common/query_context_processor.py | 26 +-
superset/common/query_object_factory.py | 31 +-
superset/common/tags.py | 496 -
superset/common/utils/time_range_utils.py | 32 +-
superset/config.py | 73 +
superset/connectors/sqla/utils.py | 49 +-
superset/constants.py | 1 +
superset/daos/dashboard.py | 158 +-
superset/daos/key_value.py | 29 +-
superset/daos/query.py | 26 +-
superset/dashboards/api.py | 11 +-
superset/dashboards/filters.py | 7 +
superset/dashboards/schemas.py | 3 +
superset/databases/api.py | 7 +-
superset/datasets/api.py | 7 +-
superset/datasource/api.py | 165 +-
superset/db_engine_specs/README.md | 2 +
superset/db_engine_specs/base.py | 3 +
superset/db_engine_specs/databricks.py | 19 +
superset/db_engine_specs/impala.py | 48 +-
superset/db_engine_specs/lib.py | 11 +
superset/db_engine_specs/oceanbase.py | 86 +
superset/db_engine_specs/snowflake.py | 18 +-
superset/db_engine_specs/trino.py | 35 +-
superset/errors.py | 1 +
superset/exceptions.py | 27 +
superset/extensions/metadb.py | 3 +-
superset/importexport/api.py | 7 +-
superset/initialization/__init__.py | 29 +-
superset/jinja_context.py | 21 +-
superset/key_value/types.py | 7 +
superset/mcp_service/README.md | 41 +
superset/mcp_service/app.py | 4 +-
superset/mcp_service/chart/chart_helpers.py | 7 +
.../chart/prompts/create_chart_guided.py | 4 +-
.../mcp_service/chart/resources/chart_configs.py | 14 +-
superset/mcp_service/chart/schemas.py | 133 +-
superset/mcp_service/chart/tool/get_chart_data.py | 183 +-
.../mcp_service/chart/tool/get_chart_preview.py | 145 +-
superset/mcp_service/constants.py | 1 +
superset/mcp_service/dashboard/layout_placement.py | 21 +-
superset/mcp_service/dashboard/permalink.py | 6 +-
superset/mcp_service/dashboard/schemas.py | 139 +-
.../dashboard/tool/apply_dashboard_filters.py | 34 +-
.../dashboard/tool/duplicate_dashboard.py | 14 +-
.../dashboard/tool/get_dashboard_data.py | 96 +-
superset/mcp_service/dashboard_scope_sql.py | 7 +-
superset/mcp_service/database/schemas.py | 8 +-
superset/mcp_service/dataset/schemas.py | 9 +-
.../dataset/tool/update_dataset_metric.py | 2 +-
superset/mcp_service/mcp_config.py | 3 +
superset/mcp_service/middleware.py | 54 +
superset/mcp_service/report/schemas.py | 4 +
superset/mcp_service/tag/tool/get_tag_info.py | 6 +-
superset/mcp_service/tag/tool/list_tags.py | 6 +-
superset/mcp_service/utils/response_size_utils.py | 4 +
superset/mcp_service/utils/sanitization.py | 114 +-
superset/mcp_service/utils/schema_utils.py | 19 +
superset/mcp_service/utils/validation.py | 89 +-
...141b8ada7731_tag_pivot_tables_with_restored_.py | 334 +
...ep_legacy_password_view_perms_from_all_roles.py | 120 +
superset/models/core.py | 5 +-
superset/models/dashboard.py | 13 +
superset/models/helpers.py | 193 +-
superset/models/slice.py | 23 +-
superset/queries/api.py | 15 +-
superset/queries/saved_queries/api.py | 7 +-
superset/reports/api.py | 15 +-
superset/reports/filters.py | 37 +
superset/result_set.py | 5 +
superset/security/api.py | 214 +-
superset/security/manager.py | 108 +-
superset/security/password_change.py | 110 +-
superset/security/password_recovery.py | 316 +
superset/semantic_layers/api.py | 8 +-
superset/semantic_layers/cache_host.py | 19 +-
superset/semantic_layers/cache_policy.py | 14 +-
superset/semantic_layers/cache_repository.py | 14 +-
superset/semantic_layers/cache_transform.py | 17 +-
superset/semantic_layers/dimension_resolution.py | 117 +
superset/semantic_layers/exceptions.py | 11 +-
superset/semantic_layers/execution.py | 286 +
superset/semantic_layers/mapper.py | 341 +-
superset/semantic_layers/models.py | 241 +-
superset/semantic_layers/ordering.py | 59 +
superset/sql/execution/celery_task.py | 541 +-
superset/sql/execution/executor.py | 252 +-
superset/sql/execution/serialization.py | 130 +
superset/sql/execution/utils.py | 260 +
superset/sql/parse.py | 54 +-
superset/sql_lab.py | 366 +-
superset/sqllab/api.py | 4 +-
superset/subjects/utils.py | 19 +-
superset/tags/core.py | 98 +-
superset/tags/models.py | 311 +-
superset/tasks/async_queries.py | 34 +-
superset/tasks/schemas.py | 9 +
superset/themes/api.py | 7 +-
superset/translations/ar/LC_MESSAGES/messages.po | 355 +-
superset/translations/ca/LC_MESSAGES/messages.po | 329 +-
superset/translations/cs/LC_MESSAGES/messages.po | 337 +-
superset/translations/de/LC_MESSAGES/messages.po | 329 +-
superset/translations/en/LC_MESSAGES/messages.po | 311 +-
superset/translations/es/LC_MESSAGES/messages.po | 329 +-
superset/translations/fa/LC_MESSAGES/messages.po | 323 +-
superset/translations/fi/LC_MESSAGES/messages.po | 345 +-
superset/translations/fr/LC_MESSAGES/messages.po | 331 +-
superset/translations/it/LC_MESSAGES/messages.po | 351 +-
superset/translations/ja/LC_MESSAGES/messages.po | 325 +-
superset/translations/ko/LC_MESSAGES/messages.po | 338 +-
superset/translations/lv/LC_MESSAGES/messages.po | 337 +-
superset/translations/messages.pot | 309 +-
superset/translations/mi/LC_MESSAGES/messages.po | 329 +-
superset/translations/nl/LC_MESSAGES/messages.po | 323 +-
superset/translations/pl/LC_MESSAGES/messages.po | 326 +-
superset/translations/pt/LC_MESSAGES/messages.po | 351 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 323 +-
superset/translations/ro/LC_MESSAGES/messages.po | 340 +-
superset/translations/ru/LC_MESSAGES/messages.po | 338 +-
superset/translations/sk/LC_MESSAGES/messages.po | 337 +-
superset/translations/sl/LC_MESSAGES/messages.po | 345 +-
superset/translations/sr/LC_MESSAGES/messages.po | 359 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 359 +-
superset/translations/ta/LC_MESSAGES/messages.po | 329 +-
superset/translations/th/LC_MESSAGES/messages.po | 337 +-
superset/translations/tr/LC_MESSAGES/messages.po | 324 +-
superset/translations/uk/LC_MESSAGES/messages.po | 345 +-
superset/translations/zh/LC_MESSAGES/messages.po | 315 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 315 +-
superset/utils/core.py | 11 +-
superset/utils/date_parser.py | 7 +-
superset/utils/error_sanitization.py | 38 +
superset/utils/excel.py | 13 +-
superset/utils/filters.py | 111 +-
superset/utils/schema.py | 60 +
superset/utils/screenshot_utils.py | 34 +-
superset/utils/webdriver.py | 4 +-
superset/versioning/changes/shadow_queries.py | 9 +-
superset/versioning/diff.py | 124 +-
superset/versioning/restore.py | 41 +-
superset/views/api.py | 5 +
superset/views/archived_assets.py | 18 +-
superset/views/auth.py | 22 +-
superset/views/base.py | 6 +
superset/views/datasource/views.py | 80 +-
.../src/superset_e2e_semantic_stub/__init__.py | 294 +
.../semantic_stub/dist/manifest.json | 10 +
tests/integration_tests/charts/api_tests.py | 8 +-
tests/integration_tests/dashboards/api_tests.py | 119 +-
.../dashboards/version_restore_tests.py | 358 +
tests/integration_tests/datasource/api_tests.py | 237 +-
tests/integration_tests/queries/api_tests.py | 29 +-
.../security/row_level_security_tests.py | 69 +
tests/integration_tests/security_tests.py | 121 +-
tests/integration_tests/sqllab_tests.py | 29 +-
.../superset_test_config_semantic.py | 35 +-
tests/integration_tests/tagging_tests.py | 294 -
tests/integration_tests/tags/dao_tests.py | 94 +-
tests/integration_tests/tags/race_tests.py | 94 +
tests/integration_tests/tasks/api_tests.py | 78 +-
.../mypy_fixtures/__init__.py | 13 +-
tests/mypy_fixtures/uuid_mixin_nullable.py | 44 +
.../db_engine_specs/_bigquery_container.py | 79 +
.../db_engine_specs/test_bigquery.py | 183 +
tests/testcontainers/db_engine_specs/test_mysql.py | 113 +
.../db_engine_specs/test_oceanbase.py | 94 +-
.../db_engine_specs/test_postgres.py | 690 +
.../charts/commands/data/test_get_data_command.py | 63 +-
.../charts/commands/importers/v1/import_test.py | 46 +
.../charts/data/streaming_filename_test.py | 18 +-
tests/unit_tests/charts/test_client_processing.py | 822 +-
.../charts/test_exact_integer_chart_data.py | 193 +-
tests/unit_tests/charts/test_filters.py | 110 +
tests/unit_tests/charts/test_schemas.py | 51 +-
tests/unit_tests/commands/chart/create_test.py | 252 +-
tests/unit_tests/commands/chart/export_test.py | 576 +
tests/unit_tests/commands/chart/update_test.py | 266 +-
tests/unit_tests/commands/dashboard/export_test.py | 8 +-
tests/unit_tests/commands/dataset/test_create.py | 268 +-
.../unit_tests/commands/dataset/test_duplicate.py | 136 +-
tests/unit_tests/commands/dataset/update_test.py | 475 +-
.../commands/importers/v1/examples_test.py | 51 +
.../unit_tests/commands/importers/v1/utils_test.py | 233 +
tests/unit_tests/commands/report/base_test.py | 239 +
.../unit_tests/commands/report/conftest.py | 10 +-
.../commands/report/semantic_view_report_test.py | 232 +
.../commands/semantic_layer/create_test.py | 148 +-
.../commands/semantic_layer/update_test.py | 12 +-
tests/unit_tests/commands/sql_lab/test_estimate.py | 27 +
tests/unit_tests/commands/sql_lab/test_execute.py | 92 +
.../commands/streaming_export}/__init__.py | 0
.../commands/streaming_export/base_test.py | 51 +
.../common/test_query_context_factory.py | 35 +
.../common/test_query_context_processor.py | 76 +-
tests/unit_tests/common/test_time_range_utils.py | 27 +
tests/unit_tests/conftest.py | 53 +-
tests/unit_tests/connectors/sqla/utils_test.py | 26 +
tests/unit_tests/dao/dashboard_test.py | 581 +
tests/unit_tests/dao/queries_test.py | 30 +-
tests/unit_tests/dao/query_stop_isolation_test.py | 126 +
.../dao/test_copy_dashboard_legacy_ids.py | 81 +-
tests/unit_tests/dao/test_query_stop_race.py | 73 +-
tests/unit_tests/daos/test_query_dao.py | 619 +
tests/unit_tests/dashboards/datasets_test.py | 86 +
.../dashboards/semantic_view_access_test.py | 141 +-
tests/unit_tests/databases/api_test.py | 47 +-
.../datasets/commands/importers/v1/import_test.py | 608 +-
tests/unit_tests/datasource/test_compatible_api.py | 98 +
.../unit_tests/db_engine_specs/test_databricks.py | 47 +
.../test_extended_aggregations_unverified.py | 8 +-
.../db_engine_specs/test_impala_pending.py | 132 +-
tests/unit_tests/db_engine_specs/test_lib.py | 31 +-
tests/unit_tests/db_engine_specs/test_oceanbase.py | 228 +
tests/unit_tests/db_engine_specs/test_snowflake.py | 25 +
tests/unit_tests/db_engine_specs/test_trino.py | 1104 +-
tests/unit_tests/exceptions_test.py | 46 +
tests/unit_tests/importexport/api_test.py | 111 +-
tests/unit_tests/initialization_test.py | 9 +-
tests/unit_tests/jinja_context_test.py | 74 +
.../mcp_service/chart/test_bullet_chart.py | 18 +-
.../mcp_service/chart/test_bullet_tool_paths.py | 24 +-
.../mcp_service/chart/test_chart_examples.py | 48 +
.../mcp_service/chart/test_chart_helpers.py | 25 +
.../mcp_service/chart/test_chart_schemas.py | 21 +
.../chart/test_native_chart_regressions.py | 24 +
.../mcp_service/chart/test_new_chart_types.py | 26 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 693 +-
.../chart/tool/test_get_chart_preview.py | 453 +
.../common/test_list_scope_validation.py | 105 +
.../dashboard/test_dashboard_schemas.py | 39 +
.../mcp_service/dashboard/test_permalink.py | 40 +-
.../dashboard/tool/test_apply_dashboard_filters.py | 67 +-
.../dashboard/tool/test_duplicate_dashboard.py | 86 +-
.../dashboard/tool/test_get_dashboard_data.py | 507 +
.../dashboard/tool/test_list_dashboards.py | 85 +
.../mcp_service/dataset/tool/test_query_dataset.py | 44 +-
.../mcp_service/native_tool_inventory.json | 112 +-
.../test_compatibility_selection_validation.py | 9 +-
.../semantic_layer/tool/test_get_table.py | 27 +-
.../semantic_layer/tool/test_list_metrics.py | 25 +-
.../mcp_service/test_dashboard_scope_sql.py | 24 +
tests/unit_tests/mcp_service/test_mcp_config.py | 9 +
.../mcp_service/test_mcp_tool_registration.py | 23 +
tests/unit_tests/mcp_service/test_middleware.py | 5 +-
.../mcp_service/test_native_tool_surface.py | 10 +-
.../test_sanitization_warning_inputs.py | 450 +-
.../unit_tests/mcp_service/test_tool_inventory.py | 21 +-
.../mcp_service/test_validation_contract.py | 42 +-
.../mcp_service/utils/test_sanitization.py | 163 +
.../test_sweep_legacy_password_view_perms.py | 190 +
...t_tag_pivot_tables_with_restored_aggregation.py | 461 +
tests/unit_tests/models/helpers_test.py | 754 +-
tests/unit_tests/models/slice_test.py | 87 +
tests/unit_tests/models/template_params_test.py | 68 +
tests/unit_tests/models/test_multivalue_filter.py | 138 +
tests/unit_tests/reports/filters_test.py | 53 +
tests/unit_tests/scripts/change_detector_test.py | 13 +
.../scripts/translations/babel_update_test.py | 105 +-
tests/unit_tests/security/manager_test.py | 308 +-
tests/unit_tests/security/test_password_change.py | 63 +
.../unit_tests/security/test_password_recovery.py | 1073 +
.../security/test_password_recovery_rate_limit.py | 71 +
tests/unit_tests/semantic_layers/api_test.py | 123 +-
.../unit_tests/semantic_layers/cache_host_test.py | 6 +
.../semantic_layers/cache_policy_test.py | 3 +-
.../semantic_layers/cache_transform_test.py | 8 +-
tests/unit_tests/semantic_layers/conftest.py | 171 +
.../semantic_layers/default_order_test.py | 376 +
.../semantic_layers/dimension_resolution_test.py | 161 +
.../semantic_layers/e2e_stub_extension_test.py | 246 +
.../semantic_layers/execution_context_test.py | 1141 +
.../semantic_layers/grain_validation_test.py | 6 +-
.../semantic_layers/import_export_test.py | 6 +-
.../semantic_layers/integer_precision_test.py | 14 +-
tests/unit_tests/semantic_layers/mapper_test.py | 989 +-
.../semantic_layers/metadata_contract_test.py | 92 +-
.../semantic_layers/metric_filter_test.py | 209 +-
tests/unit_tests/semantic_layers/models_test.py | 407 +-
.../semantic_layers/query_errors_test.py | 373 +-
.../semantic_layers/simple_cache_clear_test.py | 106 +-
.../semantic_layers/values_endpoint_test.py | 292 +
tests/unit_tests/sql/execution/conftest.py | 6 +-
.../unit_tests/sql/execution/test_async_results.py | 1500 +
tests/unit_tests/sql/execution/test_celery_task.py | 2351 +-
tests/unit_tests/sql/execution/test_executor.py | 42 +-
tests/unit_tests/sql/execution/test_utils.py | 207 +
tests/unit_tests/sql/parse_tests.py | 110 +
tests/unit_tests/sql_lab_test.py | 1714 +
tests/unit_tests/sqllab/api_test.py | 24 +-
tests/unit_tests/tags/models_test.py | 6 +-
tests/unit_tests/tags/race_test.py | 84 +
tests/unit_tests/tasks/test_async_queries.py | 139 +-
tests/unit_tests/tasks/test_schemas.py | 62 +
tests/unit_tests/test_app_reinitialization.py | 114 +
tests/unit_tests/test_sqllab_error_stacktrace.py | 17 +-
tests/unit_tests/themes/api_test.py | 33 +
tests/unit_tests/utils/excel_tests.py | 13 +
tests/unit_tests/utils/filters_test.py | 260 +-
tests/unit_tests/utils/test_core.py | 20 +
tests/unit_tests/utils/test_error_sanitization.py | 94 +
tests/unit_tests/utils/test_schema.py | 138 +
tests/unit_tests/utils/test_screenshot_utils.py | 134 +
.../versioning/test_dataset_child_extra.py | 148 +
.../versioning/test_diff_save_defaults.py | 264 +
tests/unit_tests/versioning/test_shadow_queries.py | 79 +
tests/unit_tests/views/datasource/views_test.py | 440 +-
tests/unit_tests/views/test_archived_assets.py | 86 +
tests/unit_tests/views/test_base.py | 72 +
753 files changed, 84483 insertions(+), 26107 deletions(-)
create mode 100755 .github/workflows/scripts/check-code-scanning-available.sh
create mode 100755 .github/workflows/scripts/check-code-scanning-available.test.sh
create mode 100644 docs/developer_docs/extensions/semantic-execution-context.md
create mode 100644 docs/sip/pivot-table-aggregation-parity.md
create mode 100644 docs/static/img/logos/plum.svg
delete mode 100755 scripts/eslint.sh
create mode 100644 superset-core/src/superset_core/semantic_layers/context.py
create mode 100644 superset-core/src/superset_core/semantic_layers/testing.py
create mode 100644 superset-core/tests/semantic_layers/example_provider.py
create mode 100644 superset-core/tests/semantic_layers/test_execution_context.py
create mode 100644 superset-core/tests/semantic_layers/test_registration.py
copy superset-frontend/{plugins/plugin-chart-cartodiagram/types/external.d.ts => .storybook/playwright.storybook-ci.config.ts} (64%)
create mode 100644 superset-frontend/.storybook/setup-stories.test.ts
create mode 100644 superset-frontend/.storybook/setup-stories.ts
copy superset-frontend/{plugins/preset-chart-deckgl/types/external.d.ts => .storybook/stories.spec.ts} (77%)
rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings/index.ts => custom-lint-rules/i18n-strings/index.js} (69%)
rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings => custom-lint-rules/i18n-strings}/no-eager-t-in-config.test.ts (92%)
rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings => custom-lint-rules/i18n-strings}/no-template-vars.test.ts (88%)
rename superset-frontend/{eslint-rules/eslint-plugin-i18n-strings => custom-lint-rules/i18n-strings}/package.json (64%)
rename superset-frontend/{eslint-rules/eslint-plugin-icons/index.ts => custom-lint-rules/icons/index.js} (66%)
rename superset-frontend/{eslint-rules/eslint-plugin-icons => custom-lint-rules/icons}/no-fontawesome.test.ts (88%)
rename superset-frontend/{eslint-rules/eslint-plugin-icons => custom-lint-rules/icons}/package.json (66%)
rename superset-frontend/{eslint-rules/eslint-plugin-theme-colors/colors.ts => custom-lint-rules/theme-colors/colors.js} (97%)
rename superset-frontend/{eslint-rules/eslint-plugin-theme-colors/index.ts => custom-lint-rules/theme-colors/index.js} (67%)
create mode 100644 superset-frontend/custom-lint-rules/theme-colors/no-literal-colors.test.ts
rename superset-frontend/{eslint-rules/eslint-plugin-theme-colors => custom-lint-rules/theme-colors}/package.json (54%)
delete mode 100644 superset-frontend/eslint.config.minimal.js
create mode 100644 superset-frontend/oxlint.custom-lint-rules.mts
create mode 100644 superset-frontend/playwright/helpers/api/semanticLayer.test.ts
create mode 100644 superset-frontend/playwright/helpers/api/semanticLayer.ts
create mode 100644 superset-frontend/playwright/tests/dashboard/featured-charts-render.spec.ts
create mode 100644 superset-frontend/playwright/tests/explore/explore-download-image.spec.ts
create mode 100644 superset-frontend/playwright/tests/semantic-view/semantic-view-dashboard.spec.ts
delete mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/useTableTheme.ts
create mode 100644 superset-frontend/plugins/plugin-chart-cartodiagram/test/components/OlChartMap.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/src/plugin/resultAggregation.ts
create mode 100644 superset-frontend/plugins/plugin-chart-pivot-table/test/react-pivottable/Styles.test.tsx
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/Multi/transformProps.test.ts
copy superset-frontend/plugins/preset-chart-deckgl/{types/external.d.ts => src/Multi/transformProps.ts} (62%)
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/factory.test.tsx
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/Contour.test.ts
copy superset-frontend/plugins/{plugin-chart-point-cluster-map/types/external.d.ts => preset-chart-deckgl/types/global.d.ts} (74%)
create mode 100644 superset-frontend/spec/fixtures/mockSemanticDashboardDatasources.ts
create mode 100644 superset-frontend/spec/helpers/runStopButton.ts
create mode 100644 superset-frontend/src/components/Chart/ChartRenderer.refresh.test.tsx
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorNormalizeColumnsWarning.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/PropertiesModal/PropertiesModal.manyCharts.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.requestLifetime.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.semanticDefault.test.tsx
create mode 100644 superset-frontend/src/explore/components/ChartPills.behavior.test.tsx
create mode 100644 superset-frontend/src/explore/components/LegacyAggregationAlert.test.tsx
create mode 100644 superset-frontend/src/explore/components/LegacyAggregationAlert.tsx
create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/ContourControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl-unused-fields.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/CustomListItem/index.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/LayerConfigsControl/LayerConfigsControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/MapViewControl/MapViewPopoverContent.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/SliderControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/SwitchControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/TimeRangeControl/index.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/VerticalRadioControl.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/ZoomConfigControl/ZoomConfigsChart.test.tsx
create mode 100644 superset-frontend/src/explore/exploreUtils/legacyAggregationTag.test.ts
create mode 100644 superset-frontend/src/explore/exploreUtils/legacyAggregationTag.ts
create mode 100644 superset-frontend/src/features/semanticViews/creationResult.ts
create mode 100644 superset-frontend/src/filters/components/Range/RangeChart.test.tsx
create mode 100644 superset-frontend/src/filters/components/Range/buildQuery.test.ts
copy superset-frontend/{plugins/plugin-chart-cartodiagram/types/external.d.ts => src/filters/components/Range/isSemanticRange.ts} (64%)
create mode 100644 superset-frontend/src/hooks/useRunStopButton.ts
create mode 100644 superset-frontend/src/pages/ForgotPassword/ForgotPassword.test.tsx
create mode 100644 superset-frontend/src/pages/ForgotPassword/index.tsx
rename superset-frontend/{.storybook/test-runner.ts => src/pages/Login/styles.ts} (54%)
create mode 100644 superset-frontend/src/pages/ResetPassword/ResetPassword.test.tsx
create mode 100644 superset-frontend/src/pages/ResetPassword/index.tsx
create mode 100644 superset-frontend/src/utils/lazyWithRetry.test.tsx
create mode 100644 superset-frontend/src/utils/lazyWithRetry.ts
create mode 100644 superset/commands/security/password_recovery.py
delete mode 100644 superset/common/tags.py
create mode 100644 superset/migrations/versions/2026-09-25_00-00_141b8ada7731_tag_pivot_tables_with_restored_.py
create mode 100644 superset/migrations/versions/2026-09-30_00-00_d623a0cb6bb0_sweep_legacy_password_view_perms_from_all_roles.py
create mode 100644 superset/security/password_recovery.py
create mode 100644 superset/semantic_layers/dimension_resolution.py
create mode 100644 superset/semantic_layers/execution.py
create mode 100644 superset/semantic_layers/ordering.py
create mode 100644 superset/sql/execution/serialization.py
create mode 100644 superset/sql/execution/utils.py
create mode 100644 tests/e2e_extensions/semantic_stub/dist/backend/src/superset_e2e_semantic_stub/__init__.py
create mode 100644 tests/e2e_extensions/semantic_stub/dist/manifest.json
copy superset/commands/security/exceptions.py => tests/integration_tests/superset_test_config_semantic.py (50%)
delete mode 100644 tests/integration_tests/tagging_tests.py
create mode 100644 tests/integration_tests/tags/race_tests.py
copy RELEASING/requirements.txt => tests/mypy_fixtures/__init__.py (65%)
create mode 100644 tests/mypy_fixtures/uuid_mixin_nullable.py
create mode 100644 tests/testcontainers/db_engine_specs/_bigquery_container.py
create mode 100644 tests/testcontainers/db_engine_specs/test_bigquery.py
create mode 100644 tests/unit_tests/commands/chart/export_test.py
copy RELEASING/requirements.txt => tests/unit_tests/commands/report/conftest.py (82%)
create mode 100644 tests/unit_tests/commands/report/semantic_view_report_test.py
copy {scripts => tests/unit_tests/commands/streaming_export}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/streaming_export/base_test.py
create mode 100644 tests/unit_tests/dao/query_stop_isolation_test.py
create mode 100644 tests/unit_tests/daos/test_query_dao.py
create mode 100644 tests/unit_tests/datasource/test_compatible_api.py
create mode 100644 tests/unit_tests/exceptions_test.py
create mode 100644 tests/unit_tests/mcp_service/common/test_list_scope_validation.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_list_dashboards.py
create mode 100644 tests/unit_tests/migrations/test_sweep_legacy_password_view_perms.py
create mode 100644 tests/unit_tests/migrations/test_tag_pivot_tables_with_restored_aggregation.py
create mode 100644 tests/unit_tests/models/template_params_test.py
create mode 100644 tests/unit_tests/security/test_password_recovery.py
create mode 100644 tests/unit_tests/security/test_password_recovery_rate_limit.py
create mode 100644 tests/unit_tests/semantic_layers/default_order_test.py
create mode 100644 tests/unit_tests/semantic_layers/dimension_resolution_test.py
create mode 100644 tests/unit_tests/semantic_layers/e2e_stub_extension_test.py
create mode 100644 tests/unit_tests/semantic_layers/execution_context_test.py
create mode 100644 tests/unit_tests/sql/execution/test_async_results.py
create mode 100644 tests/unit_tests/sql/execution/test_utils.py
create mode 100644 tests/unit_tests/tags/race_test.py
create mode 100644 tests/unit_tests/test_app_reinitialization.py
create mode 100644 tests/unit_tests/utils/test_schema.py
create mode 100644 tests/unit_tests/versioning/test_dataset_child_extra.py
create mode 100644 tests/unit_tests/versioning/test_diff_save_defaults.py
create mode 100644 tests/unit_tests/views/test_archived_assets.py