/ecodata

Data capture webservices supporting Biocollect and other apps

Primary LanguageJavaScript

Ecodata

Build Status

Build Status

About

Ecodata provides primarily data services for the MERIT and BioCollect applications. See MERIT schema and BioCollect schema for an overview of the data.

It implements a JSON/HTTP API to provide access to the data.

Technologies

  • Grails framework 5.2.x
  • MongoDB 5+
  • Elasticsearch 7.x
  • Java 11

Setup

/data/ecodata/config
/data/ecodata/uploads
  • Ecodata expects by default the program, activity and output configuration files to be found at:
/data/ecodata/models

These models are checked in to git in the $PROJECT_ROOT/models folder. You can either create a soft link to this folder from /data/ecodata/models or change Config.groovy

environments {
    development {
        ...
        app.external.model.dir = "./models/"
        ...
/data/ecodata/config/ecodata-config.properties

This configuration file largely specifies URLs to ecodata dependencies. See https://github.com/AtlasOfLivingAustralia/ecodata/wiki/Ecodata-Dependencies for information about these. Note that you will need to obtain an ALA API key to use ALA services and a Google Maps API key and specify them in this file.

Elasticsearch configuration

Elasticsearch requires an additional configuration item in elasticsearch.yml indices.query.bool.max_clause_count: 8192

Testing

  • To run the grails unit tests, use:
grails test-app

Running

ecodata depends on a running instance of CAS and the API Key service so ensure these dependencies are available in your environment and configured correctly in ecodata-config.properties.

grails run-app 

Because of the embedded elasticsearch index and the creation of in-memory spreadsheets for download, ecodata can benefit from a larger heap. If you encounter OutOfMemoryErrors, increase the application heap size with -Xmx4G.