Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

Write API Service

This is an experimental service aimed at two tasks

  1. Providing a concrete reference implementation of a proposed GA4GH Write API
  2. Providing a utility for developers to convert plain CWL/WDL files and Dockerfiles into GitHub repos storing those plain CWL/WDL files and quay.io repos storing Docker images built from those Dockerfiles. This can be used by those converting tools described in other formats into "Dockstore-friendly" tools that can be quickly registered in Dockstore by logging in, doing a refresh, and doing quick registration via the API or programmatically via the Dockstore API.

Usage

Currently, spin up the web service after providing github and quay.io tokens via a configuration file or environment variables. For environment variables you can do the following in Bash

export quayioToken=<your token here>
export githubToken=<your token here>

Learn how to create tokens on GitHub here. You will need the scope "repo". Find out your Quay.io token by a more complex route. Go to Quay.io here, select the on/off button and allow for "repo:write", "repo:read" and "repo:create" scope. For Chrome or Chromium, then open up Developer tools and issue a call to list repositories. If you look at the Network tab and Request Headers, you'll find your token under "authorization: Bearer (your token here)".

To run the service, build it and then run it using a configuration file:

mvn clean install -DskipTests
java -jar target/tool-registry-reference-*.jar server example.yml

You can also run tests to create GitHub and Quay.io repos while also scheduling a build. You can do this by

mvn clean install

but this will require the proper environment variables above and you will also need to customize the desired github and quay.io repos. (Document line of test to change here)

The basic workflow is that github repos are created when posting a new tool. When files are posted or put to a version of a tool, we will create or delete and re-create a GitHub release with a matching name. When Dockerfiles are added, the tool will be created and built as a quay.io repo. After adding both dockerfiles and descriptors, you basically have a tool that is ready to be quick registered under a Dockstore 1.2 web service. Go to Dockstore, do a refresh, and then hit quick register on the repos that you wish to publish. You can also do this programmatically.

Limitations

This service is aimed at developers familiar with Dockstore (and have at least gone through Dockstore tutorials).

It also has the following limitations

  1. The service lacks a GUI and is purely a tool provided for developers doing conversion
  2. A full implementation awaits testing
  3. It is not possible to create build triggers in Quay.io programmatically at this time. So new refresh code in Dockstore 1.2 is required.