This repository provides a Reconciliation Service for the the SkoHub core infrastructure.
Dependencies:
- elasticsearch 7.0
- node-version >= v12.16.1
Basic setup:
$ git clone https://github.com/rg-mpg-de/skohub-reconcile.git
$ cd skohub-reconcile
# Copy `sample.env` to `.env` and adjust values therein
$ npm ci
$ npm test
$ npm start
This will start the Reconciliation service on the port specified with APP_PORT
in .env
. It accepts
queries according to the Reconciliation Service specification
at endpoints corresponding to all hosted vocabularies, e.g. /project/vocab
, /class/esc
, or /rg-mpg-de/polmat
etc.
Currently only reconciliation queries are supported. Preview, suggestion and data extensions support is on the roadmap.
The elasticsearch server must be populated when a vocabulary is published on skohub. This present service creates an appropriate index and takes PUT requests from skohub-vocabs, adding resources to the elasticsearch index.
You need to run a properly configured elasticsearch
instance by
setting cluster.name: skohub
. See the provided elasticsearch.yml.
Also, in some contexts, it's mandatory to initialize elasticsearch with a proper
index-mapping.
You may want to use the start script in scripts/start.sh
. This script ensures the proper
installation of skohub-reconcile and the configuration of elasticsearch. There also reside
further scripts to manage the starting/stopping of the skohub-reconcile via init and to
monitor the processes with monit
.
The project to add a Reconciliation Service to SkoHub has been initiated by Andreas Wagner and carried out in cooperation with the SkoHub.io team in 2021/2022.