Skip to content

feat: new deckgl and maplibre plugins#38035

Open
birkskyum wants to merge 15 commits intoapache:masterfrom
birkskyum:new-deckgl-and-maplibre-plugins
Open

feat: new deckgl and maplibre plugins#38035
birkskyum wants to merge 15 commits intoapache:masterfrom
birkskyum:new-deckgl-and-maplibre-plugins

Conversation

@birkskyum
Copy link
Contributor

@birkskyum birkskyum commented Feb 17, 2026

Closes #30307

Summary

Implements SIP-130 — migrate map visualizations from proprietary Mapbox GL to open-source MapLibre GL JS.

Two new plugins:

  • preset-chart-deckgl — All 11 deck.gl chart types on deck.gl 9 + MapLibre (keys: deck_*_maplibre)
  • plugin-chart-maplibre — Scatter/cluster chart replacing legacy MapBox (key: maplibre)

Legacy plugins unchanged — existing dashboards keep working with original keys (deck_arc, deck_scatter, etc.).

They follow the new plugin style and will be the successors of the:

  • legacy-preset-chart-deckgl
  • legacy-plugin-chart-map-box

Changes

Frontend

  • New plugins use react-map-gl v8 + MapboxOverlay/useControl pattern (replaces v6 StaticMap)
  • Free map tiles by default (OpenFreeMap Liberty, Carto) — no API token needed
  • Map style configurable via Customize tab with freeForm URL support
  • Legacy deck.gl charts renamed to "(Legacy Mapbox)" in chart picker
  • Both presets registered side-by-side in MainPreset.ts

Backend

  • viz.py: MapLibreViz + 11 Deck*Maplibre viz subclasses
  • config.py: CSP connect-src simplified to https: for tile provider flexibility

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Screenshot 2026-02-17 at 20 32 48 Screenshot 2026-02-17 at 23 16 30 Screenshot 2026-02-17 at 23 18 22

A new feature:

Ability to runtime set the map style, by selecting from drop down or by inserting a url:

Requested #30307 (comment) by @StarkillerGDN.

The styles requested have to be whitelisted here:

Screenshot 2026-02-17 at 20 37 55 Screenshot 2026-02-17 at 20 14 00

TESTING INSTRUCTIONS

  • Chart picker shows both legacy "(Legacy Mapbox)" and new MapLibre variants
  • New deck.gl charts render tiles, layers, tooltips, and autozoom
  • MapLibre scatter chart renders dots, clusters, and supports custom tile URLs
  • Legacy charts on existing dashboards still work
  • No CSP errors in browser console

ADDITIONAL INFORMATION

  • Has associated issue: Tracking Issue: Migrating from Mapbox to MapLibre [Approved SIP-130] #30307
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API - Adds new chart types (new MapLibre and new DeckGL types, but keep all existing)
  • Removes existing feature or API

@bito-code-review
Copy link
Contributor

bito-code-review bot commented Feb 17, 2026

Bito Automatic Review Skipped - Large PR

Bito didn't auto-review this change because the pull request exceeded the line limit. No action is needed if you didn't intend for the agent to review it. Otherwise, to manually trigger a review, type /review in a comment and save.

@codecov
Copy link

codecov bot commented Feb 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.62%. Comparing base (5a777c0) to head (7538f3d).

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #38035       +/-   ##
===========================================
+ Coverage        0   66.62%   +66.62%     
===========================================
  Files           0      671      +671     
  Lines           0    51729    +51729     
  Branches        0     5792     +5792     
===========================================
+ Hits            0    34462    +34462     
- Misses          0    15876    +15876     
- Partials        0     1391     +1391     
Flag Coverage Δ
hive 41.47% <ø> (?)
mysql 64.54% <ø> (?)
postgres 64.62% <ø> (?)
presto 41.48% <ø> (?)
python 66.41% <ø> (?)
sqlite 64.21% <ø> (?)
superset-extensions-cli 96.49% <ø> (?)
unit 100.00% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@birkskyum birkskyum changed the title New deckgl and maplibre plugins feat: new deckgl and maplibre plugins Feb 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tracking Issue: Migrating from Mapbox to MapLibre [Approved SIP-130]

1 participant