Go to file
Mario de Frutos d27b2a2b78 Block google services users to use isolines functions
Due some service restrictions, google services users couldn't use
the HERE services which includes the isolines functions.
2016-02-26 10:42:05 +01:00
client Options parameter in the isolines functions has an empty array by defaul 2016-02-11 18:23:23 +01:00
doc Fix syntax error 2016-02-15 14:21:43 +01:00
server Block google services users to use isolines functions 2016-02-26 10:42:05 +01:00
test Added isolines integration tests 2016-02-24 09:54:00 +01:00
.gitignore New Redis structure for services 2015-11-23 09:40:10 +01:00
LICENSE Add LICENSE file 2015-12-22 18:13:46 +01:00
README.md Update README.md 2016-02-25 14:30:19 +01:00

Data Services API

The CartoDB Data Services SQL API (server and client FTM)

Deploy instructions

Steps to deploy a new Data Services API version :

  • Deploy new version of dataservices API to all servers
  • Update the server user using: ALTER EXTENSION cdb_dataservices_server UPDATE TO '<CURRENT_VERSION>';
  • Update the python dependencies if needed: cartodb_geocoder and heremaps
  • Add the needed config in the cdb_conf table:
    • redis_metadata_config and redis_metrics_conf
      • {"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}
    • heremaps_conf
      • {"app_id": "APP_ID", "app_code": "APP_CODE"}
  • Deploy the client to all the servers with the new version
  • Deploy the editor with the new dataservices api version changed (https://github.com/CartoDB/cartodb/blob/master/app/models/user/db_service.rb#L18)
  • Execute the rails task to update first the CartoDB team organizaton to test in production
    • RAILS_ENV=production bundle exec rake cartodb:db:configure_geocoder_extension_for_organizations['team']
  • Check if all works perfectly for our team. If so, execute the rake tasks to update all the users and organizations:
    • RAILS_ENV=production bundle exec rake cartodb:db:configure_geocoder_extension_for_organizations['', true]
    • RAILS_ENV=production bundle exec rake cartodb:db:configure_geocoder_extension_for_non_org_users['', true]
  • Freeze the generated SQL file for the version. Eg. cdb_dataservices_server--0.0.1.sql

Local install instructions

  • install data services extension

    git clone git@github.com:CartoDB/data-services.git
    data-services/geocoder/extension
    sudo make install
    
  • install server and client extensions

    cd client && sudo make install
    cd server && sudo make install
    
  • install python library

    cd server/lib/python/cartodb_services && python setup.py install
    
  • install extensions in user database

    create extension cdb_geocoder;
    create extension plproxy;
    create extension cdb_dataservices_server;
    create extension cdb_dataservices_client;
    
  • add configuration for different services in user database

    # select CDB_Conf_SetConf('redis_metadata_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
    # select CDB_Conf_SetConf('redis_metrics_config', '{"sentinel_host": "localhost", "sentinel_port": 26379, "sentinel_master_id": "mymaster", "timeout": 0.1, "redis_db": 5}');
    
    # select CDB_Conf_SetConf('heremaps_conf', '{"app_id": "APP_ID", "app_code": "APP_CODE"}');
    # select CDB_Conf_SetConf('user_config', '{"is_organization": false, "entity_name": "<YOUR_USERNAME>"}')
    
  • configure plproxy to point to the same user database (you could do in a different one)

     select CDB_Conf_SetConf('geocoder_server_config', '{ "connection_str": "host=localhost port=5432 dbname=cartodb_dev_user_accf0647-d942-4e37-b129-8287c117e687_db user=postgres"}');
    
  • configure the search path in order to be able to execute the functions without use the schema:

    alter role "<USER_ROLE>" set search_path='"$user", public, cartodb, cdb_dataservices_client';