rusackas opened a new pull request, #41730: URL: https://github.com/apache/superset/pull/41730
### SUMMARY Tier 4 of #41714 (targets `remove-legacy-viz-pipeline`): migrate **deck.gl Multiple Layers (`deck_multi`)** off `explore_json` — the last `useLegacyApi` chart, and the last holdout in the deck.gl preset migration. `deck_multi` depended on `explore_json` twice: the container query (whose `viz.py` class fetched every sub-slice server-side just to hand back metadata and merged features) and each per-layer data fetch. Both move client-side: - New `Multi/buildQuery.ts` returns an **empty `queries` list** — the legacy `DeckGLMultiLayer.query_obj` was empty too; a new backend unit test pins that `ChartDataQueryContextSchema` accepts that shape. - `Multi.tsx` fetches sub-slice metadata via `GET /api/v1/chart/<id>` (bounded by `deck_slices`), and loads each layer through its own registered `buildQuery` → `POST /api/v1/chart/data` → registered `transformProps`, whose output payload is exactly what the layer generators consume. Legacy container payloads (cached) still short-circuit the metadata fetch. - Layer-scoped dashboard filtering (`layer_filter_scope`/`filter_data_mapping`), `dashboardId` and `parent_slice_id` propagation are unchanged — tests updated to assert them on the v1 POST payloads. - Known minor behavior notes: initial autozoom falls back to the saved viewport when no pre-merged container features exist (bounds previously came from the container payload), and dashboard filter badges no longer aggregate child-layer applied-filter metadata (the legacy container merged it server-side). ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF No visual change in layer rendering; see autozoom note above. ### TESTING INSTRUCTIONS - `npm run test -- plugins/preset-chart-deckgl/src/Multi` — 30 tests pass (layer loading via registries, dashboardId/parent_slice_id propagation on POST payloads, layer visibility filtering, viewport handling). - `pytest tests/unit_tests/charts/data/test_empty_query_context.py` — empty-queries context accepted. - Manual: open a saved deck.gl Multiple Layers chart; network tab shows one `POST /api/v1/chart/data` per layer (no `/superset/explore_json/`); layer-scoped dashboard filters behave as before. ### ADDITIONAL INFORMATION - [ ] Has associated issue: - [ ] Required feature flags: - [ ] Changes UI - [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351)) - [ ] Introduces new feature or API - [x] Removes existing feature or API 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
