248c98bc83
[ch139802] Avoid concurrent requests from getting stuck when exporting file formats handled by OGR - v2 |
||
---|---|---|
.github/workflows | ||
config/environments | ||
docs | ||
lib | ||
metro | ||
private@cb59185b1a | ||
test | ||
.eslintrc.js | ||
.gitignore | ||
.gitmodules | ||
app.js | ||
carto-package.json | ||
HOWTO_RELEASE.md | ||
LICENSE | ||
LOGGING.md | ||
NEWS.md | ||
package-lock.json | ||
package.json | ||
README.md |
CartoDB-SQL-API
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 thePostgreSQL copy command
for efficient streaming of data to and from CARTO.
Build
Requirements:
Node 12.x
PostgreSQL >= 11.0
PostGIS >= 2.4
CARTO Postgres Extension >= 0.24.1
Redis >= 4
- GDAL
1.11.0
(bin utils). See installing GDAL C++11
to build internal dependencies. When there's no pre-built binaries for your OS/architecture distribution.
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
- 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.
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.