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/08/13 17:26:32 UTC
(superset) branch tdd/issue-36401-bigint-stacked-total updated (6a755d4e51c -> 6a6c9a97b2f)
This is an automated email from the ASF dual-hosted git repository.
sadpandajoe pushed a change to branch tdd/issue-36401-bigint-stacked-total
in repository https://gitbox.apache.org/repos/asf/superset.git
from 6a755d4e51c fix(echarts): normalize BigInt metric values before series-sort aggregation and Stream baseline
add 4a587b85398 feat(security): actionable, request-access-aware data permission errors (#41843)
add abb6dd6e39c fix(i18n): add Tamil (ta) locale with corrected catalog path (#38962)
add db5cd1aa389 chore(i18n): update Italian messages.po translations (#38948)
add a75665b014f fix(i18n): improve Simplified Chinese translations (#42794)
add d14ab29dcb8 feat(a11y): enable ECharts aria-label (#28171)
add 8181917f790 fix: Apply timezone offset to convert local time boundaries to UTC (#37014)
add 42e4030104c feat(security): add guest user attributes and get_guest_user_attribute() macro (#33924)
add bf294cfa43d perf(dashboard): avoid query context N+1 queries (#42474)
add 3b164e42708 fix(ci): remove extraneous plugins build job (#42677)
add b4130600309 chore(deps): restore redis floor to >=5.0.0 (#42915)
add fea84e81ef9 fix(tech-debt): measure oxlint metrics against the project's ruleset (#42955)
add f8925cc7262 feat(build): reinstate `no-restricted-imports` lint rule for `lodash` (#42940)
add c09d5bf6a99 fix(helm): add missing task modules to default CeleryConfig imports (#42945)
add 3539c41dab2 chore(deps): bump cryptography from 49.0.0 to 50.0.0 (#42906)
add 7cd6c747575 chore(deps-dev): bump @types/lodash from 4.17.24 to 4.17.25 in /superset-frontend (#42974)
add 4c9bd69eb47 chore(deps): bump antd from 6.5.2 to 6.5.3 in /superset-frontend (#42973)
add ee5fb095da2 chore(deps-dev): bump baseline-browser-mapping from 2.11.8 to 2.11.11 in /superset-frontend (#42972)
add 2be726ddad3 chore(deps-dev): bump tsx from 4.23.1 to 4.23.5 in /superset-frontend (#42971)
add 10cf2e20f9f chore(deps-dev): bump eslint-plugin-jest-dom from 5.7.0 to 5.10.1 in /superset-frontend (#42970)
add d41032b70ae chore(deps): bump Kesin11/actions-timeline from 3.1.1 to 3.2.0 (#42969)
add e12818897de chore(deps): bump github/codeql-action/init from 4.37.3 to 4.37.5 (#42967)
add d7edf610a93 chore(deps-dev): bump @babel/types from 7.29.7 to 7.29.8 in /superset-frontend in the babel group (#42966)
add 73478c52745 chore(deps): bump baseline-browser-mapping from 2.11.8 to 2.11.11 in /docs (#42964)
add 346dbd6a98e chore(deps): bump js-yaml from 5.2.2 to 5.2.3 in /docs (#42963)
add 9719c7de246 chore(deps-dev): bump globals from 17.8.0 to 17.9.0 in /docs (#42962)
add 6a2e20cdb75 chore(deps): bump zizmorcore/zizmor-action from 0.6.1 to 0.6.2 (#42960)
add 916c50284b8 chore(deps): bump github/codeql-action/analyze from 4.37.3 to 4.37.5 (#42965)
add f53f634f233 chore(deps): bump antd from 6.5.2 to 6.5.3 in /docs (#42961)
add db88abe0bbc chore(deps-dev): bump globals from 17.8.0 to 17.9.0 in /superset-websocket (#42958)
add 9e2cb69a394 feat(database): identify configured database connection errors (#42996)
add b815640b8fd chore(deps): bump actions/setup-java from 5.6.0 to 5.7.0 (#42968)
add daf1718b448 fix(embedded): redact database errors in API responses to guest users (#42796)
add c02dc7780b0 docs(mcp): add update_dashboard to write-tools enumeration (#42943)
add f60370b6955 docs: document CACHE_REDIS_SOCKET_TIMEOUT/CONNECT_TIMEOUT config keys (#42947)
add a9eab4a0df1 docs: document color picker for conditional formatting rule colors (#42948)
add 4b68da82a70 docs: document number format presets, including distance/length units (#42950)
add 341ca94ba25 docs(security): document the read-only Subject REST API (#42951)
add 5bcd9cd0780 docs(exploring-data): document CSV/XLSX download in drill modals (#42952)
add 7dc2afd377b docs(cache): document native filter option cache warm-up strategy (#42953)
add 4defdbabd28 fix(dashboard): force-render virtualized charts before client-side export (#42561)
add b98e1571043 fix(sqla): preserve float precision when mixing int/float values in IN filters (#42752)
add d9ae0ec2fc4 fix(deckgl): hide legend when Legend Position is None (#42402)
add 651c046e699 fix(deckgl): remove visibility condition in deckgl fill color (#42712)
add d62a9eeda6c fix(calendar): clean up d3-tip tooltips (#41589)
add b6504eb1110 fix(sql): resolve schema/catalog-qualified table references in CTE detection (#42717)
add 9d6832c927c feat(formatting): add network throughput number formats for bits/s and bytes/s (#42437)
add 50c811280e5 fix(lru-cache): don't evict another entry when overwriting an existing key (#42409)
add 572f86c3c3a fix(deckgl): normalize legend swatch alpha channel to 0-1 for CSS rgba() (#42942)
add 776f70bf63c chore(deps): bump ioredis from 5.11.1 to 6.0.0 in /superset-websocket (#42959)
add 347774f9b82 fix(explore): stop the viz switcher from overflowing the control panel (#42911)
add 178d9c4cebd fix(explore): stacked Timeseries Bar total excludes the sort-only metric (#42881)
add 0dedc55f380 fix(dashboard): changing a theme no longer discards unsaved edits or reloads charts
add bc85f1eacf9 fix(database): resolve default schema when file upload schema is empty (#42603)
add 2eb1e042836 fix: hydrate JWT user before list API filters (#39946)
add fdfc49461fa fix(sqllab): wrap process_template() in format_sql to prevent raw UndefinedError leak (#42917)
add 4d0eeb7d86b docs: document FAB_API_SWAGGER_UI_SUPERSET_APP_ROOT config flag (#43009)
add e48512568d5 docs(dashboard): document the expand_all_slices metadata flag (#43010)
add 651f75b1e8c docs(dashboard): document native filters on semantic views (#43011)
add 0c09cf087d9 fix(reports): translate execute-now success message (#43012)
add 5f204a9af28 fix(frontend): remove any type and duplicate route in routes.tsx (#43014)
add 265269018e0 fix(mcp): require issuer-aware resolver for multi-issuer JWT, fix sanitizer input ordering (#42935)
add bfa1e775c4d fix(theming): guard ensureStaticPrefix against null/undefined input (#43019)
add d84a00f3c62 feat(dashboard): handle empty chart query context in Excel export (#42284)
add 7157b752eef fix(pie): apply percentage number format to labels (#42880)
add 34b2d3a5339 fix(rls): match null-schema datasets in predicate lookup (#41426)
add 5ee279363ca fix(mcp): reject list values for ne on relationship filters (#42944)
add 65d808a5fe8 chore(deps): bump markdown-to-jsx from 9.10.1 to 9.10.2 in /superset-frontend (#43052)
add 579011dea9d chore(deps): bump nanoid from 6.0.0 to 6.0.1 in /superset-frontend (#43050)
add 590003cbee3 chore(deps): bump baseline-browser-mapping from 2.11.11 to 2.11.12 in /docs (#43043)
add 156a59a1909 chore(deps): bump swagger-ui-react from 5.32.11 to 5.32.12 in /docs (#43041)
add a5a6f5a5b11 chore(deps): bump ws from 8.21.1 to 8.21.2 in /superset-websocket (#43036)
add 497c73e8370 chore(deps): bump github/codeql-action/init from 4.37.5 to 4.37.6 (#43044)
add 8bbf0cfc200 chore(deps-dev): bump oxlint from 1.76.0 to 1.77.0 in /superset-frontend (#43049)
add 29e8e396ee2 chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43045)
add 581fb876e46 chore(deps-dev): bump oxfmt from 0.61.0 to 0.62.0 in /docs (#43042)
add 64165fbdae7 chore(deps-dev): bump @typescript-eslint/parser from 8.65.0 to 8.66.0 in /superset-websocket (#43035)
add 47adbe31d5c chore(deps-dev): bump typescript-eslint from 8.65.0 to 8.66.0 in /superset-websocket (#43034)
add c4e8a9da909 test(explore): add end-to-end regression test for DatasourcePanel through the real AutoSizer + react-window List pipeline (#43023)
add 544756a6313 chore(deps): bump github/codeql-action/analyze from 4.37.5 to 4.37.6 (#43040)
add 553808daa35 fix(reports): make webhook notification request timeout configurable (#43018)
add e31a894be6a fix(common): remove unsupported cross join mode from left_join_df (#43016)
add bc436bacad2 chore(security): warn when legacy encryption engine is configured (#42937)
add 5099b6ffa95 fix(export): derive chart_hashes and zip from a single chart list (#42946)
add 305638e98c7 chore(deps-dev): bump baseline-browser-mapping from 2.11.11 to 2.11.12 in /superset-frontend (#43048)
add d6771e96d28 fix(core): let UnsavedChangesModal use Ant Design's automatic z-index stacking (#42548)
add aade32cad8d chore(deps-dev): bump the typescript-eslint group across 1 directory with 3 updates (#43039)
add ec6b2d2347f chore(deps-dev): bump oxfmt from 0.61.0 to 0.62.0 in /superset-websocket (#43033)
add 5767c3981da chore(deps): bump the storybook group across 1 directory with 2 updates (#43037)
add 2feb6c2bb55 refactor(deletion-retention): add declarative purge policies (#42888)
add 3cd41505398 chore(deps): bump sqlglot from 30.15.0 to 30.16.0 (#43029)
add 7b32b870e13 chore: Fix/remove hardcode of admin role (#27779)
add a3d58d12116 fix(ci): use current actions for Docker refresh (#42482)
add 998c4086867 fix(rls): return a descriptive error for duplicate rule names (#42819)
add 4c5a3356f33 fix(dashboard): redirect using sanitized slug from save response (#42853)
add 9086bab2c22 ci(e2e): stop gunicorn worker recycling mid-run; slow-test budget for mixed-chart filter spec (#42867)
add af258c21d03 fix(mixed-chart): Mixed chart secondary yaxis title position misplaced fix (#42713)
add 63a81c21256 fix(dashboard): remeasure chart description height after markdown render (#41536)
add 3ded398a1f3 fix(chart): dataset dropdown sorted by name (#42475)
add edf30c7019c chore: add logging event for drill to detail (#42563)
add 0d57c5ab502 fix(dashboard): consistently apply the datasource-access check when serializing member charts and datasets (#42716)
add f6077eeaa14 fix(dataset): validate stored column and metric expressions at query time (#42087)
add d91ca50872b perf(charts): reuse datasource in query context (#42476)
add bdf8ce69abb feat(Reports&Alerts): remove Selenium support, require Playwright (#43028)
add 52483675870 fix: verify database access before dataset repointing, and tab ownership before tab-state updates (#42936)
add 0a2cfb9fba4 chore(deps-dev): bump oxfmt from 0.61.0 to 0.62.0 in /superset-frontend (#43046)
add 8bd25b3feda chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#43038)
add a0099af88fc fix(deck.gl): dismiss custom tooltips on hover-out (#43075)
add d570335f677 fix: bind permission-sync task to user id, use per-user RLS cache sentinel on parse failure (#42938)
add 584466e02b2 fix(sql-lab): improved SQL statement parsing and validation (#42928)
add 885f00130c0 fix(sqla): drop stale main_dttm_col from dttm_cols when non-temporal (#30510) (#41964)
add 56573fa2cda feat(mcp): filter asset lists by certification (#42656)
add 8734a232d8c fix(reports): apply chart number and currency formatting to tables sent as text (#42820)
add 8e455034d05 chore(codeowners): trim stale ownership blocks, reword maps notice (#43079)
add b4f3fae2880 fix(sql): guard FORCE_LIMIT against SHOW statements (#36939) (#42588)
add 8f6587d0e67 fix(caching): sort extra_cache_keys before hashing (#34543) (#42597)
add 2c10e6260f7 fix(explore): pin and fix clipped segments in horizontal row-contribution stacked bar charts (#42610)
add 174d35380dd chore(deps-dev): bump tsx from 4.23.5 to 4.23.7 in /superset-frontend (#43083)
add d840568f3bb chore(deps): bump dompurify from 3.4.12 to 3.4.13 in /superset-frontend (#43082)
add 4354b37b963 fix(sql-lab): apply SQL_QUERY_MUTATOR to streaming exports (#40465) (#42739)
add a501fed560e fix(rls): handle same-named CTEs and quoted aliases in the SQL rewrite (#43005)
add a0d7ec9fafd fix(select): permission label search matches displayed label (#42041) (#42592)
add cc35056bc96 test(core): pin dashboard save-error toast mapping for non-JSON 403 responses (#42250)
add aefee482239 fix(GridTable): remove unused rowSelection option to silence AG Grid error #200 (#43078)
add 4baf1cf648e fix(reports): preserve Slack v1 private-channel text delivery (#42089)
add ed696b99336 test(sql): pin optimizer hint blocks survive format() round-trip (#38189) (#42733)
add 0c2f91968e6 fix: commit migration write in get_shared_value to stop recurring md5 deprecation warning (#42916)
add 01ecefd732e fix(security_manager): stop SupersetAuthView from shadowing AUTH_REMOTE_USER (#42949)
add eb7d4cba42f fix(explore): hide Superset annotation source for users without annotation access (#43006)
add 8014f782d3c feat: bump SQLAlchemy to 2.0 and flask-sqlalchemy to 3.1.1 (#42803)
add 0915a39bcbe fix(dataset): improve dataset, report, and expression validation (#42929)
add bc1a8e0858b refactor(tags): align ExportTagsCommand with ExportModelsCommand (#42339)
add 739365979d4 fix: upgrade brace-expansion to 5.0.8 (CVE-2026-14257) (#42435)
add 685f26b1bf9 fix(cache): warm native dashboard filter defaults (#43073)
add de2276225af test(playwright): pin drill-to-detail modal table height (#42406)
add 22caf221b7c fix(echarts): truncate values at Y axis bounds instead of dropping them (#42300)
add 07accd56f21 chore(deps): bump core-js from 3.49.0 to 3.50.0 in /superset-frontend (#43107)
add eefb3e38359 chore(deps-dev): bump tsx from 4.23.7 to 4.23.9 in /superset-frontend (#43106)
add 657a2a4cb2a chore(deps): bump mapbox-gl from 3.27.0 to 3.28.0 in /superset-frontend (#43105)
add 524d99159a0 chore(deps): bump immer from 11.1.15 to 11.1.16 in /superset-frontend (#43104)
add 276d6f04f53 chore(deps): bump actions/setup-java from 5.6.0 to 5.7.0 (#43102)
add 08dfca96313 fix(ci): enforce a single Alembic migration head (#42890)
add 59361581cdf fix(embedded): restore chart rendering for guest dashboards (#43095)
add e2bb33b1da1 chore(deps): bump the ag-grid group across 1 directory with 2 updates (#43103)
add 5554b892ffa fix(mcp): preserve table chart state during updates (#42655)
add 762fdccfdef fix(oauth2): log database token failures (#42644)
add e1777737a71 fix(docs): sync live component demos to the docs site's dark mode toggle (#42602)
add 6a6c9a97b2f Merge branch 'master' into tdd/issue-36401-bigint-stacked-total
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 1 +
.github/CODEOWNERS | 25 +-
.github/workflows/bashlib.sh | 19 +-
.github/workflows/check-python-deps.yml | 2 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/dependency-review.yml | 2 +-
.github/workflows/docker.yml | 2 +-
.../workflows/enforce-single-migration-head.yml | 82 +
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/github-action-validator.yml | 2 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/pre-commit.yml | 2 +-
.../workflows/scheduled-docker-image-refresh.yml | 16 +-
.github/workflows/superset-app-cli.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-e2e.yml | 2 +-
.github/workflows/superset-extensions-cli.yml | 2 +-
.github/workflows/superset-frontend.yml | 7 +-
.github/workflows/superset-helm-lint-test.yml | 2 +-
.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 +-
.github/workflows/superset-translations.yml | 2 +-
UPDATING.md | 143 +-
docs/admin_docs/configuration/alerts-reports.mdx | 64 +
docs/admin_docs/configuration/cache.mdx | 62 +
.../configuration/configuring-superset.mdx | 16 +
docs/admin_docs/configuration/sql-templating.mdx | 70 +
docs/admin_docs/security/security.mdx | 45 +
docs/docs/faq.mdx | 16 +
.../creating-your-first-dashboard.mdx | 29 +
docs/docs/using-superset/embedding.mdx | 1 +
docs/docs/using-superset/exploring-data.mdx | 7 +
.../using-superset/exporting-dashboard-data.mdx | 10 +-
docs/docs/using-superset/number-formatting.mdx | 92 +
docs/package.json | 22 +-
docs/src/components/StorybookWrapper.jsx | 67 +-
docs/static/feature-flags.json | 6 -
docs/static/resources/openapi.json | 7 +
docs/yarn.lock | 1169 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 2 +-
helm/superset/templates/_helpers.tpl | 1 +
pyproject.toml | 63 +-
pytest.ini | 20 -
requirements/base.in | 2 +-
requirements/base.txt | 44 +-
requirements/development.txt | 58 +-
scripts/change_detector.py | 1 +
superset-core/pyproject.toml | 2 +-
superset-frontend/cypress-base/package-lock.json | 15 +-
superset-frontend/cypress-base/package.json | 3 +
superset-frontend/jest.config.js | 2 +-
superset-frontend/oxlint.json | 13 +
superset-frontend/package-lock.json | 1109 +-
superset-frontend/package.json | 41 +-
.../packages/superset-core/package.json | 2 +-
.../src/theme/SupersetThemeProvider.test.tsx | 205 +
.../superset-core/src/theme/Theme.test.tsx | 78 +
.../packages/superset-core/src/theme/Theme.tsx | 129 +-
.../src/utils/D3Formatting.ts | 5 +
.../packages/superset-ui-core/package.json | 8 +-
.../src/chart/components/StatefulChart.tsx | 2 +-
.../src/chart/components/reactify.tsx | 47 +-
.../src/components/Modal/Modal.stories.tsx | 72 +
.../src/components/Select/AsyncSelect.test.tsx | 46 +
.../UnsavedChangesModal.test.tsx | 180 +-
.../src/components/UnsavedChangesModal/index.tsx | 93 +-
...ryFormatter.ts => createThroughputFormatter.ts} | 78 +-
.../superset-ui-core/src/number-format/index.ts | 1 +
.../superset-ui-core/src/utils/lruCache.ts | 7 +-
.../test/chart/components/reactify.test.tsx | 38 +-
.../factories/createThroughputFormatter.test.ts | 131 +
.../test/query/getClientErrorObject.test.ts | 26 +
.../superset-ui-core/test/utils/lruCache.test.ts | 21 +
superset-frontend/playwright/pages/EmbeddedPage.ts | 38 +-
.../tests/dashboard/drill-to-detail.spec.ts | 162 +
.../mixed-chart-dashboard-filters.spec.ts | 6 +
superset-frontend/playwright/utils/constants.ts | 2 +-
.../plugins/plugin-chart-calendar/src/Calendar.ts | 15 +-
.../plugin-chart-calendar/src/ReactCalendar.tsx | 9 +-
.../plugin-chart-calendar/src/tooltip.ts} | 2 +-
.../src/vendor/cal-heatmap.ts | 13 +-
.../test/ReactCalendar.test.tsx | 585 +
.../plugin-chart-calendar/test/tooltip.test.ts | 136 +
.../src/MixedTimeseries/transformProps.ts | 22 +-
.../plugin-chart-echarts/src/Pie/transformProps.ts | 11 +-
.../src/Timeseries/transformProps.ts | 151 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 6 +
.../plugin-chart-echarts/src/utils/series.ts | 12 +-
.../test/MixedTimeseries/transformProps.test.ts | 52 +
.../test/Pie/transformProps.test.ts | 20 +
.../test/Timeseries/transformProps.test.ts | 354 +
.../plugin-chart-echarts/test/utils/series.test.ts | 34 +
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../plugins/plugin-chart-pivot-table/package.json | 2 +-
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../src/components/Legend.test.tsx | 66 +-
.../preset-chart-deckgl/src/components/Legend.tsx | 21 +-
.../src/layers/Polygon/Polygon.test.tsx | 72 +-
.../preset-chart-deckgl/src/layers/common.test.ts | 27 +
.../preset-chart-deckgl/src/layers/common.tsx | 15 +-
.../src/utilities/Shared_DeckGL.test.ts | 55 +-
.../src/utilities/Shared_DeckGL.tsx | 6 +-
.../scripts/oxlint-metrics-uploader.js | 17 +-
superset-frontend/scripts/po2json.sh | 6 +-
.../Chart/DrillDetail/DrillDetailModal.test.tsx | 35 +
.../Chart/DrillDetail/DrillDetailModal.tsx | 20 +-
.../src/components/CrudThemeProvider.test.tsx | 63 +
.../src/components/CrudThemeProvider.tsx | 92 +-
.../src/components/DynamicPlugins/index.tsx | 1 +
.../DatasourceSecurityAccessErrorMessage.test.tsx | 135 +
.../DatasourceSecurityAccessErrorMessage.tsx | 159 +
.../src/components/ErrorMessage/index.tsx | 1 +
.../src/components/GridTable/index.tsx | 1 -
.../src/dashboard/actions/dashboardState.test.ts | 141 +
.../src/dashboard/actions/dashboardState.ts | 9 +-
.../components/gridComponents/Chart/Chart.test.tsx | 180 +-
.../components/gridComponents/Chart/Chart.tsx | 34 +-
.../components/gridComponents/Row/Row.test.tsx | 59 +
.../components/gridComponents/Row/Row.tsx | 50 +-
superset-frontend/src/dashboard/constants.ts | 13 +
.../src/dashboard/reducers/dashboardState.test.ts | 49 +
.../src/dashboard/reducers/dashboardState.ts | 2 +-
.../src/dashboard/util/permissionUtils.test.ts | 54 +
.../src/dashboard/util/permissionUtils.ts | 7 +-
.../DatasourcePanel.real-autosizer.test.tsx | 128 +
.../AnnotationLayer.subdirectory.test.tsx | 1 +
.../AnnotationLayer.test.tsx | 147 +-
.../AnnotationLayerControl/AnnotationLayer.tsx | 90 +-
.../controls/AnnotationLayerControl/index.test.tsx | 52 +
.../controls/AnnotationLayerControl/index.tsx | 15 +-
.../components/controls/SelectControl.test.tsx | 36 +
.../explore/components/controls/ViewQueryModal.tsx | 2 +-
.../components/controls/VizTypeControl/index.tsx | 2 +-
.../UploadDataModel/UploadDataModal.test.tsx | 28 +-
.../features/databases/UploadDataModel/index.tsx | 10 +-
.../src/features/roles/RoleFormItems.test.tsx | 43 +-
.../src/features/roles/RoleFormItems.tsx | 12 +
superset-frontend/src/logger/LogUtils.ts | 2 +
.../src/pages/ChartCreation/ChartCreation.test.tsx | 59 +
.../src/pages/ChartCreation/index.tsx | 2 +
superset-frontend/src/setup/setupErrorMessages.ts | 9 +
.../src/setup/setupFormatters.test.ts | 22 +
superset-frontend/src/setup/setupFormatters.ts | 6 +
superset-frontend/src/utils/assetUrl.test.ts | 10 +
superset-frontend/src/utils/assetUrl.ts | 10 +-
superset-frontend/src/utils/downloadAsImage.tsx | 17 +
superset-frontend/src/utils/downloadAsPdf.ts | 12 +-
superset-frontend/src/utils/downloadUtils.test.ts | 252 +
superset-frontend/src/utils/downloadUtils.ts | 197 +
superset-frontend/src/utils/softDeleteCopy.ts | 2 +-
superset-frontend/src/views/routes.tsx | 5 +-
superset-websocket/package-lock.json | 333 +-
superset-websocket/package.json | 12 +-
superset/charts/client_processing.py | 468 +-
superset/charts/data/api.py | 8 +-
superset/cli/export_example.py | 2 +-
superset/commands/chart/export.py | 24 +-
superset/commands/chart/warm_up_cache.py | 3 +-
superset/commands/dashboard/export.py | 17 +-
superset/commands/database/oauth2.py | 23 +-
superset/commands/database/sync_permissions.py | 19 +-
superset/commands/database/uploaders/base.py | 24 +-
superset/commands/database/validate_sql.py | 12 +
superset/commands/dataset/duplicate.py | 2 +-
superset/commands/dataset/update.py | 122 +-
.../commands/deletion_retention/purge_cascade.py | 278 +-
.../commands/deletion_retention/purge_policy.py | 1213 ++
superset/commands/export/assets.py | 6 +-
superset/commands/importers/v1/examples.py | 2 +-
superset/commands/report/alert.py | 31 +
superset/commands/report/base.py | 58 +-
superset/commands/report/create.py | 2 +
superset/commands/report/exceptions.py | 32 +
superset/commands/report/execute.py | 230 +-
superset/commands/report/slack_upgrade.py | 225 +
superset/commands/report/update.py | 13 +
superset/commands/security/create.py | 43 +-
superset/commands/security/update.py | 57 +-
superset/commands/sql_lab/estimate.py | 22 +-
superset/commands/streaming_export/base.py | 24 +-
superset/commands/tag/export.py | 86 +-
superset/common/form_data_query_context.py | 356 +
superset/common/query_context_factory.py | 8 +-
superset/common/query_object.py | 16 +
superset/common/query_object_factory.py | 4 +-
superset/common/utils/dataframe_utils.py | 7 +-
superset/config.py | 93 +-
superset/connectors/sqla/models.py | 240 +-
superset/daos/base.py | 19 +-
superset/daos/dashboard.py | 9 +
superset/daos/dataset.py | 2 +-
superset/daos/security.py | 20 +-
superset/dashboards/api.py | 55 +-
superset/databases/api.py | 7 +-
superset/databases/error_provenance.py | 51 +
superset/databases/schemas.py | 18 +
superset/databases/utils.py | 43 +-
superset/db_engine_specs/base.py | 26 +-
superset/db_engine_specs/clickhouse.py | 24 +-
superset/db_engine_specs/couchbase.py | 6 +-
superset/db_engine_specs/databend.py | 24 +-
superset/db_engine_specs/databricks.py | 46 +-
superset/db_engine_specs/duckdb.py | 14 +-
superset/db_engine_specs/postgres.py | 7 +-
superset/db_engine_specs/snowflake.py | 28 +-
superset/exceptions.py | 13 +-
superset/extensions/__init__.py | 14 +-
superset/initialization/__init__.py | 80 +-
superset/jinja_context.py | 188 +-
superset/key_value/shared_entries.py | 1 +
superset/mcp_service/PRODUCTION.md | 7 +
superset/mcp_service/SECURITY.md | 7 +
superset/mcp_service/app.py | 10 +-
superset/mcp_service/auth.py | 27 +-
superset/mcp_service/chart/chart_utils.py | 18 +-
superset/mcp_service/chart/compile.py | 28 +-
superset/mcp_service/chart/preview_utils.py | 30 +-
superset/mcp_service/chart/schemas.py | 35 +
superset/mcp_service/chart/tool/list_charts.py | 14 +-
superset/mcp_service/chart/tool/update_chart.py | 178 +-
superset/mcp_service/dataset/schemas.py | 14 +
superset/mcp_service/dataset/tool/list_datasets.py | 13 +-
superset/mcp_service/mcp_config.py | 49 +
superset/mcp_service/mcp_core.py | 38 +-
superset/mcp_service/screenshot/__init__.py | 19 +-
.../mcp_service/screenshot/pooled_screenshot.py | 492 -
.../mcp_service/screenshot/webdriver_config.py | 143 -
superset/mcp_service/screenshot/webdriver_pool.py | 437 -
superset/mcp_service/utils/sanitization.py | 60 +-
...8-07-26_11-10_c82ee8a39623_add_implicit_tags.py | 18 +-
...-08_01-17_e96dbf2cfef0_datasource_cluster_fk.py | 4 +-
...57699a813e_add_tables_relation_to_row_level_.py | 6 +-
...828ac4e_add_rls_filter_type_and_grouping_key.py | 2 +-
...654_fix_data_access_permissions_for_virtual_.py | 2 +-
...b56500de1855_add_uuid_column_to_import_mixin.py | 5 +-
...2fdb_add_granularity_to_charts_where_missing.py | 2 +-
...8_09-13_c501b7c653a3_add_missing_uuid_column.py | 5 +-
...14-38_a9422eeaae74_new_dataset_models_take_2.py | 5 +-
superset/models/core.py | 37 +-
superset/models/helpers.py | 265 +-
superset/models/sql_types/presto_sql_types.py | 28 +-
superset/reports/api.py | 6 +-
superset/reports/notifications/base.py | 6 +
superset/reports/notifications/exceptions.py | 4 +
superset/reports/notifications/slack.py | 132 +-
.../notifications/slack_channel_resolver.py | 94 +
superset/reports/notifications/slack_mixin.py | 21 +
superset/reports/notifications/slack_transport.py | 310 +
superset/reports/notifications/slackv2.py | 225 +-
superset/reports/notifications/webhook.py | 18 +-
superset/row_level_security/api.py | 4 +
superset/security/api.py | 3 +
superset/security/guest_token.py | 1 +
superset/security/manager.py | 185 +-
superset/sql/parse.py | 422 +-
superset/sqllab/api.py | 20 +
superset/sqllab/sqllab_execution_context.py | 39 +
superset/tags/core.py | 56 +-
superset/tasks/async_queries.py | 5 +-
superset/tasks/cache.py | 45 +-
superset/tasks/context.py | 14 +-
superset/tasks/export_dashboard_excel.py | 183 +-
superset/tasks/manager.py | 7 +-
superset/tasks/slack.py | 16 +-
superset/translations/it/LC_MESSAGES/messages.po | 2662 +--
superset/translations/ta/LC_MESSAGES/messages.po | 18359 +++++++++++++++++++
superset/translations/zh/LC_MESSAGES/messages.po | 5906 +++---
superset/utils/core.py | 28 +-
superset/utils/decorators.py | 25 +-
superset/utils/error_sanitization.py | 177 +
superset/utils/log.py | 60 +-
superset/utils/machine_auth.py | 33 +-
superset/utils/number_format.py | 607 +
superset/utils/oauth2.py | 36 +-
superset/utils/rls.py | 66 +-
superset/utils/screenshots.py | 58 +-
superset/utils/slack.py | 597 +-
superset/utils/sqlalchemy_events.py | 103 +
superset/utils/webdriver.py | 668 +-
superset/views/base.py | 1 +
superset/views/base_api.py | 75 +-
superset/views/core.py | 5 +
superset/views/database/validators.py | 22 +-
superset/views/datasource/views.py | 22 +-
superset/views/error_handling.py | 16 +-
superset/views/sql_lab/views.py | 6 +
superset/views/utils.py | 26 +-
tests/integration_tests/base_tests.py | 11 +
tests/integration_tests/celery_tests.py | 16 +
tests/integration_tests/charts/api_tests.py | 78 +
tests/integration_tests/dashboards/api_tests.py | 46 +-
.../dashboards/soft_delete_tests.py | 7 +-
tests/integration_tests/databases/api_tests.py | 50 +-
.../databases/commands/upload_test.py | 17 +-
tests/integration_tests/datasets/api_tests.py | 40 +-
tests/integration_tests/datasource_tests.py | 3 -
.../db_engine_specs/hive_tests.py | 4 +-
.../db_engine_specs/presto_tests.py | 4 +-
.../deletion_retention/purge_performance_tests.py | 259 +
.../deletion_retention/purge_tests.py | 110 +-
tests/integration_tests/model_tests.py | 25 +-
tests/integration_tests/reports/alert_tests.py | 5 +
tests/integration_tests/reports/commands_tests.py | 549 +-
tests/integration_tests/security/api_tests.py | 168 +
.../security/row_level_security_tests.py | 53 +
tests/integration_tests/security_tests.py | 182 +
tests/integration_tests/sql_lab/api_tests.py | 30 +-
tests/integration_tests/sql_lab/commands_tests.py | 18 +-
tests/integration_tests/sqla_models_tests.py | 16 +-
tests/integration_tests/superset_test_config.py | 18 +
tests/integration_tests/thumbnails_tests.py | 113 +-
.../integration_tests/utils/machine_auth_tests.py | 56 +-
.../integration_tests/versioning/id_reuse_tests.py | 2 +-
tests/unit_tests/charts/test_chart_data_api.py | 107 +
tests/unit_tests/charts/test_client_processing.py | 737 +-
.../chart/streaming_export_command_test.py | 46 +
.../commands/chart/warm_up_cache_test.py | 24 +-
tests/unit_tests/commands/databases/oauth2_test.py | 42 +
.../databases/sync_permissions_identity_test.py | 140 +
.../commands/databases/sync_permissions_test.py | 10 +-
tests/unit_tests/commands/databases/update_test.py | 4 +-
.../commands/databases/upload_command_test.py | 136 +-
.../commands/databases/validate_sql_test.py | 5 +
.../unit_tests/commands/dataset/test_duplicate.py | 18 +-
tests/unit_tests/commands/dataset/update_test.py | 200 +
.../commands/deletion_retention}/__init__.py | 0
.../deletion_retention/test_purge_policy.py | 570 +
tests/unit_tests/commands/export_test.py | 4 +-
.../commands/importers/v1/examples_test.py | 18 +-
tests/unit_tests/commands/report/alert_test.py | 5 +
tests/unit_tests/commands/report/base_test.py | 92 +
tests/unit_tests/commands/report/execute_test.py | 1333 +-
tests/unit_tests/commands/report/update_test.py | 6 +
tests/unit_tests/commands/security/rls_test.py | 170 +-
.../sql_lab/streaming_export_command_test.py | 120 +
tests/unit_tests/commands/sql_lab/test_estimate.py | 72 +-
.../common/test_form_data_query_context.py | 570 +
.../common/test_query_context_factory.py | 22 +
tests/unit_tests/connectors/sqla/models_test.py | 578 +-
.../daos/test_base_relationship_filters.py | 49 +-
tests/unit_tests/databases/api_test.py | 84 +
.../unit_tests/databases/error_provenance_test.py | 250 +
tests/unit_tests/databases/filters_test.py | 2 +-
tests/unit_tests/databases/oauth2_api_test.py | 275 +
tests/unit_tests/db_engine_specs/test_base.py | 4 +-
tests/unit_tests/db_engine_specs/test_postgres.py | 21 +
tests/unit_tests/db_engine_specs/test_snowflake.py | 40 +-
tests/unit_tests/db_engine_specs/test_trino.py | 40 +-
tests/unit_tests/extensions/test_sqlalchemy.py | 18 +-
.../initialization/check_encryption_engine_test.py | 88 +
tests/unit_tests/jinja_context_test.py | 1132 ++
.../key_value/test_shared_entries_migration.py | 40 +
tests/unit_tests/mcp_service/chart/test_compile.py | 40 +
.../mcp_service/chart/test_preview_utils.py | 12 +
.../mcp_service/chart/tool/test_get_chart_data.py | 4 +-
.../mcp_service/chart/tool/test_list_charts.py | 65 +
.../mcp_service/chart/tool/test_update_chart.py | 317 +
.../dashboard/tool/test_dashboard_generation.py | 19 +
.../mcp_service/dataset/tool/test_dataset_tools.py | 55 +-
.../mcp_service/test_auth_user_resolution.py | 52 +-
.../test_mcp_multi_issuer_identity_binding.py | 201 +
.../mcp_service/test_pooled_screenshot.py | 22 +-
.../utils/test_sanitization_unicode_ordering.py | 192 +
.../test_add_implicit_tags_mapper_isolation.py} | 25 +-
tests/unit_tests/models/core_test.py | 98 +-
tests/unit_tests/models/helpers_test.py | 100 +
.../unit_tests/models/test_time_filter_timezone.py | 205 +
.../models/test_virtual_dataset_format.py | 34 +
tests/unit_tests/queries/query_object_test.py | 67 +
.../reports/notifications/slack_tests.py | 1665 +-
.../reports/notifications/webhook_tests.py | 54 +
.../scheduled_docker_image_refresh_test.py | 65 +
tests/unit_tests/security/manager_test.py | 110 +
.../security/test_embedded_guest_chart_access.py | 185 +
.../security/test_permission_instructions_link.py | 181 +
tests/unit_tests/sql/parse_tests.py | 648 +-
tests/unit_tests/sql_lab_execution_context.py | 46 +
tests/unit_tests/sql_lab_test.py | 98 +-
tests/unit_tests/sqllab/api_test.py | 46 +
tests/unit_tests/tasks/test_async_queries.py | 41 +
tests/unit_tests/tasks/test_cache.py | 51 +-
.../tasks/test_export_dashboard_excel.py | 442 +-
tests/unit_tests/tasks/test_slack.py | 75 +
tests/unit_tests/utils/number_format_test.py | 562 +
tests/unit_tests/utils/oauth2_tests.py | 104 +-
tests/unit_tests/utils/rls_test.py | 225 +
tests/unit_tests/utils/screenshot_test.py | 81 +-
tests/unit_tests/utils/slack_test.py | 793 +-
tests/unit_tests/utils/test_core.py | 72 +
tests/unit_tests/utils/test_decorators.py | 60 +-
.../unit_tests/utils/test_encrypt_cbc_iv_reuse.py | 80 +
tests/unit_tests/utils/test_error_sanitization.py | 178 +
.../utils/test_playwright_migration_working.py | 199 -
tests/unit_tests/utils/webdriver_test.py | 554 +-
tests/unit_tests/views/datasource/views_test.py | 184 +
tests/unit_tests/views/test_error_handling.py | 78 +-
.../views/test_sql_lab_tab_state_views.py | 129 +
tests/unit_tests/views/test_utils.py | 85 +-
402 files changed, 52590 insertions(+), 11905 deletions(-)
create mode 100644 .github/workflows/enforce-single-migration-head.yml
create mode 100644 docs/docs/using-superset/number-formatting.mdx
create mode 100644 superset-frontend/packages/superset-core/src/theme/SupersetThemeProvider.test.tsx
copy superset-frontend/packages/superset-ui-core/src/number-format/factories/{createMemoryFormatter.ts => createThroughputFormatter.ts} (51%)
create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/factories/createThroughputFormatter.test.ts
create mode 100644 superset-frontend/playwright/tests/dashboard/drill-to-detail.spec.ts
copy superset-frontend/{packages/superset-ui-chart-controls/src/ace-builds.d.ts => plugins/plugin-chart-calendar/src/tooltip.ts} (91%)
create mode 100644 superset-frontend/plugins/plugin-chart-calendar/test/ReactCalendar.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-calendar/test/tooltip.test.ts
create mode 100644 superset-frontend/src/components/ErrorMessage/DatasourceSecurityAccessErrorMessage.test.tsx
create mode 100644 superset-frontend/src/components/ErrorMessage/DatasourceSecurityAccessErrorMessage.tsx
create mode 100644 superset-frontend/src/explore/components/DatasourcePanel/DatasourcePanel.real-autosizer.test.tsx
create mode 100644 superset-frontend/src/explore/components/controls/AnnotationLayerControl/index.test.tsx
create mode 100644 superset-frontend/src/utils/downloadUtils.test.ts
create mode 100644 superset-frontend/src/utils/downloadUtils.ts
create mode 100644 superset/commands/deletion_retention/purge_policy.py
create mode 100644 superset/commands/report/slack_upgrade.py
create mode 100644 superset/common/form_data_query_context.py
create mode 100644 superset/databases/error_provenance.py
delete mode 100644 superset/mcp_service/screenshot/pooled_screenshot.py
delete mode 100644 superset/mcp_service/screenshot/webdriver_config.py
delete mode 100644 superset/mcp_service/screenshot/webdriver_pool.py
create mode 100644 superset/reports/notifications/slack_channel_resolver.py
create mode 100644 superset/reports/notifications/slack_transport.py
create mode 100644 superset/translations/ta/LC_MESSAGES/messages.po
create mode 100644 superset/utils/error_sanitization.py
create mode 100644 superset/utils/number_format.py
create mode 100644 superset/utils/sqlalchemy_events.py
create mode 100644 tests/integration_tests/deletion_retention/purge_performance_tests.py
create mode 100644 tests/unit_tests/commands/databases/sync_permissions_identity_test.py
copy {scripts => tests/unit_tests/commands/deletion_retention}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/deletion_retention/test_purge_policy.py
create mode 100644 tests/unit_tests/common/test_form_data_query_context.py
create mode 100644 tests/unit_tests/databases/error_provenance_test.py
create mode 100644 tests/unit_tests/databases/oauth2_api_test.py
create mode 100644 tests/unit_tests/initialization/check_encryption_engine_test.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_multi_issuer_identity_binding.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_sanitization_unicode_ordering.py
copy tests/unit_tests/{db_engine_specs/test_tdengine.py => migrations/test_add_implicit_tags_mapper_isolation.py} (54%)
create mode 100644 tests/unit_tests/models/test_time_filter_timezone.py
create mode 100644 tests/unit_tests/scheduled_docker_image_refresh_test.py
create mode 100644 tests/unit_tests/security/test_embedded_guest_chart_access.py
create mode 100644 tests/unit_tests/security/test_permission_instructions_link.py
create mode 100644 tests/unit_tests/tasks/test_slack.py
create mode 100644 tests/unit_tests/utils/number_format_test.py
create mode 100644 tests/unit_tests/utils/rls_test.py
create mode 100644 tests/unit_tests/utils/test_encrypt_cbc_iv_reuse.py
create mode 100644 tests/unit_tests/utils/test_error_sanitization.py
delete mode 100644 tests/unit_tests/utils/test_playwright_migration_working.py
create mode 100644 tests/unit_tests/views/test_sql_lab_tab_state_views.py