The services provided by the Dataservices SQL extension can be manually configured for users or organizations through the following rake tasks.
The service configuration is stored in the users and organization metadata tables and reflected in the REDIS configuration database.
For each basic service class (geocoder
, routing
, isolines
) a provider can be assigned with the tasks:
cartodb:services:set_user_provider[username,service,provider]
cartodb:services:set_organization_provider[orgname,service,provider]
Valid providers are:
mapzen
for Mapzen-based third party services (Mapzen Search/Mapzen Mobility)here
for HERE maps third party services (HERE Geocoder/Routing APIs)google
for Google Maps services
Set geocoder provider for user user-name
to Mapzen:
rake cartodb:services:ser_user_provider['user-name',geocoder,mapzen]
Set geocoder provider for organization org-name
to Mapzen:
rake cartodb:services:ser_organization_provider['org-name',geocoder,mapzen]
Service limits can be established for individual users or organizations in the form of quotas (maximum number of requests per billing period). The next tasks manage the configuration of the quotas.
cartodb:services:set_user_quota[username,service,quota]
cartodb:services:set_org_quota[orgname,service,quota]
Quota values must be non-negative integers.
Valid services are:
geocoding
for street-level (hi-res) geocoding services.here_isolines
for general isolines/isochrones zoning services (despite the name, this does not only applies to Here-provided services).obs_snapshot
for Data Observatory snapshot services.obs_general
for Data Observatory general services.mapzen_routing
for general routing services (again, not necessarily provided by Mapzen).
Set geocoding quota for user user-name
to 1000 monthly requests:
rake cartodb:services:set_user_quota['user-name',geocoder,1000]
Set geocoder quota for organization org-name
to 1000 monthly requests:
rake cartodb:services:set_org_quota['org-name',geocoder,1000]
The service limits for a user can be configured to be soft, meaning that the user can exceed the limits (possibly incurring in additional charges). So, when soft limits is set to false (the default) and the limits are exceeded, service requests will fail, while if the soft limits are set to true requests will succeed (and the user will be charged for the excess).
cartodb:services:set_user_soft_limit[username,service,soft_limit_status]
The possible values for the soft limits status is either true
or false
.
Valid services are, as for the quota configuration:
geocoding
for street-level (hi-res) geocoding services.here_isolines
for general isolines/isochrones zoning services (despite the name, this does not only applies to Here-provided services).obs_snapshot
for Data Observatory snapshot services.obs_general
for Data Observatory general services.mapzen_routing
for general routing services (again, not necessarily provided by Mapzen).
Activate soft geocoding limits for user user-name
:
rake cartodb:services:set_user_soft_limit['user-name',geocoder,true]
Disable soft geocoding limits for user user-name
:
rake cartodb:services:set_user_soft_limit['user-name',geocoder,false]
Add the following entry to the geocoder entry of the cartodb/config/app_config.yml file: ``` api:
host: 'localhost' port: '5432' user: 'dataservices_user' dbname: 'dataservices_db'
In the cartodb/config/app_config.yml file, enable the desired dataservices: ``` enabled:
geocoder_internal: false hires_geocoder: false isolines: false routing: false data_observatory: true
Execute the rake tasks to update all the users and organizations:
`
bundle exec rake cartodb:db:configure_geocoder_extension_for_organizations['', true]
bundle exec rake cartodb:db:configure_geocoder_extension_for_non_org_users['', true]
`