From 5744be650c186dceb6f50ec004883b7e5cdb84b9 Mon Sep 17 00:00:00 2001 From: Yannick BETOU Date: Tue, 21 Jul 2026 18:12:37 +0200 Subject: [PATCH 1/4] [sc-330106] set keys as password + add presets --- custom-recipes/forward_geocoding/recipe.json | 45 +++++++++++++++---- custom-recipes/reverse_geocoding/recipe.json | 45 +++++++++++++++---- .../geocoder_api_key/parameter-set.json | 20 +++++++++ .../google_geocoder_auth/parameter-set.json | 32 +++++++++++++ .../here_geocoder_auth/parameter-set.json | 26 +++++++++++ python-lib/dataframe_forward_geocoding.py | 17 +++++-- python-lib/dataframe_reverse_geocoding.py | 17 +++++-- python-lib/dku_io.py | 4 +- 8 files changed, 180 insertions(+), 26 deletions(-) create mode 100644 parameter-sets/geocoder_api_key/parameter-set.json create mode 100644 parameter-sets/google_geocoder_auth/parameter-set.json create mode 100644 parameter-sets/here_geocoder_auth/parameter-set.json diff --git a/custom-recipes/forward_geocoding/recipe.json b/custom-recipes/forward_geocoding/recipe.json index 26e7b10..d83fb3e 100644 --- a/custom-recipes/forward_geocoding/recipe.json +++ b/custom-recipes/forward_geocoding/recipe.json @@ -200,37 +200,66 @@ "label" : "Authentication", "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'here', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0" }, + { + "name": "use_preset", + "label" : "Use preset", + "type": "BOOLEAN", + "mandatory": false, + "description":"Get the authentication parameters from a shared configuration in DSS.", + "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'here', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0" + }, + { + "name": "api_key_preset", + "label": "Geocoder Api Key Preset", + "type": "PRESET", + "parameterSetId": "geocoder_api_key", + "visibilityCondition": "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0 && model.use_preset == true" + }, + { + "name": "google_geocoder_preset", + "label": "Geocoder Api Key Preset", + "type": "PRESET", + "parameterSetId": "google_geocoder_auth", + "visibilityCondition": "model.provider === 'google' && model.use_preset == true" + }, + { + "name": "here_geocoder_preset", + "label": "Geocoder Api Key Preset", + "type": "PRESET", + "parameterSetId": "here_geocoder_auth", + "visibilityCondition": "model.provider === 'here' && model.use_preset == true" + }, { "name": "api_key", - "type": "STRING", + "type": "PASSWORD", "label" : "API key", - "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0" + "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0 && model.use_preset == false" }, { "name": "here_app_id", "type": "STRING", "label" : "HERE App ID", - "visibilityCondition" : "model.provider === 'here'" + "visibilityCondition" : "model.provider === 'here' && model.use_preset == false" }, { "name": "here_app_code", - "type": "STRING", + "type": "PASSWORD", "label" : "HERE App Code", - "visibilityCondition" : "model.provider === 'here'" + "visibilityCondition" : "model.provider === 'here' && model.use_preset == false" }, { "name": "google_client", "type": "STRING", "label" : "Google client ID", "description": "Only if using a premium plan - optional otherwise", - "visibilityCondition" : "model.provider === 'google'" + "visibilityCondition" : "model.provider === 'google' && model.use_preset == false" }, { "name": "google_client_secret", - "type": "STRING", + "type": "PASSWORD", "label" : "Google secret", "description": "Only if using a premium plan - optional otherwise", - "visibilityCondition" : "model.provider === 'google'" + "visibilityCondition" : "model.provider === 'google' && model.use_preset == false" } ], diff --git a/custom-recipes/reverse_geocoding/recipe.json b/custom-recipes/reverse_geocoding/recipe.json index 17d0205..904290a 100644 --- a/custom-recipes/reverse_geocoding/recipe.json +++ b/custom-recipes/reverse_geocoding/recipe.json @@ -190,37 +190,66 @@ "label" : "Authentication", "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'here', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0" }, + { + "name": "use_preset", + "label" : "Use preset", + "type": "BOOLEAN", + "mandatory": false, + "description":"Get the authentication parameters from a shared configuration in DSS.", + "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'here', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0" + }, + { + "name": "api_key_preset", + "label": "Geocoder Api Key Preset", + "type": "PRESET", + "parameterSetId": "geocoder_api_key", + "visibilityCondition": "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0 && model.use_preset == true" + }, + { + "name": "google_geocoder_preset", + "label": "Geocoder Api Key Preset", + "type": "PRESET", + "parameterSetId": "google_geocoder_auth", + "visibilityCondition": "model.provider === 'google' && model.use_preset == true" + }, + { + "name": "here_geocoder_preset", + "label": "Geocoder Api Key Preset", + "type": "PRESET", + "parameterSetId": "here_geocoder_auth", + "visibilityCondition": "model.provider === 'here' && model.use_preset == true" + }, { "name": "api_key", - "type": "STRING", + "type": "PASSWORD", "label" : "API key", - "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0" + "visibilityCondition" : "['baidu', 'bing', 'canadapost', 'gaode', 'geonames', 'google', 'locationiq', 'mapbox', 'mapquest', 'mapzen', 'opencage', 'tamu', 'tomtom', 'w3w'].indexOf(model.provider) >= 0 && model.use_preset == false" }, { "name": "here_app_id", "type": "STRING", "label" : "HERE App ID", - "visibilityCondition" : "model.provider === 'here'" + "visibilityCondition" : "model.provider === 'here' && model.use_preset == false" }, { "name": "here_app_code", - "type": "STRING", + "type": "PASSWORD", "label" : "HERE App Code", - "visibilityCondition" : "model.provider === 'here'" + "visibilityCondition" : "model.provider === 'here' && model.use_preset == false" }, { "name": "google_client", "type": "STRING", "label" : "Google client ID", "description": "Only if using a premium plan - optional otherwise", - "visibilityCondition" : "model.provider === 'google'" + "visibilityCondition" : "model.provider === 'google' && model.use_preset == false" }, { "name": "google_client_secret", - "type": "STRING", + "type": "PASSWORD", "label" : "Google secret", "description": "Only if using a premium plan - optional otherwise", - "visibilityCondition" : "model.provider === 'google'" + "visibilityCondition" : "model.provider === 'google' && model.use_preset == false" } ], diff --git a/parameter-sets/geocoder_api_key/parameter-set.json b/parameter-sets/geocoder_api_key/parameter-set.json new file mode 100644 index 0000000..edda453 --- /dev/null +++ b/parameter-sets/geocoder_api_key/parameter-set.json @@ -0,0 +1,20 @@ +{ + "meta" : { + "label": "Geocoder Api Key Preset", + "description": "Geocoder Api Key Preset", + "icon": "icon-key" + }, + "defaultDefinableInline": true, + "defaultDefinableAtProjectLevel": true, + + "pluginParams": [], + + "params": [ + { + "name": "api_key", + "label": "API key", + "type": "PASSWORD", + "mandatory": true + } + ] +} \ No newline at end of file diff --git a/parameter-sets/google_geocoder_auth/parameter-set.json b/parameter-sets/google_geocoder_auth/parameter-set.json new file mode 100644 index 0000000..faa5f82 --- /dev/null +++ b/parameter-sets/google_geocoder_auth/parameter-set.json @@ -0,0 +1,32 @@ +{ + "meta" : { + "label": "Google Geocoder Auth Preset", + "description": "Google Geocoder Auth Preset", + "icon": "icon-map-marker" + }, + "defaultDefinableInline": true, + "defaultDefinableAtProjectLevel": true, + + "pluginParams": [], + + "params": [ + { + "name": "api_key", + "label": "API key", + "type": "PASSWORD", + "mandatory": true + }, + { + "name": "google_client", + "type": "STRING", + "label" : "Google client ID", + "description": "Only if using a premium plan - optional otherwise" + }, + { + "name": "google_client_secret", + "type": "PASSWORD", + "label" : "Google secret", + "description": "Only if using a premium plan - optional otherwise" + } + ] +} \ No newline at end of file diff --git a/parameter-sets/here_geocoder_auth/parameter-set.json b/parameter-sets/here_geocoder_auth/parameter-set.json new file mode 100644 index 0000000..7efd9b1 --- /dev/null +++ b/parameter-sets/here_geocoder_auth/parameter-set.json @@ -0,0 +1,26 @@ +{ + "meta" : { + "label": "Here Geocoder Auth Preset", + "description": "Here Geocoder Auth Preset", + "icon": "icon-map-marker" + }, + "defaultDefinableInline": true, + "defaultDefinableAtProjectLevel": true, + + "pluginParams": [], + + "params": [ + { + "name": "here_app_id", + "type": "STRING", + "label" : "HERE App ID", + "mandatory": true + }, + { + "name": "here_app_code", + "type": "PASSWORD", + "label" : "HERE App Code", + "mandatory": true + } + ] +} \ No newline at end of file diff --git a/python-lib/dataframe_forward_geocoding.py b/python-lib/dataframe_forward_geocoding.py index 38d944f..5a33d79 100644 --- a/python-lib/dataframe_forward_geocoding.py +++ b/python-lib/dataframe_forward_geocoding.py @@ -61,15 +61,24 @@ def get_forward_geocode_function(config): Handle authentication mechanism with respect to the chosen geocoding service provider `provider_function` """ provider_function = getattr(geocoder, config['provider']) + + use_preset = config.get('use_preset', False) + api_key = config.get('api_key', '') + here_config = { 'here_app_id': config['here_app_id'], 'here_app_code': config['here_app_code'] } + google_config = { 'api_key': config['api_key'], 'google_client': config['google_client'], 'google_client_secret': config['google_client_secret'] } + if use_preset: + api_key = config.get('api_key_preset', {}).get('api_key', '') + here_config = config.get('here_geocoder_preset', {}) + google_config = config.get('google_geocoder_preset', {}) if config['provider'] == 'here': - return lambda address: provider_function(address, app_id=config['here_app_id'], app_code=config['here_app_code']) + return lambda address: provider_function(address, app_id=here_config.get('here_app_id', ''), app_code=here_config.get('here_app_code', '')) elif config['provider'] == 'google': - return lambda address: provider_function(address, key=config['api_key'], client=config['google_client'], client_secret=config['google_client_secret']) + return lambda address: provider_function(address, key=google_config.get('api_key', ''), client=google_config.get('google_client', ''), client_secret=google_config.get('google_client_secret', '')) elif config['batch_enabled']: - return lambda addresses: provider_function(addresses, key=config['api_key'], method='batch', timeout=config['batch_timeout']) + return lambda addresses: provider_function(addresses, key=api_key, method='batch', timeout=config['batch_timeout']) else: - return lambda address: provider_function(address, key=config['api_key']) + return lambda address: provider_function(address, key=api_key) def perform_forward_geocode(df, config, fun, cache): diff --git a/python-lib/dataframe_reverse_geocoding.py b/python-lib/dataframe_reverse_geocoding.py index 2c7f787..3ae2781 100644 --- a/python-lib/dataframe_reverse_geocoding.py +++ b/python-lib/dataframe_reverse_geocoding.py @@ -56,15 +56,24 @@ def add_reverse_geocode_columns(cache, config, current_df, geocode_function): def get_reverse_geocode_function(config): provider_function = getattr(geocoder, config['provider']) + + use_preset = config.get('use_preset', False) + api_key = config.get('api_key', '') + here_config = { 'here_app_id': config['here_app_id'], 'here_app_code': config['here_app_code'] } + google_config = { 'api_key': config['api_key'], 'google_client': config['google_client'], 'google_client_secret': config['google_client_secret'] } + if use_preset: + api_key = config.get('api_key_preset', {}).get('api_key', '') + here_config = config.get('here_geocoder_preset', {}) + google_config = config.get('google_geocoder_preset', {}) if config['provider'] == 'here': - return lambda lat, lng: provider_function([lat, lng], method='reverse', app_id=config['here_app_id'], app_code=config['here_app_code']) + return lambda lat, lng: provider_function([lat, lng], method='reverse', app_id=here_config.get('here_app_id', ''), app_code=here_config.get('here_app_code', '')) elif config['provider'] == 'google': - return lambda lat, lng: provider_function([lat, lng], method='reverse', key=config['api_key'], client=config['google_client'], client_secret=config['google_client_secret']) + return lambda lat, lng: provider_function([lat, lng], method='reverse', key=google_config.get('api_key', ''), client=google_config.get('google_client', ''), client_secret=google_config.get('google_client_secret', '')) elif config['batch_enabled']: - return lambda locations: provider_function(locations, method='batch_reverse', key=config['api_key']) + return lambda locations: provider_function(locations, method='batch_reverse', key=api_key) else: - return lambda lat, lng: provider_function([lat, lng], method='reverse', key=config['api_key']) + return lambda lat, lng: provider_function([lat, lng], method='reverse', key=api_key) def perform_reverse_geocode(df, config, fun, cache): diff --git a/python-lib/dku_io.py b/python-lib/dku_io.py index 338ce4f..8cbc4d6 100644 --- a/python-lib/dku_io.py +++ b/python-lib/dku_io.py @@ -17,7 +17,7 @@ def get_config_forward_geocoding(plugin_config, recipe_config): :return: """ processed_config = {} - for param in ['address_column', 'cache_enabled', 'provider', 'api_key', 'here_app_id', 'here_app_code', 'google_client', 'google_client_secret']: + for param in ['address_column', 'cache_enabled', 'provider', 'api_key', 'api_key_preset', 'google_geocoder_preset', 'here_geocoder_preset', 'use_preset', 'here_app_id', 'here_app_code', 'google_client', 'google_client_secret']: processed_config[param] = recipe_config.get(param, None) if processed_config['provider'] is None: @@ -70,7 +70,7 @@ def get_config_reverse_geocoding(plugin_config, recipe_config): processed_config = {} - for param in ['lat_column', 'lng_column', 'provider', 'cache_enabled', 'api_key', 'here_app_id', 'here_app_code', 'google_client', 'google_client_secret']: + for param in ['lat_column', 'lng_column', 'provider', 'cache_enabled', 'api_key', 'api_key_preset', 'google_geocoder_preset', 'here_geocoder_preset', 'use_preset', 'here_app_id', 'here_app_code', 'google_client', 'google_client_secret']: processed_config[param] = recipe_config.get(param, None) if processed_config['provider'] is None: From d872e09862839d919fb9ab478e3c5addea3f3222 Mon Sep 17 00:00:00 2001 From: Yannick BETOU Date: Tue, 21 Jul 2026 18:30:58 +0200 Subject: [PATCH 2/4] simplify python code --- python-lib/dataframe_forward_geocoding.py | 31 ++++++++++++----------- python-lib/dataframe_reverse_geocoding.py | 31 ++++++++++++----------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/python-lib/dataframe_forward_geocoding.py b/python-lib/dataframe_forward_geocoding.py index 5a33d79..c771572 100644 --- a/python-lib/dataframe_forward_geocoding.py +++ b/python-lib/dataframe_forward_geocoding.py @@ -60,25 +60,26 @@ def get_forward_geocode_function(config): """ Handle authentication mechanism with respect to the chosen geocoding service provider `provider_function` """ - provider_function = getattr(geocoder, config['provider']) - + provider = config['provider'] + provider_function = getattr(geocoder, provider) use_preset = config.get('use_preset', False) - api_key = config.get('api_key', '') - here_config = { 'here_app_id': config['here_app_id'], 'here_app_code': config['here_app_code'] } - google_config = { 'api_key': config['api_key'], 'google_client': config['google_client'], 'google_client_secret': config['google_client_secret'] } if use_preset: - api_key = config.get('api_key_preset', {}).get('api_key', '') - here_config = config.get('here_geocoder_preset', {}) - google_config = config.get('google_geocoder_preset', {}) - - if config['provider'] == 'here': - return lambda address: provider_function(address, app_id=here_config.get('here_app_id', ''), app_code=here_config.get('here_app_code', '')) - elif config['provider'] == 'google': - return lambda address: provider_function(address, key=google_config.get('api_key', ''), client=google_config.get('google_client', ''), client_secret=google_config.get('google_client_secret', '')) + preset_name = { + 'google': 'google_geocoder_preset', + 'here': 'here_geocoder_preset' + }.get(provider, 'api_key_preset') + authentication_config = config.get(preset_name) or {} + else: + authentication_config = config + + if provider == 'here': + return lambda address: provider_function(address, app_id=authentication_config.get('here_app_id', ''), app_code=authentication_config.get('here_app_code', '')) + elif provider == 'google': + return lambda address: provider_function(address, key=authentication_config.get('api_key', ''), client=authentication_config.get('google_client', ''), client_secret=authentication_config.get('google_client_secret', '')) elif config['batch_enabled']: - return lambda addresses: provider_function(addresses, key=api_key, method='batch', timeout=config['batch_timeout']) + return lambda addresses: provider_function(addresses, key=authentication_config.get('api_key', ''), method='batch', timeout=config['batch_timeout']) else: - return lambda address: provider_function(address, key=api_key) + return lambda address: provider_function(address, key=authentication_config.get('api_key', '')) def perform_forward_geocode(df, config, fun, cache): diff --git a/python-lib/dataframe_reverse_geocoding.py b/python-lib/dataframe_reverse_geocoding.py index 3ae2781..ea5c99a 100644 --- a/python-lib/dataframe_reverse_geocoding.py +++ b/python-lib/dataframe_reverse_geocoding.py @@ -55,25 +55,26 @@ def add_reverse_geocode_columns(cache, config, current_df, geocode_function): def get_reverse_geocode_function(config): - provider_function = getattr(geocoder, config['provider']) - + provider = config['provider'] + provider_function = getattr(geocoder, provider) use_preset = config.get('use_preset', False) - api_key = config.get('api_key', '') - here_config = { 'here_app_id': config['here_app_id'], 'here_app_code': config['here_app_code'] } - google_config = { 'api_key': config['api_key'], 'google_client': config['google_client'], 'google_client_secret': config['google_client_secret'] } if use_preset: - api_key = config.get('api_key_preset', {}).get('api_key', '') - here_config = config.get('here_geocoder_preset', {}) - google_config = config.get('google_geocoder_preset', {}) - - if config['provider'] == 'here': - return lambda lat, lng: provider_function([lat, lng], method='reverse', app_id=here_config.get('here_app_id', ''), app_code=here_config.get('here_app_code', '')) - elif config['provider'] == 'google': - return lambda lat, lng: provider_function([lat, lng], method='reverse', key=google_config.get('api_key', ''), client=google_config.get('google_client', ''), client_secret=google_config.get('google_client_secret', '')) + preset_name = { + 'google': 'google_geocoder_preset', + 'here': 'here_geocoder_preset' + }.get(provider, 'api_key_preset') + authentication_config = config.get(preset_name) or {} + else: + authentication_config = config + + if provider == 'here': + return lambda lat, lng: provider_function([lat, lng], method='reverse', app_id=authentication_config.get('here_app_id', ''), app_code=authentication_config.get('here_app_code', '')) + elif provider == 'google': + return lambda lat, lng: provider_function([lat, lng], method='reverse', key=authentication_config.get('api_key', ''), client=authentication_config.get('google_client', ''), client_secret=authentication_config.get('google_client_secret', '')) elif config['batch_enabled']: - return lambda locations: provider_function(locations, method='batch_reverse', key=api_key) + return lambda locations: provider_function(locations, method='batch_reverse', key=authentication_config.get('api_key', '')) else: - return lambda lat, lng: provider_function([lat, lng], method='reverse', key=api_key) + return lambda lat, lng: provider_function([lat, lng], method='reverse', key=authentication_config.get('api_key', '')) def perform_reverse_geocode(df, config, fun, cache): From daa432ac5226996e93f5159ba888fb2107c551f1 Mon Sep 17 00:00:00 2001 From: Yannick BETOU Date: Wed, 22 Jul 2026 13:41:04 +0200 Subject: [PATCH 3/4] api key not mandatory if google secret set --- parameter-sets/google_geocoder_auth/parameter-set.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/parameter-sets/google_geocoder_auth/parameter-set.json b/parameter-sets/google_geocoder_auth/parameter-set.json index faa5f82..f8c7b22 100644 --- a/parameter-sets/google_geocoder_auth/parameter-set.json +++ b/parameter-sets/google_geocoder_auth/parameter-set.json @@ -13,8 +13,7 @@ { "name": "api_key", "label": "API key", - "type": "PASSWORD", - "mandatory": true + "type": "PASSWORD" }, { "name": "google_client", From 10a60ad28574bb33f6ceefb7486dad08630272ad Mon Sep 17 00:00:00 2001 From: Yannick BETOU Date: Thu, 23 Jul 2026 17:31:38 +0200 Subject: [PATCH 4/4] add preset descriptions --- parameter-sets/geocoder_api_key/parameter-set.json | 2 +- parameter-sets/google_geocoder_auth/parameter-set.json | 2 +- parameter-sets/here_geocoder_auth/parameter-set.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/parameter-sets/geocoder_api_key/parameter-set.json b/parameter-sets/geocoder_api_key/parameter-set.json index edda453..c8c14a9 100644 --- a/parameter-sets/geocoder_api_key/parameter-set.json +++ b/parameter-sets/geocoder_api_key/parameter-set.json @@ -1,7 +1,7 @@ { "meta" : { "label": "Geocoder Api Key Preset", - "description": "Geocoder Api Key Preset", + "description": "Authentication key for providers: 'Baidu', 'Bing', 'CanadaPost', 'Gaode', 'Geonames', 'LocationIQ', 'Mapbox', 'MapQuest', 'OpenCage', 'Tamu', 'TomTom', 'What3Words'", "icon": "icon-key" }, "defaultDefinableInline": true, diff --git a/parameter-sets/google_geocoder_auth/parameter-set.json b/parameter-sets/google_geocoder_auth/parameter-set.json index f8c7b22..88d6c61 100644 --- a/parameter-sets/google_geocoder_auth/parameter-set.json +++ b/parameter-sets/google_geocoder_auth/parameter-set.json @@ -1,7 +1,7 @@ { "meta" : { "label": "Google Geocoder Auth Preset", - "description": "Google Geocoder Auth Preset", + "description": "Authentication data for Google provider", "icon": "icon-map-marker" }, "defaultDefinableInline": true, diff --git a/parameter-sets/here_geocoder_auth/parameter-set.json b/parameter-sets/here_geocoder_auth/parameter-set.json index 7efd9b1..072d22f 100644 --- a/parameter-sets/here_geocoder_auth/parameter-set.json +++ b/parameter-sets/here_geocoder_auth/parameter-set.json @@ -1,7 +1,7 @@ { "meta" : { "label": "Here Geocoder Auth Preset", - "description": "Here Geocoder Auth Preset", + "description": "Authentication data for HERE provider", "icon": "icon-map-marker" }, "defaultDefinableInline": true,