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 queriesallows you to use thePostgreSQL copy commandfor efficient streaming of data to and from CARTO.
Requirements:
Node 12.xPostgreSQL >= 11.0PostGIS >= 2.4CARTO Postgres Extension >= 0.24.1Redis >= 4- GDAL
1.11.0(bin utils). See installing GDAL C++11to build internal dependencies. When there's no pre-built binaries for your OS/architecture distribution.
Optional:
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;'To fetch and build all node-based dependencies, run:
$ npm installYou 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/.
$ npm testYou 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 buildThen you can run the tests like:
$ docker-compose -f private/docker-compose.yml run sql-api-testsIt 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-testsSo you will have a bash shell inside the test container, with the code from your host.
ci folder to run the tests either. There is a failing test which prevents it.
$ npm run coverOpen ./coverage/lcov-report/index.html.
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.
- The issue tracker:
Github. - We love Pull Requests from everyone, see contributing to Open Source on GitHub.
- You'll need to sign a Contributor License Agreement (CLA) before submitting a Pull Request. Learn more here.
We follow SemVer for versioning. For available versions, see the tags on this repository.
This project is licensed under the BSD 3-clause "New" or "Revised" License. See the LICENSE file for details.