Skip to content

gfw-api/gfw-geostore-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

75789ac · Oct 27, 2023
Aug 9, 2023
Jan 25, 2021
Oct 27, 2023
Mar 31, 2016
Jan 28, 2019
Feb 18, 2020
Feb 18, 2020
Aug 9, 2023
Oct 27, 2023
May 31, 2021
Aug 9, 2023
Feb 24, 2021
Oct 27, 2023
Feb 21, 2019
Oct 27, 2023
Oct 27, 2023
Feb 15, 2023
Feb 18, 2020
Aug 9, 2023
Aug 29, 2019
Oct 17, 2023

Repository files navigation

Global Forest Watch Geostore API

Build Status Test Coverage

This repository is the microservice that implements the Geostore functionality, which is exposed on the /geostore endpoint.

The Geostore is a simple GeoJSON storage service that receives GeoJSON and returns an ID that can be used later to retrieve the given object. It is used primarily by the GFW map to handle large GeoJSON objects that could not normally be stored in the URL.

View the documentation for this API

Dependencies

You will need Control Tower up and running - either natively or with Docker. Refer to the project's README for information on how to set it up.

The Geostore microservice is built using Node.js, and can be executed either natively or using Docker, each of which has its own set of requirements.

Native execution requires:

Execution using Docker requires:

Getting started

Start by cloning the repository from github to your execution environment

git clone https://github.com/gfw-api/gfw-geostore-api.git && cd gfw-geostore-api

After that, follow one of the instructions below:

Using native execution

1 - Set up your environment variables. See dev.env.sample for a list of variables you should set, which are described in detail in this section of the documentation. Native execution will NOT load the dev.env file content, so you need to use another way to define those values

2 - Install node dependencies using yarn:

yarn

3 - Start the application server:

yarn start

The endpoints provided by this microservice should now be available through Control Tower's URL.

Using Docker

1 - Create and complete your dev.env file with your configuration. The meaning of the variables is available in this section. You can find an example dev.env.sample file in the project root.

2 - Execute the following command to run Control tower:

./geostore.sh develop

The endpoints provided by this microservice should now be available through Control Tower's URL.

Testing

There are two ways to run the included tests:

Using native execution

Follow the instruction above for setting up the runtime environment for native execution, then run:

yarn test

Using Docker

Follow the instruction above for setting up the runtime environment for Docker execution, then run:

./geostore.sh test

Configuration

Environment variables

  • PORT => TCP port in which the service will run
  • NODE_PATH => relative path to the source code. Should be app/src
  • MICROSERVICE_TOKEN =>
  • MONGO_PORT_27017_TCP_ADDR => IP/Address of the MongoDB server
  • CARTODB_USER => Carto username.

You can optionally set other variables, see this file for an extended list.