korbit-ai[bot] commented on code in PR #34176: URL: https://github.com/apache/superset/pull/34176#discussion_r2208100942
########## docs/docs/configuration/map-tiles.mdx: ########## @@ -0,0 +1,78 @@ +--- +title: Map Tiles +sidebar_position: 12 +version: 1 +--- + +# Map tiles + +Superset uses OSM and Mapbox tiles by default. OSM is free but you still need setting your MAPBOX_API_KEY if you want to use mapbox maps. Review Comment: ### Unclear Documentation Grammar <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The sentence contains grammatical errors that affect readability ('but you still need setting' should be 'but you still need to set') ###### Why this matters Grammatical errors in documentation can cause confusion and make it harder for users to understand the requirements. ###### Suggested change ∙ *Feature Preview* Revise to: "Superset uses OSM and Mapbox tiles by default. OSM is free, but you still need to set your MAPBOX_API_KEY if you want to use Mapbox maps." ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/4372dfd1-4849-4f89-ab65-aaed95b1fdb0/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/4372dfd1-4849-4f89-ab65-aaed95b1fdb0?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/4372dfd1-4849-4f89-ab65-aaed95b1fdb0?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/4372dfd1-4849-4f89-ab65-aaed95b1fdb0?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/4372dfd1-4849-4f89-ab65-aaed95b1fdb0) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:26ad2f99-43a4-4edf-a520-3097a69e5ad0 --> [](26ad2f99-43a4-4edf-a520-3097a69e5ad0) ########## superset/views/base.py: ########## @@ -366,6 +366,7 @@ def cached_common_bootstrap_data( # pylint: disable=unused-argument "d3_format": conf.get("D3_FORMAT"), "d3_time_format": conf.get("D3_TIME_FORMAT"), "currencies": conf.get("CURRENCIES"), + "deckgl_tiles": conf.get("DECKGL_BASE_MAP"), Review Comment: ### Missing Default Value for Map Tiles Configuration <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The default value for conf.get('DECKGL_BASE_MAP') is not specified, which could return None if the configuration key is missing. ###### Why this matters If the DECKGL_BASE_MAP configuration is not set, the frontend will receive None as the value, potentially causing rendering issues in Deck.gl visualizations that expect valid tile configuration. ###### Suggested change ∙ *Feature Preview* Add a default value to the configuration fetch to ensure a valid fallback for tile settings: ```python "deckgl_tiles": conf.get("DECKGL_BASE_MAP", {}), ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/65effcc3-f5e6-4b49-96fd-841a3cc5b8d0/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/65effcc3-f5e6-4b49-96fd-841a3cc5b8d0?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/65effcc3-f5e6-4b49-96fd-841a3cc5b8d0?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/65effcc3-f5e6-4b49-96fd-841a3cc5b8d0?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/65effcc3-f5e6-4b49-96fd-841a3cc5b8d0) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:17b36234-99d4-4f22-904b-9d8e8d548aa6 --> [](17b36234-99d4-4f22-904b-9d8e8d548aa6) ########## superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx: ########## @@ -102,6 +108,20 @@ ); const layers = useCallback(() => { + if ( + (props.mapStyle?.startsWith(TILE_LAYER_PREFIX) || + OSM_LAYER_KEYWORDS.some(tilek => props.mapStyle?.includes(tilek))) && + props.layers.some( + l => typeof l !== 'function' && l?.id === 'tile-layer', + ) === false + ) { + props.layers.unshift( + buildTileLayer( + (props.mapStyle ?? '').replace(TILE_LAYER_PREFIX, ''), + 'tile-layer', + ), + ); Review Comment: ### Props Mutation in Tile Layer Addition <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? Direct mutation of props.layers using unshift() modifies the original array, violating React's principle of props immutability. ###### Why this matters Mutating props directly can lead to unexpected behavior and re-rendering issues in React components, potentially causing visual glitches or inconsistencies in the map display. ###### Suggested change ∙ *Feature Preview* Create a new array instead of mutating the existing one: ```typescript const layersWithTile = [ buildTileLayer( (props.mapStyle ?? '').replace(TILE_LAYER_PREFIX, ''), 'tile-layer', ), ...props.layers ]; ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/a012594f-e0db-4658-aa97-24e98518ea9c/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/a012594f-e0db-4658-aa97-24e98518ea9c?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/a012594f-e0db-4658-aa97-24e98518ea9c?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/a012594f-e0db-4658-aa97-24e98518ea9c?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/a012594f-e0db-4658-aa97-24e98518ea9c) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:2f496b33-516e-41e6-a23e-6c92cd9e5374 --> [](2f496b33-516e-41e6-a23e-6c92cd9e5374) ########## docs/docs/configuration/map-tiles.mdx: ########## @@ -0,0 +1,78 @@ +--- +title: Map Tiles +sidebar_position: 12 +version: 1 +--- + +# Map tiles + +Superset uses OSM and Mapbox tiles by default. OSM is free but you still need setting your MAPBOX_API_KEY if you want to use mapbox maps. + +## Setting map tiles + +Map tiles can be set with `DECKGL_BASE_MAP` in your `superset_config.py` or `superset_config_docker.py` +For adding your own map tiles, you can use the following format. + +```python +DECKGL_BASE_MAP = [ + ['tile://https://your_personal_url/{z}/{x}/{y}.png', 'MyTile'] +] +``` +Openstreetmap tiles url can be added without prefix. +```python +DECKGL_BASE_MAP = [ + ['https://c.tile.openstreetmap.org/{z}/{x}/{y}.png', 'OpenStreetMap'] +] +``` + +Default values are: +```python +DECKGL_BASE_MAP = [ + ['https://tile.openstreetmap.org/{z}/{x}/{y}.png', 'Streets (OSM)'], + ['https://tile.osm.ch/osm-swiss-style/{z}/{x}/{y}.png', 'Topography (OSM)'], + ['mapbox://styles/mapbox/streets-v9', 'Streets'], + ['mapbox://styles/mapbox/dark-v9', 'Dark'], + ['mapbox://styles/mapbox/light-v9', 'Light'], + ['mapbox://styles/mapbox/satellite-streets-v9', 'Satellite Streets'], + ['mapbox://styles/mapbox/satellite-v9', 'Satellite'], + ['mapbox://styles/mapbox/outdoors-v9', 'Outdoors'], +] +``` + +It is possible to set only mapbox by removing osm tiles and other way around. + +:::warning +Setting `DECKGL_BASE_MAP` overwrite default values +::: + +After defining your map tiles, set them in these variables: +- `CORS_OPTIONS` +- `connect-src` of `TALISMAN_CONFIG` and `TALISMAN_CONFIG_DEV` variables. + +```python +ENABLE_CORS = True +CORS_OPTIONS: dict[Any, Any] = { + "origins": [ + "https://tile.openstreetmap.org", + "https://tile.osm.ch", + "https://your_personal_url/{z}/{x}/{y}.png", + ] +} Review Comment: ### Incorrect CORS Origin Format <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The CORS configuration example uses a full tile URL path with parameters in the origins list, which is incorrect as CORS origins should only include the base domain. ###### Why this matters Using full tile paths in CORS origins will not work as expected and could create security vulnerabilities. CORS origins should only specify the domain root. ###### Suggested change ∙ *Feature Preview* Modify the CORS configuration to use only base domains: ```python CORS_OPTIONS: dict[Any, Any] = { "origins": [ "https://tile.openstreetmap.org", "https://tile.osm.ch", "https://your_personal_url", # Only the base domain ] } ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/eaaef9f8-4f24-4227-9fc1-9106891b4a54/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/eaaef9f8-4f24-4227-9fc1-9106891b4a54?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/eaaef9f8-4f24-4227-9fc1-9106891b4a54?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/eaaef9f8-4f24-4227-9fc1-9106891b4a54?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/eaaef9f8-4f24-4227-9fc1-9106891b4a54) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:c4d3fba7-9116-4959-8785-7c213341f1c4 --> [](c4d3fba7-9116-4959-8785-7c213341f1c4) ########## superset-frontend/plugins/legacy-preset-chart-deckgl/src/utils.ts: ########## @@ -215,3 +221,41 @@ export function getColorBreakpointsBuckets( return buckets; } +export function buildTileLayer(url: string, id: string) { + interface TileLayerProps { + id: string; + data: string; + minZoom: number; + maxZoom: number; + tileSize: number; + renderSubLayers: (props: any) => (BitmapLayer | PathLayer)[]; + } + + interface RenderSubLayerProps { + tile: { + bbox: GeoBoundingBox; + }; + data: any; + } + + return new TileLayer({ + data: url, + id, + minZoom: 0, + maxZoom: 19, + tileSize: 256, Review Comment: ### Unvalidated Tile Source URL <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The function accepts an arbitrary URL parameter without validation, which could lead to loading tiles from malicious sources. ###### Why this matters Without URL validation, an attacker could potentially inject malicious tile sources that could lead to data exfiltration or loading of malicious content. ###### Suggested change ∙ *Feature Preview* ```typescript export function buildTileLayer(url: string, id: string) { // Validate URL is from trusted sources if (!url.startsWith(TILE_LAYER_PREFIX) && !url.startsWith(MAPBOX_LAYER_PREFIX) && !OSM_LAYER_KEYWORDS.some(keyword => url.toLowerCase().includes(keyword))) { throw new Error('Invalid tile source URL'); } return new TileLayer({ data: url, ... ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/1f337e41-dc27-4f49-a2a3-b9a961a61df8/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/1f337e41-dc27-4f49-a2a3-b9a961a61df8?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/1f337e41-dc27-4f49-a2a3-b9a961a61df8?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/1f337e41-dc27-4f49-a2a3-b9a961a61df8?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/1f337e41-dc27-4f49-a2a3-b9a961a61df8) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:c6e4d584-f888-4026-b48e-0db65208b84a --> [](c6e4d584-f888-4026-b48e-0db65208b84a) ########## docs/docs/configuration/map-tiles.mdx: ########## @@ -0,0 +1,78 @@ +--- +title: Map Tiles +sidebar_position: 12 +version: 1 +--- + +# Map tiles + +Superset uses OSM and Mapbox tiles by default. OSM is free but you still need setting your MAPBOX_API_KEY if you want to use mapbox maps. + +## Setting map tiles + +Map tiles can be set with `DECKGL_BASE_MAP` in your `superset_config.py` or `superset_config_docker.py` +For adding your own map tiles, you can use the following format. Review Comment: ### Improper Sentence Structure <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? Two separate sentences should be properly punctuated and connected for better readability. ###### Why this matters Poor sentence structure makes documentation harder to read and understand. ###### Suggested change ∙ *Feature Preview* Map tiles can be set with `DECKGL_BASE_MAP` in your `superset_config.py` or `superset_config_docker.py`. To add your own map tiles, use the following format: ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/ea51ba2a-dfe6-471b-ac29-a6b4c2fff378/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/ea51ba2a-dfe6-471b-ac29-a6b4c2fff378?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/ea51ba2a-dfe6-471b-ac29-a6b4c2fff378?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/ea51ba2a-dfe6-471b-ac29-a6b4c2fff378?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/ea51ba2a-dfe6-471b-ac29-a6b4c2fff378) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:e2789ac5-14cf-4dad-a728-477cb53a34d2 --> [](e2789ac5-14cf-4dad-a728-477cb53a34d2) ########## superset/examples/long_lat.py: ########## @@ -107,18 +107,18 @@ def load_long_lat_data(only_metadata: bool = False, force: bool = False) -> None "granularity_sqla": "day", "since": "2014-01-01", "until": "now", - "viz_type": "mapbox", + "viz_type": "osm", "all_columns_x": "LON", "all_columns_y": "LAT", - "mapbox_style": "mapbox://styles/mapbox/light-v9", + "mapbox_style": "https://tile.openstreetmap.org/{z}/{x}/{y}.png", Review Comment: ### Incorrect Configuration Key for OSM Tiles <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The configuration key 'mapbox_style' is incorrect for OpenStreetMap tile configuration. The code is using a Mapbox-specific configuration key for OSM tiles. ###### Why this matters Using incorrect configuration keys may lead to the map tiles not loading properly or failing to render at all in the visualization. ###### Suggested change ∙ *Feature Preview* Change the configuration key from 'mapbox_style' to a more appropriate key like 'tile_url' or 'osm_url': ```python "tile_url": "https://tile.openstreetmap.org/{z}/{x}/{y}.png" ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/bfe5e2ff-5372-4e4f-b62b-ee32e0e65ed1/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/bfe5e2ff-5372-4e4f-b62b-ee32e0e65ed1?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/bfe5e2ff-5372-4e4f-b62b-ee32e0e65ed1?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/bfe5e2ff-5372-4e4f-b62b-ee32e0e65ed1?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/bfe5e2ff-5372-4e4f-b62b-ee32e0e65ed1) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:1fdc8812-c40d-4508-80dc-79ec9153d20c --> [](1fdc8812-c40d-4508-80dc-79ec9153d20c) ########## superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx: ########## @@ -102,6 +108,20 @@ export const DeckGLContainer = memo( ); const layers = useCallback(() => { + if ( + (props.mapStyle?.startsWith(TILE_LAYER_PREFIX) || + OSM_LAYER_KEYWORDS.some(tilek => props.mapStyle?.includes(tilek))) && Review Comment: ### Unclear Parameter Name Abbreviation <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The parameter name 'tilek' is an unclear abbreviation of what appears to be 'tileKeyword'. ###### Why this matters Abbreviated variable names reduce code readability and make it harder for developers to understand the purpose of the parameter without additional context. ###### Suggested change ∙ *Feature Preview* ```typescript OSM_LAYER_KEYWORDS.some(tileKeyword => props.mapStyle?.includes(tileKeyword)) ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c3fe3c46-7e12-4925-b690-2d98fa7255d2/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c3fe3c46-7e12-4925-b690-2d98fa7255d2?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c3fe3c46-7e12-4925-b690-2d98fa7255d2?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c3fe3c46-7e12-4925-b690-2d98fa7255d2?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/c3fe3c46-7e12-4925-b690-2d98fa7255d2) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:7d0101ae-1a07-4686-b27d-37f4c433ab91 --> [](7d0101ae-1a07-4686-b27d-37f4c433ab91) ########## superset-frontend/plugins/legacy-preset-chart-deckgl/src/DeckGLContainer.tsx: ########## @@ -102,6 +108,20 @@ ); const layers = useCallback(() => { + if ( + (props.mapStyle?.startsWith(TILE_LAYER_PREFIX) || + OSM_LAYER_KEYWORDS.some(tilek => props.mapStyle?.includes(tilek))) && + props.layers.some( + l => typeof l !== 'function' && l?.id === 'tile-layer', + ) === false + ) { Review Comment: ### Hard-to-Parse Conditional Logic <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? Complex conditional logic with multiple conditions and a negated boolean expression makes the code hard to read at a glance. ###### Why this matters The nested conditions with mixed operators and a negated boolean at the end create cognitive overhead when trying to understand the logic flow. ###### Suggested change ∙ *Feature Preview* ```typescript const isTileLayerStyle = props.mapStyle?.startsWith(TILE_LAYER_PREFIX) || OSM_LAYER_KEYWORDS.some(tileKeyword => props.mapStyle?.includes(tileKeyword)); const hasTileLayer = props.layers.some( layer => typeof layer !== 'function' && layer?.id === 'tile-layer' ); if (isTileLayerStyle && !hasTileLayer) { ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/e7d4000c-0b35-4283-9bbf-d8819f6177f7/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/e7d4000c-0b35-4283-9bbf-d8819f6177f7?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/e7d4000c-0b35-4283-9bbf-d8819f6177f7?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/e7d4000c-0b35-4283-9bbf-d8819f6177f7?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/e7d4000c-0b35-4283-9bbf-d8819f6177f7) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:25ba77c6-c5e4-4416-a9c9-db74601e3913 --> [](25ba77c6-c5e4-4416-a9c9-db74601e3913) ########## docs/docs/configuration/map-tiles.mdx: ########## @@ -0,0 +1,78 @@ +--- +title: Map Tiles +sidebar_position: 12 +version: 1 +--- + +# Map tiles + +Superset uses OSM and Mapbox tiles by default. OSM is free but you still need setting your MAPBOX_API_KEY if you want to use mapbox maps. + +## Setting map tiles + +Map tiles can be set with `DECKGL_BASE_MAP` in your `superset_config.py` or `superset_config_docker.py` +For adding your own map tiles, you can use the following format. + +```python +DECKGL_BASE_MAP = [ + ['tile://https://your_personal_url/{z}/{x}/{y}.png', 'MyTile'] +] +``` +Openstreetmap tiles url can be added without prefix. +```python +DECKGL_BASE_MAP = [ + ['https://c.tile.openstreetmap.org/{z}/{x}/{y}.png', 'OpenStreetMap'] +] +``` + +Default values are: +```python +DECKGL_BASE_MAP = [ + ['https://tile.openstreetmap.org/{z}/{x}/{y}.png', 'Streets (OSM)'], + ['https://tile.osm.ch/osm-swiss-style/{z}/{x}/{y}.png', 'Topography (OSM)'], + ['mapbox://styles/mapbox/streets-v9', 'Streets'], + ['mapbox://styles/mapbox/dark-v9', 'Dark'], + ['mapbox://styles/mapbox/light-v9', 'Light'], + ['mapbox://styles/mapbox/satellite-streets-v9', 'Satellite Streets'], + ['mapbox://styles/mapbox/satellite-v9', 'Satellite'], + ['mapbox://styles/mapbox/outdoors-v9', 'Outdoors'], +] +``` + +It is possible to set only mapbox by removing osm tiles and other way around. + +:::warning +Setting `DECKGL_BASE_MAP` overwrite default values +::: Review Comment: ### Incomplete Warning About Configuration Override <sub></sub> <details> <summary>Tell me more</summary> ###### What is the issue? The warning about DECKGL_BASE_MAP overwriting defaults is grammatically incorrect and doesn't explain the implications. ###### Why this matters Users might accidentally remove all default tile options without understanding the consequences of their configuration. ###### Suggested change ∙ *Feature Preview* Update the warning to be more informative: ```markdown :::warning Setting `DECKGL_BASE_MAP` will completely overwrite all default values. If you want to keep any default tiles, you must include them in your new configuration. ::: ``` ###### Provide feedback to improve future suggestions [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/5caf80a7-22d2-4de8-a0e7-2c48e27895a6/upvote) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/5caf80a7-22d2-4de8-a0e7-2c48e27895a6?what_not_true=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/5caf80a7-22d2-4de8-a0e7-2c48e27895a6?what_out_of_scope=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/5caf80a7-22d2-4de8-a0e7-2c48e27895a6?what_not_in_standard=true) [](https://app.korbit.ai/feedback/aa91ff46-6083-4491-9416-b83dd1994b51/5caf80a7-22d2-4de8-a0e7-2c48e27895a6) </details> <sub> 💬 Looking for more details? Reply to this comment to chat with Korbit. </sub> <!--- korbi internal id:1b45a4e5-63f3-440d-837b-2a6edda8d375 --> [](1b45a4e5-63f3-440d-837b-2a6edda8d375) -- 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]
