Skip to content

A microservice consuming JSON objects emitted by Nextflows weblog feature and puts it into a DB.

License

Notifications You must be signed in to change notification settings

qbicsoftware-archive/nf-registry-microservice

 
 

Repository files navigation

nf-registry-microservice

https://travis-ci.org/sven1103/nf-registry-microservice.svg?branch=master

A microservice consuming JSON objects emitted by Nextflows weblog feature and stores them into a MongoDB.

In development! This microservice is still experimental!

Table of Contents

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.

About

A microservice consuming JSON objects emitted by Nextflows weblog feature and puts it into a DB.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Groovy 57.2%
  • Java 41.9%
  • Dockerfile 0.9%