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

hughhhh pushed a change to branch hughhhh/pfm-5-editor-ui
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 278213a6d5c fix: chain the partition migration onto master and satisfy 
the frontend hooks
     add 3fd761d1740 fix(ui): preserve default modal resize handles when config 
is partial (#43806)
     add 5a2a90b38ab feat(mcp): bubble chart type plugin (#43572)
     add 889f9f1751e fix(reports): validate final capture artifacts before 
delivery (#44465)
     add 298d776ec56 fix(dashboard): include semantic views in the dashboard 
datasets payload so semantic charts render their errors (#44413)
     add 92482f07f30 fix(echarts): emit no cross-filter for clicks that are not 
categories (#43192)
     add cf10e894a19 fix(mcp): preserve omitted chart colors and row limits 
(#44188)
     add 0050b187d78 perf(deletion-retention): scope purge-audit repeat checks 
with legacy database fallback (#44262)
     add 649a665b482 fix(security): allow schema_access holders to explore SQL 
Lab queries from other authors (#43994)
     add d45bbdcdf2e fix(sql): use AST for disallowed function checks (#43641)
     add 5745162faf7 docs: point remaining Release Notes links at GitHub 
releases (#43803)
     add 600db8e5816 fix(matrixify): apply dimension filters to all 
query-specific adhoc filter collections (#43861)
     add 903a1e1ff3e docs(singlestore): require singlestoredb[sqlalchemy] and 
update logo (#44170)
     add c666a6400c4 fix(database): allow metadata edits on an unreachable 
database (#44000)
     add fd5efcbf5ba fix(superset-ui-core): add year to smart_date_verbose 
tooltip tiers (#44212)
     add 1b8800c84d1 fix(sqllab): restore SQL code folding (#44236)
     add 0382c19ad3b fix: show the server's error message in the publish toggle 
and user info toasts (#44238)
     add f47fcad3d6e fix(reports): replace stale Selenium references in 
screenshot messages (#44244)
     add 3e39ba13e34 fix(country-map): correct Karelia boundary (#44273)
     add 3cbee94525d docs: fix internal link guidance examples (#44275)
     add 468936a7e04 fix(sql): preserve literal percents in where_in (#44284)
     add b78585c9715 fix(databricks): select the SQLAlchemy 2 dialect (#44286)
     add 8039aa983d7 test(explore): await the Customize tab click in 
ControlPanelsContainer test (#44315)
     add 57108b416bf test(explore): await userEvent calls in 
useExploreAdditionalActionsMenu test (#44323)
     add 7eb9532c0ba fix(chart-controls): keep axis sort available for columns 
with unknown type (#44344)
     add 770bcfb2e95 fix(extensions-cli): fail build and bundle when the 
frontend build fails (#44407)
     add 86fb8db31d8 chore(version-history): use typed app dispatch (#44438)
     add 156549ffed3 fix(temporary-cache): forward tab_id on DELETE so 
contextual cache mappings are cleared (#44451)
     add fc72139d00e Merge branch 'master' into 
hughhhh/pfm-1-model-migration-api
     add 9bf89bbf06f fix(datasets): don't let a partition mapping be clobbered, 
blocked or orphaned
     add 648707e34ee chore(datasets): regenerate the message catalogs and the 
OpenAPI spec
     add 22d37f3ed0a chore(deps): bump fast-uri from 3.1.5 to 3.1.8 in 
/superset-frontend/cypress-base (#44510)
     add 4df9c0ad362 chore(deps): bump qs from 6.15.2 to 6.16.0 in 
/superset-frontend/cypress-base (#44511)
     add 1428f138d20 chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in 
/docs (#44518)
     add 1c803d923f3 chore(deps-dev): bump oxfmt from 0.67.0 to 0.68.0 in 
/superset-websocket (#44516)
     add fc1c7798e9e chore(deps-dev): bump oxfmt from 0.67.0 to 0.68.0 in /docs 
(#44517)
     add a54e7353a2b chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in 
/superset-websocket (#44515)
     add d43785a2c22 chore(deps): bump docker/setup-buildx-action from 4.3.0 to 
4.4.1 (#44519)
     add 4c229cb66a7 fix(dashboard): import getClientErrorObject; regenerate 
stale messages.pot (#44513)
     add 4888f4b8277 Merge remote-tracking branch 'origin/master' into 
hughhhh/pfm-1-model-migration-api
     add 4afaf60a4fe feat(build): use latest patch version for Python base 
image (#44458)
     add 2f43a74eb87 Merge remote-tracking branch 'origin/master' into 
hughhhh/pfm-1-model-migration-api
     add 498d705a31e fix(datasets): make the Explore mapping indicator agree 
with save-time validation
     add c691d768d2f chore(deps-dev): bump oxfmt from 0.67.0 to 0.68.0 in 
/superset-frontend (#44521)
     add 21db4a5eeef chore(deps): bump @types/d3-selection from 3.0.11 to 
3.0.12 in /superset-frontend (#44524)
     add 47fd4f4cbfc fix(matrixify): lazy-load grid cells with dashboard 
virtualization (#43053)
     add 250a4797bf1 fix(plugin-chart-ag-grid-table): send export column 
filters as structured filters (#44308)
     add c6d0890f2e0 fix(api): restore three schema fields disabled by a stray 
trailing comma (#43225)
     add 61a5d0e3348 fix(csrf): recover from an expired CSRF token without a 
page reload (#43655)
     add d21aa9b4f46 chore(deps): bump yeoman-generator from 9.1.0 to 9.2.0 in 
/superset-frontend (#44522)
     add 2b5a929523d fix(chart-controls): type post-processing columns as a 
string-to-string mapping (#43589)
     add a3afedeaab4 fix(core): normalize bare date-only strings to UTC in 
normalizeTimestamp (#43807)
     add 107a61c4caf feat(databend): add a sqlglot dialect based on Postgres 
(#43964)
     add c163112f4e2 chore(deps): bump @googleapis/sheets from 17.0.0 to 18.0.0 
in /superset-frontend (#44523)
     add 5c1f617740c fix(echarts): apply the bar label legibility floor to 
manual label positions (#44469)
     add c4943a0ab34 feat(native-filters): add configurable display format for 
time filters (#44237)
     add cef83b3f8df fix(import): catch KeyError for missing uuid/ssh_tunnel in 
load_configs (#43305)
     add df6e0d08b35 fix(sqla): wrap TypeError from virtual dataset Jinja 
rendering as a validation error (#44312)
     add 1788486228c fix(datasets): soften render-time UndefinedError in 
get_virtual_table_metadata (#44316)
     add ee4b8ddff6e fix(ci): align superset-cache tag consumers with the 
Dockerfile PY_VER (#44534)
     add d95e8426d7a Merge remote-tracking branch 'origin/master' into 
hughhhh/pfm-1-model-migration-api
     add 43f0f8876ad chore(ci): make the DB migration conflict bot comment less 
emoji-heavy and more actionable (#44506)
     add 0fe0662b271 fix(i18n): regenerate messages.pot to match source (#44509)
     add b117872b309 Merge remote-tracking branch 'origin/master' into 
hughhhh/pfm-1-model-migration-api
     add f6201846f84 Merge remote-tracking branch 
'origin/hughhhh/pfm-1-model-migration-api' into hughhhh/pfm-2-query-rewrite
     add 57c7a6d4dd0 Merge remote-tracking branch 
'origin/hughhhh/pfm-2-query-rewrite' into hughhhh/pfm-3-preview-and-editor
     add 9f48d0eac9e fix(tests): await userEvent.click in CsrfErrorMessage 
compact-mode test (#44540)
     add 7024401aef2 fix(mcp): drop tiktoken, size-guard responses by exact 
byte length (#44508)
     add 9413294b2bd docs(pivot-table): document the "Show values as" 
percentage display option (#44127)
     add 48795f9a2d4 docs(explore): document show_download param for standalone 
chart embeds (#43906)
     add 7dd70eaf2d6 fix: tighten object-level and destination checks across 
four unrelated endpoints (#44036)
     add add97e5d190 fix(embedded): tighten guest-token scoping for 
annotations, result types, and channels (#43391)
     add ca7cdfcd0ff fix(pinot): require the SQLAlchemy 2 driver extra (#44287)
     add 0f229fda75f fix(security): exempt health blueprint from forced 
password changes (#44504)
     add 269b9f99fef fix(views): return 401 for NoAuthorizationError in 
handle_api_exception (SC-121647) (#44533)
     add 50bbcedf13b docs(mcp): document restore_chart and restore_dashboard 
tools (#44207)
     add ea1ffcf0adb fix: fixed inverseSelection (#40970)
     add 350dd0d60ec fix(security): delete deprecated permissions left over 
after upgrades (#44142)
     add 7a9fe06762b fix(mcp): stop data tool responses crashing on binary and 
NaT values (#44495)
     add 9612437a9c8 fix(extensions): preserve chat state across display modes 
(#44490)
     add 61fffbe0c08 chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in 
/superset-frontend (#44525)
     add c14ac29f477 fix(mcp): complete Treemap round-trip and previews (#44152)
     add 3b4e5f5d0c6 chore(deps): bump markdown-to-jsx from 9.10.2 to 9.10.3 in 
/superset-frontend (#44570)
     add 7fe03a536b6 chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in 
/superset-frontend (#44569)
     add 6403e16fe56 chore(deps-dev): bump vitest from 5.0.0 to 5.0.1 in 
/superset-embedded-sdk (#44568)
     add d1f395914f1 chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in 
/superset-embedded-sdk (#44567)
     add 6c9138a6b7c chore(deps-dev): bump baseline-browser-mapping from 
2.11.23 to 2.11.24 in /superset-frontend (#44566)
     add 4b180bddad7 chore(deps): bump baseline-browser-mapping from 2.11.23 to 
2.11.24 in /docs (#44565)
     add 4290d94d6c9 chore(deps-dev): bump vitest from 5.0.0 to 5.0.1 in 
/superset-websocket (#44564)
     add 3e80a53e14f chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in 
/superset-websocket (#44563)
     add f8f293d2666 chore(deps): bump benchmark-action/github-action-benchmark 
from 1.22.1 to 1.22.2 (#44520)
     add 689ab4a77af fix(translations): regenerate messages.pot after the 
connection-move reword (#44574)
     add 02dbfd2ab5b fix(dashboard): don't register an active tab for childless 
TABS components (#44345)
     add 838376dbc28 fix(mongodb): treat the Mongo database as the SQL Lab 
schema so Data Preview returns rows (#44141)
     add 6323b37f50a fix(dashboard): prevent and repair self-nested layout 
components (#44303)
     add 7c7b3adf745 fix(export): keep the acting user in streaming CSV exports 
(#44425)
     add 1588d981c18 Merge remote-tracking branch 'origin/master' into 
hughhhh/pfm-3-preview-and-editor
     add c0c688d3e4b fix(mcp): return a specific error per failure class on 
tool calls (#44387)
     add a071d23b41f fix(dashboard): guest sessions, pluggable storage, and 
streamed downloads for the Excel export (#43805)
     add d7a918b814c fix(ci): make check_pot_drift extract from an isolated git 
snapshot (#44578)
     add 775f7c5a1fd fix(db2): Use DATE_TRUNC to improve timegrain expressions 
(#43236)
     add 298aa2f0ba4 fix(dataset): bump changed_on on column refresh so chart 
cache invalidates (#43921)
     add 082961ba168 fix(chart): require edit rights for query-context-only 
updates (#44494)
     add 3b355b6a854 fix(chart): allow semantic view datasource when saving 
charts (#44169)
     add 390bf299ff9 fix(i18n): stop f-strings in gettext leaking a bogus msgid 
on Python 3.12 (#44584)
     add 8141d666d6d fix(dashboard): show loading spinner for charts outside an 
in-flight auto-refresh batch (#44272)
     add cd36b555e9b Merge remote-tracking branch 'origin/master' into 
hughhhh/pfm-1-model-migration-api
     add da9f21c1314 Merge branch 'hughhhh/pfm-1-model-migration-api' into 
hughhhh/pfm-2-query-rewrite
     add 6ca51264e57 Merge branch 'hughhhh/pfm-2-query-rewrite' into 
hughhhh/pfm-3-preview-and-editor
     add d1df2bee5f8 Merge branch 'hughhhh/pfm-3-preview-and-editor' into 
hughhhh/pfm-5-editor-ui

No new revisions were added by this update.

Summary of changes:
 .devcontainer/Dockerfile                           |    2 +-
 .devcontainer/devcontainer-base.json               |    2 +-
 .github/workflows/check-db-migration-confict.yml   |   21 +-
 .github/workflows/docker.yml                       |   14 +-
 .github/workflows/frontend-bundle-size-nightly.yml |    4 +-
 .github/workflows/mirror-service-images.yml        |    2 +-
 .github/workflows/superset-frontend.yml            |    4 +-
 Dockerfile                                         |    2 +-
 README.md                                          |    2 +-
 UPDATING.md                                        |  151 +-
 docker-compose-light.yml                           |    2 +-
 docker-compose-non-dev.yml                         |    2 +-
 docker-compose.yml                                 |    4 +-
 docs/DOCS_CLAUDE.md                                |   17 +-
 docs/admin_docs/configuration/alerts-reports.mdx   |   32 +
 .../configuration/configuring-superset.mdx         |   11 +
 docs/admin_docs/configuration/mcp-server.mdx       |  106 +-
 .../extensions/extension-points/chat.md            |    4 +
 docs/docs/faq.mdx                                  |   13 +
 docs/docs/using-superset/embedding.mdx             |   21 +
 docs/docs/using-superset/exploring-data.mdx        |   16 +
 .../using-superset/exporting-dashboard-data.mdx    |  116 +-
 docs/docs/using-superset/sql-templating.mdx        |    4 +-
 .../docs/using-superset/using-ai-with-superset.mdx |    2 +
 docs/package.json                                  |    6 +-
 docs/src/data/databases.json                       |    2 +
 docs/static/img/databases/singlestore.png          |  Bin 15978 -> 9806 bytes
 docs/static/resources/openapi.json                 |  139 +-
 .../version-6.0.0/intro.md                         |    2 +-
 .../version-6.1.0/index.mdx                        |    2 +-
 .../version-6.1.0/intro.md                         |    2 +-
 docs/yarn.lock                                     |  476 +++---
 pyproject.toml                                     |   25 +-
 requirements/development.txt                       |    5 -
 scripts/translations/check_pot_drift.py            |   77 +-
 superset-embedded-sdk/package-lock.json            |  204 +--
 superset-embedded-sdk/package.json                 |    4 +-
 superset-extensions-cli/README.md                  |    5 +
 .../src/superset_extensions_cli/cli.py             |    3 +
 superset-extensions-cli/tests/test_cli_build.py    |  131 +-
 superset-frontend/cypress-base/package-lock.json   |   51 +-
 superset-frontend/package-lock.json                |  370 ++---
 superset-frontend/package.json                     |   14 +-
 .../packages/generator-superset/package.json       |    2 +-
 .../src/utils/isSortable.ts                        |   10 +
 .../test/utils/isSortable.test.ts                  |    9 +
 .../packages/superset-ui-core/package.json         |    2 +-
 .../Matrixify/MatrixifyGridCell.test.tsx           |  273 +++-
 .../components/Matrixify/MatrixifyGridCell.tsx     |  127 +-
 .../Matrixify/MatrixifyGridGenerator.test.ts       |   90 ++
 .../components/Matrixify/MatrixifyGridGenerator.ts |   37 +-
 .../components/Matrixify/virtualizationEvents.ts   |   82 ++
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |   33 +
 .../src/components/AsyncAceEditor/index.tsx        |    4 +-
 .../src/components/Modal/Modal.test.tsx            |   93 +-
 .../src/components/Modal/Modal.tsx                 |   33 +-
 .../src/connection/SupersetClientClass.ts          |   83 +-
 .../superset-ui-core/src/connection/constants.ts   |    3 +
 .../superset-ui-core/src/query/api/v1/types.ts     |    3 +
 .../src/query/types/PostProcessing.ts              |    6 +-
 .../superset-ui-core/src/query/types/Query.ts      |    1 +
 .../src/time-comparison/fetchTimeRange.ts          |   29 +-
 .../src/time-format/formatters/smartDateVerbose.ts |   10 +-
 .../src/time-format/utils/normalizeTimestamp.ts    |   13 +
 .../superset-ui-core/src/ui-overrides/types.ts     |    1 +
 .../connection/SupersetClientCsrfRecovery.test.ts  |  191 +++
 .../test/query/types/PostProcessing.test.ts        |    6 +-
 .../test/time-comparison/fetchTimeRange.test.ts    |   60 +
 .../formatters/smartDateVerbose.test.ts            |   57 +-
 .../time-format/utils/normalizeTimestamp.test.ts   |    5 +
 .../superset-ui-core/types/ace-builds.d.ts         |    1 +
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |  125 +-
 .../plugin-chart-ag-grid-table/src/index.ts        |    1 -
 .../src/stateConversion.ts                         |  302 +---
 .../src/utils/agGridFilterConverter.ts             |   73 +-
 .../test/buildQuery.test.ts                        |  206 ++-
 .../test/stateConversion.test.ts                   |   77 +-
 .../test/utils/agGridFilterConverter.test.ts       |   55 +-
 .../test/utils/filterStateManager.test.ts          |    2 +-
 .../scripts/Country Map GeoJSON Generator.ipynb    |  Bin 226846 -> 227629 
bytes
 .../src/countries/russia.geojson                   |  Bin 747442 -> 678517 
bytes
 .../test/russia.geojson.test.ts                    |   87 ++
 .../src/Timeseries/transformers.ts                 |   36 +-
 .../src/utils/eventHandlers.ts                     |   26 +-
 .../test/MixedTimeseries/buildQuery.test.ts        |   33 +
 .../test/MixedTimeseries/transformProps.test.ts    |    4 +-
 .../test/Timeseries/Bar/transformProps.test.ts     |    6 +-
 .../test/Timeseries/transformers.test.ts           |  106 +-
 .../test/utils/eventHandlers.test.ts               |   56 +
 superset-frontend/spec/helpers/testing-library.tsx |    1 +
 .../src/components/Chart/Chart.test.tsx            |   55 +
 superset-frontend/src/components/Chart/Chart.tsx   |    5 +-
 ...rMessage.test.tsx => CsrfErrorMessage.test.tsx} |   42 +-
 ...etworkErrorMessage.tsx => CsrfErrorMessage.tsx} |   16 +-
 .../src/components/ErrorMessage/index.tsx          |    1 +
 superset-frontend/src/core/chat/ChatHost.tsx       |   20 +-
 .../src/dashboard/actions/dashboardState.test.ts   |   59 +
 .../src/dashboard/actions/dashboardState.ts        |    8 +-
 .../src/dashboard/actions/hydrate.test.ts          |   85 +-
 superset-frontend/src/dashboard/actions/hydrate.ts |   28 +-
 .../Header/useHeaderAutoRefresh.test.tsx           |   58 +-
 .../components/Header/useHeaderAutoRefresh.ts      |    2 +-
 .../components/gridComponents/Chart/Chart.test.tsx |   59 +
 .../components/gridComponents/Chart/Chart.tsx      |    4 +-
 .../components/gridComponents/Tabs/Tabs.test.tsx   |   95 ++
 .../components/gridComponents/Tabs/Tabs.tsx        |   22 +-
 .../gridComponents/TabsRenderer/TabsRenderer.tsx   |    2 +-
 .../DownloadMenuItems/DownloadMenuItems.test.tsx   |  616 +++++++-
 .../components/menu/DownloadMenuItems/index.tsx    |  210 ++-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |   61 +-
 .../FiltersConfigForm/getControlItemsMap.test.tsx  |   14 +
 .../FiltersConfigForm/getControlItemsMap.tsx       |    3 +-
 .../components/nativeFilters/utils.test.ts         |   13 +
 .../dashboard/contexts/AutoRefreshContext.test.tsx |   69 +
 .../src/dashboard/contexts/AutoRefreshContext.tsx  |   31 +-
 .../src/dashboard/reducers/dashboardLayout.test.ts |   62 +
 .../src/dashboard/reducers/dashboardLayout.ts      |   26 +
 .../src/dashboard/reducers/dashboardState.test.ts  |   23 +
 .../src/dashboard/util/getDropPosition.test.ts     |   83 ++
 .../src/dashboard/util/getDropPosition.ts          |   13 +
 .../util/removeUnreachableComponents.test.ts       |  283 ++++
 .../dashboard/util/removeUnreachableComponents.ts  |  225 +++
 .../util/updateComponentParentsList.test.ts        |   17 +
 .../dashboard/util/updateComponentParentsList.ts   |    7 +-
 .../components/ControlPanelsContainer.test.tsx     |    2 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |    8 +
 .../explore/components/ExploreChartPanel/index.tsx |   12 +-
 .../controls/DateFilterControl/DateFilterLabel.tsx |  116 +-
 .../tests/DateFilterLabel.test.tsx                 |  114 ++
 .../components/controls/DateFilterControl/types.ts |    1 +
 .../useExploreAdditionalActionsMenu.test.tsx       |   24 +-
 .../src/features/userInfo/UserInfoModal.test.tsx   |  102 ++
 .../src/features/userInfo/UserInfoModal.tsx        |   11 +-
 .../versionHistory/ChartVersionPreview.tsx         |    5 +-
 .../versionHistory/DashboardVersionHistory.tsx     |    5 +-
 .../versionHistory/ExploreVersionHistory.tsx       |    5 +-
 .../src/features/versionHistory/PreviewBanner.tsx  |    5 +-
 .../versionHistory/useDashboardVersionPreview.ts   |    5 +-
 .../versionHistory/useVersionActions.test.tsx      |    6 +-
 .../features/versionHistory/useVersionActions.tsx  |    5 +-
 .../components/Select/SelectFilterPlugin.tsx       |   22 +-
 .../components/Time/TimeFilterPlugin.test.tsx      |   95 ++
 .../filters/components/Time/TimeFilterPlugin.tsx   |    1 +
 .../src/filters/components/Time/controlPanel.ts    |   17 +
 .../src/filters/components/Time/types.ts           |    1 +
 superset-frontend/src/setup/setupErrorMessages.ts  |    5 +
 superset-frontend/src/views/App.test.tsx           |  125 ++
 superset-frontend/src/views/App.tsx                |   28 +-
 superset-websocket/package-lock.json               |  524 +++----
 superset-websocket/package.json                    |    8 +-
 superset/charts/schemas.py                         |   61 +-
 superset/commands/chart/update.py                  |   11 +-
 superset/commands/dashboard/update.py              |    7 +-
 superset/commands/database/exceptions.py           |    9 +-
 superset/commands/database/update.py               |   80 +-
 superset/commands/database/utils.py                |   47 +
 superset/commands/dataset/update.py                |   10 +-
 .../commands/deletion_retention/prune_audit.py     |  479 ++++--
 superset/commands/distributed_lock/acquire.py      |    9 +-
 superset/commands/importers/v1/utils.py            |   19 +
 superset/commands/report/execute.py                |   65 +-
 superset/commands/semantic_layer/update.py         |   55 +-
 superset/commands/streaming_export/base.py         |   41 +-
 superset/common/query_context_processor.py         |   18 +-
 superset/config.py                                 |   94 +-
 superset/connectors/sqla/models.py                 |   72 +-
 superset/connectors/sqla/partition_mapping.py      |   26 +
 superset/connectors/sqla/utils.py                  |   10 +
 superset/daos/dashboard.py                         |    5 +
 superset/daos/dataset.py                           |   35 +-
 superset/dashboards/api.py                         |  271 +++-
 superset/dashboards/excel_export/download_link.py  |  160 ++
 superset/dashboards/excel_export/email.py          |   29 +-
 superset/dashboards/filter_state/api.py            |    4 +
 superset/dashboards/layout.py                      |  269 ++++
 superset/dashboards/schemas.py                     |    6 +
 superset/datasets/schemas.py                       |    7 +-
 superset/db_engine_specs/base.py                   |   82 +-
 superset/db_engine_specs/databricks.py             |    4 +
 superset/db_engine_specs/db2.py                    |   27 +-
 superset/db_engine_specs/gsheets.py                |    1 +
 superset/db_engine_specs/ibmi.py                   |   21 +
 superset/db_engine_specs/mongodb.py                |   63 +-
 superset/db_engine_specs/pinot.py                  |    4 +
 superset/db_engine_specs/singlestore.py            |    4 +-
 superset/db_engine_specs/snowflake.py              |    1 +
 superset/embedded/view.py                          |    8 +-
 superset/errors.py                                 |    1 +
 superset/explore/form_data/api.py                  |    7 +-
 superset/jinja_context.py                          |    5 +
 superset/key_value/types.py                        |    1 +
 superset/mcp_service/README.md                     |    6 +-
 superset/mcp_service/SECURITY.md                   |    2 +-
 superset/mcp_service/__main__.py                   |    4 +-
 superset/mcp_service/app.py                        |    8 +-
 superset/mcp_service/chart/chart_helpers.py        |   61 +-
 superset/mcp_service/chart/chart_utils.py          |  185 ++-
 superset/mcp_service/chart/compile.py              |   50 +-
 superset/mcp_service/chart/plugins/__init__.py     |    3 +
 superset/mcp_service/chart/plugins/big_number.py   |    2 +-
 superset/mcp_service/chart/plugins/box_plot.py     |    2 +-
 superset/mcp_service/chart/plugins/bubble.py       |  149 ++
 superset/mcp_service/chart/plugins/handlebars.py   |    2 +-
 superset/mcp_service/chart/plugins/histogram.py    |    2 +-
 .../mcp_service/chart/plugins/interactive_pivot.py |    2 +-
 .../mcp_service/chart/plugins/mixed_timeseries.py  |    2 +-
 superset/mcp_service/chart/plugins/pie.py          |    2 +-
 superset/mcp_service/chart/plugins/pivot_table.py  |    2 +-
 superset/mcp_service/chart/plugins/table.py        |    2 +-
 superset/mcp_service/chart/plugins/treemap.py      |   12 +-
 superset/mcp_service/chart/plugins/waterfall.py    |    2 +-
 superset/mcp_service/chart/plugins/xy.py           |    2 +-
 superset/mcp_service/chart/preview_utils.py        |   76 +-
 superset/mcp_service/chart/query_result.py         |  113 +-
 superset/mcp_service/chart/schemas.py              |  475 ++++--
 superset/mcp_service/chart/tool/generate_chart.py  |    9 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |   43 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |   43 +-
 .../chart/tool/get_chart_type_schema.py            |   40 +-
 superset/mcp_service/chart/tool/update_chart.py    |   30 +-
 .../mcp_service/chart/tool/update_chart_preview.py |   51 +-
 superset/mcp_service/chart/treemap_preview.py      |  297 ++++
 superset/mcp_service/constants.py                  |   30 +-
 superset/mcp_service/dashboard/schemas.py          |   15 +-
 .../dashboard/tool/generate_dashboard.py           |    3 +-
 superset/mcp_service/dataset/schemas.py            |   13 +-
 .../explore/tool/generate_explore_link.py          |    3 +-
 superset/mcp_service/mcp_config.py                 |   23 +-
 superset/mcp_service/middleware.py                 |  495 +++++--
 superset/mcp_service/semantic_layer/schemas.py     |   29 +-
 superset/mcp_service/sql_lab/schemas.py            |   18 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   19 -
 .../{token_utils.py => response_size_utils.py}     |  319 ++--
 superset/mcp_service/utils/response_utils.py       |    8 +-
 superset/mcp_service/utils/serialization.py        |  225 +++
 superset/migrations/shared/security_converge.py    |   34 +
 ...4fb8bfc1_delete_deprecated_permissions_33272.py |  153 ++
 ...a4572f8a_rename_deprecated_permissions_33272.py |  193 +++
 ...e6_merge_deprecated_permissions_with_master.py} |   12 +-
 ...merge_deprecated_permissions_with_master_v2.py} |   12 +-
 ...merge_deprecated_permissions_with_master_v3.py} |   12 +-
 ...1_a7f3c2e91d84_add_partition_filter_mapping.py} |    4 +-
 superset/models/dashboard.py                       |   63 +-
 superset/models/helpers.py                         |   13 +
 superset/models/sql_lab.py                         |   11 +-
 superset/security/api.py                           |   13 +-
 superset/security/manager.py                       |  463 +++++-
 superset/security/password_change.py               |   11 +-
 superset/sql/dialects/__init__.py                  |    2 +
 superset/sql/dialects/databend.py                  |  604 ++++++++
 superset/sql/execution/executor.py                 |    4 +-
 superset/sql/parse.py                              |   44 +-
 superset/tasks/export_dashboard_excel.py           |  272 +++-
 superset/temporary_cache/api.py                    |    3 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/de/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/en/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/es/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |  135 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/it/LC_MESSAGES/messages.po   |  134 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |  135 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/messages.pot                 |  132 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |  133 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |  134 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |  132 +-
 superset/translations/ro/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/sr/LC_MESSAGES/messages.po   |  133 +-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |  133 +-
 superset/translations/ta/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/th/LC_MESSAGES/messages.po   |  135 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |  132 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |  134 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |  133 +-
 superset/utils/error_sanitization.py               |    1 +
 superset/utils/export_storage.py                   |   76 +
 superset/utils/gcs.py                              |  101 ++
 superset/utils/network.py                          |  115 ++
 superset/utils/report_execution.py                 |   93 ++
 superset/utils/s3.py                               |  124 +-
 superset/utils/screenshot_utils.py                 |  253 +++-
 superset/utils/screenshots.py                      |    3 +-
 superset/utils/webdriver.py                        |  145 +-
 superset/views/error_handling.py                   |   18 +-
 superset/views/utils.py                            |   12 +
 tests/integration_tests/charts/api_tests.py        |  109 ++
 tests/integration_tests/charts/commands_tests.py   |  133 +-
 tests/integration_tests/dashboards/api_tests.py    |  435 +++++-
 tests/integration_tests/datasets/api_tests.py      |   15 +-
 .../deletion_retention/prune_audit_tests.py        |  227 ++-
 tests/integration_tests/embedded/test_view.py      |   23 +
 .../commands/execute_dashboard_report_tests.py     |    9 +-
 tests/integration_tests/reports/commands_tests.py  |   68 +-
 tests/integration_tests/security/api_tests.py      |   28 +
 tests/integration_tests/security_tests.py          |    8 +
 tests/unit_tests/charts/test_filters.py            |   96 ++
 tests/unit_tests/charts/test_schemas.py            |   92 +-
 tests/unit_tests/commands/chart/create_test.py     |   33 +-
 .../chart/streaming_export_command_test.py         |   61 +
 tests/unit_tests/commands/chart/update_test.py     |   66 +-
 tests/unit_tests/commands/dashboard/update_test.py |   46 +
 tests/unit_tests/commands/databases/update_test.py |  209 ++-
 tests/unit_tests/commands/databases/utils_test.py  |   58 +
 tests/unit_tests/commands/dataset/update_test.py   |   73 +
 .../deletion_retention/test_prune_audit.py         |  728 ++++++++-
 .../unit_tests/commands/importers/v1/utils_test.py |   96 +-
 tests/unit_tests/commands/report/execute_test.py   |  318 +++-
 .../commands/semantic_layer/update_test.py         |   96 ++
 .../common/test_query_context_processor.py         |   35 +
 tests/unit_tests/connectors/sqla/models_test.py    |  253 ++++
 .../connectors/sqla/partition_mapping_test.py      |   46 +
 tests/unit_tests/connectors/sqla/utils_test.py     |   27 +-
 tests/unit_tests/dao/dashboard_test.py             |  139 ++
 tests/unit_tests/dao/dataset_test.py               |   68 +
 tests/unit_tests/dao/test_query_stop_race.py       |   68 +-
 tests/unit_tests/dashboards/api_test.py            |  116 ++
 tests/unit_tests/dashboards/datasets_test.py       |  356 +++++
 .../unit_tests/dashboards/filter_state_api_test.py |   56 +
 tests/unit_tests/dashboards/layout_test.py         |  325 ++++
 .../dashboards/test_excel_export_download_link.py  |   65 +
 tests/unit_tests/databases/api_test.py             |   77 +
 .../partition_mapping_serialization_test.py        |   62 +
 tests/unit_tests/db_engine_specs/test_base.py      |  243 ++-
 .../unit_tests/db_engine_specs/test_databricks.py  |   66 +-
 .../db_engine_specs/test_databricks_multi_cloud.py |    4 +
 tests/unit_tests/db_engine_specs/test_db2.py       |   35 +-
 tests/unit_tests/db_engine_specs/test_gsheets.py   |   27 +-
 tests/unit_tests/db_engine_specs/test_ibmi.py      |   76 +
 tests/unit_tests/db_engine_specs/test_mongodb.py   |  205 ++-
 tests/unit_tests/db_engine_specs/test_pinot.py     |   41 +-
 tests/unit_tests/db_engine_specs/test_snowflake.py |    7 +-
 tests/unit_tests/db_engine_specs/test_trino.py     |    7 +-
 .../distributed_lock/distributed_lock_tests.py     |   22 +
 tests/unit_tests/explore/form_data_api_test.py     |   80 +
 tests/unit_tests/jinja_context_test.py             |  120 ++
 .../mcp_service/chart/test_bubble_chart.py         |  471 ++++++
 .../mcp_service/chart/test_chart_utils.py          |   73 +
 .../mcp_service/chart/test_treemap_completeness.py | 1373 +++++++++++++++++
 .../mcp_service/chart/tool/test_generate_chart.py  |   41 +-
 .../mcp_service/chart/tool/test_get_chart_data.py  |  266 +++-
 .../chart/tool/test_get_chart_preview.py           |  117 ++
 .../chart/tool/test_get_chart_type_schema.py       |   26 +
 .../validation/test_column_name_normalization.py   |   60 +
 .../dashboard/tool/test_dashboard_generation.py    |   63 +
 .../explore/tool/test_generate_explore_link.py     |   49 +
 .../semantic_layer/tool/test_list_metrics.py       |   62 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |  104 +-
 .../mcp_service/test_error_classification.py       |  679 +++++++++
 .../mcp_service/test_mcp_tool_registration.py      |    2 +-
 tests/unit_tests/mcp_service/test_middleware.py    |  227 +--
 .../mcp_service/test_response_serialization.py     |  321 ++++
 ..._token_utils.py => test_response_size_utils.py} |  265 ++--
 .../mcp_service/utils/test_serialization.py        |  294 ++++
 .../migrations/shared/security_converge_test.py    |  218 +++
 .../test_deprecated_permissions_33272.py           |  420 ++++++
 tests/unit_tests/models/dashboard_test.py          |   41 +-
 tests/unit_tests/models/sql_lab_test.py            |   62 +-
 tests/unit_tests/security/manager_test.py          |  508 ++++++-
 tests/unit_tests/security/test_password_change.py  |   68 +-
 .../security/test_permission_instructions_link.py  |    2 +
 tests/unit_tests/semantic_layers/models_test.py    |  225 +++
 .../sql/dialects/databend_function_catalogue.txt   |  741 ++++++++++
 tests/unit_tests/sql/dialects/databend_tests.py    | 1553 ++++++++++++++++++++
 tests/unit_tests/sql/execution/test_executor.py    |   58 +
 tests/unit_tests/subjects/test_raise_for_access.py |  204 +++
 .../tasks/test_export_dashboard_excel.py           |  681 ++++++++-
 tests/unit_tests/utils/gcs_tests.py                |  120 ++
 tests/unit_tests/utils/s3_tests.py                 |  102 +-
 tests/unit_tests/utils/test_network.py             |   81 +-
 tests/unit_tests/utils/test_report_execution.py    |   64 +
 tests/unit_tests/utils/test_screenshot_utils.py    |  383 ++++-
 tests/unit_tests/utils/webdriver_test.py           |  155 +-
 tests/unit_tests/views/test_error_handling.py      |  136 +-
 tests/unit_tests/views/test_utils.py               |   69 +-
 385 files changed, 32185 insertions(+), 3935 deletions(-)
 create mode 100644 
superset-frontend/packages/superset-ui-core/src/chart/components/Matrixify/virtualizationEvents.ts
 create mode 100644 
superset-frontend/packages/superset-ui-core/test/connection/SupersetClientCsrfRecovery.test.ts
 create mode 100644 
superset-frontend/plugins/plugin-chart-country-map/test/russia.geojson.test.ts
 copy 
superset-frontend/src/components/ErrorMessage/{FrontendNetworkErrorMessage.test.tsx
 => CsrfErrorMessage.test.tsx} (59%)
 copy 
superset-frontend/src/components/ErrorMessage/{FrontendNetworkErrorMessage.tsx 
=> CsrfErrorMessage.tsx} (68%)
 create mode 100644 
superset-frontend/src/dashboard/util/removeUnreachableComponents.test.ts
 create mode 100644 
superset-frontend/src/dashboard/util/removeUnreachableComponents.ts
 create mode 100644 
superset-frontend/src/features/userInfo/UserInfoModal.test.tsx
 create mode 100644 
superset-frontend/src/filters/components/Time/TimeFilterPlugin.test.tsx
 create mode 100644 superset-frontend/src/views/App.test.tsx
 create mode 100644 superset/dashboards/excel_export/download_link.py
 create mode 100644 superset/dashboards/layout.py
 create mode 100644 superset/mcp_service/chart/plugins/bubble.py
 create mode 100644 superset/mcp_service/chart/treemap_preview.py
 rename superset/mcp_service/utils/{token_utils.py => response_size_utils.py} 
(81%)
 create mode 100644 superset/mcp_service/utils/serialization.py
 create mode 100644 
superset/migrations/versions/2026-09-10_00-00_1f5f4fb8bfc1_delete_deprecated_permissions_33272.py
 create mode 100644 
superset/migrations/versions/2026-09-10_00-01_3ce9a4572f8a_rename_deprecated_permissions_33272.py
 copy superset/migrations/versions/{2016-09-19_17-22_b347b202819b_.py => 
2026-09-16_00-01_2ce579e91ae6_merge_deprecated_permissions_with_master.py} (79%)
 copy superset/migrations/versions/{2016-09-19_17-22_b347b202819b_.py => 
2026-09-17_00-00_53a7abc31422_merge_deprecated_permissions_with_master_v2.py} 
(76%)
 copy superset/migrations/versions/{2016-09-19_17-22_b347b202819b_.py => 
2026-09-23_00-00_95d8a99c822e_merge_deprecated_permissions_with_master_v3.py} 
(76%)
 rename 
superset/migrations/versions/{2026-09-22_00-00_a7f3c2e91d84_add_partition_filter_mapping.py
 => 2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py} (98%)
 create mode 100644 superset/sql/dialects/databend.py
 create mode 100644 superset/utils/export_storage.py
 create mode 100644 superset/utils/gcs.py
 create mode 100644 tests/unit_tests/dashboards/datasets_test.py
 create mode 100644 tests/unit_tests/dashboards/layout_test.py
 create mode 100644 
tests/unit_tests/dashboards/test_excel_export_download_link.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_ibmi.py
 create mode 100644 tests/unit_tests/explore/form_data_api_test.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_bubble_chart.py
 create mode 100644 
tests/unit_tests/mcp_service/chart/test_treemap_completeness.py
 create mode 100644 tests/unit_tests/mcp_service/test_error_classification.py
 create mode 100644 tests/unit_tests/mcp_service/test_response_serialization.py
 rename tests/unit_tests/mcp_service/utils/{test_token_utils.py => 
test_response_size_utils.py} (87%)
 create mode 100644 tests/unit_tests/mcp_service/utils/test_serialization.py
 create mode 100644 tests/unit_tests/migrations/shared/security_converge_test.py
 create mode 100644 
tests/unit_tests/migrations/test_deprecated_permissions_33272.py
 create mode 100644 
tests/unit_tests/sql/dialects/databend_function_catalogue.txt
 create mode 100644 tests/unit_tests/sql/dialects/databend_tests.py
 create mode 100644 tests/unit_tests/utils/gcs_tests.py

Reply via email to