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/09/01 17:44:36 UTC
(superset) branch fix-bar-chart-label-placement updated (edb9f82c90c -> 485fb437527)
This is an automated email from the ASF dual-hosted git repository.
sadpandajoe pushed a change to branch fix-bar-chart-label-placement
in repository https://gitbox.apache.org/repos/asf/superset.git
from edb9f82c90c fix(echarts): resolve legacy/undefined bar value labels to Outside End, not Auto
add 74dd6901021 docs(security): document EXTRA_EDITORS_RESOLVER (#43595)
add 05830ebc77a docs: document PNG/PDF chart export options (#43593)
add c1b6ff340b0 docs(mcp): document the update_dataset_metric tool (#43596)
add 5c3c6362ae1 docs(cache): document NATIVE_FILTER_OPTIONS_CACHE_TIMEOUT (#43592)
add 323741b0439 docs(alerts-reports): document report/alert content format options (#43594)
add 29f4a05eb7a docs(security): document the RLS indicator badge on dataset list/Explore (#43591)
add 88c4e689e3a fix(pivot-table): keep D3_FORMAT-styled numbers intact in pivoted Excel export (#42601)
add 35fc36a97e5 chore(deps-dev): bump baseline-browser-mapping from 2.11.15 to 2.11.16 in /superset-frontend (#43621)
add 83934c038ed chore(deps-dev): bump the storybook group in /superset-frontend with 5 updates (#43618)
add 8f82d851cf9 chore(deps-dev): bump tiktoken from 0.13.0 to 0.14.0 (#43617)
add e9e652d22da chore(deps-dev): bump trino from 0.338.0 to 0.339.0 (#43616)
add 8c88c0d3ac7 chore(deps-dev): update teradatasql requirement from >=20.0.0.65 to >=20.0.0.66 (#43615)
add ba5d5091b97 chore(deps): bump holidays from 0.102 to 0.103 (#43614)
add b8acf4b207b chore(deps-dev): bump syntaqlite from 0.7.1 to 0.9.0 (#43612)
add ebbe2e87142 chore(deps): bump the storybook group in /docs with 2 updates (#43610)
add 6814a892303 chore(deps): bump gunicorn from 26.0.0 to 26.2.0 (#43609)
add 94b59420b76 docs(embedding): document EMBEDDED_DISABLE_PERMALINK_ORIGIN_REWRITE (#43600)
add bcc6af6c5fb fix(dao): don't mask transient OperationalError as a "not found" result (#43479)
add a16bc0d94f8 fix(mcp): apply time grain overrides from extra_form_data (#43599)
add 478f612f258 fix(mcp): add open-world tool annotations (#43529)
add ea3206b076f fix(mcp): surface rejected filter columns in get_chart_data (#43598)
add ecbd6578b0d fix(db_engine_specs): always mask OAuth2 client secret in encrypted extra (#43491)
add e1c7a516745 fix(mcp): flag failed tool calls with isError (#43374)
add 20be48c0858 fix(explore): catch TemplateError when validating access for permalinked query datasources (#43605)
add 9f62aace7ef fix(examples): replace deprecated granularity_sqla with granularity (#43432)
add 7b145a520c9 fix(tags): catch TemplateError when validating access for tagged SQL Lab queries (#43423)
add 5ff44c5ed66 docs(cli): document import_directory --username option (#43602)
add f9e43a37d8d docs(theming): document THEME_DEFAULT_MODE config setting (#43601)
add 13e97ba9139 fix(sql-lab): fix transparent background in ag-grid native menus (#43368)
add b733b57e9eb docs(mcp): document chart type plugin filtering config (#43597)
add 8c5be889d9e fix(cockroachdb): replace abandoned cockroachdb package with sqlalchemy-cockroachdb (#43501)
add fa59b44cfe8 chore(deps): bump mapbox-gl from 3.28.1 to 3.29.0 in /superset-frontend (#43619)
add b7301ac88a6 fix: Dashboard export with charts from multiple databases (#37120)
add e39bfb255bf fix(explore): prevent duplicate Date Range tooltips (#43425)
add fd64efd72db fix(uploads): set catalog on datasets created by file upload (#43301)
add 81b3e855223 fix(echarts): guard cross-filter when labelMap entry is missing (#42559)
add 2ebd415b8ad chore(deps-dev): bump mcp from 1.29.1 to 2.0.0 (#43611)
add 98ec6018df5 fix(embedded): honor "can view query" permission for guest users (#43151)
add 3ddc3b1d569 fix(cache): fall back to default timeout when cache_timeout is None (#43149)
add 12cd259c551 fix(dataset): preserve validation error messages (#43631)
add a59b96c4f52 fix(explore): keep the row count label visible when the row limit is reached (#43296)
add 933dbbc2a24 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 1.0.1 to 1.0.2 in /superset-frontend (#43645)
add a30e4a4350d chore(deps): bump github/codeql-action/init from 4.37.7 to 4.37.8 (#43644)
add 8bec85158ce feat(modals): add renderExtraFields prop to chart and dashboard properties modals (#43622)
add cb7b790733c fix(dataset): surface real validation message in save-error dialog (#43459)
add 9bf457dea66 chore(deps): bump github/codeql-action/analyze from 4.37.7 to 4.37.8 (#43643)
add e18f27e1cef fix(native-filters): allow clearing an optional "select first value" filter (#43405)
add e518b21994c fix(dashboard): keep the chart menu usable in fullscreen on production builds (#43555)
add abf338d611d feat(filters): search filter values server-side in Explore (#43518)
add b3f718da621 fix(explore): keep certification badges after saving or swapping a dataset (#43319)
add 94dd3d049ce fix(ci): repair scheduled pre-commit drift (#43603)
add 9a6f6ee0c04 docs: fix docstring parameter names that do not match signatures (#43630)
add d997d363e35 docs: update frontend Node/npm prerequisites to match engines (#43546)
add 53e76afd704 feat(ci): enforce min release age for npm dep installation (#43164)
add a5c68c8df9a fix(number-format): handle sub-byte values and unit rollover in memory formatter (#43549)
add fc26991cd47 feat(plugin-chart-echarts): add gridline and axis tick controls (#43428)
add 4ced5ca35a7 chore(superset-core): drop unused `__all__` lists (#43626)
add 60479fb9586 feat(dashboard): add dashboard.slice.header.menu extension slot (#43624)
add 5c24f72d92c chore(deps): bump content-disposition from 2.0.1 to 3.0.0 in /superset-frontend (#43382)
add 0eda633b45f fix(dataset): stop a stale edit modal from silently reverting a saved change (#43583)
add 99a1f756cd4 fix(trino): coerce string-typed values results back to source type (#43654)
add 782a57fbfcd chore(deps-dev): bump nwsapi from 2.2.23 to 2.2.24 to fix the SqlEditor jest flake (#43657)
add 30402b412c2 fix(explore): catch TemplateError when validating access for query-backed form_data (#43470)
add 058eaf78abe fix(dashboard): remove @has_access_api from filter state REST API (#43564)
add c7cc22f4fee chore(deps): bump setuptools to 84.0.0 and pip to 26.2.1 (#43413)
add b2a88425511 chore(deps-dev): bump the swc group in /superset-frontend with 3 updates (#43447)
add 6f69fc6dba0 feat(postprocessing): teach pivot() to compute percent-of-row/col/total (#42809) (#42976)
add b30d5690286 fix(chart): map the remaining time grains for Prophet forecasting (#43205)
add de33efae983 fix(table-chart): support where for adhoc columns with server-side pagination (#42706)
add 1c8d58a77bd fix(i18n): make language pack endpoint public for embedded dashboards (#42438)
add b38fa702564 chore(deps-dev): bump eslint from 10.8.1 to 10.9.0 in /superset-frontend (#43677)
add 7c2a3fa7772 chore(deps-dev): bump baseline-browser-mapping from 2.11.16 to 2.11.17 in /superset-frontend (#43676)
add 4444a89f267 chore(deps): bump reselect from 5.2.0 to 5.3.0 in /superset-frontend (#43675)
add 7bc44d55044 chore(deps): bump reselect from 5.2.0 to 5.3.0 in /docs (#43674)
add 46f17aa8805 chore(deps): bump baseline-browser-mapping from 2.11.16 to 2.11.17 in /docs (#43673)
add ac88acb14b2 chore(deps-dev): bump eslint from 10.8.1 to 10.9.0 in /superset-websocket (#43670)
add 2ca3695f30c chore(deps): bump js-yaml to patch quadratic-CPU DoS (superset-frontend) (#43663)
add ec19a37e9bf chore(deps): bump greenlet from 3.5.4 to 3.5.5 (#43671)
add 9151b5c6fb0 chore(deps): bump brace-expansion to patch DoS in docs (#43665)
add 3d91ba3fded chore(deps): bump js-yaml, brace-expansion, d3-color to patch DoS/ReDoS in cypress-base (#43664)
add 74ea780eaa7 fix(plugin-chart-echarts): misplaced first date label on horizontal bar charts (#43661)
add 96119ffefce feat(plugin-chart-echarts): add Butterfly Chart (#43346)
add 87fb7d18e16 fix(semantic-layer): hydrate the semantic view edit modal from /structure (#42839)
add 5f67e85003d chore(i18n): complete Italian translations with 100% placeholder validation (#43274)
add 88cd8bf575a fix(ci): repair nightly pre-commit failures (#43366)
add 2df06dcd571 feat(mcp): add feature-gated interactive pivot support (#43480)
add bba48329465 fix(sqllab): prefer concluded live query state over a stale history snapshot (#43535)
add ee4a90892c4 test(explore): zero-value stacked bar segment no longer overlaps its neighbor's label (#42882)
add 65fa1ce8163 chore(ci): skip Jest test HTML report generation to save up time (#43653)
add 22891894d4d docs: fix superset-core component source links after src/ui removal (#43690)
add b310f469c20 feat(dashboard): add a tooltip displaying chart descriptions (#43271)
add 6abab3c1cb6 feat(butterfly): added cross-filtering and drill-to-detail for the butterfly chart (#43684)
add f3985d88a1b feat(build): migrate to TS7 and TS7-oriented `oxlint-tsgolint` (#43691)
add b8b2e5ea8b5 chore(deps): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /docs (#43704)
add 5b64150d0ac chore(deps-dev): bump webpack-bundle-analyzer from 5.3.1 to 5.3.2 in /superset-frontend (#43706)
add 6e185ebce8e chore(deps): bump actions/setup-java from 5.7.0 to 6.0.0 (#43707)
add 9d1b5ebdb7b chore(deps-dev): bump baseline-browser-mapping from 2.11.17 to 2.11.18 in /superset-frontend (#43708)
add 040b33c4502 chore(deps): bump yeoman-generator from 8.2.2 to 8.3.0 in /superset-frontend (#43709)
add b24cb2af8a1 fix(db_engine_specs): support SQLAlchemy 2 DBAPI discovery (#43700)
add a5ddc4864ab Merge remote-tracking branch 'origin/master' into fix-bar-chart-label-placement
add 5bffceb2951 feat(mcp): let get_dashboard_info accept filter_state directly (#43688)
add 1f1539fe0eb feat: test(presto) close db_engine_spec unit test gaps (#43607)
add ac3c158c41e fix(tags): catch TemplateError when validating access for tagged SQL Lab queries on delete (#43433)
add da27ba59a57 fix(pivot-table): apply "Show values as" percent to exports and reports (#43718)
add ba0142ca644 fix(dashboard): reconcile stale results tab in Chart Data modal (#43648)
add b04a1534514 fix(dashboard): stretch Chart Data modal results grid to fill available height (#43454)
add e3d30bb730e chore(deps-dev): bump oxlint from 1.79.0 to 1.80.0 in /superset-frontend (#43753)
add 9656ecc3aff chore(deps-dev): bump @types/node from 26.2.0 to 26.3.0 in /superset-frontend (#43752)
add 3b5a4baa055 chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-frontend (#43751)
add 842efd5f120 fix(datasets): warn on percent D3 format for count metrics (#43453)
add 439564041f5 fix(echarts): place weekly time-axis ticks on the data buckets (#43339)
add 58ef03dabca chore(deps-dev): bump oxfmt from 0.64.0 to 0.65.0 in /superset-websocket (#43739)
add eec1e4d288b chore(deps-dev): bump eslint from 10.9.0 to 10.9.1 in /superset-websocket (#43740)
add ed513bbe42a docs: add Veremes to users in the wild (#43754)
add 485fb437527 Merge remote-tracking branch 'origin/master' into fix-bar-chart-label-placement
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 13 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/dependency-review.yml | 21 +
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 2 +-
.github/workflows/superset-frontend.yml | 1 +
.pre-commit-config.yaml | 6 +-
.rat-excludes | 1 +
RESOURCES/INTHEWILD.yaml | 5 +
UPDATING.md | 1 +
docs/DOCS_CLAUDE.md | 6 +-
docs/admin_docs/configuration/alerts-reports.mdx | 14 +
docs/admin_docs/configuration/cache.mdx | 21 +
.../importing-exporting-datasources.mdx | 20 +
docs/admin_docs/configuration/mcp-server.mdx | 35 +
docs/admin_docs/configuration/theming.mdx | 21 +
docs/admin_docs/security/security.mdx | 58 +
.../contributing/development-setup.md | 8 +-
.../developer_docs/extensions/components/alert.mdx | 4 +-
.../developer_docs/extensions/components/index.mdx | 4 +-
.../creating-your-first-dashboard.mdx | 12 +
docs/docs/using-superset/embedding.mdx | 15 +
.../docs/using-superset/using-ai-with-superset.mdx | 23 +-
docs/eslint.config.js | 71 -
docs/oxlint.json | 139 +
docs/package.json | 24 +-
docs/static/img/logos/veremes.svg | Bin 0 -> 5469 bytes
docs/tsconfig.json | 29 +-
docs/yarn.lock | 1938 +-
pyproject.toml | 28 +-
requirements/base.in | 4 +-
requirements/base.txt | 9 +-
requirements/development.in | 2 +-
requirements/development.txt | 20 +-
superset-core/src/superset_core/common/models.py | 16 -
superset-core/src/superset_core/mcp/decorators.py | 7 -
superset-core/src/superset_core/queries/daos.py | 6 -
superset-core/src/superset_core/queries/models.py | 6 -
superset-core/src/superset_core/queries/query.py | 3 -
superset-core/src/superset_core/queries/types.py | 10 -
superset-core/src/superset_core/rest_api/api.py | 3 -
.../src/superset_core/rest_api/decorators.py | 3 -
.../src/superset_core/semantic_layers/daos.py | 3 -
.../superset_core/semantic_layers/decorators.py | 3 -
.../src/superset_core/semantic_layers/layer.py | 1 +
.../src/superset_core/semantic_layers/models.py | 3 -
superset-core/src/superset_core/tasks/daos.py | 3 -
.../src/superset_core/tasks/decorators.py | 6 -
superset-core/src/superset_core/tasks/models.py | 6 -
superset-core/src/superset_core/tasks/types.py | 9 -
superset-embedded-sdk/.npmrc | 1 +
superset-frontend/.npmrc | 1 +
superset-frontend/cypress-base/package-lock.json | 157 +-
superset-frontend/cypress-base/package.json | 10 +-
superset-frontend/jest.config.js | 25 +-
superset-frontend/package-lock.json | 802 +-
superset-frontend/package.json | 47 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-ui-core/package.json | 6 +-
.../superset-ui-core/src/chart/types/VizType.ts | 1 +
.../src/components/Select/types.ts | 1 +
.../ThemedAgGridReact/ThemedAgGridReact.test.tsx | 28 +
.../src/components/ThemedAgGridReact/index.tsx | 11 +
.../factories/createMemoryFormatter.ts | 18 +-
.../superset-ui-core/src/number-format/index.ts | 2 +
.../src/query/extractQueryFields.ts | 2 +
.../src/query/getClientErrorObject.ts | 21 +-
.../superset-ui-core/src/ui-overrides/types.ts | 11 +
.../factories/createMemoryFormatter.test.ts | 25 +
.../test/query/extractQueryFields.test.ts | 10 +
.../test/query/getClientErrorObject.test.ts | 18 +
.../Histogram.tsx => Butterfly/Butterfly.tsx} | 37 +-
.../src/{Bubble => Butterfly}/buildQuery.ts | 24 +-
.../src/Butterfly/constants.ts} | 19 +-
.../src/{Bubble => Butterfly}/controlPanel.tsx | 231 +-
.../src/Butterfly/images/example-dark.png | Bin 0 -> 48940 bytes
.../src/Butterfly/images/example.png | Bin 0 -> 48389 bytes
.../src/Butterfly/images/thumbnail-dark.png | Bin 0 -> 48859 bytes
.../src/Butterfly/images/thumbnail.png | Bin 0 -> 48351 bytes
.../src/{Graph => Butterfly}/index.ts | 46 +-
.../src/Butterfly/transformProps.ts | 353 +
.../src/{Bubble => Butterfly}/types.ts | 47 +-
.../src/MixedTimeseries/controlPanel.tsx | 4 +
.../src/MixedTimeseries/transformProps.ts | 47 +-
.../src/MixedTimeseries/types.ts | 4 +
.../src/Timeseries/Area/controlPanel.tsx | 4 +
.../src/Timeseries/EchartsTimeseries.test.tsx | 2 +
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 4 +
.../src/Timeseries/Regular/Line/controlPanel.tsx | 4 +
.../Timeseries/Regular/Scatter/controlPanel.tsx | 4 +
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 4 +
.../src/Timeseries/Step/controlPanel.tsx | 4 +
.../src/Timeseries/constants.ts | 2 +
.../src/Timeseries/transformProps.ts | 58 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 2 +
.../plugins/plugin-chart-echarts/src/constants.ts | 10 +
.../plugins/plugin-chart-echarts/src/controls.tsx | 22 +
.../plugins/plugin-chart-echarts/src/index.ts | 2 +
.../src/utils/eventHandlers.ts | 3 +
.../plugin-chart-echarts/src/utils/series.ts | 164 +
.../test/Butterfly/Butterfly.test.tsx | 202 +
.../test/Butterfly/buildQuery.test.ts | 85 +
.../test/Butterfly/controlPanel.test.ts | 83 +
.../test/Butterfly/transformProps.test.ts | 341 +
.../test/MixedTimeseries/transformProps.test.ts | 147 +
.../test/Timeseries/transformProps.test.ts | 408 +
.../test/Timeseries/transformers.test.ts | 69 +-
.../test/utils/eventHandlers.test.ts | 43 +
.../plugin-chart-echarts/test/utils/series.test.ts | 145 +
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 5 +-
.../components/QueryHistory/QueryHistory.test.tsx | 243 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 41 +-
.../QueryHistory/mergeQueryStatus.test.ts | 151 +
.../components/QueryHistory/mergeQueryStatus.ts | 71 +
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 18 +-
.../DatasourceModal/DatasourceModal.test.tsx | 143 +-
.../DatasourceModal.useModal.test.tsx | 4 +
.../Datasource/DatasourceModal/index.tsx | 100 +-
.../DatasourceEditor/DatasourceEditor.tsx | 75 +-
.../DatasourceEditorMetricFormatWarning.test.tsx | 210 +
.../Datasource/components/Fieldset/index.tsx | 3 +
.../src/components/Datasource/index.ts | 1 +
.../src/components/Datasource/types.ts | 6 +
.../src/components/Datasource/utils/index.ts | 27 +
.../RowCountLabel/RowCountLabel.test.tsx | 16 +
.../src/components/RowCountLabel/index.tsx | 16 +-
.../src/dashboard/actions/dashboardLayout.ts | 2 +-
.../DashboardBuilder/DashboardWrapper.tsx | 2 +-
.../dashboard/components/PropertiesModal/index.tsx | 40 +-
.../PropertiesModal/sections/AccessSection.tsx | 7 +
.../components/SliceHeader/SliceHeader.test.tsx | 192 +-
.../components/SliceHeader/SliceInfo.test.tsx | 64 +
.../new/NewRow.tsx => SliceHeader/SliceInfo.tsx} | 37 +-
.../src/dashboard/components/SliceHeader/index.tsx | 38 +-
.../SliceHeaderControls.test.tsx | 57 +-
.../components/SliceHeaderControls/Styles.tsx | 18 +-
.../components/SliceHeaderControls/index.tsx | 24 +
.../gridComponents/ChartHolder/ChartHolder.tsx | 18 +-
.../FilterControls/FilterControl.test.tsx | 26 +
.../FilterBar/FilterControls/FilterControl.tsx | 4 +-
.../nativeFilters/FilterBar/utils.test.ts | 52 +
.../components/nativeFilters/FilterBar/utils.ts | 7 +-
superset-frontend/src/dataMask/reducer.ts | 2 +-
.../src/explore/components/Control.test.tsx | 77 +-
.../src/explore/components/Control.tsx | 21 +-
.../src/explore/components/ControlHeader.test.tsx | 112 +
.../src/explore/components/ControlHeader.tsx | 32 +-
.../components/DataTablesPane/DataTablesPane.tsx | 26 +-
.../components/DataTableControls.tsx | 15 +-
.../components/ResultsPaneOnDashboard.tsx | 26 +-
.../DataTablesPane/components/SamplesPane.tsx | 8 +
.../components/SingleQueryResultPane.tsx | 4 +
.../DataTablesPane/components/useResultsPane.tsx | 13 +
.../DataTablesPane/test/DataTableControls.test.tsx | 94 +
.../test/ResultsPaneOnDashboard.test.tsx | 61 +
.../test/getStaleResultsTabFallback.test.ts | 2 +-
.../DataTablesPane/test/useResultsPane.test.tsx | 43 +-
.../src/explore/components/DataTablesPane/types.ts | 10 +
.../src/explore/components/DataTablesPane/utils.ts | 54 +
.../explore/components/PropertiesModal/index.tsx | 54 +-
.../controls/ColumnConfigControl/types.ts | 4 +-
.../DatasourceControl/DatasourceControl.test.tsx | 10 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 20 +-
.../tests/DateFilterLabel.test.tsx | 90 +-
.../components/controls/DateFilterControl/types.ts | 6 +
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 164 +
.../index.tsx | 264 +-
.../semanticViews/SemanticViewEditModal.test.tsx | 178 +-
.../semanticViews/SemanticViewEditModal.tsx | 71 +-
.../components/Select/SelectFilterPlugin.test.tsx | 184 +-
.../components/Select/SelectFilterPlugin.tsx | 63 +-
.../filters/components/Select/buildQuery.test.ts | 32 +
.../src/filters/components/Select/buildQuery.ts | 9 +-
superset-frontend/src/pages/DatasetList/index.tsx | 26 +-
superset-frontend/src/setup/setupFormatters.ts | 2 +-
superset-frontend/src/types/bootstrapTypes.ts | 2 +-
.../src/utils/downloadAsPivotExcel.test.ts | 116 +
.../src/utils/downloadAsPivotExcel.ts | 52 +-
.../src/visualizations/presets/MainPreset.ts | 4 +
superset-websocket/.npmrc | 1 +
superset-websocket/package-lock.json | 168 +-
superset-websocket/package.json | 4 +-
superset/charts/client_processing.py | 590 +-
superset/charts/data/api.py | 11 +-
superset/cli/viz_migrations.py | 2 +-
superset/commands/chart/export.py | 15 +-
superset/commands/dashboard/export.py | 26 +-
superset/commands/database/export.py | 6 +-
superset/commands/database/uploaders/base.py | 2 +
superset/commands/dataset/export.py | 63 +-
superset/commands/dataset/update.py | 4 +-
superset/commands/explore/permalink/create.py | 7 +-
superset/commands/explore/permalink/get.py | 7 +-
superset/commands/export/models.py | 40 +-
superset/commands/query/export.py | 42 +-
superset/commands/tag/create.py | 28 +-
superset/commands/tag/delete.py | 28 +-
superset/commands/tag/exceptions.py | 12 +
superset/commands/tag/export.py | 4 +-
superset/commands/theme/export.py | 6 +-
superset/connectors/sqla/models.py | 1 +
superset/constants.py | 20 +
superset/daos/base.py | 17 +-
superset/dashboards/filter_state/api.py | 6 -
superset/datasets/api.py | 72 +-
superset/datasource/api.py | 25 +-
superset/db_engine_specs/__init__.py | 7 +-
superset/db_engine_specs/base.py | 22 +-
superset/db_engine_specs/cockroachdb.py | 2 +-
superset/db_engine_specs/presto.py | 11 +-
superset/db_engine_specs/trino.py | 13 +-
superset/examples/birth_names.py | 14 +-
.../usa_births_names/charts/Boy_Name_Cloud.yaml | 2 +-
.../examples/usa_births_names/charts/Boys.yaml | 2 +-
.../examples/usa_births_names/charts/Genders.yaml | 2 +-
.../usa_births_names/charts/Genders_by_State.yaml | 2 +-
.../usa_births_names/charts/Girl_Name_Cloud.yaml | 2 +-
.../examples/usa_births_names/charts/Girls.yaml | 2 +-
.../usa_births_names/charts/Participants.yaml | 2 +-
.../usa_births_names/charts/Pivot_Table_v2.yaml | 2 +-
.../charts/Top_10_Boy_Name_Share.yaml | 2 +-
.../charts/Top_10_Girl_Name_Share.yaml | 2 +-
.../examples/usa_births_names/charts/Trends.yaml | 2 +-
superset/examples/world_bank.py | 2 +-
.../examples/world_health/charts/Box_plot.yaml | 2 +-
.../examples/world_health/charts/Growth_Rate.yaml | 2 +-
.../charts/Life_Expectancy_VS_Rural.yaml | 2 +-
.../charts/Most_Populated_Countries.yaml | 2 +-
superset/examples/world_health/charts/Rural.yaml | 2 +-
.../world_health/charts/Rural_Breakdown.yaml | 2 +-
superset/examples/world_health/charts/Treemap.yaml | 2 +-
.../world_health/charts/World_s_Pop_Growth.yaml | 2 +-
.../world_health/charts/World_s_Population.yaml | 2 +-
superset/explore/form_data/api.py | 9 +
superset/explore/permalink/api.py | 5 +
superset/explore/utils.py | 11 +-
superset/mcp_service/CLAUDE.md | 13 +-
.../tool/get_annotation_layer_info.py | 1 +
.../tool/get_layer_annotation_info.py | 1 +
.../tool/list_annotation_layers.py | 1 +
.../tool/list_layer_annotations.py | 1 +
superset/mcp_service/app.py | 13 +-
superset/mcp_service/chart/chart_helpers.py | 20 +-
superset/mcp_service/chart/chart_utils.py | 39 +-
superset/mcp_service/chart/plugin.py | 4 +
superset/mcp_service/chart/plugins/__init__.py | 5 +
.../mcp_service/chart/plugins/interactive_pivot.py | 235 +
superset/mcp_service/chart/registry.py | 15 +
.../mcp_service/chart/resources/chart_configs.py | 39 +
superset/mcp_service/chart/schemas.py | 213 +-
superset/mcp_service/chart/tool/delete_chart.py | 2 +
superset/mcp_service/chart/tool/generate_chart.py | 18 +-
superset/mcp_service/chart/tool/get_chart_data.py | 30 +-
superset/mcp_service/chart/tool/get_chart_info.py | 1 +
.../mcp_service/chart/tool/get_chart_preview.py | 1 +
superset/mcp_service/chart/tool/get_chart_sql.py | 1 +
.../chart/tool/get_chart_type_schema.py | 62 +-
superset/mcp_service/chart/tool/list_charts.py | 1 +
superset/mcp_service/chart/tool/restore_chart.py | 2 +
superset/mcp_service/chart/tool/update_chart.py | 5 +
.../mcp_service/chart/tool/update_chart_preview.py | 4 +
.../chart/validation/schema_validator.py | 9 +-
superset/mcp_service/dashboard/schemas.py | 9 +
.../tool/add_chart_to_existing_dashboard.py | 2 +
.../mcp_service/dashboard/tool/delete_dashboard.py | 2 +
.../dashboard/tool/duplicate_dashboard.py | 2 +
.../dashboard/tool/generate_dashboard.py | 2 +
.../dashboard/tool/get_dashboard_datasets.py | 1 +
.../dashboard/tool/get_dashboard_info.py | 33 +-
.../dashboard/tool/get_dashboard_layout.py | 1 +
.../mcp_service/dashboard/tool/list_dashboards.py | 1 +
.../tool/manage_dashboard_certification.py | 2 +
.../dashboard/tool/manage_dashboard_owners.py | 2 +
.../dashboard/tool/manage_dashboard_roles.py | 2 +
.../dashboard/tool/manage_native_filters.py | 2 +
.../dashboard/tool/remove_chart_from_dashboard.py | 2 +
.../dashboard/tool/restore_dashboard.py | 2 +
.../mcp_service/dashboard/tool/update_dashboard.py | 2 +
.../mcp_service/database/tool/get_database_info.py | 1 +
.../mcp_service/database/tool/list_databases.py | 1 +
.../mcp_service/dataset/tool/create_dataset.py | 2 +
.../dataset/tool/create_virtual_dataset.py | 2 +
.../mcp_service/dataset/tool/get_dataset_info.py | 1 +
superset/mcp_service/dataset/tool/list_datasets.py | 1 +
superset/mcp_service/dataset/tool/query_dataset.py | 1 +
.../dataset/tool/update_dataset_metric.py | 2 +
.../explore/tool/generate_explore_link.py | 2 +
superset/mcp_service/middleware.py | 8 +
superset/mcp_service/query/tool/get_query_info.py | 1 +
superset/mcp_service/query/tool/list_queries.py | 1 +
.../mcp_service/report/tool/get_report_info.py | 1 +
superset/mcp_service/report/tool/list_reports.py | 1 +
.../mcp_service/rls/tool/get_rls_filter_info.py | 1 +
superset/mcp_service/rls/tool/list_rls_filters.py | 1 +
superset/mcp_service/role/tool/get_role_info.py | 1 +
superset/mcp_service/role/tool/list_roles.py | 1 +
.../saved_query/tool/get_saved_query_info.py | 1 +
.../saved_query/tool/list_saved_queries.py | 1 +
.../tool/get_compatible_dimensions.py | 1 +
.../semantic_layer/tool/get_compatible_metrics.py | 1 +
.../mcp_service/semantic_layer/tool/get_table.py | 1 +
.../semantic_layer/tool/list_metrics.py | 1 +
superset/mcp_service/sql_lab/tool/execute_sql.py | 2 +
.../sql_lab/tool/open_sql_lab_with_context.py | 1 +
.../mcp_service/sql_lab/tool/save_sql_query.py | 2 +
superset/mcp_service/system/tool/find_users.py | 1 +
.../mcp_service/system/tool/generate_bug_report.py | 1 +
.../mcp_service/system/tool/get_instance_info.py | 1 +
superset/mcp_service/system/tool/get_schema.py | 1 +
superset/mcp_service/system/tool/health_check.py | 1 +
superset/mcp_service/tag/tool/get_tag_info.py | 1 +
superset/mcp_service/tag/tool/list_tags.py | 1 +
superset/mcp_service/task/tool/get_task_info.py | 1 +
superset/mcp_service/task/tool/list_tasks.py | 1 +
superset/mcp_service/theme/tool/create_theme.py | 2 +
superset/mcp_service/theme/tool/get_theme_info.py | 1 +
superset/mcp_service/theme/tool/list_themes.py | 1 +
superset/mcp_service/user/tool/get_user_info.py | 1 +
superset/mcp_service/user/tool/list_users.py | 1 +
superset/migrations/shared/constraints.py | 6 +-
superset/models/helpers.py | 71 +-
superset/semantic_layers/api.py | 8 +-
superset/semantic_layers/models.py | 2 +-
superset/translations/it/LC_MESSAGES/messages.po | 50254 +++++++++----------
superset/utils/cache.py | 14 +-
superset/utils/excel.py | 28 +-
superset/utils/json.py | 8 +-
superset/utils/pandas_postprocessing/pivot.py | 195 +-
superset/utils/pandas_postprocessing/utils.py | 8 +
superset/utils/screenshots.py | 2 +-
superset/versioning/api_helpers.py | 77 +
superset/versioning/etag.py | 44 +
superset/views/core.py | 1 -
superset/views/error_handling.py | 11 +-
tests/integration_tests/charts/data/api_tests.py | 47 +-
.../integration_tests/dashboards/commands_tests.py | 104 +
.../dashboards/filter_state/api_tests.py | 635 +-
.../databases/commands/upload_test.py | 30 +
tests/integration_tests/datasets/api_tests.py | 44 +-
tests/integration_tests/datasource/api_tests.py | 75 +
tests/integration_tests/security_tests.py | 4 +
tests/unit_tests/charts/dao/dao_tests.py | 13 +-
tests/unit_tests/charts/test_chart_data_api.py | 73 +
tests/unit_tests/charts/test_client_processing.py | 609 +-
tests/unit_tests/commands/dataset/update_test.py | 4 +
.../commands/explore/permalink}/__init__.py | 0
.../commands/explore/permalink/test_create.py | 45 +
.../commands/explore/permalink/test_get.py | 57 +
tests/unit_tests/dao/base_dao_test.py | 125 +-
tests/unit_tests/dashboards/dao_tests.py | 11 +-
.../unit_tests/dashboards/filter_state_api_test.py | 66 +
tests/unit_tests/datasets/api_tests.py | 146 +
tests/unit_tests/db_engine_specs/test_base.py | 64 +-
tests/unit_tests/db_engine_specs/test_crdb.py | 16 +
tests/unit_tests/db_engine_specs/test_init.py | 35 +
tests/unit_tests/db_engine_specs/test_presto.py | 921 +
tests/unit_tests/db_engine_specs/test_trino.py | 92 +
tests/unit_tests/explore/utils_test.py | 25 +-
.../chart/test_chart_config_coercion.py | 16 +
.../mcp_service/chart/test_chart_helpers.py | 47 +-
.../mcp_service/chart/test_chart_utils.py | 70 +
.../chart/test_interactive_pivot_chart.py | 449 +
.../mcp_service/chart/test_registry_filters.py | 15 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 63 +-
.../chart/tool/test_get_chart_type_schema.py | 7 +
.../chart/tool/test_update_chart_preview.py | 79 +
.../dashboard/test_dashboard_schemas.py | 11 +
.../dashboard/tool/test_dashboard_tools.py | 166 +
tests/unit_tests/mcp_service/test_mcp_e2e_smoke.py | 30 +
.../mcp_service/test_mcp_tool_registration.py | 42 +
tests/unit_tests/mcp_service/test_middleware.py | 65 +
tests/unit_tests/models/core_test.py | 23 +
tests/unit_tests/models/helpers_test.py | 133 +
.../unit_tests/pandas_postprocessing/test_pivot.py | 425 +
.../pandas_postprocessing/test_prophet.py | 46 +
tests/unit_tests/semantic_layers/api_test.py | 12 +
tests/unit_tests/tags/commands/create_test.py | 69 +
tests/unit_tests/tags/commands/delete_test.py | 104 +
tests/unit_tests/utils/cache_test.py | 93 +
tests/unit_tests/utils/json_tests.py | 21 +
tests/unit_tests/versioning/test_etag.py | 109 +
tests/unit_tests/views/test_base.py | 36 +-
tests/unit_tests/views/test_error_handling.py | 76 +
385 files changed, 39593 insertions(+), 28930 deletions(-)
delete mode 100644 docs/eslint.config.js
create mode 100644 docs/oxlint.json
create mode 100644 docs/static/img/logos/veremes.svg
create mode 120000 superset-embedded-sdk/.npmrc
create mode 100644 superset-frontend/.npmrc
copy superset-frontend/plugins/plugin-chart-echarts/src/{Histogram/Histogram.tsx => Butterfly/Butterfly.tsx} (67%)
copy superset-frontend/plugins/plugin-chart-echarts/src/{Bubble => Butterfly}/buildQuery.ts (62%)
copy superset-frontend/{packages/superset-ui-core/src/query/api/legacy/types.ts => plugins/plugin-chart-echarts/src/Butterfly/constants.ts} (78%)
copy superset-frontend/plugins/plugin-chart-echarts/src/{Bubble => Butterfly}/controlPanel.tsx (52%)
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/example-dark.png
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/example.png
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/thumbnail-dark.png
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/images/thumbnail.png
copy superset-frontend/plugins/plugin-chart-echarts/src/{Graph => Butterfly}/index.ts (65%)
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/Butterfly/transformProps.ts
copy superset-frontend/plugins/plugin-chart-echarts/src/{Bubble => Butterfly}/types.ts (58%)
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/Butterfly.test.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/buildQuery.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Butterfly/transformProps.test.ts
create mode 100644 superset-frontend/src/SqlLab/components/QueryHistory/mergeQueryStatus.test.ts
create mode 100644 superset-frontend/src/SqlLab/components/QueryHistory/mergeQueryStatus.ts
create mode 100644 superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorMetricFormatWarning.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/SliceHeader/SliceInfo.test.tsx
copy superset-frontend/src/dashboard/components/{gridComponents/new/NewRow.tsx => SliceHeader/SliceInfo.tsx} (60%)
create mode 100644 superset-frontend/src/explore/components/ControlHeader.test.tsx
create mode 100644 superset-frontend/src/explore/components/DataTablesPane/test/DataTableControls.test.tsx
create mode 100644 superset-frontend/src/explore/components/DataTablesPane/utils.ts
create mode 100644 superset-frontend/src/utils/downloadAsPivotExcel.test.ts
create mode 120000 superset-websocket/.npmrc
create mode 100644 superset/mcp_service/chart/plugins/interactive_pivot.py
copy {scripts => tests/unit_tests/commands/explore/permalink}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/explore/permalink/test_create.py
create mode 100644 tests/unit_tests/commands/explore/permalink/test_get.py
create mode 100644 tests/unit_tests/dashboards/filter_state_api_test.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_interactive_pivot_chart.py
create mode 100644 tests/unit_tests/versioning/test_etag.py