Giter VIP home page Giter VIP logo

dockstore-cli's Introduction

Codacy Badge Build Status codecov Website Gitter
DOI license CircleCI Documentation Status

Dockstore

Dockstore provides a place for users to share tools encapsulated in Docker and described with the Common Workflow Language (CWL), WDL (Workflow Description Language), or Nextflow. This enables scientists to share analytical workflows so that they are machine readable as well as runnable in a variety of environments. While the Dockstore is focused on serving researchers in the biosciences, the combination of Docker + CWL/WDL can be used by anyone to describe the tools and services in their Docker images in a standardized, machine-readable way.
We hope to use this project as motivation to create a GA4GH API standard for container registries.

For the live site see dockstore.org

This repo contains the CLI components for Dockstore

For the main repo see dockstore. For the related web UI see dockstore-ui.

For Dockstore Users

The following section is useful for users of Dockstore (e.g. those that want to browse, register, and launch tools).

After registering at dockstore.org, you will be able to download the Dockstore CLI at https://dockstore.org/onboarding

Configuration File

A basic Dockstore configuration file is available/should be created in ~/.dockstore/config and contains the following at minimum:

token = <your generated by the dockstore site>
server-url = https://www.dockstore.org/api

File Provisioning

By default, cwltool reads input files from the local filesystem. Dockstore also adds support for additional file systems such as http, https, and ftp. Through a plug-in system, Dockstore also supports the Amazon S3, Synapse, and ICGC Storage Client via plugins.

Download the above set of default plugins via:

dockstore plugin download

Configuration for plugins can be placed inside the Dockstore configuration file in the following format

token = <your generated by the dockstore site>
server-url = https://www.dockstore.org/api

# options below this are optional

use-cache = false                           #set this to true to cache input files for rapid development
cache-dir = /home/<user>/.dockstore/cache   #set this to determine where input files are cached (should be the same filesystem as your tool working directories)

[dockstore-file-synapse-plugin]

[dockstore-file-s3-plugin]
endpoint = #set this to point at a non AWS S3 endpoint

[dockstore-file-icgc-storage-client-plugin]
client = /media/large_volume/icgc-storage-client-1.0.23/bin/icgc-storage-client

Additional plugins can be created by taking one of the repos in plugins as a model and using pf4j as a reference. See additional documentation for more details.

Development

Coding Standards

codestyle.xml defines the coding style for Dockstore as an IntelliJ Code Style XML file that should be imported into IntelliJ IDE. We also have a matching checkstyle.xml that can be imported into other IDEs and is run during the build.

For users of Intellij or comparable IDEs, we also suggest loading the checkstyle.xml with a plugin in order to display warnings and errors while coding live rather than encountering them later when running a build.

Dockstore Command Line

The dockstore command line should be installed in a location in your path.

/dockstore-client/bin/dockstore

You then need to setup a ~/.dockstore/config file with the following contents:

token: <dockstore_token_from_web_app>
server-url: http://www.dockstore.org:8080

If you are working with a custom-built or updated dockstore client you will need to update the jar in: ~/.dockstore/config/self-installs.

Encrypted Documents for Travis-CI

Encrypted documents necessary for confidential testing are handled as indicated in the documents at Travis-CI for
files and environment variables.

A convenience script is provided as encrypt.sh which will compress confidential files, encrypt them, and then update an encrypted archive on GitHub. Confidential files should also be added to .gitignore to prevent accidental check-in. The unencrypted secrets.tar should be privately distributed among members of the team that need to work with confidential data. When using this script you will likely want to alter the CUSTOM_DIR_NAME. This is necessary since running the script will overwrite the existing encryption keys, instantly breaking existing builds using that key. Our current workaround is to use a new directory when providing a new bundle.

Adding Copyright header to all files with IntelliJ

To add copyright headers to all files with IntelliJ

  1. Ensure the Copyright plugin is installed (Settings -> Plugins)
  2. Create a new copyright profile matching existing copyright header found on all files, name it Dockstore (Settings -> Copyright -> Copyright Profiles -> Add New)
  3. Set the default project copyright to Dockstore (Settings -> Copyright)

dockstore-cli's People

Contributors

achave11-ucsc avatar agduncan94 avatar briandoconnor avatar codacy-badger avatar coverbeck avatar ctb avatar david4096 avatar denis-yuen avatar dependabot-support avatar dependabot[bot] avatar dockstore-admin avatar emlys avatar garyluu avatar gfjhogue avatar gitter-badger avatar jlleitschuh avatar kcao-guidewire avatar ldcabansay avatar natalieeo avatar oicr-vchung avatar richard-hansen avatar rjbautis avatar snyk-bot avatar victoroicr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.