Go to file
2021-04-08 12:12:15 +02:00
.github/workflows print test output (#684) 2021-04-08 10:07:45 +02:00
config/environments fix: be able to run test in development env w/o requiring a different dokerfile image 2021-04-07 19:03:09 +02:00
docs Professional -> Individual 2019-09-02 17:30:46 +02:00
lib Merge branch 'master' into feature/ch145435/reduce-sql-api-log-verbosity 2021-04-08 12:12:15 +02:00
metro feat: reduce log verbosity 2021-04-05 16:03:33 +02:00
private@31278edaa9 chore: update private submodule 2021-04-08 11:27:14 +02:00
test fix: wrong env variable name 2021-04-08 09:40:27 +02:00
.eslintrc.js Replace jshint by eslint as default linter tool 2019-12-23 18:18:18 +01:00
.gitignore Remove hardcoded values in tests 2020-12-17 11:11:49 +01:00
.gitmodules add submodule and run test build in Actions 2020-12-17 11:16:35 +01:00
app.js Remove hardcoded values in tests 2020-12-17 11:11:49 +01:00
carto-package.json Update carto-package.json 2020-06-05 14:16:00 +02:00
HOWTO_RELEASE.md Update NEWS with latest changes 2019-12-27 16:30:01 +01:00
LICENSE Adds notes about contributing 2015-09-08 16:40:33 +02:00
LOGGING.md Add a markdown explaining how the logger works 2020-08-03 16:19:21 +02:00
NEWS.md Breaking changes: 2020-06-30 17:42:59 +02:00
package-lock.json fix: be able to run test in development env w/o requiring a different dokerfile image 2021-04-07 19:03:09 +02:00
package.json fix: be able to run test in development env w/o requiring a different dokerfile image 2021-04-07 19:03:09 +02:00
README.md build onprem image (#678) 2021-03-22 13:39:33 +01:00

CartoDB-SQL-API Build Status

The CARTOs 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.