A microservice consuming JSON objects emitted by Nextflows weblog feature and stores them into a MongoDB.
In development! This microservice is still experimental!
This microservice is implemented with micronaut: "A modern, JVM-based, full-stack framework for building modular, easily testable microservice applications.".
The target database is expected to be MongoDB, and we are using MongoDB's reactive stream java driver for asynchronous request handling.
This microservice provides a RESTful API in order to consume trace objects (process information) emitted by Nexftlow, using the weblog feature available since release 0.31.0. Moreover, workflow trace and status information can be requested via the API and therefore this microservice integrates as useful little addition in monitoring workflows submitted with Nextflow.
The API is still under heavy development, so expext unannounced changes in the future until the first stable release.
The API description can be accessed on swaggerhub.
A mockup implementation for testing and client development can be accessed on host https://virtserver.swaggerhub.com/qbic/nfregistry/1.0.0, for example:
curl https://virtserver.swaggerhub.com/qbic/nfregistry/1.0.0/service/info
To perform the tests, simply execute this from this repo's root directory:
./gradlew test
You can configure the micronaut application, server and the mongodb client in the application.yml
file, provided under ./src/main/resources
. An example config looks like this:
micronaut:
application:
name: nfregistry
author: Sven Fillinger
email: [email protected]
version: 1.0.0-alpha
apiv: 1
institution: Quantitative Biology Center, University of Tübingen
server:
port: 8080
mongodb:
url: mongodb://localhost:27017
db: nfregistry
collection: traces
To run the microservices locally, just run:
./gradlew run
If you want to deploy the microservice as executable jar, just execute:
./gradlew assemble
This will create distributions of the microservice as zip and tar archives under ./build/distributions
.