You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jl...@apache.org on 2026/04/09 23:35:58 UTC

(superset) branch feat-sql-lab-to-playwright updated (aab42e61ecc -> 0bc388b761a)

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

jli pushed a change to branch feat-sql-lab-to-playwright
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit aab42e61ecc fix(playwright): positional tab switch + direct goto for saved-query nav
    omit bb03c5bbaf9 fix(playwright): use toHaveURL for SPA navigation in saved-query test
    omit a8c85b21e88 fix(playwright): use domcontentloaded for saved-query nav to avoid CI timeout
    omit 109efc0d9b9 fix(playwright): split saved-query nav+API into two waits for CI stability
    omit ad19e8c40d2 fix(playwright): target input element directly for saved-queries search
    omit 565ee57bd6b docs(playwright): clarify why SQL Lab needs a separate project config
    omit 0cb036eacde fix(playwright): drain initial-tab sync, fix row-limit and search locator
    omit e86f0e8a00f fix(playwright): restore row-limit check and saved-queries list path
    omit 2429594929b fix(playwright): observe loading cycle to prove fresh query results
    omit 896c6ecbcd7 fix(playwright): require fresh-result marker in waitForQueryResults
    omit db3daa4038c fix(playwright): use project-level isolation instead of serial mode
    omit dc3264ece30 fix(playwright): serialize SQL Lab tests, tighten assertions
    omit 6a182e13ae0 fix(playwright): address Copilot review feedback
    omit 7afe99031f3 fix(playwright): Popover.getButton returns Button, remove birth_names skip
    omit e58c4e946e0 style(playwright): fix prettier formatting in Popover and SaveDatasetModal
    omit 8bc8655212d refactor(playwright): use Button components and extract Popover
    omit f9d4c947e92 fix(playwright): move SQL Lab tests out of experimental, fix active tab assumption
    omit aa20c4b28fa refactor(playwright): make clickFooterButton public, remove wrapper methods
    omit 7872fa613b1 fix(playwright): revert getFooterButton to private, add click methods
    omit df80a7e277e refactor(playwright): encapsulate modal inputs with fillName methods
    omit 92366be7d1a refactor(playwright): use Modal.getFooterButton for modal buttons
    omit b6102720949 refactor(playwright): expose POM elements as getters, extract modal subclasses
    omit d6bb221c1fb fix(playwright): harden ensureEditorReady, waitForQueryResults, and create-chart skip
    omit 1915ef886f8 refactor(playwright): extract SQL Lab helpers — gotoAndReady, executeQuery, extractIdFromResponse
    omit 122d4dbe142 refactor(playwright): add TIMEOUT.SLOW_TEST constant for extended test timeouts
    omit cfe7e8b8a82 refactor(playwright): use expectStatus helper and remove raw timeout
    omit a283730c862 fix(playwright): wait for saved-query hydration before asserting editor SQL
    omit 152f940d146 refactor(playwright): add TIMEOUT.UI_TRANSITION constant for animation waits
    omit 5570d6ed3d7 fix(playwright): fix login test timeout from async form submission race
    omit f7d839f5f2e fix(playwright): scope ensureEditorReady to active panel + test fixes
    omit 8700c283251 fix(playwright): harden locators from adversarial review findings
    omit 57474d1b3c4 fix(playwright): scope locators to visible panel + exact tab matching
    omit 0529af8daea test(sqllab): move Playwright tests to experimental directory
    omit 3bdbe050248 fix(playwright): fix EditDatasetModal Tabs compatibility + getTab docs
    omit 789ac1d5cc9 fix(sqllab): fix Playwright tab counting with nav-scoped CSS selectors
    omit af6d64697f4 fix(sqllab): fix Playwright tests failing in CI empty-state SQL Lab
    omit 4f1971fbc32 test(sqllab): align Playwright tests with sc-102088 story requirements
    omit d71055573a6 test(sqllab): migrate Cypress E2E tests to Playwright
     add d915e4f3ff7 fix(tags): fix Bulk tag modal dropdown clipping and stale tag cache (#39210)
     add c49641538d5 feat: modernize deck.gl and map plugins with MapLibre/Mapbox dual renderer (#38035)
     add 5263abdc60e fix(AlertsReports): untie filters from alerts reports tabs flag (#38722)
     add 6649f35a0d6 fix(reports): escape SQL LIKE wildcards in find_by_extra_metadata (#38738)
     add 5815665cc62 feat: role/user CRUD events and login/logout tracking in the action log (#39121)
     add 68067d7f44f fix(mcp): handle OAuth-authenticated databases in execute_sql (#39166)
     add c7955a38ef7 fix: Drill to Detail for Embedded (#39214)
     add f49310b8ff8 fix(sql-lab): apply access check in SqlExecutionResultsCommand (#38952)
     add e17cf3c8086 fix(mcp): wire up compact schema serialization for search_tools results (#39229)
     add 680cef0ee07 fix(mcp): strip json_metadata and position_json from get_dashboard_info response (#39101)
     add 31754b3245f test(sqllab): add Playwright POM and helpers for SQL Lab E2E tests
     add 0bc388b761a test(sqllab): migrate Cypress SQL Lab tests to Playwright

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   (aab42e61ecc)
            \
             N -- N -- N   refs/heads/feat-sql-lab-to-playwright (0bc388b761a)

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:
 pyproject.toml                                     |   2 +-
 requirements/base.txt                              |   2 +-
 requirements/development.txt                       |   2 +-
 superset-frontend/package-lock.json                | 934 ++++++++++++++-------
 superset-frontend/package.json                     |   4 +-
 .../superset-ui-core/src/chart/types/VizType.ts    |   1 +
 .../legacy-plugin-chart-map-box/CHANGELOG.md       |  55 --
 .../plugins/legacy-plugin-chart-map-box/README.md  |  52 --
 .../legacy-plugin-chart-map-box/src/MapBox.tsx     | 243 ------
 .../src/ScatterPlotGlowOverlay.tsx                 | 425 ----------
 .../src/stories/MapBox.stories.tsx                 | 107 ---
 .../src/transformProps.ts                          | 162 ----
 .../test/MapBox.test.tsx                           | 381 ---------
 .../legacy-plugin-chart-map-box/test/tsconfig.json |   9 -
 .../test/utils/roundDecimal.test.ts                |  28 -
 .../legacy-plugin-chart-map-box/tsconfig.json      |  25 -
 .../types/external.d.ts                            | 101 ---
 .../legacy-preset-chart-deckgl/CHANGELOG.md        |  89 --
 .../plugins/legacy-preset-chart-deckgl/README.md   |  57 --
 .../test/utils/colors.test.ts                      |  25 -
 .../test/utils/getPointsFromPolygon.test.ts        |  56 --
 .../legacy-preset-chart-deckgl/types/external.d.ts |  71 --
 .../package.json                                   |  19 +-
 .../src/MapLibre.css}                              |   2 +-
 .../src/MapLibre.tsx                               | 216 +++++
 .../src/buildQuery.ts                              |  90 ++
 .../src/components/CanvasOverlay.tsx               | 121 +++
 .../src/components/ScatterPlotOverlay.tsx          | 400 +++++++++
 .../src/controlPanel.ts                            | 126 ++-
 .../src/images/MapBox-dark.jpg                     | Bin
 .../src/images/MapBox.jpg                          | Bin
 .../src/images/MapBox2-dark.jpg                    | Bin
 .../src/images/MapBox2.jpg                         | Bin
 .../src/images/thumbnail-dark.png                  | Bin
 .../src/images/thumbnail.png                       | Bin
 .../src/images/thumbnailLarge.png                  | Bin
 .../src/index.ts                                   |  11 +-
 .../src/stories/PointClusterMap.stories.tsx        | 176 ++++
 .../src/stories/data.ts                            |   0
 .../src/transformProps.ts                          | 292 +++++++
 .../src/utils/geo.ts                               |   0
 .../src/utils/luminanceFromRGB.ts                  |   0
 .../src/utils/mapbox.ts}                           |  18 +-
 .../src/utils/roundDecimal.ts                      |   0
 .../test/MapLibre.test.tsx                         | 262 ++++++
 .../test/ScatterPlotOverlay.test.tsx}              |  88 +-
 .../test/controlPanel.test.ts                      |   0
 .../test/transformProps.test.ts                    |  88 +-
 .../tsconfig.json                                  |   5 -
 .../types/external.d.ts                            |   2 +-
 .../package.json                                   |  27 +-
 .../src/CategoricalDeckGLContainer.tsx             |  17 +-
 .../src/DeckGLContainer.tsx                        | 138 ++-
 .../src/Multi/Multi.test.tsx                       |   2 +-
 .../src/Multi/Multi.tsx                            |  14 +-
 .../src/Multi/controlPanel.test.ts                 |   0
 .../src/Multi/controlPanel.ts                      |  10 +-
 .../src/Multi/images/example-dark.png              | Bin
 .../src/Multi/images/example.png                   | Bin
 .../src/Multi/images/thumbnail-dark.png            | Bin
 .../src/Multi/images/thumbnail.png                 | Bin
 .../src/Multi/images/thumbnailLarge.png            | Bin
 .../src/Multi/index.ts                             |   0
 .../src/TooltipRow.tsx                             |   0
 .../src/components/DeckGLOverlayMapLibre.tsx}      |  18 +-
 .../src/components/DeckGLOverlayMapbox.tsx}        |  18 +-
 .../src/components/Legend.tsx                      |  10 +-
 .../src/components/Tooltip.tsx                     |   8 +-
 .../src/factory.tsx                                |  15 +-
 .../src/index.ts                                   |   0
 .../src/layers/Arc/Arc.tsx                         |   0
 .../src/layers/Arc/buildQuery.ts                   |   0
 .../src/layers/Arc/controlPanel.ts                 |   9 +-
 .../src/layers/Arc/images/example-dark.png         | Bin
 .../src/layers/Arc/images/example.png              | Bin
 .../src/layers/Arc/images/thumbnail-dark.png       | Bin
 .../src/layers/Arc/images/thumbnail.png            | Bin
 .../src/layers/Arc/images/thumbnailLarge.png       | Bin
 .../src/layers/Arc/index.ts                        |   0
 .../src/layers/Arc/stories/Arc.stories.tsx         |   7 +-
 .../src/layers/Arc/stories/payload.ts              |   0
 .../src/layers/Arc/transformProps.ts               |   0
 .../src/layers/Contour/Contour.tsx                 |   0
 .../src/layers/Contour/buildQuery.ts               |   0
 .../src/layers/Contour/controlPanel.ts             |   4 +
 .../src/layers/Contour/getSafeCellSize.test.ts     |   0
 .../src/layers/Contour/getSafeCellSize.ts          |   0
 .../src/layers/Contour/images/example-dark.png     | Bin
 .../src/layers/Contour/images/example.png          | Bin
 .../src/layers/Contour/images/thumbnail-dark.png   | Bin
 .../src/layers/Contour/images/thumbnail.png        | Bin
 .../src/layers/Contour/images/thumbnailLarge.png   | Bin
 .../src/layers/Contour/index.ts                    |   0
 .../src/layers/Contour/transformProps.ts           |   0
 .../src/layers/Geojson/Geojson.test.ts             |   5 +-
 .../src/layers/Geojson/Geojson.tsx                 |  16 +-
 .../src/layers/Geojson/buildQuery.ts               |  86 ++
 .../src/layers/Geojson/controlPanel.ts             |   9 +-
 .../src/layers/Geojson/images/example-dark.png     | Bin
 .../src/layers/Geojson/images/example.png          | Bin
 .../src/layers/Geojson/images/thumbnail-dark.png   | Bin
 .../src/layers/Geojson/images/thumbnail.png        | Bin
 .../src/layers/Geojson/images/thumbnailLarge.png   | Bin
 .../src/layers/Geojson/index.ts                    |   5 +-
 .../src/layers/Geojson/transformProps.ts           |  50 ++
 .../src/layers/Grid/Grid.tsx                       |   0
 .../src/layers/Grid/buildQuery.ts                  |   0
 .../src/layers/Grid/controlPanel.ts                |   4 +
 .../src/layers/Grid/images/example-dark.png        | Bin
 .../src/layers/Grid/images/example.png             | Bin
 .../src/layers/Grid/images/thumbnail-dark.png      | Bin
 .../src/layers/Grid/images/thumbnail.png           | Bin
 .../src/layers/Grid/images/thumbnailLarge.png      | Bin
 .../src/layers/Grid/index.ts                       |   0
 .../src/layers/Grid/stories/Grid.stories.tsx       |   7 +-
 .../src/layers/Grid/stories/payload.ts             |   0
 .../src/layers/Grid/transformProps.ts              |   0
 .../src/layers/Heatmap/Heatmap.tsx                 |   8 +-
 .../src/layers/Heatmap/buildQuery.ts               |   0
 .../src/layers/Heatmap/controlPanel.ts             |   4 +
 .../src/layers/Heatmap/images/example-dark.png     | Bin
 .../src/layers/Heatmap/images/example.png          | Bin
 .../src/layers/Heatmap/images/thumbnail-dark.png   | Bin
 .../src/layers/Heatmap/images/thumbnail.png        | Bin
 .../src/layers/Heatmap/images/thumbnailLarge.png   | Bin
 .../src/layers/Heatmap/index.ts                    |   0
 .../src/layers/Heatmap/transformProps.ts           |   0
 .../src/layers/Hex/Hex.tsx                         |   0
 .../src/layers/Hex/buildQuery.ts                   |   0
 .../src/layers/Hex/controlPanel.ts                 |   4 +
 .../src/layers/Hex/images/example-dark.png         | Bin
 .../src/layers/Hex/images/example.png              | Bin
 .../src/layers/Hex/images/thumbnail-dark.png       | Bin
 .../src/layers/Hex/images/thumbnail.png            | Bin
 .../src/layers/Hex/images/thumbnailLarge.png       | Bin
 .../src/layers/Hex/index.ts                        |   0
 .../src/layers/Hex/stories/Hex.stories.tsx         |   7 +-
 .../src/layers/Hex/stories/payload.ts              |   0
 .../src/layers/Hex/transformProps.ts               |   0
 .../src/layers/Path/Path.test.tsx                  |   0
 .../src/layers/Path/Path.tsx                       |   2 +-
 .../src/layers/Path/buildQuery.ts                  |   0
 .../src/layers/Path/controlPanel.ts                |   4 +
 .../src/layers/Path/images/example-dark.png        | Bin
 .../src/layers/Path/images/example.png             | Bin
 .../src/layers/Path/images/thumbnail-dark.png      | Bin
 .../src/layers/Path/images/thumbnail.png           | Bin
 .../src/layers/Path/images/thumbnailLarge.png      | Bin
 .../src/layers/Path/index.ts                       |   0
 .../src/layers/Path/stories/Path.stories.tsx       |   7 +-
 .../src/layers/Path/stories/payload.ts             |   0
 .../src/layers/Path/transformProps.ts              |   0
 .../src/layers/Polygon/Polygon.test.tsx            |   2 +-
 .../src/layers/Polygon/Polygon.tsx                 |   3 +-
 .../src/layers/Polygon/buildQuery.test.ts          |   0
 .../src/layers/Polygon/buildQuery.ts               |   0
 .../src/layers/Polygon/controlPanel.ts             |  10 +-
 .../src/layers/Polygon/images/example-dark.png     | Bin
 .../src/layers/Polygon/images/example.png          | Bin
 .../src/layers/Polygon/images/thumbnail-dark.png   | Bin
 .../src/layers/Polygon/images/thumbnail.png        | Bin
 .../src/layers/Polygon/images/thumbnailLarge.png   | Bin
 .../src/layers/Polygon/index.ts                    |   0
 .../src/layers/Polygon/stories/Polygon.stories.tsx |  10 +-
 .../src/layers/Polygon/stories/geojsonPayload.ts   |   0
 .../src/layers/Polygon/stories/payload.ts          |   0
 .../src/layers/Polygon/transformProps.test.ts      |   0
 .../src/layers/Polygon/transformProps.ts           |   0
 .../src/layers/Scatter/Scatter.tsx                 |   0
 .../src/layers/Scatter/buildQuery.test.ts          |   0
 .../src/layers/Scatter/buildQuery.ts               |   0
 .../src/layers/Scatter/controlPanel.ts             |   9 +-
 .../src/layers/Scatter/images/example-dark.png     | Bin
 .../src/layers/Scatter/images/example.png          | Bin
 .../src/layers/Scatter/images/thumbnail-dark.png   | Bin
 .../src/layers/Scatter/images/thumbnail.png        | Bin
 .../src/layers/Scatter/images/thumbnailLarge.png   | Bin
 .../src/layers/Scatter/index.ts                    |   0
 .../src/layers/Scatter/stories/Scatter.stories.tsx |   7 +-
 .../src/layers/Scatter/stories/payload.ts          |   0
 .../src/layers/Scatter/transformProps.test.ts      |   0
 .../src/layers/Scatter/transformProps.ts           |   0
 .../src/layers/Screengrid/Screengrid.tsx           |   9 +-
 .../src/layers/Screengrid/buildQuery.ts            |   0
 .../src/layers/Screengrid/controlPanel.ts          |   9 +-
 .../src/layers/Screengrid/images/example-dark.png  | Bin
 .../src/layers/Screengrid/images/example.png       | Bin
 .../layers/Screengrid/images/thumbnail-dark.png    | Bin
 .../src/layers/Screengrid/images/thumbnail.png     | Bin
 .../layers/Screengrid/images/thumbnailLarge.png    | Bin
 .../src/layers/Screengrid/index.ts                 |   0
 .../Screengrid/stories/Screengrid.stories.tsx      |   8 +-
 .../src/layers/Screengrid/stories/payload.ts       |   0
 .../src/layers/Screengrid/transformProps.ts        |   0
 .../src/layers/buildQueryUtils.ts                  |   0
 .../src/layers/common.test.ts                      |   0
 .../src/layers/common.tsx                          |   0
 .../src/layers/index.ts                            |   0
 .../src/layers/spatialUtils.test.ts                |   2 +-
 .../src/layers/spatialUtils.ts                     |  26 +-
 .../src/layers/transformUtils.test.ts              |   0
 .../src/layers/transformUtils.ts                   |   0
 .../src/layers/utils/metricUtils.test.ts           |   0
 .../src/layers/utils/metricUtils.ts                |   0
 .../src/preset.ts                                  |   0
 .../src/transformProps.ts                          |   0
 .../src/types.ts                                   |   0
 .../src/utilities/HandlebarsRenderer.tsx           |   0
 .../src/utilities/Shared_DeckGL.tsx                |  71 +-
 .../src/utilities/TooltipTemplateControl.tsx       |   0
 .../src/utilities/TooltipTemplateEditor.tsx        |   0
 .../src/utilities/controlRegistry.tsx              |   0
 .../src/utilities/controls.ts                      |   0
 .../src/utilities/multiValueUtils.ts               |   0
 .../src/utilities/sharedDndControls.tsx            |   0
 .../src/utilities/tooltipUtils.tsx                 |   0
 .../src/utilities/utils.ts                         |   0
 .../src/utils.test.ts                              |   0
 .../src/utils.ts                                   |  45 -
 .../src/utils/colors.ts                            |   0
 .../src/utils/computeBoundsFromPoints.ts           |   0
 .../src/utils/crossFiltersDataMask.test.ts         |   0
 .../src/utils/crossFiltersDataMask.ts              |   0
 .../src/utils/explore.ts                           |   0
 .../src/utils/fitViewport.ts                       |   0
 .../src/utils/geo.ts                               |   0
 .../src/utils/getPointsFromPolygon.ts              |   0
 .../preset-chart-deckgl/src/utils/mapbox.ts}       |  18 +-
 .../src/utils/safeStringify.ts                     |   0
 .../src/utils/sandbox.ts                           |   0
 .../preset-chart-deckgl}/tsconfig.json             |  13 +-
 .../types/external.d.ts                            |   2 +-
 superset-frontend/scripts/check-custom-rules.js    |   2 +
 superset-frontend/src/components/Tag/utils.tsx     |  11 +-
 .../VizTypeControl/VizTypeControl.test.tsx         |   2 +-
 .../src/features/alerts/AlertReportModal.tsx       |   8 +-
 .../src/features/tags/BulkTagModal.tsx             |   3 +-
 superset-frontend/src/features/tags/TagModal.tsx   |   3 +
 .../src/visualizations/presets/MainPreset.ts       |   6 +-
 superset-frontend/tsconfig.json                    |   4 +-
 superset/commands/report/execute.py                |  17 +
 superset/commands/sql_lab/results.py               |  18 +-
 superset/config.py                                 |  18 +-
 superset/daos/report.py                            |   2 +-
 superset/db_engine_specs/base.py                   |  13 +-
 superset/mcp_service/chart/tool/generate_chart.py  |  36 +
 superset/mcp_service/chart/tool/get_chart_data.py  |  23 +-
 .../mcp_service/chart/tool/get_chart_preview.py    |  23 +-
 superset/mcp_service/chart/tool/update_chart.py    |  36 +-
 .../mcp_service/chart/tool/update_chart_preview.py |  24 +
 superset/mcp_service/common/schema_discovery.py    |   4 +-
 superset/mcp_service/dashboard/schemas.py          | 216 ++++-
 .../tool/add_chart_to_existing_dashboard.py        |   4 +-
 .../dashboard/tool/generate_dashboard.py           |   4 +-
 superset/mcp_service/mcp_config.py                 |  14 +-
 superset/mcp_service/server.py                     | 120 ++-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |  24 +
 superset/mcp_service/utils/oauth2_utils.py         |  47 ++
 superset/mcp_service/utils/permissions_utils.py    |   4 -
 superset/mcp_service/utils/response_utils.py       | 152 ++++
 ...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py | 172 ++++
 superset/security/manager.py                       | 190 ++++-
 superset/sql/execution/executor.py                 |   6 +
 superset/utils/log.py                              |   2 +-
 superset/utils/oauth2.py                           |  29 +-
 superset/views/datasource/utils.py                 |   7 +-
 superset/views/datasource/views.py                 |   8 +-
 superset/viz.py                                    |  23 +
 tests/integration_tests/datasource_tests.py        |  21 +-
 ...ce6bd21901ab_migrate_deckgl_and_mapbox__test.py | 187 +++++
 .../security/guest_token_security_tests.py         | 100 ++-
 tests/integration_tests/security_tests.py          |  23 +-
 tests/integration_tests/sql_lab/commands_tests.py  |  33 +-
 tests/unit_tests/commands/report/execute_test.py   |  50 ++
 tests/unit_tests/daos/test_report_dao.py           |  92 ++
 tests/unit_tests/db_engine_specs/test_base.py      |   2 +-
 .../dashboard/test_dashboard_schemas.py            | 224 ++++-
 .../dashboard/tool/test_dashboard_tools.py         |  16 +-
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |  71 ++
 .../mcp_service/test_tool_search_transform.py      | 340 ++++++++
 tests/unit_tests/security/api_test.py              |   2 +-
 tests/unit_tests/security/audit_log_test.py        | 251 ++++++
 tests/unit_tests/sql/execution/test_executor.py    |  72 ++
 tests/unit_tests/utils/oauth2_tests.py             |  64 ++
 284 files changed, 5598 insertions(+), 2731 deletions(-)
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/CHANGELOG.md
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/README.md
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/MapBox.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/stories/MapBox.stories.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/transformProps.ts
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/MapBox.test.tsx
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/tsconfig.json
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/utils/roundDecimal.test.ts
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/tsconfig.json
 delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/types/external.d.ts
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/CHANGELOG.md
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/README.md
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/test/utils/colors.test.ts
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/test/utils/getPointsFromPolygon.test.ts
 delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/types/external.d.ts
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/package.json (65%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box/src/MapBox.css => plugin-chart-point-cluster-map/src/MapLibre.css} (96%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/MapLibre.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/buildQuery.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/components/CanvasOverlay.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/components/ScatterPlotOverlay.tsx
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/controlPanel.ts (73%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox-dark.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox2-dark.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox2.jpg (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/index.ts (88%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/stories/PointClusterMap.stories.tsx
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/stories/data.ts (100%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/transformProps.ts
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/geo.ts (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/luminanceFromRGB.ts (100%)
 copy superset-frontend/{src/types/ChartSource.ts => plugins/plugin-chart-point-cluster-map/src/utils/mapbox.ts} (63%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/roundDecimal.ts (100%)
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/test/MapLibre.test.tsx
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box/test/ScatterPlotGlowOverlay.test.tsx => plugin-chart-point-cluster-map/test/ScatterPlotOverlay.test.tsx} (92%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/test/controlPanel.test.ts (100%)
 rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/test/transformProps.test.ts (75%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => plugin-chart-point-cluster-map}/tsconfig.json (58%)
 copy superset-frontend/plugins/{legacy-plugin-chart-calendar => plugin-chart-point-cluster-map}/types/external.d.ts (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/package.json (76%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/CategoricalDeckGLContainer.tsx (95%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/DeckGLContainer.tsx (64%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/Multi.test.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/Multi.tsx (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/controlPanel.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/controlPanel.ts (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/TooltipRow.tsx (100%)
 copy superset-frontend/{src/views/ScrollToTop.tsx => plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.tsx} (70%)
 copy superset-frontend/{src/views/ScrollToTop.tsx => plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapbox.tsx} (70%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/components/Legend.tsx (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/components/Tooltip.tsx (95%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/factory.tsx (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/Arc.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/controlPanel.ts (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/stories/Arc.stories.tsx (93%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/Contour.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/getSafeCellSize.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/getSafeCellSize.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/Geojson.test.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/Geojson.tsx (97%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/buildQuery.ts
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/controlPanel.ts (98%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/index.ts (94%)
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/transformProps.ts
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/Grid.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/controlPanel.ts (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/stories/Grid.stories.tsx (92%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/Heatmap.tsx (95%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/controlPanel.ts (98%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/Hex.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/stories/Hex.stories.tsx (92%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/Path.test.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/Path.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/stories/Path.stories.tsx (92%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/Polygon.test.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/Polygon.tsx (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/buildQuery.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/controlPanel.ts (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/Polygon.stories.tsx (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/geojsonPayload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/transformProps.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/Scatter.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/buildQuery.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/controlPanel.ts (96%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/stories/Scatter.stories.tsx (93%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/transformProps.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/Screengrid.tsx (97%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/buildQuery.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/controlPanel.ts (94%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/example-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/example.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnail-dark.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnail.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnailLarge.png (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/stories/Screengrid.stories.tsx (91%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/stories/payload.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/buildQueryUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/common.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/common.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/index.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/spatialUtils.test.ts (99%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/spatialUtils.ts (93%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/transformUtils.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/transformUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/utils/metricUtils.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/utils/metricUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/preset.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/transformProps.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/types.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/HandlebarsRenderer.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/Shared_DeckGL.tsx (90%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/TooltipTemplateControl.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/TooltipTemplateEditor.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/controlRegistry.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/controls.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/multiValueUtils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/sharedDndControls.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/tooltipUtils.tsx (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/utils.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils.ts (86%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/colors.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/computeBoundsFromPoints.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/crossFiltersDataMask.test.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/crossFiltersDataMask.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/explore.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/fitViewport.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/geo.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/getPointsFromPolygon.ts (100%)
 copy superset-frontend/{src/types/ChartSource.ts => plugins/preset-chart-deckgl/src/utils/mapbox.ts} (63%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/safeStringify.ts (100%)
 rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/sandbox.ts (100%)
 copy superset-frontend/{packages/generator-superset/generators/plugin-chart/templates => plugins/preset-chart-deckgl}/tsconfig.json (59%)
 copy superset-frontend/plugins/{legacy-plugin-chart-calendar => preset-chart-deckgl}/types/external.d.ts (99%)
 create mode 100644 superset/mcp_service/utils/oauth2_utils.py
 create mode 100644 superset/mcp_service/utils/response_utils.py
 create mode 100644 superset/migrations/versions/2026-03-02_00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py
 create mode 100644 tests/integration_tests/migrations/ce6bd21901ab_migrate_deckgl_and_mapbox__test.py
 create mode 100644 tests/unit_tests/daos/test_report_dao.py
 create mode 100644 tests/unit_tests/security/audit_log_test.py