Arnold is a REST-API and mongodb database with two collections - sample
and step
. Currently, soring lims-data only.
Data is continuously pushed into the database from lims steps via cg_lims commands, using the arnold REST-API.
Read more about the lims data that is being pushed to Arnold.
Clone and install:
git clone https://github.com/Clinical-Genomics/arnold
cd arnold
pip install -r requirements.txt -e .
Create a .env file with the variables DB_NAME
and DB_URI
DB_URI= 'mongodb://localhost:<port>'
DB_NAME= 'arnold'
Given you have a MongoDB server listening on the port
specified in .env, the arnold rest API can be run from commandline
arnold serve --reload
Arnold can also run as a container. The image is available on Docker Hub or can be build using the Dockerfile provided in this repository.
To build a new image from the Dockerfile use the commands: docker build -t arnold .
To run the image use the following command: docker run --name arnold
To remove the container, type: docker rm arnold
Arnold is using github flow release model as described in our development manual.
- Get you PR approved.
- Append the version bump to PR title. Eg. Update README becomes Update Readme (patch)
- Select squash and merge
- Write a change log comment.
- Merge.
Opening pull requests in Arnold repository will enable a Github Action to build containers and publish to arnold-stage dockerhub with each commit.
Two tags will be published: one with the name of the branch and another tagged "latest".
Steps to test current branch on staging:
sudo -iu hiseq.clinical
ssh localhost
If you made changes to internal app : systemctl --user restart arnold.target
Your branch should be deployed to staging at https://arnold-stage.scilifelab.se
If for some reason you cannot access the application at given address, check status of the container: systemctl --user status arnoldApp.service
Use update-arnold.sh
script to update production both on Hasta and CGVS.
Please follow the development guide and servers
repo when doing so. It is also important to keep those involved informed.