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

rusackas pushed a change to branch feat/stylelint-css-in-js
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit 964e5c220c4 chore(frontend): bump stylelint to v17.14.0
    omit 48e88da845f fix: correct stylesheet name typo in checkbox tree 
override comment
    omit e76b70823e1 chore(frontend): lint Emotion CSS-in-JS with Stylelint
     add 3fa000ba0bc fix(chart): allow custom date format for week range in Big 
Number with Trendline (#35752)
     add 0efcd54250a fix(charts): fix time comparison crash when offsets share 
a numeric prefix (#39344)
     add f6d03e4a687 fix(clickhouse): time filters use server timezone for 
toDateTime literals (#41579)
     add 206155f986c fix(explore): apply per-datasource access check on the 
legacy explore view (#41425)
     add f74de0eb6c3 fix: Show metric in the default tooltip of deck.gl GeoJson 
Polygon chart (#41341)
     add 2dab31c1301 fix(mcp): serialize FAB role permissions (#41404)
     add 01cd2152027 fix(explore): default Save As for new charts in save 
dialog (#41314)
     add 3b1abf82608 feat(Icons): adding Layout icon (#41853)
     add 211bcbc6353 chore(deps-dev): bump @swc/plugin-emotion from 14.14.0 to 
14.14.1 in /superset-frontend (#41875)
     add d81b135a04c fix(explore): render DragOverlay so dragged metric/column 
is visible (#41879)
     add 8a599d70b43 fix(explore): admin creating new chart crashes on save 
(#41880)
     add 49ed2063815 fix(a11y): add aria-label to dependency-list remove icon 
(#41878)
     add deefe897f15 chore(frontend): remove orphaned eslint-plugin-cypress 
devDependency (#41866)
     add dc5c5af4671 docs: Add geOrchestra project and pi-geosolutions to In 
the Wild (#41801)
     add e333135a0d4 feat(i18n): expose the six newly backfilled locales 
(#41827)
     add 001d6c9692c fix(semantic-layers): apply time-comparison offset to 
`TEMPORAL_RANGE` filters (#41556)
     add 34d4966f8b1 fix(dataset): resolve duplicate virtual dataset validation 
error (#37932)
     add 01e872c1056 refactor: remove the deprecated AVOID_COLORS_COLLISION 
feature flag (#41800)
     add 33f0fc93edf feat: introduce Subject model and entity editors/viewers 
(#38831)
     add 83716cb8c0d build(websocket): migrate to ESM (#41680)
     add 2c8cdbbd9b2 chore(dependabot): unify npm Dependabot config used for 
multi-workspace `superset-frontend` (#41586)
     add e65b2c49d73 fix(marshmallow): add compatibility layer for 
Flask-AppBuilder with marshmallow 4.x (#35920)
     add 8e549e49750 chore(deps-dev): update playwright requirement from 
<2,>=1.60.0 to >=1.61.0,<2 (#41890)
     add 31351eb52af chore(deps-dev): bump @types/node from 26.0.1 to 26.1.0 in 
/superset-frontend (#41896)
     add 15f8b8e9b40 chore(deps): bump immer from 11.1.8 to 11.1.9 in 
/superset-frontend (#41894)
     add a0d9e82c60b chore(deps): bump celery from 5.5.2 to 5.6.3 (#41892)
     add 3a10f39c207 chore(deps-dev): bump pytest from 7.4.4 to 9.1.1 (#41888)
     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 0840888f469 chore(frontend): lint Emotion CSS-in-JS with Stylelint
     add 0fceca15d58 fix: correct stylesheet name typo in checkbox tree 
override comment
     add aff8179976c chore(frontend): bump stylelint to v17.14.0
     add 1e91d2c2cf7 style(frontend): reformat DashboardGrid import after rebase

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (964e5c220c4)
            \
             N -- N -- N   refs/heads/feat/stylelint-css-in-js (1e91d2c2cf7)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .github/dependabot.yml                             |  289 --
 .github/workflows/check-python-deps.yml            |    2 +-
 .github/workflows/codeql-analysis.yml              |    4 +-
 ...sync-requirements-for-python-dep-upgrade-pr.yml |    2 +-
 RESOURCES/INTHEWILD.yaml                           |   39 +-
 UPDATING.md                                        |  111 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |    6 +-
 docs/admin_docs/configuration/cache.mdx            |   12 +-
 .../configuration/networking-settings.mdx          |    6 +-
 docs/admin_docs/security/securing_superset.mdx     |    2 +-
 docs/admin_docs/security/security.mdx              |  155 +-
 .../components/design-system/metadatabar.mdx       |   16 +-
 .../guidelines/backend-style-guidelines.md         |   10 +-
 .../guidelines/backend/dao-style-guidelines.md     |    8 +-
 docs/developer_docs/testing/backend-testing.md     |    2 +-
 docs/docs/faq.mdx                                  |   17 +
 .../creating-your-first-dashboard.mdx              |    8 +-
 docs/static/feature-flags.json                     |   21 +-
 docs/static/img/logos/camptocamp.svg               |  Bin 0 -> 14528 bytes
 docs/static/img/logos/craig.png                    |  Bin 0 -> 40696 bytes
 docs/static/img/logos/geo2france.png               |  Bin 0 -> 4687 bytes
 docs/static/img/logos/geobretagne.svg              |  Bin 0 -> 7203 bytes
 docs/static/img/logos/georchestra.svg              |  Bin 0 -> 12615 bytes
 docs/static/img/logos/jDev.svg                     |  Bin 0 -> 26135 bytes
 docs/static/img/logos/mel.jpg                      |  Bin 0 -> 27292 bytes
 docs/static/img/logos/pi-Geosolutions.png          |  Bin 0 -> 22032 bytes
 .../img/logos/rennes-ville-metropole_noir.svg      |  Bin 0 -> 4242 bytes
 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 +
 helm/superset/tests/deprecation_test.yaml          |   28 +
 helm/superset/tests/initscript_test.yaml           |   63 +
 helm/superset/tests/secret_env_test.yaml           |   71 +
 helm/superset/tests/serviceaccount_test.yaml       |   28 +
 helm/superset/tests/values_defaults_test.yaml      |   30 +
 helm/superset/values.schema.json                   |  140 +
 helm/superset/values.yaml                          |  148 +-
 pyproject.toml                                     |   17 +-
 requirements/base.txt                              |   12 +-
 requirements/development.txt                       |   19 +-
 superset-core/pyproject.toml                       |    2 +-
 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 +-
 .../cypress-base/cypress/fixtures/charts.json      |    4 -
 superset-frontend/package-lock.json                |  135 +-
 superset-frontend/package.json                     |   16 +-
 .../superset-core/src/translation/types/index.ts   |   19 +-
 .../superset-ui-chart-controls/src/fixtures.ts     |    2 +-
 .../src/operators/renameOperator.ts                |    2 +-
 .../src/operators/utils/timeOffset.ts              |    6 +-
 .../superset-ui-chart-controls/src/types.ts        |    2 +-
 .../test/operators/renameOperator.test.ts          |   24 +
 .../test/operators/utils/timeOffset.test.ts        |   23 +
 .../packages/superset-ui-core/package.json         |    6 +-
 .../src/color/CategoricalColorScale.ts             |    7 +-
 .../src/components/Icons/AntdEnhanced.tsx          |    2 +
 .../src/components/MetadataBar/ContentConfig.tsx   |    6 +-
 .../src/components/MetadataBar/ContentType.ts      |   10 +-
 .../components/MetadataBar/MetadataBar.stories.tsx |   22 +-
 .../components/MetadataBar/MetadataBar.test.tsx    |   12 +-
 .../MetadataBar/MetadataBarOverview.stories.tsx    |    4 +-
 .../src/components/MetadataBar/constants.ts        |    2 +-
 .../components/ModalTrigger/ModalTrigger.test.tsx  |   42 +-
 .../src/components/ModalTrigger/index.tsx          |   20 +-
 .../superset-ui-core/src/query/types/Dashboard.ts  |    2 +
 .../superset-ui-core/src/utils/featureFlags.ts     |    3 +-
 .../test/color/CategoricalColorScale.test.ts       |   84 +-
 .../playwright/helpers/api/dataset.ts              |    6 +-
 .../playwright/tests/dashboard/theme.spec.ts       |   35 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |    2 +-
 .../test/AgGridTableChart.test.tsx                 |   18 +-
 .../plugin-chart-echarts/src/BigNumber/utils.ts    |    2 +-
 .../test/BigNumber/transformProps.test.ts          |   28 +-
 .../src/PivotTableChart.tsx                        |   84 +-
 .../test/PivotTableChart.test.tsx                  |  370 ++
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   28 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |   49 +
 .../plugins/preset-chart-deckgl/package.json       |    2 +-
 .../src/layers/Polygon/transformProps.test.ts      |   36 +
 .../src/layers/Polygon/transformProps.ts           |   16 +-
 .../src/utilities/tooltipUtils.test.tsx            |   90 +
 .../src/utilities/tooltipUtils.tsx                 |   50 +-
 superset-frontend/spec/fixtures/mockCharts.ts      |    7 -
 .../spec/fixtures/mockDashboardInfo.js             |    3 +-
 .../spec/fixtures/mockDashboardState.js            |    3 +-
 superset-frontend/spec/fixtures/mockDatasource.ts  |    4 +-
 superset-frontend/spec/fixtures/mockReportState.js |    1 -
 .../spec/fixtures/mockSliceEntities.js             |   23 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |  104 +-
 superset-frontend/src/SqlLab/fixtures.ts           |    3 +-
 superset-frontend/src/SqlLab/types.ts              |   10 +-
 .../TimeGrainPreFilter.integration.test.tsx        |    6 +-
 .../src/components/AuditInfo/index.tsx             |    6 +-
 .../src/components/AuditInfo/types.ts              |    4 +-
 .../components/Chart/ChartErrorMessage.test.tsx    |   14 +-
 .../src/components/Chart/ChartErrorMessage.tsx     |    8 +-
 .../components/Chart/DrillBy/DrillByChart.test.tsx |    7 +-
 .../components/Chart/DrillBy/DrillByModal.test.tsx |    7 +-
 .../Chart/DrillBy/DrillBySubmenu.test.tsx          |    2 +-
 .../Chart/DrillDetail/DrillDetailPane.test.tsx     |    7 +-
 superset-frontend/src/components/Chart/types.ts    |    6 +-
 .../Datasource/ChangeDatasourceModal/index.tsx     |   10 +-
 .../DatasourceModal/DatasourceModal.test.tsx       |    8 +
 .../Datasource/DatasourceModal/index.tsx           |    7 +-
 .../DatasourceEditor/DatasourceEditor.tsx          |  106 +-
 .../DatasetUsageTab/DatasetUsageTab.test.tsx       |   39 +-
 .../components/DatasetUsageTab/index.tsx           |   28 +-
 .../tests/DatasourceEditor.test.utils.tsx          |    2 +-
 .../ErrorMessage/DatabaseErrorMessage.test.tsx     |   12 +-
 .../ErrorMessage/DatabaseErrorMessage.tsx          |   18 +-
 .../ErrorMessage/OAuth2RedirectMessage.test.tsx    |    4 +-
 .../ErrorMessage/TimeoutErrorMessage.test.tsx      |   12 +-
 .../ErrorMessage/TimeoutErrorMessage.tsx           |   18 +-
 .../src/components/FacePile/FacePile.stories.tsx   |   60 -
 .../src/components/FacePile/FacePile.test.tsx      |  173 -
 .../src/components/FacePile/index.tsx              |   64 -
 .../src/components/FacePile/utils.tsx              |   49 -
 .../FilterableTable/FilterableTable.test.tsx       |   55 +-
 .../TableSelector/TableSelector.test.tsx           |   40 +-
 .../src/components/TableSelector/index.tsx         |    6 +
 .../src/components/TagsList/TagsList.test.tsx      |    4 +-
 superset-frontend/src/components/index.ts          |    1 -
 .../src/dashboard/actions/dashboardState.test.ts   |   44 +
 .../src/dashboard/actions/dashboardState.ts        |   20 +-
 superset-frontend/src/dashboard/actions/hydrate.ts |    4 +-
 .../src/dashboard/actions/sliceEntities.ts         |    6 +-
 .../dashboard/components/DashboardGrid.test.tsx    |   36 +
 .../src/dashboard/components/DashboardGrid.tsx     |   63 +-
 .../dashboard/components/Header/Header.test.tsx    |    6 +-
 .../src/dashboard/components/Header/index.tsx      |   17 +-
 .../components/Header/useDashboardMetadataBar.tsx  |   17 +-
 .../Header/useHeaderAutoRefresh.test.tsx           |  154 +
 .../components/Header/useHeaderAutoRefresh.ts      |   31 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |  249 +-
 .../PropertiesModal/hooks/useAccessOptions.ts      |   76 -
 .../dashboard/components/PropertiesModal/index.tsx |   77 +-
 .../sections/AccessSection.stories.tsx             |  152 +
 .../sections/AccessSection.test.tsx                |   72 +-
 .../PropertiesModal/sections/AccessSection.tsx     |  119 +-
 .../components/PropertiesModal/utils.test.ts       |   90 -
 .../dashboard/components/PropertiesModal/utils.ts  |   81 -
 .../src/dashboard/components/SaveModal.tsx         |   10 +-
 .../src/dashboard/components/SliceAdder.test.tsx   |    2 +-
 .../src/dashboard/components/SliceAdder.tsx        |   11 +-
 .../components/SliceHeader/SliceHeader.test.tsx    |    2 +-
 .../SliceHeaderControls.subdirectory.test.tsx      |    2 +-
 .../SliceHeaderControls.test.tsx                   |    2 +-
 .../components/gridComponents/Chart/Chart.test.tsx |    1 -
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |    6 +-
 .../FilterBarSettings/FilterBarSettings.test.tsx   |    2 +-
 .../FilterBar/FilterControls/FilterValue.tsx       |    9 +-
 .../FiltersConfigForm/ColumnSelect.tsx             |   92 +-
 .../FiltersConfigForm/DatasetSelect.test.tsx       |   45 +
 .../FiltersConfigForm/DatasetSelect.tsx            |  102 +-
 .../FiltersConfigForm/DependencyList.tsx           |    6 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |  196 +-
 .../FiltersConfigForm/getControlItemsMap.tsx       |    4 +
 .../FiltersConfigForm/utils.test.ts                |   76 +-
 .../FiltersConfigModal/FiltersConfigForm/utils.ts  |   91 +-
 .../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 +-
 .../dashboard/containers/DashboardPage.test.tsx    |    3 +-
 .../src/dashboard/reducers/dashboardInfo.test.ts   |   24 +-
 .../src/dashboard/reducers/dashboardInfo.ts        |    1 +
 superset-frontend/src/dashboard/types.ts           |   16 +-
 .../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 +-
 .../src/dashboard/util/permissionUtils.test.ts     |  190 +-
 .../src/dashboard/util/permissionUtils.ts          |   25 +-
 .../src/explore/actions/hydrateExplore.ts          |   13 +-
 .../src/explore/actions/saveModalActions.test.ts   |   36 +-
 .../src/explore/actions/saveModalActions.ts        |    8 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |    8 +-
 .../components/ExploreChartHeader/index.tsx        |   12 +-
 .../ExploreChartHeader/useExploreMetadataBar.tsx   |    4 +-
 .../ExploreContainer/ExploreDndContext.tsx         |   61 +
 .../ExploreViewContainer.test.tsx                  |  185 +-
 .../PropertiesModal/PropertiesModal.test.tsx       |   64 +-
 .../explore/components/PropertiesModal/index.tsx   |  178 +-
 .../src/explore/components/SaveModal.test.tsx      |   48 +-
 .../src/explore/components/SaveModal.tsx           |   33 +-
 .../CollectionControl/CollectionControl.test.tsx   |    8 +
 .../controls/CollectionControl/index.tsx           |   35 +-
 .../DatasourceControl/DatasourceControl.test.tsx   |   12 +-
 .../controls/DatasourceControl/index.tsx           |   12 +-
 .../SelectAsyncControl/SelectAsyncControl.test.tsx |    6 +-
 .../components/controls/TextControl/index.tsx      |    4 +-
 .../components/controls/ViewportControl.tsx        |    1 +
 superset-frontend/src/explore/fixtures.tsx         |    2 +-
 .../src/explore/reducers/exploreReducer.ts         |   30 +-
 superset-frontend/src/explore/types.ts             |    3 +-
 .../src/features/alerts/AlertReportModal.test.tsx  |   83 +-
 .../src/features/alerts/AlertReportModal.tsx       |  142 +-
 .../alerts/components/NotificationMethod.test.tsx  |    6 +-
 .../alerts/components/NotificationMethod.tsx       |    2 +-
 superset-frontend/src/features/alerts/types.ts     |    4 +-
 .../AllEntitiesTable.subdirectory.test.tsx         |    6 +-
 .../features/allEntities/AllEntitiesTable.test.tsx |   10 +-
 .../src/features/allEntities/AllEntitiesTable.tsx  |   15 +-
 .../src/features/charts/ChartCard.tsx              |    5 +-
 .../src/features/cssTemplates/types.ts             |    6 +-
 .../src/features/dashboards/DashboardCard.test.tsx |   15 +-
 .../src/features/dashboards/DashboardCard.tsx      |    5 +-
 .../databases/DatabaseModal/ExtraOptions.test.tsx  |   68 +
 .../databases/DatabaseModal/ExtraOptions.tsx       |   36 +-
 .../databases/DatabaseModal/index.test.tsx         |   65 +
 .../src/features/databases/DatabaseModal/index.tsx |   16 +-
 .../DatasetPanel.subdirectory.test.tsx             |    2 +-
 .../datasets/AddDataset/DatasetPanel/fixtures.ts   |    2 +-
 .../datasets/AddDataset/Footer/Footer.test.tsx     |    2 +-
 .../src/features/datasets/AddDataset/types.tsx     |    3 +-
 .../features/datasets/DatasetSelectLabel/index.tsx |   24 +-
 .../datasets/DuplicateDatasetModal.test.tsx        |    5 +-
 .../datasets/hooks/useDatasetLists.test.ts         |   10 +-
 .../src/features/datasets/hooks/useDatasetLists.ts |   10 +-
 .../DatasetMetadataBar.skipped-stories.tsx         |   17 +-
 .../metadataBar/useDatasetMetadataBar.test.tsx     |   18 +-
 .../datasets/metadataBar/useDatasetMetadataBar.tsx |   13 +-
 superset-frontend/src/features/datasets/types.ts   |    4 +-
 superset-frontend/src/features/home/RightMenu.tsx  |    2 +
 .../OwnerSelectLabel/OwnerSelectLabel.test.tsx     |   38 -
 .../HeaderReportDropdown/index.test.tsx            |    2 +-
 .../reports/ReportModal/ReportModal.test.tsx       |  109 +-
 .../src/features/reports/ReportModal/index.tsx     |   12 +-
 .../features/reports/ReportModal/reducer.test.ts   |    2 +-
 superset-frontend/src/features/reports/types.ts    |    2 +-
 .../features/rls/RowLevelSecurityModal.test.tsx    |   55 +-
 .../src/features/rls/RowLevelSecurityModal.tsx     |  217 +-
 superset-frontend/src/features/rls/types.ts        |   15 +-
 .../src/features/semanticLayers/label.ts           |   12 +
 .../SubjectPicker/SubjectPicker.stories.tsx        |  169 +
 .../subjects/SubjectPicker/SubjectPicker.test.tsx  |  293 ++
 .../src/features/subjects/SubjectPicker/index.tsx  |  139 +
 .../src/features/subjects/SubjectPicker/utils.ts   |  200 +
 .../subjects/SubjectPile/SubjectPile.stories.tsx   |   74 +
 .../subjects/SubjectPile/SubjectPile.test.tsx      |  103 +
 .../src/features/subjects/SubjectPile/index.tsx    |  142 +
 .../SubjectSelectLabel.stories.tsx                 |  115 +
 .../SubjectSelectLabel}/index.tsx                  |   55 +-
 superset-frontend/src/features/themes/types.ts     |    6 +-
 .../TimeGrainPreFilter.integration.test.tsx        |    4 +-
 superset-frontend/src/hooks/apiResources/charts.ts |   16 +-
 .../src/hooks/apiResources/dashboards.test.ts      |    2 +-
 .../src/hooks/apiResources/dashboards.ts           |    7 +-
 .../pages/AlertReportList/AlertReportList.test.tsx |   66 +-
 .../src/pages/AlertReportList/index.tsx            |   51 +-
 superset-frontend/src/pages/AllEntities/index.tsx  |   14 +-
 superset-frontend/src/pages/Chart/index.tsx        |    8 +-
 .../pages/ChartList/ChartList.listview.test.tsx    |   12 +-
 .../src/pages/ChartList/ChartList.test.tsx         |   14 +-
 .../src/pages/ChartList/ChartList.testHelpers.tsx  |   48 +-
 superset-frontend/src/pages/ChartList/index.tsx    |   71 +-
 .../DashboardList/DashboardList.behavior.test.tsx  |   10 +-
 .../DashboardList/DashboardList.listview.test.tsx  |    2 +-
 .../src/pages/DashboardList/DashboardList.test.tsx |   18 +-
 .../DashboardList/DashboardList.testHelpers.tsx    |   42 +-
 .../src/pages/DashboardList/index.tsx              |   96 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |    4 +-
 .../DatasetList/DatasetList.listview.test.tsx      |   60 +-
 .../DatasetList/DatasetList.permissions.test.tsx   |    3 +-
 .../src/pages/DatasetList/DatasetList.test.tsx     |   13 +-
 .../pages/DatasetList/DatasetList.testHelpers.tsx  |   40 +-
 superset-frontend/src/pages/DatasetList/index.tsx  |   48 +-
 superset-frontend/src/pages/Home/index.tsx         |    8 +-
 .../src/pages/QueryHistoryList/index.tsx           |    4 +-
 .../RowLevelSecurityList.test.tsx                  |   82 +-
 .../src/pages/RowLevelSecurityList/index.tsx       |   45 +-
 .../src/pages/SavedQueryList/index.tsx             |    6 +-
 superset-frontend/src/pages/TaskList/index.tsx     |   12 +-
 superset-frontend/src/theme/ThemeController.ts     |   28 +-
 .../src/theme/tests/ThemeController.test.ts        |   95 +
 superset-frontend/src/types/Chart.ts               |    8 +-
 superset-frontend/src/types/Dashboard.ts           |   11 +-
 superset-frontend/src/types/Dataset.ts             |    4 +-
 .../FacePile/types.ts => types/Subject.ts}         |   22 +-
 superset-frontend/src/types/TaggedObject.ts        |    4 +-
 superset-frontend/src/types/{Owner.ts => User.ts}  |    5 +-
 superset-frontend/src/types/bootstrapTypes.ts      |    5 +
 .../{getOwnerName.test.ts => getUserName.test.ts}  |   18 +-
 .../src/utils/{getOwnerName.ts => getUserName.ts}  |   10 +-
 superset-frontend/src/views/CRUD/hooks.ts          |    9 +-
 superset-frontend/src/views/CRUD/types.ts          |   14 +-
 superset-frontend/src/views/CRUD/utils.test.tsx    |   12 +-
 superset-frontend/src/views/CRUD/utils.tsx         |  102 +-
 .../{eslint.config.js => eslint.config.mjs}        |   17 +-
 superset-websocket/package-lock.json               |  223 +-
 superset-websocket/package.json                    |   16 +-
 superset-websocket/src/config.ts                   |    7 +-
 superset-websocket/src/index.ts                    |    8 +-
 superset-websocket/tsconfig.json                   |    5 +-
 superset/charts/api.py                             |  249 +-
 superset/charts/data/api.py                        |   10 +
 superset/charts/data/dashboard_filter_context.py   |    2 +-
 superset/charts/filters.py                         |  115 +-
 superset/charts/schemas.py                         |   23 +-
 superset/cli/sync_subjects.py                      |  108 +
 superset/cli/thumbnails.py                         |   30 +-
 superset/commands/base.py                          |   45 +-
 superset/commands/chart/create.py                  |   14 +-
 superset/commands/chart/delete.py                  |    4 +-
 superset/commands/chart/importers/v1/utils.py      |  180 +-
 superset/commands/chart/update.py                  |   36 +-
 superset/commands/dashboard/copy.py                |   19 +-
 superset/commands/dashboard/create.py              |   21 +-
 superset/commands/dashboard/delete.py              |    6 +-
 superset/commands/dashboard/export.py              |   10 -
 .../commands/dashboard/importers/v1/__init__.py    |   62 +-
 superset/commands/dashboard/importers/v1/utils.py  |   65 +-
 superset/commands/dashboard/update.py              |   90 +-
 superset/commands/database/uploaders/base.py       |   11 +-
 superset/commands/dataset/columns/delete.py        |    4 +-
 superset/commands/dataset/create.py                |   12 +-
 superset/commands/dataset/delete.py                |    4 +-
 superset/commands/dataset/duplicate.py             |   85 +-
 superset/commands/dataset/exceptions.py            |    5 -
 superset/commands/dataset/importers/v1/utils.py    |   28 +-
 superset/commands/dataset/metrics/delete.py        |    4 +-
 superset/commands/dataset/refresh.py               |    4 +-
 superset/commands/dataset/update.py                |   15 +-
 superset/commands/exceptions.py                    |   14 -
 superset/commands/explore/get.py                   |   14 +-
 superset/commands/export/assets.py                 |  162 +-
 superset/commands/importers/v1/__init__.py         |   13 +
 superset/commands/importers/v1/assets.py           |   44 +-
 superset/commands/importers/v1/utils.py            |   36 +-
 superset/commands/report/create.py                 |   18 +-
 superset/commands/report/delete.py                 |    4 +-
 superset/commands/report/execute.py                |   24 +-
 superset/commands/report/execute_now.py            |    2 +-
 superset/commands/report/update.py                 |   22 +-
 superset/commands/restore.py                       |   12 +-
 superset/commands/security/create.py               |   25 +-
 superset/commands/security/reset.py                |   14 +
 superset/commands/security/update.py               |   33 +-
 superset/commands/semantic_layer/delete.py         |    4 +-
 superset/commands/semantic_layer/update.py         |    2 +-
 superset/commands/tag/export.py                    |    2 +-
 superset/commands/tag/utils.py                     |    8 +-
 superset/commands/tasks/update.py                  |    2 +-
 superset/commands/utils.py                         |  193 +-
 superset/common/tags.py                            |   20 +-
 superset/config.py                                 |  130 +-
 superset/connectors/sqla/models.py                 |  120 +-
 superset/constants.py                              |    2 +
 superset/core/api/core_api_injection.py            |   16 +-
 superset/css_templates/api.py                      |    4 +-
 superset/daos/chart.py                             |   42 +-
 superset/daos/dashboard.py                         |   66 +-
 superset/daos/dataset.py                           |  250 +-
 superset/daos/datasource.py                        |    2 +-
 superset/daos/group.py                             |   65 +
 superset/daos/report.py                            |   43 +-
 superset/daos/role.py                              |   43 +-
 superset/daos/{role.py => subject.py}              |   16 +-
 superset/daos/tag.py                               |    6 +-
 superset/daos/user.py                              |   40 +
 superset/daos/version.py                           |   69 +
 superset/dashboards/api.py                         |  269 +-
 superset/dashboards/filters.py                     |  158 +-
 superset/dashboards/schemas.py                     |   47 +-
 superset/databases/api.py                          |   54 +-
 superset/databases/schemas.py                      |   70 +-
 superset/datasets/api.py                           |  305 +-
 superset/datasets/filters.py                       |   12 +-
 superset/datasets/schemas.py                       |    7 +-
 superset/datasource/schemas.py                     |   19 +-
 superset/db_engine_specs/clickhouse.py             |    7 +-
 superset/examples/birth_names.py                   |   42 +-
 superset/explorables/base.py                       |    2 +-
 superset/explore/schemas.py                        |   12 +-
 superset/explore/utils.py                          |    2 +-
 superset/extensions/__init__.py                    |   25 +
 superset/initialization/__init__.py                |  237 +
 superset/marshmallow_compatibility.py              |   14 +-
 superset/mcp_service/ARCHITECTURE.md               |    2 +-
 superset/mcp_service/CLAUDE.md                     |   11 +-
 superset/mcp_service/SECURITY.md                   |   10 +-
 superset/mcp_service/app.py                        |   48 +-
 superset/mcp_service/auth.py                       |  116 +-
 superset/mcp_service/chart/chart_utils.py          |  112 +-
 superset/mcp_service/chart/plugins/big_number.py   |    2 +-
 superset/mcp_service/chart/schemas.py              |   82 +-
 superset/mcp_service/chart/tool/__init__.py        |    2 +
 superset/mcp_service/chart/tool/delete_chart.py    |  186 +
 superset/mcp_service/chart/tool/generate_chart.py  |    9 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |   62 +-
 superset/mcp_service/chart/tool/get_chart_info.py  |   12 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   19 +-
 superset/mcp_service/chart/tool/get_chart_sql.py   |   10 +
 superset/mcp_service/chart/tool/list_charts.py     |    2 +-
 superset/mcp_service/common/cache_schemas.py       |   24 +-
 superset/mcp_service/common/schema_discovery.py    |   12 +-
 superset/mcp_service/composite_token_verifier.py   |    2 +-
 superset/mcp_service/dashboard/schemas.py          |   91 +-
 superset/mcp_service/dashboard/tool/__init__.py    |    2 +
 .../tool/add_chart_to_existing_dashboard.py        |   16 +-
 .../mcp_service/dashboard/tool/delete_dashboard.py |  235 +
 .../dashboard/tool/generate_dashboard.py           |   16 +-
 .../dashboard/tool/get_dashboard_info.py           |    6 +-
 .../mcp_service/dashboard/tool/list_dashboards.py  |    2 +-
 .../dashboard/tool/manage_native_filters.py        |    2 +-
 .../dashboard/tool/remove_chart_from_dashboard.py  |    4 +-
 .../mcp_service/dashboard/tool/update_dashboard.py |    4 +-
 superset/mcp_service/dataset/schemas.py            |   29 +-
 .../mcp_service/dataset/tool/create_dataset.py     |   66 +-
 superset/mcp_service/dataset/tool/list_datasets.py |    2 +-
 superset/mcp_service/guest_scope.py                |   72 +
 superset/mcp_service/mcp_config.py                 |   24 +-
 superset/mcp_service/mcp_core.py                   |   22 +-
 superset/mcp_service/privacy.py                    |   27 +-
 superset/mcp_service/report/schemas.py             |   29 +-
 .../mcp_service/report/tool/get_report_info.py     |    2 +-
 superset/mcp_service/report/tool/list_reports.py   |    4 +-
 superset/mcp_service/rls/schemas.py                |   28 +-
 .../mcp_service/rls/tool/get_rls_filter_info.py    |   12 +-
 superset/mcp_service/rls/tool/list_rls_filters.py  |   30 +-
 superset/mcp_service/role/schemas.py               |   53 +-
 superset/mcp_service/role/tool/get_role_info.py    |    4 +
 superset/mcp_service/role/tool/list_roles.py       |    4 +
 superset/mcp_service/system/schemas.py             |   26 +
 superset/mcp_service/tag/schemas.py                |    2 +-
 superset/mcp_service/tag/tool/get_tag_info.py      |    2 +-
 superset/mcp_service/tag/tool/list_tags.py         |    2 +-
 .../role.py => mcp_service/theme/__init__.py}      |   15 +-
 superset/mcp_service/{tag => theme}/schemas.py     |  158 +-
 .../role.py => mcp_service/theme/tool/__init__.py} |   18 +-
 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 +-
 ...03-23_10-00_b1c2d3e4f5a6_add_subjects_tables.py |  944 ++++
 ...-28_19-50_56cd24c07170_add_versioning_tables.py |  574 +++
 ...3_12-00_8f3a1b2c4d5e_shadow_live_row_indexes.py |  180 +
 superset/models/dashboard.py                       |   96 +-
 superset/models/helpers.py                         |  164 +-
 superset/models/slice.py                           |   79 +-
 superset/models/sql_lab.py                         |    5 -
 superset/queries/api.py                            |   13 +-
 superset/queries/saved_queries/api.py              |    6 +-
 superset/reports/api.py                            |   48 +-
 superset/reports/filters.py                        |   20 +-
 superset/reports/models.py                         |   27 +-
 superset/reports/schemas.py                        |   13 +-
 superset/row_level_security/api.py                 |   48 +-
 superset/row_level_security/schemas.py             |   39 +-
 superset/security/manager.py                       |  536 ++-
 superset/semantic_layers/api.py                    |    9 +-
 superset/semantic_layers/mapper.py                 |  148 +-
 superset/semantic_layers/models.py                 |    2 +-
 .../common => superset/subjects}/__init__.py       |    0
 superset/subjects/api.py                           |  123 +
 superset/{daos/role.py => subjects/exceptions.py}  |   15 +-
 superset/subjects/filters.py                       |  263 ++
 superset/subjects/hooks.py                         |   83 +
 superset/subjects/models.py                        |  203 +
 superset/subjects/schemas.py                       |   51 +
 superset/subjects/sync.py                          |  143 +
 superset/{daos/role.py => subjects/types.py}       |   16 +-
 superset/subjects/utils.py                         |  169 +
 superset/superset_typing.py                        |    4 +-
 superset/tags/api.py                               |   14 +-
 superset/tags/models.py                            |   67 +-
 superset/tags/schemas.py                           |    3 +-
 superset/tasks/api.py                              |    9 +-
 superset/tasks/types.py                            |   18 +-
 superset/tasks/utils.py                            |  119 +-
 superset/themes/api.py                             |   28 +-
 superset/themes/schemas.py                         |   41 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |  380 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |  367 +-
 superset/translations/de/LC_MESSAGES/messages.po   |  398 +-
 superset/translations/en/LC_MESSAGES/messages.po   |  303 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  380 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |  366 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |  510 ++-
 superset/translations/fr/LC_MESSAGES/messages.po   | 4630 ++++++++++----------
 superset/translations/it/LC_MESSAGES/messages.po   | 3891 ++++++++--------
 superset/translations/ja/LC_MESSAGES/messages.po   |  346 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |  373 +-
 superset/translations/messages.pot                 |  301 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  375 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |  380 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |  389 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  369 +-
 superset/translations/ro/LC_MESSAGES/messages.po   | 2911 +++++++++---
 superset/translations/ru/LC_MESSAGES/messages.po   |  364 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |  367 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |  380 +-
 superset/translations/sr/LC_MESSAGES/messages.po   | 3543 ++++++++-------
 .../translations/sr_Latn/LC_MESSAGES/messages.po   | 3596 +++++++--------
 superset/translations/th/LC_MESSAGES/messages.po   |  498 ++-
 superset/translations/tr/LC_MESSAGES/messages.po   |  327 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |  372 +-
 superset/utils/core.py                             |    6 +-
 superset/utils/csv.py                              |   48 +-
 superset/utils/filters.py                          |   53 +-
 .../utils/pandas_postprocessing/contribution.py    |    4 +-
 .../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                             |   58 +-
 superset/views/base_api.py                         |   10 +-
 superset/views/core.py                             |   31 +-
 superset/views/dashboard/mixin.py                  |   17 +-
 superset/views/dashboard/views.py                  |    9 +-
 superset/views/datasource/views.py                 |   14 +-
 superset/views/filters.py                          |   57 +-
 superset/views/sql_lab/views.py                    |   44 +-
 superset/views/users/api.py                        |    4 +-
 tests/integration_tests/base_api_tests.py          |  402 +-
 tests/integration_tests/base_tests.py              |   65 +-
 tests/integration_tests/charts/api_tests.py        |  147 +-
 tests/integration_tests/charts/commands_tests.py   |   47 +-
 tests/integration_tests/charts/data/api_tests.py   |    4 +-
 .../integration_tests/charts/soft_delete_tests.py  |   34 +-
 tests/integration_tests/commands_test.py           |    5 +-
 tests/integration_tests/core_tests.py              |   17 +-
 tests/integration_tests/dao/base_dao_test.py       |   86 +-
 tests/integration_tests/dashboard_tests.py         |    8 +-
 tests/integration_tests/dashboards/api_tests.py    |  315 +-
 .../integration_tests/dashboards/commands_tests.py |   24 +-
 tests/integration_tests/dashboards/dao_tests.py    |   33 +-
 .../dashboards/dashboard_test_utils.py             |   22 +-
 .../dashboards/security/security_dataset_tests.py  |    6 +-
 .../dashboards/security/security_rbac_tests.py     |  533 ---
 .../dashboards/soft_delete_tests.py                |   52 +-
 .../dashboards/superset_factory_util.py            |  102 +-
 .../dashboards/test_theme_integration.py           |    8 +-
 .../dashboards/update_tabs_test.py                 |   33 +-
 .../databases/commands/upload_test.py              |    3 +-
 tests/integration_tests/datasets/api_tests.py      |  317 +-
 tests/integration_tests/datasets/commands_tests.py |   17 +-
 .../datasets/soft_delete_tests.py                  |   71 +-
 tests/integration_tests/datasource_tests.py        |   21 +-
 .../integration_tests/fixtures/tabbed_dashboard.py |   15 +
 tests/integration_tests/import_export_tests.py     |   26 +-
 tests/integration_tests/insert_chart_mixin.py      |   21 +-
 .../queries/saved_queries/api_tests.py             |    5 +-
 tests/integration_tests/reports/alert_tests.py     |   50 +-
 tests/integration_tests/reports/api_tests.py       |   94 +-
 tests/integration_tests/reports/commands_tests.py  |   10 +-
 tests/integration_tests/reports/scheduler_tests.py |   40 +-
 tests/integration_tests/reports/utils.py           |   43 +-
 .../security/row_level_security_tests.py           | 1448 +++---
 tests/integration_tests/security_tests.py          |  249 +-
 .../integration_tests/subjects}/__init__.py        |    0
 tests/integration_tests/subjects/api_tests.py      |  142 +
 tests/integration_tests/superset_test_config.py    |    9 +-
 tests/integration_tests/tagging_tests.py           |    8 +-
 tests/integration_tests/tags/api_tests.py          |   28 +-
 .../tags/mysql_compatibility_test.py               |    2 +-
 .../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 ++
 .../charts/commands/importers/v1/import_test.py    |   14 +-
 tests/unit_tests/charts/test_filters.py            |  180 +
 tests/unit_tests/cli/thumbnails_test.py            |   79 +
 tests/unit_tests/commands/chart/restore_test.py    |    4 +-
 .../commands/chart/test_access_checks.py           |   46 +-
 tests/unit_tests/commands/chart/update_test.py     |   78 +-
 tests/unit_tests/commands/dashboard/create_test.py |   68 +-
 tests/unit_tests/commands/dashboard/export_test.py |   57 +-
 .../unit_tests/commands/dashboard/restore_test.py  |   10 +-
 .../commands/databases/upload_command_test.py      |    8 +-
 tests/unit_tests/commands/dataset/restore_test.py  |   12 +-
 tests/unit_tests/commands/dataset/test_create.py   |   10 +-
 .../unit_tests/commands/dataset/test_duplicate.py  |  422 +-
 tests/unit_tests/commands/dataset/update_test.py   |   35 +-
 tests/unit_tests/commands/report/create_test.py    |    2 +-
 tests/unit_tests/commands/report/execute_test.py   |   65 +-
 .../unit_tests/commands/report/test_execute_now.py |   12 +-
 tests/unit_tests/commands/report/update_test.py    |   18 +-
 tests/unit_tests/commands/security/rls_test.py     |   93 +-
 .../commands/semantic_layer/delete_test.py         |    8 +-
 .../commands/semantic_layer/update_test.py         |    4 +-
 .../commands/test_base_restore_command.py          |   30 +-
 tests/unit_tests/commands/test_utils.py            |  138 +-
 tests/unit_tests/common/test_time_shifts.py        |   54 +
 tests/unit_tests/connectors/sqla/models_test.py    |   31 -
 tests/unit_tests/dao/dataset_test.py               |   65 +
 tests/unit_tests/dao/group_test.py                 |   81 +
 tests/unit_tests/dao/role_test.py                  |   81 +
 tests/unit_tests/dao/subject_test.py               |   61 +
 tests/unit_tests/dao/user_test.py                  |   74 +
 .../daos/test_base_relationship_filters.py         |    8 +-
 tests/unit_tests/dashboards/api_test.py            |   40 +-
 .../commands/importers/v1/import_test.py           |   44 +-
 tests/unit_tests/dashboards/schema_tests.py        |    4 +-
 .../databases/commands/importers/v1/import_test.py |    6 +-
 tests/unit_tests/databases/schema_tests.py         |  273 +-
 .../datasets/commands/importers/v1/import_test.py  |   43 +-
 .../unit_tests/db_engine_specs/test_clickhouse.py  |   26 +-
 tests/unit_tests/examples/generic_loader_test.py   |    4 +-
 tests/unit_tests/explore/utils_test.py             |   16 +-
 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_generate_chart.py  |   13 +-
 .../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     |    5 +-
 .../dashboard/test_dashboard_schemas.py            |    8 +-
 .../tool/test_add_chart_to_existing_dashboard.py   |   29 +-
 .../dashboard/tool/test_dashboard_generation.py    |  101 +-
 .../dashboard/tool/test_dashboard_tools.py         |   97 +-
 .../dashboard/tool/test_delete_dashboard.py        |  254 ++
 .../dashboard/tool/test_duplicate_dashboard.py     |    7 +-
 .../tool/test_remove_chart_from_dashboard.py       |   65 +-
 .../dashboard/tool/test_update_dashboard.py        |   14 +-
 .../database/tool/test_database_tools.py           |    2 +-
 .../dataset/tool/test_create_dataset.py            |   36 +-
 .../mcp_service/dataset/tool/test_dataset_tools.py |   78 +-
 .../mcp_service/report/tool/test_report_tools.py   |   37 +-
 .../mcp_service/rls/tool/test_rls_tools.py         |   69 +-
 .../mcp_service/role/tool/test_role_tools.py       |   49 +
 .../saved_query/tool/test_saved_query_tools.py     |    2 +-
 .../semantic_layer/tool/test_list_metrics.py       |   40 +-
 .../system/tool/test_generate_bug_report.py        |    2 +-
 .../system/tool/test_get_current_user.py           |    5 +-
 .../mcp_service/system/tool/test_get_schema.py     |   48 +-
 .../mcp_service/system/tool/test_mcp_core.py       |   22 +-
 .../mcp_service/tag/tool/test_tag_tools.py         |    4 +-
 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_mcp_config.py    |    2 +-
 tests/unit_tests/mcp_service/test_privacy.py       |   58 +-
 .../mcp_service/test_schema_discovery.py           |    6 +-
 .../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 +
 .../mcp_service/utils/test_permissions_utils.py    |    7 +-
 .../mcp_service/utils/test_token_utils.py          |    2 +-
 .../middleware/test_legacy_prefix_redirect.py      |   75 +-
 tests/unit_tests/models/helpers_test.py            |  264 +-
 .../models/owner_association_tables_test.py        |   81 +-
 tests/unit_tests/models/test_soft_delete_mixin.py  |    4 +-
 .../pandas_postprocessing/test_contribution.py     |   33 +
 .../reports/notifications/email_tests.py           |    6 +-
 .../reports/notifications/slack_tests.py           |    2 +-
 .../reports/notifications/webhook_tests.py         |    2 +-
 tests/unit_tests/row_level_security/schema_test.py |   23 +-
 tests/unit_tests/security/audit_log_test.py        |   24 +-
 tests/unit_tests/security/manager_test.py          |   63 +-
 tests/unit_tests/security/test_permission_hooks.py |  156 -
 tests/unit_tests/semantic_layers/api_test.py       |    3 +
 tests/unit_tests/semantic_layers/mapper_test.py    |  398 +-
 .../unit_tests/subjects}/__init__.py               |    0
 tests/unit_tests/subjects/test_copy_command.py     |   94 +
 tests/unit_tests/subjects/test_filters.py          |  321 ++
 tests/unit_tests/subjects/test_raise_for_access.py |  403 ++
 tests/unit_tests/subjects/test_security.py         |  280 ++
 tests/unit_tests/subjects/test_utils.py            |  367 ++
 tests/unit_tests/tags/models_test.py               |    2 +-
 tests/unit_tests/tasks/test_utils.py               |  383 +-
 tests/unit_tests/test_marshmallow_compatibility.py |  182 +
 tests/unit_tests/themes/api_test.py                |   45 +-
 tests/unit_tests/utils/csv_tests.py                |    3 +
 tests/unit_tests/utils/filters_test.py             |  119 +-
 tests/unit_tests/utils/test_core.py                |   13 +-
 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/datasource/views_test.py    |   28 +-
 tests/unit_tests/views/test_bootstrap_auth.py      |   21 +
 713 files changed, 47339 insertions(+), 20746 deletions(-)
 create mode 100644 docs/static/img/logos/camptocamp.svg
 create mode 100644 docs/static/img/logos/craig.png
 create mode 100644 docs/static/img/logos/geo2france.png
 create mode 100644 docs/static/img/logos/geobretagne.svg
 create mode 100644 docs/static/img/logos/georchestra.svg
 create mode 100644 docs/static/img/logos/jDev.svg
 create mode 100644 docs/static/img/logos/mel.jpg
 create mode 100644 docs/static/img/logos/pi-Geosolutions.png
 create mode 100644 docs/static/img/logos/rennes-ville-metropole_noir.svg
 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
 create mode 100644 helm/superset/tests/deprecation_test.yaml
 create mode 100644 helm/superset/tests/initscript_test.yaml
 create mode 100644 helm/superset/tests/secret_env_test.yaml
 create mode 100644 helm/superset/tests/serviceaccount_test.yaml
 create mode 100644 helm/superset/tests/values_defaults_test.yaml
 create mode 100644 helm/superset/values.schema.json
 create mode 100644 
superset-frontend/plugins/plugin-chart-pivot-table/test/PivotTableChart.test.tsx
 create mode 100644 
superset-frontend/plugins/preset-chart-deckgl/src/utilities/tooltipUtils.test.tsx
 delete mode 100644 
superset-frontend/src/components/FacePile/FacePile.stories.tsx
 delete mode 100644 superset-frontend/src/components/FacePile/FacePile.test.tsx
 delete mode 100644 superset-frontend/src/components/FacePile/index.tsx
 delete mode 100644 superset-frontend/src/components/FacePile/utils.tsx
 create mode 100644 
superset-frontend/src/dashboard/components/Header/useHeaderAutoRefresh.test.tsx
 delete mode 100644 
superset-frontend/src/dashboard/components/PropertiesModal/hooks/useAccessOptions.ts
 create mode 100644 
superset-frontend/src/dashboard/components/PropertiesModal/sections/AccessSection.stories.tsx
 delete mode 100644 
superset-frontend/src/dashboard/components/PropertiesModal/utils.test.ts
 delete mode 100644 
superset-frontend/src/dashboard/components/PropertiesModal/utils.ts
 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
 delete mode 100644 
superset-frontend/src/features/owners/OwnerSelectLabel/OwnerSelectLabel.test.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPicker/SubjectPicker.stories.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPicker/SubjectPicker.test.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPicker/index.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPicker/utils.ts
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPile/SubjectPile.stories.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPile/SubjectPile.test.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectPile/index.tsx
 create mode 100644 
superset-frontend/src/features/subjects/SubjectSelectLabel/SubjectSelectLabel.stories.tsx
 rename superset-frontend/src/features/{owners/OwnerSelectLabel => 
subjects/SubjectSelectLabel}/index.tsx (56%)
 rename superset-frontend/src/{components/FacePile/types.ts => 
types/Subject.ts} (67%)
 rename superset-frontend/src/types/{Owner.ts => User.ts} (87%)
 rename superset-frontend/src/utils/{getOwnerName.test.ts => 
getUserName.test.ts} (65%)
 rename superset-frontend/src/utils/{getOwnerName.ts => getUserName.ts} (80%)
 rename superset-websocket/{eslint.config.js => eslint.config.mjs} (75%)
 create mode 100644 superset/cli/sync_subjects.py
 create mode 100644 superset/daos/group.py
 copy superset/daos/{role.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/guest_scope.py
 copy superset/{daos/role.py => mcp_service/theme/__init__.py} (75%)
 copy superset/mcp_service/{tag => theme}/schemas.py (56%)
 copy superset/{daos/role.py => mcp_service/theme/tool/__init__.py} (75%)
 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-03-23_10-00_b1c2d3e4f5a6_add_subjects_tables.py
 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
 copy {superset-core/src/superset_core/common => superset/subjects}/__init__.py 
(100%)
 create mode 100644 superset/subjects/api.py
 copy superset/{daos/role.py => subjects/exceptions.py} (72%)
 create mode 100644 superset/subjects/filters.py
 create mode 100644 superset/subjects/hooks.py
 create mode 100644 superset/subjects/models.py
 create mode 100644 superset/subjects/schemas.py
 create mode 100644 superset/subjects/sync.py
 copy superset/{daos/role.py => subjects/types.py} (75%)
 create mode 100644 superset/subjects/utils.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
 delete mode 100644 
tests/integration_tests/dashboards/security/security_rbac_tests.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/group_test.py
 create mode 100644 tests/unit_tests/dao/role_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/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
 copy {superset-core/src/superset_core/common => 
tests/unit_tests/subjects}/__init__.py (100%)
 create mode 100644 tests/unit_tests/subjects/test_copy_command.py
 create mode 100644 tests/unit_tests/subjects/test_filters.py
 create mode 100644 tests/unit_tests/subjects/test_raise_for_access.py
 create mode 100644 tests/unit_tests/subjects/test_security.py
 create mode 100644 tests/unit_tests/subjects/test_utils.py
 create mode 100644 tests/unit_tests/test_marshmallow_compatibility.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