dockstore-cli

Command-line interface to dockstore, split out from main repo in version 1.8.0

https://github.com/dockstore/dockstore-cli

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Command-line interface to dockstore, split out from main repo in version 1.8.0

Basic Info
  • Host: GitHub
  • Owner: dockstore
  • License: apache-2.0
  • Language: Java
  • Default Branch: develop
  • Homepage: https://dockstore.org
  • Size: 20.5 MB
Statistics
  • Stars: 4
  • Watchers: 3
  • Forks: 3
  • Open Issues: 0
  • Releases: 23
Created over 6 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog Contributing License Citation Support

README.md

Codacy Badge 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 onboarding. The Dockstore command line script should be installed in a location in your path.

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

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

As an option for additional safety, you can also store your token in an encrypted password manager or similar. In this case, you can replace token with tokenCommand. For example

tokenCommand = cat /home/my-user/dockstoreTokenVault.txt 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 Amazon S3 and Synapse 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 = 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//.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 ```

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

Be sure to have a configuration file in place. Follow the instructions in Configuration File for help.

Add the directory dockstore-client/bin to your PATH:

bash cd dockstore-cli echo "export PATH=$(pwd)/dockstore-client/bin:"'$PATH' >> ~/.bash_profile source ~/.bash_profile

If you are working with a custom-built or updated dockstore client you will need to update the jar in: ~/.dockstore/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)

Owner

  • Name: Dockstore
  • Login: dockstore
  • Kind: organization
  • Location: Toronto, Ontario

Support organization for dockstore file provisioning plugins and other useful code

Citation (CITATION)

To cite Dockstore in a publication please refer to 

https://zenodo.org/record/2630727

@misc{denis_yuen_2019_2630727,
  author       = {Denis Yuen and
                  Andrew Duncan and
                  Victor Liu and
                  Brian O'Connor and
                  Gary Luu and
                  Charles Overbeck and
                  Walter Shands and
                  oicr-vchung and
                  Peter Amstutz and
                  Ryan Bautista and
                  Kitty Cao and
                  David Steinberg and
                  Louise Cabansay and
                  NatalieEO and
                  The Gitter Badger and
                  Codacy Badger and
                  C. Titus Brown and
                  Abraham},
  title        = {ga4gh/dockstore: 1.6.0},
  month        = apr,
  year         = 2019,
  doi          = {10.5281/zenodo.2630727},
  url          = {https://doi.org/10.5281/zenodo.2630727}
}

GitHub Events

Total
  • Release event: 2
  • Delete event: 13
  • Issue comment event: 52
  • Push event: 89
  • Pull request review comment event: 18
  • Pull request event: 31
  • Pull request review event: 46
  • Create event: 19
Last Year
  • Release event: 2
  • Delete event: 13
  • Issue comment event: 52
  • Push event: 89
  • Pull request review comment event: 18
  • Pull request event: 31
  • Pull request review event: 46
  • Create event: 19

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: 11 days
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 2.0
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 5
Past Year
  • Issues: 0
  • Pull requests: 12
  • Average time to close issues: N/A
  • Average time to close pull requests: 11 days
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 2.0
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
Pull Request Authors
  • denis-yuen (22)
  • dependabot[bot] (10)
  • kathy-t (3)
  • coverbeck (2)
  • ll5zh (2)
  • david4096 (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (10) java (7) github_actions (3)

Dependencies

dockstore-cli-integration-testing/generated/src/main/resources/pom.xml maven
  • commons-io:commons-io 2.11.0 compile
  • io.dockstore:dockstore-client 1.13.0-SNAPSHOT compile
  • io.dockstore:dockstore-common 1.13.0-alpha.7 compile
  • io.dockstore:dockstore-webservice 1.13.0-alpha.7 compile
  • io.dockstore:openapi-java-client 1.13.0-alpha.7 compile
  • io.dropwizard:dropwizard-jdbi3 2.1.0 compile
  • org.apache.commons:commons-configuration2 2.7 compile
  • ch.qos.logback:logback-classic 1.2.11
  • ch.qos.logback:logback-core 1.2.11
dockstore-cli-integration-testing/pom.xml maven
  • ch.qos.logback:logback-classic
  • ch.qos.logback:logback-core
  • commons-io:commons-io
  • io.dockstore:dockstore-client ${revision}${changelist}
  • io.dockstore:dockstore-common ${dockstore-core.version}
  • io.dockstore:dockstore-webservice ${dockstore-core.version}
  • io.dockstore:openapi-java-client ${dockstore-core.version}
  • io.dropwizard:dropwizard-jdbi3
  • org.apache.commons:commons-configuration2
  • com.github.stefanbirkner:system-rules test
  • io.dockstore:dockstore-common ${dockstore-core.version} test
  • io.dropwizard:dropwizard-testing test
  • io.specto:hoverfly-java test
  • junit:junit test
  • org.assertj:assertj-core test
  • org.easymock:easymock test
  • org.mockito:mockito-core test
  • org.powermock:powermock-api-easymock test
  • org.powermock:powermock-api-mockito-common test
  • org.powermock:powermock-api-mockito2 test
  • org.powermock:powermock-core test
  • org.powermock:powermock-module-junit4 test
dockstore-client/generated/src/main/resources/pom.xml maven
  • ch.qos.logback:logback-classic 1.2.11 compile
  • com.beust:jcommander 1.78 compile
  • com.fasterxml.jackson.core:jackson-core 2.13.2 compile
  • com.fasterxml.jackson.core:jackson-databind 2.13.2.2 compile
  • com.fasterxml.jackson.jaxrs:jackson-jaxrs-base 2.13.2 compile
  • com.github.docker-java:docker-java-api 3.2.8 compile
  • com.github.docker-java:docker-java-core 3.2.8 compile
  • com.github.docker-java:docker-java-transport 3.2.8 compile
  • com.github.docker-java:docker-java-transport-httpclient5 3.2.8 compile
  • com.github.spotbugs:spotbugs-annotations 4.6.0 compile
  • com.github.zafarkhaja:java-semver 0.9.0 compile
  • com.google.code.gson:gson 2.9.0 compile
  • com.google.guava:guava 31.1-jre compile
  • com.googlecode.json-simple:json-simple 1.1.1 compile
  • commons-codec:commons-codec 1.15 compile
  • commons-io:commons-io 2.11.0 compile
  • commons-net:commons-net 3.3 compile
  • commons-validator:commons-validator 1.6 compile
  • io.cwl:cwlavro-generated 2.0.4.7 compile
  • io.cwl:cwlavro-tools 2.0.4.7 compile
  • io.dockstore:dockstore-common 1.13.0-alpha.7 compile
  • io.dockstore:dockstore-file-plugin-parent 1.13.0-SNAPSHOT compile
  • io.dockstore:openapi-java-client 1.13.0-alpha.7 compile
  • io.dockstore:openapi-java-wes-client 1.13.0-SNAPSHOT compile
  • io.dockstore:swagger-java-client 1.13.0-alpha.7 compile
  • io.spray:spray-json_2.12 1.3.6 compile
  • jakarta.annotation:jakarta.annotation-api 1.3.5 compile
  • org.apache.commons:commons-configuration2 2.7 compile
  • org.apache.commons:commons-csv 1.5 compile
  • org.apache.commons:commons-exec 1.3 compile
  • org.apache.commons:commons-lang3 3.12.0 compile
  • org.apache.commons:commons-vfs2 2.3 compile
  • org.apache.httpcomponents:httpclient 4.5.13 compile
  • org.apache.httpcomponents:httpcore 4.4.15 compile
  • org.broadinstitute:cromwell-wdl-transforms-draft3_2.12 77 compile
  • org.glassfish.jersey.inject:jersey-hk2 2.35 compile
  • org.glassfish.jersey.media:jersey-media-multipart 2.35 compile
  • org.json:json 20180130 compile
  • org.scala-lang:scala-library 2.12.15 compile
  • org.slf4j:slf4j-api 1.7.36 compile
  • org.yaml:snakeyaml 1.30 compile
  • ro.fortsoft.pf4j:pf4j 1.1.1 compile
  • software.amazon.awssdk:auth 2.17.165 compile
  • software.amazon.awssdk:regions 2.17.165 compile
  • software.amazon.awssdk:sdk-core 2.17.165 compile
  • uk.co.lucasweb:aws-v4-signer-java 1.3 compile
  • org.postgresql:postgresql 42.3.3
dockstore-client/pom.xml maven
  • ch.qos.logback:logback-classic
  • com.beust:jcommander
  • com.fasterxml.jackson.core:jackson-core
  • com.fasterxml.jackson.core:jackson-databind
  • com.fasterxml.jackson.jaxrs:jackson-jaxrs-base
  • com.github.docker-java:docker-java-api 3.2.8
  • com.github.docker-java:docker-java-core 3.2.8
  • com.github.docker-java:docker-java-transport 3.2.8
  • com.github.docker-java:docker-java-transport-httpclient5 3.2.8
  • com.github.spotbugs:spotbugs-annotations
  • com.github.zafarkhaja:java-semver
  • com.google.code.gson:gson
  • com.google.guava:guava
  • com.googlecode.json-simple:json-simple
  • commons-codec:commons-codec
  • commons-io:commons-io
  • commons-net:commons-net
  • commons-validator:commons-validator
  • io.cwl:cwlavro-generated
  • io.cwl:cwlavro-tools
  • io.dockstore:dockstore-common ${dockstore-core.version}
  • io.dockstore:dockstore-file-plugin-parent ${revision}${changelist}
  • io.dockstore:openapi-java-client ${dockstore-core.version}
  • io.dockstore:openapi-java-wes-client ${revision}${changelist}
  • io.dockstore:swagger-java-client ${dockstore-core.version}
  • io.spray:spray-json_2.12
  • jakarta.annotation:jakarta.annotation-api
  • junit:junit
  • org.apache.commons:commons-configuration2
  • org.apache.commons:commons-csv
  • org.apache.commons:commons-exec
  • org.apache.commons:commons-lang3
  • org.apache.commons:commons-vfs2
  • org.apache.httpcomponents:httpclient
  • org.apache.httpcomponents:httpcore
  • org.broadinstitute:cromwell-wdl-transforms-draft3_2.12
  • org.glassfish.jersey.inject:jersey-hk2
  • org.glassfish.jersey.media:jersey-media-multipart
  • org.json:json
  • org.postgresql:postgresql
  • org.scala-lang:scala-library
  • org.slf4j:slf4j-api
  • org.yaml:snakeyaml
  • ro.fortsoft.pf4j:pf4j
  • software.amazon.awssdk:auth
  • software.amazon.awssdk:regions
  • software.amazon.awssdk:sdk-core
  • uk.co.lucasweb:aws-v4-signer-java 1.3
  • com.github.stefanbirkner:system-rules test
  • io.dropwizard:dropwizard-testing test
  • org.assertj:assertj-core test
  • org.mockito:mockito-core test
  • software.amazon.awssdk:profiles test
dockstore-file-plugin-parent/generated/src/main/resources/pom.xml maven
  • org.apache.commons:commons-lang3 3.12.0 compile
  • ro.fortsoft.pf4j:pf4j 1.1.1 provided
dockstore-file-plugin-parent/pom.xml maven
  • ro.fortsoft.pf4j:pf4j provided
  • org.apache.commons:commons-lang3
openapi-java-wes-client/generated/src/main/resources/pom.xml maven
  • com.fasterxml.jackson.core:jackson-annotations 2.13.2 compile
  • com.fasterxml.jackson.core:jackson-core 2.13.2 compile
  • com.fasterxml.jackson.core:jackson-databind 2.13.2.2 compile
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310 2.13.2 compile
  • io.swagger.core.v3:swagger-annotations 2.1.13 compile
  • jakarta.ws.rs:jakarta.ws.rs-api 2.1.6 compile
  • org.glassfish.jersey.core:jersey-client 2.35 compile
  • org.glassfish.jersey.core:jersey-common 2.35 compile
  • org.glassfish.jersey.media:jersey-media-json-jackson 2.35 compile
  • org.glassfish.jersey.media:jersey-media-multipart 2.35 compile
openapi-java-wes-client/pom.xml maven
  • com.fasterxml.jackson.core:jackson-annotations
  • com.fasterxml.jackson.core:jackson-core
  • com.fasterxml.jackson.core:jackson-databind
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  • io.swagger.core.v3:swagger-annotations 2.1.13
  • jakarta.ws.rs:jakarta.ws.rs-api
  • org.glassfish.jersey.core:jersey-client
  • org.glassfish.jersey.core:jersey-common
  • org.glassfish.jersey.media:jersey-media-json-jackson
  • org.glassfish.jersey.media:jersey-media-multipart
pom.xml maven
  • io.dockstore:bom-internal 1.13.0-alpha.7 import
  • javax.activation:activation 1.1.1
  • javax.xml.bind:jaxb-api 2.3.1
  • ro.fortsoft.pf4j:pf4j 1.1.1
  • io.dropwizard:dropwizard-migrations test
reports/generated/src/main/resources/pom.xml maven
  • io.dockstore:dockstore-cli-integration-testing 1.13.0-SNAPSHOT compile
  • io.dockstore:dockstore-client 1.13.0-SNAPSHOT compile
  • io.dockstore:dockstore-common 1.13.0-alpha.7 compile
  • io.dockstore:dockstore-webservice 1.13.0-alpha.7 compile
support/generated/src/main/resources/pom.xml maven
  • com.google.guava:guava 31.1-jre compile
  • software.amazon.awssdk:cloudformation 2.17.165 compile
  • software.amazon.awssdk:config 2.17.165 compile
  • software.amazon.awssdk:ec2 2.17.165 compile
  • software.amazon.awssdk:iam 2.17.165 compile
  • software.amazon.awssdk:lambda 2.17.165 compile
  • software.amazon.awssdk:rds 2.17.165 compile
  • software.amazon.awssdk:regions 2.17.165 compile
  • software.amazon.awssdk:s3 2.17.165 compile
support/pom.xml maven
  • software.amazon.awssdk:cloudformation compile
  • software.amazon.awssdk:config compile
  • software.amazon.awssdk:ec2 compile
  • software.amazon.awssdk:iam compile
  • software.amazon.awssdk:lambda compile
  • software.amazon.awssdk:rds compile
  • software.amazon.awssdk:s3 compile
  • com.google.guava:guava
  • software.amazon.awssdk:regions
.github/workflows/deploy_snapshot.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/deploy_tagged.yml actions
.github/workflows/mvnw.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • dockstore/workflow-actions/.github/actions/check-license main composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/init v2 composite
docker-compose.yml docker
  • docker.elastic.co/elasticsearch/elasticsearch 7.10.0
  • postgres 13.3
dockstore-client/src/test/resources/nonexistent_image/Dockerfile docker
  • bash latest build
toil/docker-compose.yml docker
  • quay.io/ucsc_cgl/toil 5.7.0a1-dd3b68001c02f65c5d856a670677b99db07793c8-py3.8
  • rabbitmq 3.9.5
  • traefik v2.2
dockstore-cli-reports/generated/src/main/resources/pom.xml maven
  • io.dockstore:dockstore-cli-integration-testing 1.15.0-SNAPSHOT compile
  • io.dockstore:dockstore-client 1.15.0-SNAPSHOT compile
  • io.dockstore:dockstore-common 1.15.0-alpha.6 compile
  • io.dockstore:dockstore-webservice 1.15.0-alpha.6 compile
dockstore-cli-reports/pom.xml maven
  • io.dockstore:dockstore-cli-integration-testing ${revision}${changelist}
  • io.dockstore:dockstore-client ${revision}${changelist}
  • io.dockstore:dockstore-common ${dockstore-core.version}
  • io.dockstore:dockstore-webservice ${dockstore-core.version}