This is an automated email from the ASF dual-hosted git repository.

hughhhh pushed a change to branch hughhhh/dashboard-export-spec-review
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 6c0c8450e4f Merge remote-tracking branch 'origin/master' into 
hughhhh/dashboard-export-spec-review
     add ea5950558bb feat(dashboard): add vertical alignment guides and height 
indicator when resizing charts (#41079)
     add 74c3f3b66bd feat(theme): make default theme changeable through 
config.py (#41007)
     add 227b3a48c11 fix(chart-data): return 403 for SupersetSecurityException 
in chart data API (#41865)
     add 3dd5e69714f chore(deps-dev): bump @types/node from 26.0.1 to 26.1.0 in 
/superset-websocket (#41887)
     add 30e1ab3203c chore(deps): bump docker/login-action from 4.2.0 to 4.3.0 
(#41901)
     add a4418a27c5c chore(deps): bump github/codeql-action/analyze from 4.36.2 
to 4.36.3 (#41900)
     add c1d4401d292 chore(deps): bump github/codeql-action/init from 4.36.2 to 
4.36.3 (#41899)
     add afc7dbeff23 chore(deps-dev): update teradatasql requirement from 
>=16.20.0.23 to >=20.0.0.62 (#41886)
     add 1fd43ffe52c feat(mcp): scope embedded-guest data reads to the token's 
dashboards (#41753)
     add baff395d983 feat(mcp): add list_themes, get_theme_info, and 
create_theme tools (#41497)
     add bea5f8d4a44 fix(dashboard): stagger manual refresh to prevent worker 
saturation (#40512)
     add 43bfc85941c fix(db): validate schema and table cache timeout to reject 
negative values (#38490)
     add 2380d576d54 fix(cli): avoid DetachedInstanceError in 
compute-thumbnails (#41530)
     add 1bfb7c60e7c fix(ci): repair stale mock target breaking Python-Unit on 
master (#41911)
     add a899e1db414 feat(versioning): entity-version base infrastructure 
(gated off, dark launch) (#41176)
     add 0ff52d46e07 fix(docs): correct broken In the Wild logo for Région 
Hauts-de-France (#41918)
     add ea76d0d785e chore(deps): bump cookie from 1.1.1 to 2.0.1 in 
/superset-websocket (#41874)
     add be600f78fc6 chore(deps): upgrade ag-grid to 36.0.0 (#41882)
     add 597c9c6fea6 fix: do not require recaptcha public key for LDAP 
authentication (#37009)
     add e2ba378b699 fix(sqllab): redirect legacy /superset/sql/<db_id>/ deep 
links (#41759)
     add 38707866c02 chore(deps-dev): bump baseline-browser-mapping from 
2.10.40 to 2.10.41 in /superset-frontend (#41929)
     add 169c05f8ce8 chore(deps-dev): bump tsx from 4.22.4 to 4.22.5 in 
/superset-frontend (#41928)
     add 2a3d65f61a6 chore(deps): bump docker/login-action from 4.3.0 to 4.4.0 
(#41927)
     add 1ddc3e45d77 chore(deps): bump @deck.gl/mapbox from 9.3.5 to 9.3.6 in 
/superset-frontend (#41926)
     add 1631d52b650 fix(CollectionControl): a11y drag handle and vertical axis 
lock (#39863)
     add 2112fbd3798 feat(subjects): add read-only Subject REST API and DAO 
(#41897)
     add a6ce2fd76b0 fix(mcp): patch list_metrics DAOs via module object to 
avoid Python 3.10 mock resolution bug (#41881)
     add 5b8e94de267 feat(semantic layers): dashboard filters (#40475)
     add bd61e09b4ea fix(mcp): bind Big Number chart to a temporal column for 
dashboard time filters (#41895)
     add bc80d138fdc chore(deps): bump slack-sdk from 3.42.0 to 3.43.0 (#41893)
     add 35712ff9770 fix(sqllab): show truncated table list warning (#41617)
     add 4dde4d2c706 fix(versioning): make baseline capture atomic (#41941)
     add 38181521912 fix(mcp): user/role tools demanded a permission FAB never 
registers (#41858)
     add 51ce2b11ad3 chore(deps-dev): update impyla requirement from 
<0.23,>0.16.2 to >=0.24.0,<0.25 (#41951)
     add 7a752d1c228 fix(dashboard): restore arrow key navigation in modal 
inputs opened from dropdown (#37978)
     add 5c12f216d51 feat(mcp): add delete_chart and delete_dashboard tools 
(#41472)
     add 678fcba8b48 feat(helm): Superset 6 structured config schema with 
deprecation path (#41777)
     add b641008da6a fix(versioning): preserve complete multi-flush history 
(#41940)
     add df209cedbf8 chore(deps-dev): update sqlalchemy-firebird requirement 
from <2.2,>=0.7.0 to >=0.8.0,<2.2 (#41950)
     add e8521471820 test: add edge-case tests for datetime_to_epoch function 
(#39404)
     add a03cabffa77 perf(csv): avoid regex in CSV value escaping (#40195)
     add 0ecf34d80e1 fix(a11y): add aria-label to ViewportControl text inputs 
(#41931)
     add b237aefb1ea fix(a11y): add aria-label to RightMenu documentation and 
bug-report icon links (#41903)
     add f5deda78641 fix(dataset): copy catalog field when duplicating a 
BigQuery dataset (#41106)
     add 189f258e0ce fix(drill): coerce temporal drill filter values (#40180)
     add 5e6b29d1a32 chore(deps-dev): bump sqlalchemy-hana from 0.4.0 to 3.0.3 
(#41953)
     add 49dc0acd827 fix(pre-commit): prettier hook drops first file and never 
batches (#41944)
     add b8c0171976d test(rls): assert related/subjects honors search filter 
for roles (#31466) (#41969)
     add 958d1ab256a test(rls): assert dataset search returns all mask matches 
(#29707) (#41968)
     add 13c5a324027 fix(tests): correct stale TYPE_CHECKING import path in 
base_data_loader (#41972)
     add a1d1d69f5ea ci: enforce SQLAlchemy 2.0 deprecation warnings in 
unit-test CI (#41915)
     add 2a18a556b09 chore(frontend): lint Emotion CSS-in-JS with Stylelint 
(#41871)
     add db1912c6d98 chore(deps): bump cachetools from 6.2.1 to 7.1.4 (#41947)
     add 0ca51d9796a fix(Database Connection Form): Added validation to db 
credential input (#37919)
     add e403d9b0742 chore(lint): convert legacy plugin chart components to 
function components (#39452)
     add 12f28ce2354 chore(deps): bump holidays from 0.82 to 0.99 (#41949)
     add 98c3ec7a718 chore(deps): bump sqlglot from 30.8.0 to 30.12.0 (#41948)
     add d380663e710 chore(deps-dev): bump syntaqlite from 0.4.2 to 0.6.0 
(#41952)
     add c0e5f5226d4 fix(explore): let chart owners overwrite when owners come 
through as objects (#41352)
     add c762b75ddc5 chore(lint): upgrade no-unused-vars rule from warn to 
error (#41132)
     add 8f339545adb chore(deps-dev): bump baseline-browser-mapping from 
2.10.41 to 2.10.42 in /superset-frontend (#41993)
     add 73925922a9a chore(deps): bump react-arborist from 3.12.0 to 3.13.2 in 
/superset-frontend (#41992)
     add bb5d7dbb17b chore(deps): bump immer from 11.1.9 to 11.1.11 in 
/superset-frontend (#41991)
     add 9180ace1ddc chore(deps): bump actions/labeler from 6.1.0 to 6.2.0 
(#41988)
     add 96bf1a1e4cd chore(deps): bump caniuse-lite from 1.0.30001800 to 
1.0.30001802 in /docs (#41987)
     add 0cf217cdea5 chore(deps-dev): bump vitest from 4.1.9 to 4.1.10 in 
/superset-websocket (#41986)
     add f7b7bad9a88 chore(deps-dev): bump tsx from 4.22.5 to 4.23.0 in 
/superset-frontend (#41985)
     add 1c7a3f395f4 chore(deps): bump fs-extra from 11.3.2 to 11.3.6 in 
/superset-frontend (#41990)
     add 3c6982252b2 chore(deps-dev): bump webpack from 5.108.3 to 5.108.4 in 
/superset-frontend (#41989)
     add 029d49539bc fix(event-log): match embedded routes precisely in logger 
middleware (#41942)
     add 2fac66d1a30 feat(mcp): add update_dataset_metric tool for editing 
saved dataset metrics (#40975)
     add 8f75f1a353d fix(dashboard): deleted Display Control reappears after 
Apply Filters (#41999)
     add c8d61d7d1d8 Merge remote-tracking branch 'origin/master' into 
hughhhh/dashboard-export-spec-review

No new revisions were added by this update.

Summary of changes:
 .github/workflows/check-python-deps.yml            |    2 +-
 .github/workflows/codeql-analysis.yml              |    4 +-
 .github/workflows/labeler.yml                      |    2 +-
 .github/workflows/superset-python-unittest.yml     |    6 +
 ...sync-requirements-for-python-dep-upgrade-pr.yml |    2 +-
 .pre-commit-config.yaml                            |    8 +-
 .rat-excludes                                      |    1 +
 RESOURCES/INTHEWILD.yaml                           |    2 +-
 UPDATING.md                                        |   11 +
 docs/docs/faq.mdx                                  |   17 +
 docs/package.json                                  |    2 +-
 docs/yarn.lock                                     |    8 +-
 helm/superset/Chart.yaml                           |    2 +-
 helm/superset/README.md                            |   59 +-
 helm/superset/UPGRADING.md                         |  161 +++
 helm/superset/templates/NOTES.txt                  |    6 +
 helm/superset/templates/_helpers.tpl               |  641 ++++++++++-
 helm/superset/templates/deployment-beat.yaml       |   10 +-
 helm/superset/templates/deployment-flower.yaml     |    5 +-
 helm/superset/templates/deployment-worker.yaml     |   10 +-
 helm/superset/templates/deployment-ws.yaml         |    3 +
 helm/superset/templates/deployment.yaml            |   12 +-
 helm/superset/templates/secret-env.yaml            |   36 +-
 .../superset/templates/secret-superset-config.yaml |    4 +-
 helm/superset/tests/checksum_test.yaml             |  132 +++
 helm/superset/tests/config_test.yaml               |   94 ++
 .../superset/tests/deprecation_test.yaml           |   23 +-
 helm/superset/tests/initscript_test.yaml           |   63 ++
 helm/superset/tests/secret_env_test.yaml           |   71 ++
 .../superset/tests/serviceaccount_test.yaml        |   44 +-
 .../superset/tests/values_defaults_test.yaml       |   24 +-
 helm/superset/values.schema.json                   |  140 +++
 helm/superset/values.yaml                          |  148 ++-
 pyproject.toml                                     |   21 +-
 requirements/base.txt                              |   11 +-
 requirements/development.txt                       |   15 +-
 scripts/{check-custom-rules.sh => stylelint.sh}    |    9 +-
 superset-core/src/superset_core/common/daos.py     |   54 +-
 superset-core/src/superset_core/common/models.py   |   62 ++
 .../src/superset_core/semantic_layers/types.py     |    2 +-
 superset-frontend/.storybook/preview.jsx           |    2 +-
 superset-frontend/.stylelintignore                 |    9 +
 superset-frontend/oxlint.json                      |    9 +-
 superset-frontend/package-lock.json                |  996 ++++++++++++++++--
 superset-frontend/package.json                     |   21 +-
 .../superset-core/src/theme/GlobalStyles.tsx       |    8 +-
 .../packages/superset-ui-core/package.json         |    4 +-
 .../components/Matrixify/MatrixifyGridCell.tsx     |    2 +-
 .../components/Matrixify/MatrixifyGridRenderer.tsx |    3 +-
 .../src/components/AsyncAceEditor/index.tsx        |    1 -
 .../DropdownContainer/DropdownContainer.tsx        |    4 +-
 .../src/components/Form/LabeledErrorBoundInput.tsx |    8 +
 .../superset-ui-core/src/components/Form/types.ts  |    5 +
 .../src/components/Icons/Icons.stories.tsx         |    6 +-
 .../src/components/Label/index.tsx                 |    2 +-
 .../src/components/Modal/Modal.tsx                 |    4 +-
 .../components/ModalTrigger/ModalTrigger.test.tsx  |   42 +-
 .../src/components/ModalTrigger/index.tsx          |   20 +-
 .../src/components/TimezoneSelector/index.tsx      |    2 +-
 .../superset-ui-core/src/query/types/Dashboard.ts  |    2 +
 .../tests/dashboard/delete-display-control.spec.ts |  263 +++++
 .../legacy-plugin-chart-calendar/src/Calendar.ts   |    2 +-
 .../src/CountryMap.ts                              |    2 +-
 .../src/HorizonChart.tsx                           |  101 +-
 .../legacy-plugin-chart-horizon/src/HorizonRow.tsx |  268 +++--
 .../test/HorizonChart.test.tsx                     |   51 +
 .../test/HorizonRow.test.tsx                       |  102 ++
 .../src/PairedTTest.tsx                            |   77 +-
 .../src/TTestTable.tsx                             |  545 +++++-----
 .../test/TTestTable.test.tsx                       |  365 +++++++
 .../src/AgGridTableChart.tsx                       |    1 -
 .../src/renderers/NumericCellRenderer.tsx          |   16 +-
 .../src/styles/index.tsx                           |    1 -
 .../src/utils/useColDefs.ts                        |    4 +-
 .../test/AgGridTableChart.test.tsx                 |   18 +-
 .../src/BigNumber/BigNumberViz.tsx                 |    4 -
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |    9 +-
 .../src/PivotTableChart.tsx                        |   84 +-
 .../test/PivotTableChart.test.tsx                  |  370 +++++++
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   36 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |   49 +
 .../src/chart/WordCloud.tsx                        |  273 ++---
 .../test/WordCloud.test.tsx                        |  161 +++
 .../plugins/preset-chart-deckgl/package.json       |    2 +-
 .../src/SqlLab/SqlLabGlobalStyles.tsx              |   10 +-
 .../src/SqlLab/components/EditorWrapper/index.tsx  |    4 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |    1 -
 .../TableExploreTree/TreeNodeRenderer.tsx          |    1 -
 .../src/components/Chart/ChartRenderer.tsx         |    1 -
 .../Datasource/FoldersEditor/TreeItem.styles.ts    |    2 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |    9 -
 .../ErrorMessage/FrontendNetworkErrorMessage.tsx   |    1 -
 .../FilterableTable/FilterableTable.test.tsx       |   55 +-
 .../src/components/GridTable/index.tsx             |    1 -
 .../src/components/MessageToasts/Toast.tsx         |    2 +-
 .../components/Modal/CollapsibleModalSection.tsx   |    2 -
 .../src/components/Modal/ModalFormField.tsx        |    4 -
 .../src/components/Modal/StandardModal.tsx         |    6 -
 .../src/components/ResizableSidebar/index.tsx      |    2 +-
 .../TableSelector/TableSelector.test.tsx           |   40 +-
 .../src/components/TableSelector/index.tsx         |    6 +
 .../src/components/Tag/utils.test.tsx              |    2 +-
 superset-frontend/src/core/sqlLab/models.ts        |    4 +-
 .../src/dashboard/actions/dashboardState.test.ts   |   44 +
 .../components/AddSliceCard/AddSliceCard.tsx       |    2 +-
 .../src/dashboard/components/Dashboard.tsx         |    4 -
 .../DashboardBuilder/DashboardBuilder.tsx          |    4 +-
 .../dashboard/components/DashboardGrid.test.tsx    |   36 +
 .../src/dashboard/components/DashboardGrid.tsx     |   65 +-
 .../dashboard/components/FiltersBadge/Styles.tsx   |    1 -
 .../src/dashboard/components/Header/index.tsx      |    2 +-
 .../Header/useHeaderAutoRefresh.test.tsx           |  154 +++
 .../components/Header/useHeaderAutoRefresh.ts      |   31 +-
 .../src/dashboard/components/SaveModal.tsx         |    8 +-
 .../components/filterscope/FilterScopeSelector.tsx |    2 +-
 .../gridComponents/Divider/Divider.test.tsx        |    2 +-
 .../gridComponents/TabsRenderer/TabsRenderer.tsx   |    2 -
 .../src/dashboard/components/menu/HoverMenu.tsx    |    2 +-
 .../useFilterConfigModal.tsx                       |    4 +-
 .../FilterControls/FilterControlShared.tsx         |    4 +-
 .../FilterBar/FilterControls/FilterControls.tsx    |    2 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |    9 +-
 .../nativeFilters/FilterBar/Vertical.tsx           |    4 +-
 .../components/nativeFilters/FilterBar/index.tsx   |   13 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |   92 +-
 .../FiltersConfigForm/DatasetSelect.test.tsx       |   45 +
 .../FiltersConfigForm/DatasetSelect.tsx            |  102 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  196 +++-
 .../FiltersConfigForm/RemovedFilter.tsx            |    2 +-
 .../FiltersConfigForm/getControlItemsMap.tsx       |    4 +
 .../FiltersConfigForm/utils.test.ts                |   76 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |   91 +-
 .../hooks/useCustomizationOperations.ts            |    2 +-
 .../hooks/useFilterOperations.ts                   |    2 +-
 .../transformers/buildTarget.test.ts               |   74 ++
 .../FiltersConfigModal/transformers/buildTarget.ts |   61 ++
 .../transformers/customizationTransformer.ts       |   13 +-
 .../transformers/filterTransformer.ts              |   16 +-
 .../nativeFilters/FiltersConfigModal/types.ts      |    3 +
 .../nativeFilters/FiltersConfigModal/utils.ts      |   10 +-
 .../dashboard/components/nativeFilters/utils.ts    |    6 +-
 .../components/resizable/ResizableContainer.tsx    |  155 ++-
 .../src/dashboard/reducers/dashboardInfo.test.ts   |   24 +-
 .../src/dashboard/reducers/dashboardInfo.ts        |    1 +
 superset-frontend/src/dashboard/types.ts           |    3 +
 .../util/charts/getFormDataWithExtraFilters.ts     |   17 +-
 superset-frontend/src/dashboard/util/constants.ts  |    1 +
 .../util/getFormDataWithExtraFilters.test.ts       |   43 +
 .../src/dashboard/util/getRelatedCharts.test.ts    |   65 +-
 .../src/dashboard/util/getRelatedCharts.ts         |   17 +-
 .../explore/components/ControlPanelsContainer.tsx  |    8 +-
 .../explore/components/DataTableControl/index.tsx  |    2 +-
 .../DataTablesPane/components/SamplesPane.tsx      |    1 -
 .../DatasourcePanelDragOption/index.tsx            |    2 +-
 .../src/explore/components/ExploreAlert.tsx        |    2 +-
 .../components/ExploreViewContainer/index.tsx      |    7 +-
 .../src/explore/components/SaveModal.test.tsx      |   21 +
 .../src/explore/components/SaveModal.tsx           |   22 +-
 .../CollectionControl/CollectionControl.test.tsx   |    8 +
 .../controls/CollectionControl/index.tsx           |   35 +-
 .../controls/DatasourceControl/index.tsx           |    1 -
 .../FilterControl/AdhocFilterEditPopover/index.tsx |    2 +-
 .../components/controls/TextControl/index.tsx      |    7 +-
 .../components/controls/ViewportControl.tsx        |    1 +
 .../controls/VizTypeControl/VizTypeGallery.tsx     |    2 +-
 .../components/controls/VizTypeControl/index.tsx   |    1 -
 .../src/features/alerts/AlertReportModal.tsx       |    2 +-
 .../alerts/components/NotificationMethod.tsx       |    2 +-
 .../src/features/allEntities/AllEntitiesTable.tsx  |    2 +-
 .../src/features/annotations/AnnotationModal.tsx   |    2 +-
 .../DatabaseConnectionForm/EncryptedField.test.tsx |  142 ++-
 .../DatabaseConnectionForm/EncryptedField.tsx      |   73 +-
 .../databases/DatabaseModal/ExtraOptions.test.tsx  |   68 ++
 .../databases/DatabaseModal/ExtraOptions.tsx       |   36 +-
 .../databases/DatabaseModal/index.test.tsx         |   67 +-
 .../src/features/databases/DatabaseModal/index.tsx |   16 +-
 .../src/features/databases/DatabaseModal/styles.ts |   31 +-
 .../databases/UploadDataModel/ColumnsPreview.tsx   |    4 +-
 .../features/databases/UploadDataModel/index.tsx   |    4 +-
 .../features/datasets/DatasetSelectLabel/index.tsx |   24 +-
 superset-frontend/src/features/home/RightMenu.tsx  |    2 +
 .../src/features/home/SavedQueries.tsx             |    1 -
 .../src/features/roles/RoleListEditModal.test.tsx  |    2 +-
 .../src/features/semanticLayers/label.ts           |   12 +
 .../src/features/tags/BulkTagModal.tsx             |    2 +-
 superset-frontend/src/features/tags/TagModal.tsx   |    2 +-
 .../src/features/userInfo/UserInfoModal.tsx        |    2 +-
 superset-frontend/src/features/users/utils.ts      |    2 +-
 superset-frontend/src/middleware/logger.test.ts    |   25 +
 .../src/middleware/loggerMiddleware.ts             |   11 +-
 superset-frontend/src/pages/AllEntities/index.tsx  |    4 +-
 .../pages/ChartList/ChartList.permissions.test.tsx |    6 +-
 .../DashboardList.permissions.test.tsx             |    7 +-
 superset-frontend/src/pages/GroupsList/index.tsx   |    2 +-
 superset-frontend/src/pages/UsersList/index.tsx    |    2 +-
 superset-frontend/src/setup/setupCodeOverrides.ts  |    4 +-
 superset-frontend/src/theme/ThemeController.ts     |   35 +-
 .../src/theme/tests/ThemeController.test.ts        |   95 ++
 superset-frontend/src/types/bootstrapTypes.ts      |    3 +
 .../src/visualizations/TimeTable/TimeTable.tsx     |    2 +-
 ...t-runner-jest.config.js => stylelint.config.js} |   27 +-
 superset-websocket/package-lock.json               |  272 ++---
 superset-websocket/package.json                    |    9 +-
 superset-websocket/src/index.ts                    |    4 +-
 superset/charts/api.py                             |  192 +++-
 superset/charts/data/api.py                        |   10 +
 superset/charts/filters.py                         |   11 +-
 superset/cli/thumbnails.py                         |   30 +-
 superset/commands/dashboard/copy.py                |   13 +
 .../commands/dashboard/importers/v1/__init__.py    |   62 +-
 superset/commands/dashboard/update.py              |   42 +-
 superset/commands/dataset/duplicate.py             |   73 +-
 superset/commands/importers/v1/__init__.py         |   13 +
 superset/commands/importers/v1/assets.py           |   44 +-
 superset/commands/importers/v1/utils.py            |   32 +
 superset/config.py                                 |   38 +-
 superset/connectors/sqla/models.py                 |   46 +-
 superset/constants.py                              |    2 +
 superset/core/api/core_api_injection.py            |   16 +-
 superset/daos/dataset.py                           |  209 ++--
 superset/daos/{security.py => subject.py}          |   11 +-
 superset/daos/version.py                           |   69 ++
 superset/dashboards/api.py                         |  179 +++-
 superset/databases/schemas.py                      |   70 +-
 superset/datasets/api.py                           |  234 ++++-
 superset/extensions/__init__.py                    |   25 +
 superset/initialization/__init__.py                |  242 ++++-
 superset/mcp_service/CLAUDE.md                     |   11 +-
 superset/mcp_service/SECURITY.md                   |    8 +-
 superset/mcp_service/app.py                        |   20 +-
 superset/mcp_service/auth.py                       |  114 +-
 superset/mcp_service/chart/chart_utils.py          |  112 +-
 superset/mcp_service/chart/plugins/big_number.py   |    2 +-
 superset/mcp_service/chart/schemas.py              |   52 +-
 superset/mcp_service/chart/tool/__init__.py        |    2 +
 superset/mcp_service/chart/tool/delete_chart.py    |  186 ++++
 superset/mcp_service/chart/tool/get_chart_data.py  |   62 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |    9 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   19 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |   10 +
 superset/mcp_service/dashboard/schemas.py          |   44 +
 superset/mcp_service/dashboard/tool/__init__.py    |    2 +
 .../mcp_service/dashboard/tool/delete_dashboard.py |  235 +++++
 superset/mcp_service/dataset/dataset_utils.py      |   50 +
 superset/mcp_service/dataset/schemas.py            |  151 +++
 superset/mcp_service/dataset/tool/__init__.py      |    2 +
 superset/mcp_service/dataset/tool/query_dataset.py |   30 +-
 .../dataset/tool/update_dataset_metric.py          |  294 ++++++
 superset/mcp_service/guest_scope.py                |   72 ++
 superset/mcp_service/mcp_config.py                 |   24 +-
 superset/mcp_service/privacy.py                    |    5 +
 .../mcp_service/rls/tool/get_rls_filter_info.py    |   10 +
 superset/mcp_service/rls/tool/list_rls_filters.py  |   10 +
 superset/mcp_service/role/tool/get_role_info.py    |    4 +
 superset/mcp_service/role/tool/list_roles.py       |    4 +
 .../mcp_service/theme}/__init__.py                 |    5 +-
 superset/mcp_service/{tag => theme}/schemas.py     |  158 ++-
 .../{database => theme}/tool/__init__.py           |   10 +-
 superset/mcp_service/theme/tool/create_theme.py    |  159 +++
 .../tool/get_theme_info.py}                        |   65 +-
 .../list_tags.py => theme/tool/list_themes.py}     |  104 +-
 superset/mcp_service/user/tool/get_user_info.py    |    4 +
 superset/mcp_service/user/tool/list_users.py       |    4 +
 superset/middleware/legacy_prefix_redirect.py      |   42 +-
 ...-28_19-50_56cd24c07170_add_versioning_tables.py |  574 ++++++++++
 ...3_12-00_8f3a1b2c4d5e_shadow_live_row_indexes.py |  180 ++++
 superset/models/dashboard.py                       |   27 +
 superset/models/helpers.py                         |  123 ++-
 superset/models/slice.py                           |   37 +
 superset/security/manager.py                       |    5 +
 superset/semantic_layers/api.py                    |    9 +-
 superset/semantic_layers/mapper.py                 |   15 +-
 superset/sql/dialects/firebolt.py                  |    5 +-
 superset/subjects/api.py                           |  123 +++
 superset/subjects/filters.py                       |   22 +
 superset/subjects/schemas.py                       |   14 +
 superset/subjects/sync.py                          |   71 +-
 superset/subjects/views.py                         |   50 -
 superset/utils/csv.py                              |   48 +-
 superset/utils/filters.py                          |   53 +-
 .../common => superset/versioning}/__init__.py     |    0
 superset/versioning/api_helpers.py                 |  219 ++++
 superset/versioning/baseline/__init__.py           |   69 ++
 superset/versioning/baseline/children.py           |  212 ++++
 superset/versioning/baseline/collection.py         |  153 +++
 superset/versioning/baseline/dirty.py              |  243 +++++
 superset/versioning/baseline/insertion.py          |  150 +++
 superset/versioning/baseline/listener.py           |  132 +++
 superset/versioning/baseline/shadow.py             |   92 ++
 superset/versioning/changes/__init__.py            |   76 ++
 superset/versioning/changes/listener.py            |  433 ++++++++
 superset/versioning/changes/shadow_queries.py      |  323 ++++++
 superset/versioning/changes/state.py               |  233 ++++
 superset/versioning/changes/table.py               |   90 ++
 superset/versioning/diff.py                        | 1111 ++++++++++++++++++++
 superset/versioning/etag.py                        |   78 ++
 superset/versioning/factory.py                     |  312 ++++++
 superset/versioning/queries.py                     |  518 +++++++++
 superset/versioning/schemas.py                     |  152 +++
 superset/versioning/utils.py                       |   50 +
 superset/views/base.py                             |    7 +-
 .../example_data/data_loading/base_data_loader.py  |    2 +-
 .../dashboards/superset_factory_util.py            |   16 +-
 .../security/row_level_security_tests.py           |  107 ++
 .../integration_tests/subjects}/__init__.py        |    0
 tests/integration_tests/subjects/api_tests.py      |  142 +++
 tests/integration_tests/superset_test_config.py    |    8 +
 .../integration_tests/versioning}/__init__.py      |    0
 .../versioning/capture_disabled_tests.py           |  171 +++
 tests/integration_tests/versioning/conftest.py     |   94 ++
 .../versioning/snapshot_projection_tests.py        |   70 ++
 .../versioning/transaction_correctness_tests.py    |  224 ++++
 .../versioning/versions_api_tests.py               |  458 ++++++++
 tests/unit_tests/charts/test_filters.py            |  180 ++++
 tests/unit_tests/cli/thumbnails_test.py            |   79 ++
 .../unit_tests/commands/dataset/test_duplicate.py  |   13 +
 tests/unit_tests/dao/dataset_test.py               |   65 ++
 tests/unit_tests/dao/subject_test.py               |   61 ++
 .../databases/commands/importers/v1/import_test.py |    6 +-
 tests/unit_tests/databases/schema_tests.py         |  273 ++++-
 tests/unit_tests/examples/generic_loader_test.py   |    4 +-
 tests/unit_tests/initialization_test.py            |   98 ++
 .../mcp_service/chart/test_big_number_chart.py     |  121 +++
 .../mcp_service/chart/test_chart_utils.py          |   84 +-
 .../mcp_service/chart/tool/test_delete_chart.py    |  229 ++++
 .../mcp_service/chart/tool/test_get_chart_data.py  |   31 +-
 .../mcp_service/chart/tool/test_get_chart_info.py  |   19 +
 .../chart/tool/test_get_chart_preview.py           |   36 +-
 .../mcp_service/chart/tool/test_get_chart_sql.py   |   18 +
 .../mcp_service/chart/tool/test_list_charts.py     |    1 +
 .../dashboard/tool/test_delete_dashboard.py        |  254 +++++
 .../mcp_service/dataset/tool/test_query_dataset.py |   32 +-
 .../dataset/tool/test_update_dataset_metric.py     |  541 ++++++++++
 .../mcp_service/rls/tool/test_rls_tools.py         |   28 +
 .../semantic_layer/tool/test_list_metrics.py       |   40 +-
 .../system/tool/test_get_current_user.py           |    1 +
 tests/unit_tests/mcp_service/test_auth_rbac.py     |   66 ++
 tests/unit_tests/mcp_service/test_guest_scope.py   |  121 +++
 .../mcp_service/test_guest_token_auth.py           |  182 +++-
 tests/unit_tests/mcp_service/test_privacy.py       |   45 +
 .../unit_tests/mcp_service/theme}/__init__.py      |    0
 .../unit_tests/mcp_service/theme/tool}/__init__.py |    0
 .../mcp_service/theme/tool/test_create_theme.py    |  260 +++++
 .../mcp_service/theme/tool/test_get_theme_info.py  |  133 +++
 .../mcp_service/theme/tool/test_list_themes.py     |  128 +++
 .../middleware/test_legacy_prefix_redirect.py      |   75 +-
 tests/unit_tests/models/helpers_test.py            |  264 ++++-
 tests/unit_tests/security/manager_test.py          |   37 +
 tests/unit_tests/semantic_layers/api_test.py       |    3 +
 tests/unit_tests/semantic_layers/mapper_test.py    |   22 +
 tests/unit_tests/utils/csv_tests.py                |    3 +
 tests/unit_tests/utils/filters_test.py             |  119 ++-
 tests/unit_tests/utils/test_date_parsing.py        |   91 ++
 tests/unit_tests/versioning/test_diff_caps.py      |  218 ++++
 tests/unit_tests/versioning/test_listener.py       |  204 ++++
 tests/unit_tests/views/test_bootstrap_auth.py      |   21 +
 356 files changed, 21640 insertions(+), 2303 deletions(-)
 create mode 100644 helm/superset/UPGRADING.md
 create mode 100644 helm/superset/tests/checksum_test.yaml
 create mode 100644 helm/superset/tests/config_test.yaml
 copy MANIFEST.in => helm/superset/tests/deprecation_test.yaml (66%)
 create mode 100644 helm/superset/tests/initscript_test.yaml
 create mode 100644 helm/superset/tests/secret_env_test.yaml
 copy .dockerignore => helm/superset/tests/serviceaccount_test.yaml (63%)
 copy docker/entrypoints/docker-ci.sh => 
helm/superset/tests/values_defaults_test.yaml (71%)
 mode change 100755 => 100644
 create mode 100644 helm/superset/values.schema.json
 copy scripts/{check-custom-rules.sh => stylelint.sh} (81%)
 create mode 100644 superset-frontend/.stylelintignore
 create mode 100644 
superset-frontend/playwright/tests/dashboard/delete-display-control.spec.ts
 create mode 100644 
superset-frontend/plugins/legacy-plugin-chart-horizon/test/HorizonChart.test.tsx
 create mode 100644 
superset-frontend/plugins/legacy-plugin-chart-horizon/test/HorizonRow.test.tsx
 create mode 100644 
superset-frontend/plugins/legacy-plugin-chart-paired-t-test/test/TTestTable.test.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-pivot-table/test/PivotTableChart.test.tsx
 create mode 100644 
superset-frontend/plugins/plugin-chart-word-cloud/test/WordCloud.test.tsx
 create mode 100644 
superset-frontend/src/dashboard/components/Header/useHeaderAutoRefresh.test.tsx
 create mode 100644 
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/buildTarget.test.ts
 create mode 100644 
superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/transformers/buildTarget.ts
 copy superset-frontend/{test-runner-jest.config.js => stylelint.config.js} 
(65%)
 copy superset/daos/{security.py => subject.py} (73%)
 create mode 100644 superset/daos/version.py
 create mode 100644 superset/mcp_service/chart/tool/delete_chart.py
 create mode 100644 superset/mcp_service/dashboard/tool/delete_dashboard.py
 create mode 100644 superset/mcp_service/dataset/dataset_utils.py
 create mode 100644 superset/mcp_service/dataset/tool/update_dataset_metric.py
 create mode 100644 superset/mcp_service/guest_scope.py
 copy {superset-core/src/superset_core => 
superset/mcp_service/theme}/__init__.py (86%)
 copy superset/mcp_service/{tag => theme}/schemas.py (56%)
 copy superset/mcp_service/{database => theme}/tool/__init__.py (81%)
 create mode 100644 superset/mcp_service/theme/tool/create_theme.py
 copy superset/mcp_service/{tag/tool/get_tag_info.py => 
theme/tool/get_theme_info.py} (55%)
 copy superset/mcp_service/{tag/tool/list_tags.py => theme/tool/list_themes.py} 
(56%)
 create mode 100644 
superset/migrations/versions/2026-05-28_19-50_56cd24c07170_add_versioning_tables.py
 create mode 100644 
superset/migrations/versions/2026-06-03_12-00_8f3a1b2c4d5e_shadow_live_row_indexes.py
 create mode 100644 superset/subjects/api.py
 delete mode 100644 superset/subjects/views.py
 copy {superset-core/src/superset_core/common => 
superset/versioning}/__init__.py (100%)
 create mode 100644 superset/versioning/api_helpers.py
 create mode 100644 superset/versioning/baseline/__init__.py
 create mode 100644 superset/versioning/baseline/children.py
 create mode 100644 superset/versioning/baseline/collection.py
 create mode 100644 superset/versioning/baseline/dirty.py
 create mode 100644 superset/versioning/baseline/insertion.py
 create mode 100644 superset/versioning/baseline/listener.py
 create mode 100644 superset/versioning/baseline/shadow.py
 create mode 100644 superset/versioning/changes/__init__.py
 create mode 100644 superset/versioning/changes/listener.py
 create mode 100644 superset/versioning/changes/shadow_queries.py
 create mode 100644 superset/versioning/changes/state.py
 create mode 100644 superset/versioning/changes/table.py
 create mode 100644 superset/versioning/diff.py
 create mode 100644 superset/versioning/etag.py
 create mode 100644 superset/versioning/factory.py
 create mode 100644 superset/versioning/queries.py
 create mode 100644 superset/versioning/schemas.py
 create mode 100644 superset/versioning/utils.py
 copy {superset-core/src/superset_core/common => 
tests/integration_tests/subjects}/__init__.py (100%)
 create mode 100644 tests/integration_tests/subjects/api_tests.py
 copy {superset-core/src/superset_core/common => 
tests/integration_tests/versioning}/__init__.py (100%)
 create mode 100644 tests/integration_tests/versioning/capture_disabled_tests.py
 create mode 100644 tests/integration_tests/versioning/conftest.py
 create mode 100644 
tests/integration_tests/versioning/snapshot_projection_tests.py
 create mode 100644 
tests/integration_tests/versioning/transaction_correctness_tests.py
 create mode 100644 tests/integration_tests/versioning/versions_api_tests.py
 create mode 100644 tests/unit_tests/charts/test_filters.py
 create mode 100644 tests/unit_tests/cli/thumbnails_test.py
 create mode 100644 tests/unit_tests/dao/subject_test.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_delete_chart.py
 create mode 100644 
tests/unit_tests/mcp_service/dashboard/tool/test_delete_dashboard.py
 create mode 100644 
tests/unit_tests/mcp_service/dataset/tool/test_update_dataset_metric.py
 create mode 100644 tests/unit_tests/mcp_service/test_guest_scope.py
 copy {superset-core/src/superset_core/common => 
tests/unit_tests/mcp_service/theme}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => 
tests/unit_tests/mcp_service/theme/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/theme/tool/test_create_theme.py
 create mode 100644 
tests/unit_tests/mcp_service/theme/tool/test_get_theme_info.py
 create mode 100644 tests/unit_tests/mcp_service/theme/tool/test_list_themes.py
 create mode 100644 tests/unit_tests/versioning/test_diff_caps.py
 create mode 100644 tests/unit_tests/versioning/test_listener.py


Reply via email to