Giter Club home page Giter Club logo

cartodb-sql-api's Introduction

CartoDB-SQL-API Build Status

The CARTO’s SQL API allows you to interact with your data inside CARTO, as if you were running SQL statements against a normal database.

  • Run queries with fine-grained permissions through Auth API.
  • Export data in multiple geospatial formats (CVS, geopackage, KML, SHP, spatialite, geojson, topojson, etc).
  • Schedule jobs using Batch Queries.
  • Copy queries allows you to use the PostgreSQL copy command for efficient streaming of data to and from CARTO.

Build

Requirements:

Optional:

PostGIS setup

A template_postgis database is expected. One can be set up with

$ createdb --owner postgres --template template0 template_postgis
$ psql -d template_postgis -c 'CREATE EXTENSION postgis;'

Install

To fetch and build all node-based dependencies, run:

$ npm install

Run

You can inject the configuration through environment variables at run time. Check the file ./config/environments/config.js to see the ones you have available.

While the migration to the new environment based configuration, you can still use the old method of copying a config file. To enabled the one with environment variables you need to pass CARTO_SQL_API_ENV_BASED_CONF=true. You can use the docker image to run it.

Old way:

$ node app.js <env>

Where <env> is the name of a configuration file under ./config/environments/.

Test

$ npm test

You can try to run the tests against the dependencies from the dev-env. To do so, you need to build the test docker image:

$ docker build -t sqlapi -f private/Dockerfile .
$ docker-compose -f private/docker-compose.yml build

Then you can run the tests like:

$ docker-compose -f private/docker-compose.yml  run sql-api-tests

It will mount your code inside a volume. In case you want to play and run npm test or something else you can do:

$ docker-compose -f private/docker-compose.yml run --entrypoint bash sql-api-tests

So you will have a bash shell inside the test container, with the code from your host.

⚠️ WARNING Some tests still fail inside the docker environment. Inside CI they don't yet use the ci folder to run the tests either. There is a failing test which prevents it.

Coverage

$ npm run cover

Open ./coverage/lcov-report/index.html.

Documentation

You can find an overview, guides, full reference, and support in CARTO's developer center. The docs directory contains different documentation resources, from a higher level to more detailed ones.

Contributing

Versioning

We follow SemVer for versioning. For available versions, see the tags on this repository.

License

This project is licensed under the BSD 3-clause "New" or "Revised" License. See the LICENSE file for details.

cartodb-sql-api's People

Contributors

alasarr avatar alberhander avatar algunenano avatar alvarobp avatar andrewbt avatar andrewxhill avatar andy-esch avatar csobier avatar csubira avatar demimismo avatar dependabot[bot] avatar dgaubert avatar esloho avatar ethervoid avatar fdansv avatar javisantana avatar jgoizueta avatar jmnavarro avatar juanignaciosl avatar lekum avatar luisbosque avatar matallo avatar oleurud avatar pramsey avatar rjimenezda avatar rochoa avatar shylpx avatar thedae avatar tokumine avatar zenitram avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.