{"id":40523065,"url":"https://github.com/dockstore/dockstore","last_synced_at":"2026-01-20T21:12:51.632Z","repository":{"id":29839093,"uuid":"33383826","full_name":"dockstore/dockstore","owner":"dockstore","description":"An app store for scientific workflows, tools, notebooks, and services","archived":false,"fork":false,"pushed_at":"2026-01-19T06:02:54.000Z","size":43743,"stargazers_count":130,"open_issues_count":438,"forks_count":29,"subscribers_count":18,"default_branch":"develop","last_synced_at":"2026-01-19T14:15:45.041Z","etag":null,"topics":["bioinformatics","containers","cwl","docker","dockstore","nextflow","wdl","workflow"],"latest_commit_sha":null,"homepage":"https://dockstore.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dockstore.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-04-03T21:34:05.000Z","updated_at":"2026-01-19T06:02:58.000Z","dependencies_parsed_at":"2024-05-06T15:43:49.174Z","dependency_job_id":"50d7b87f-0445-4a88-b84e-3cd421514d3f","html_url":"https://github.com/dockstore/dockstore","commit_stats":{"total_commits":3297,"total_committers":48,"mean_commits":68.6875,"dds":0.570215347285411,"last_synced_commit":"4c12b34709b9a94e74202a75629b7712efbe9c29"},"previous_names":[],"tags_count":410,"template":false,"template_full_name":null,"purl":"pkg:github/dockstore/dockstore","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockstore%2Fdockstore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockstore%2Fdockstore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockstore%2Fdockstore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockstore%2Fdockstore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dockstore","download_url":"https://codeload.github.com/dockstore/dockstore/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dockstore%2Fdockstore/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28613889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T18:56:40.769Z","status":"ssl_error","status_checked_at":"2026-01-20T18:54:26.653Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioinformatics","containers","cwl","docker","dockstore","nextflow","wdl","workflow"],"created_at":"2026-01-20T21:12:50.842Z","updated_at":"2026-01-20T21:12:51.626Z","avatar_url":"https://github.com/dockstore.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CircleCI](https://circleci.com/gh/dockstore/dockstore.svg?style=svg)](https://circleci.com/gh/dockstore/dockstore)\n[![codecov](https://codecov.io/gh/dockstore/dockstore/branch/develop/graph/badge.svg)](https://codecov.io/gh/dockstore/dockstore)\n[![Website](https://img.shields.io/website/https/dockstore.org.svg)](https://dockstore.org)\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7259426.svg)](https://doi.org/10.5281/zenodo.7259426)\n[![Uptime Robot status](https://img.shields.io/uptimerobot/status/m779655940-a297af07d1cac2d6ad40c491.svg)]()\n[![license](https://img.shields.io/hexpm/l/plug.svg?maxAge=2592000)](LICENSE)\n[![Documentation Status](https://readthedocs.org/projects/dockstore/badge/?version=stable)](https://dockstore.readthedocs.io/en/stable/?badge=stable)\n\n\n# Dockstore\n\nDockstore provides a place for users to share tools and workflows encapsulated in Docker and described with the Common \nWorkflow Language (CWL), WDL (Workflow Description Language), Nextflow, or Galaxy. This enables scientists to share analytical \nworkflows so that they are  machine readable as well as runnable in a variety of environments. While the \nDockstore is focused on serving researchers in the biosciences, the combination of Docker + workflow languages can be used by \nanyone to describe the tools and services in their Docker images in a standardized, machine-readable way.  \nDockstore is also a leading implementor of the GA4GH API standard for container registries, [TRS](https://www.ga4gh.org/news/tool-registry-service-api-enabling-an-interoperable-library-of-genomics-analysis-tools/). The usage of this is to enumerate the docker containers \n(from quay.io and docker hub) and the workflows (from github/bitbucket/local) that are available \nto users of Dockstore.org.\n\nFor the live site see [dockstore.org](https://dockstore.org)\n\nThis repo contains the web service component for Dockstore as well as collecting issues for the project as a whole. \n\nFor the related web UI see the [dockstore-ui](https://github.com/dockstore/dockstore-ui2) project.\nFor the related CLI see the [cli](https://github.com/dockstore/cli) project.\n\n## For Dockstore Users\n\nThe following section is useful for users of Dockstore (e.g. those that want to browse, register, and \nlaunch tools). \n\nAfter registering at [dockstore.org](https://dockstore.org), you will be able to download the Dockstore \nCLI at https://dockstore.org/onboarding\n\n### Configuration File\n\nA basic Dockstore configuration file is available/should be created in `~/.dockstore/config` and contains the following\nat minimum:\n```\ntoken = \u003cyour token generated by the dockstore site\u003e\nserver-url = https://www.dockstore.org/api\n```\n\n## For Dockstore Developers\n\nThe following section is useful for Dockstore developers (e.g. those that want to improve or fix the Dockstore web service and UI)\n\n### Dependencies\n\nThe dependency environment for Dockstore is described by our \n[CircleCI config](https://github.com/dockstore/dockstore/blob/develop/.circleci/config.yml) or [docker compose](docker-compose.yml). In addition to the dependencies for \nDockstore users, note the setup instructions for postgres. Specifically, you will need to have postgres installed \nand setup with the database user specified in [.circleci/config.yml](https://github.com/dockstore/dockstore/blob/1.16.0/.circleci/config.yml#L279) (ideally, postgres is needed only for integration tests but not unit tests).\n\n### Building\n\nAs an alternative to the following commands, if you do not have Maven installed you can use the maven wrapper as a substitute. For example:\n\n    ./mvnw clean install\n    # instead of\n    mvn clean install\n\nIf you maven build in the root directory this will build all modules:\n\n    mvn clean install\n    # or\n    mvn clean install -Punit-tests\n    \nConsider the following if you need to build a specific version (such as in preparation for creating a tag for a release):\n\n    mvnw clean install  -Dchangelist=.0-beta.5 #or whatever version you need \n    \nIf you're running tests on CircleCI (or otherwise have access to the confidential data bundle) Run them via:\n\n    mvn clean install -Pintegration-tests\n    \nThere are also certain categories for tests that they can be added to when writing new tests. \nCategories include:\n\n1. `ToilCompatibleTest` are tests that can be run with our default cwltool and with Toil\n2. `ConfidentialTest` are tests that require access to our confidential testing bundle (ask a member of the development team if you're on the team)\n\n\n#### Running Hoverfly Integration Tests\n\nHoverfly is a service/library we use for simulating https responses. To run Hoverfly tests locally, you need to run import their\ncertificate. See [here](https://docs.hoverfly.io/projects/hoverfly-java/en/latest/pages/misc/misc.html#trusting-hoverfly-certificate), but, IMPORTANT,\nyou need to import an [older version of the certificate](https://github.com/SpectoLabs/hoverfly/blob/v0.10.3/core/cert.pem). [Release\nnotes](https://github.com/SpectoLabs/hoverfly/releases/tag/v0.10.3) have more info.\n\n### Running Locally\n\nYou can also run it on your local computer but will need to setup postgres separately.\n\n1. Fill in the template dockstore.yml and stash it somewhere outside the git repo (like ~/.dockstore)\n2. The dockstore.yml is mostly a standard [Dropwizard configuration file](https://www.dropwizard.io/en/release-2.0.x/manual/configuration.html). \nRefer to the linked document to setup httpClient and database. \n3. Start with `java -jar dockstore-webservice/target/dockstore-webservice-*.jar   server ~/.dockstore/dockstore.yml`\n4. If you need integration with GitHub.com, Quay.io. or Bitbucket for your work, you will need to follow the appropriate \nsections below and then fill out the corresponding fields in your \n[dockstore.yml](https://github.com/dockstore/dockstore/blob/develop/dockstore-integration-testing/src/test/resources/dockstore.yml). \n\nOne alternative if you prefer running things in containers would be using [docker-compose](docker-compose.yml)\n\n### View Swagger UI\n\nThe Swagger UI is reachable while the Dockstore webservice is running. This allows you to explore available web resources.\n\n1. Browse to [http://localhost:8080/static/swagger-ui/index.html](http://localhost:8080/static/swagger-ui/index.html)\n\n### Commits using `[skipTests]`\nIf you would like to save build minutes on CircleCI (particularly for changes that do not affect code), consider adding \nthe `[skipTests]` tag to your commit message. When included in the most recent commit, a partial CI pipeline will be run,\nconsisting of only the build and unit tests.\n\n`[skipTests]` acts as an alternative to `[skip ci]`, which is provided by CircleCI. This is because our automatic \ndeployment process requires a build to be run on every tag.\n\n\n## Development\n\n### Coding Standards\n\n[codestyle.xml](codestyle.xml) defines the coding style for Dockstore as an IntelliJ Code Style XML file that should be imported into IntelliJ IDE. \nWe also have a matching [checkstyle.xml](checkstyle.xml) that can be imported into other IDEs and is run during the build.  \n\nFor 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. \n\n#### Installing git-secrets\n\nDockstore uses git-secrets to help make sure that keys and private data stay out\nof the source tree. For information on installing it on your platform check \u003chttps://github.com/awslabs/git-secrets#id6\u003e .\n\nIf you're on mac with homebrew use `brew install git-secrets`.\n\n### Swagger Client Generation \n\nWe use the swagger-codegen-maven-plugin to generate several sections of code which are not checked in. \nThese include\n1. All of swagger-java-client (talks to our webservice for the CLI via Swagger 2.0)\n2. All of openapi-java-client (talks to our webservice for the CLI, but in OpenAPI 3.0)\n3. The Tool Registry Server components (serves up the TRS endpoints)\n\nTo update these, you will need to point at a new version of the swagger.yaml provided by a service. For example, update the equivalent of [inputSpec](https://github.com/dockstore/dockstore/blob/0afe35682bdfb6fa7285b2acab8f80648346e835/dockstore-webservice/pom.xml#L854) in your branch.  \n\n### Encrypted Documents for CircleCI\n\nEncrypted documents necessary for confidential testing are decrypted via [decrypt.sh](scripts/decrypt.sh) with access being granted to developers at UCSC and OICR.\n\nA convenience script is provided as [encrypt.sh](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](https://github.com/dockstore/dockstore/blob/0b59791440af6e3d383d1aede1774c0675b50404/encrypt.sh#L13). 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. \n\n### Adding Copyright header to all files with IntelliJ\n\nTo add copyright headers to all files with IntelliJ\n\n1. Ensure the Copyright plugin is installed (Settings -\u003e Plugins)\n2. Create a new copyright profile matching existing copyright header found on all files, name it Dockstore (Settings -\u003e Copyright -\u003e Copyright Profiles -\u003e Add New)\n3. Set the default project copyright to Dockstore (Settings -\u003e Copyright)\n\n[//]: # (DO_NOT_DELETE_START_MACOS_INSTRUCTIONS: This section is automatically generated by scripts/macos-instructions.sh)\n### Setting up a Mac for Dockstore development\nInstall Docker (Be sure to click on 'Mac with Apple chip' if you have Apple silicon)\nhttps://docs.docker.com/desktop/mac/install/\n\nInstall Brew\nhttps://brew.sh/\n```\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n```\n\nRun 'git' to trigger the install of Xcode or the Command Line Tools which will install and or update git\nhttps://developer.apple.com/forums/thread/672087?answerId=659036022#659036022\n```\ngit\n```\n_(If that doesn't work install git manually https://git-scm.com/download/mac)_\n\n\nSetup git user information\n```\ngit config --global user.email \"you@example.com\"\ngit config --global user.name \"Your Name\"\n```\n[Read about git token requirements](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/)\n\n[Setup personal access token for git CLI](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)\n\n[It's helpful to cache your git personal access token](https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git)\n\nInstall Hubflow\nhttps://datasift.github.io/gitflow/TheHubFlowTools.html\n```\ngit clone https://github.com/datasift/gitflow\ncd gitflow\nsudo ./install.sh\n```\n\nInstall JDK 17\nhttps://formulae.brew.sh/formula/openjdk@17\n```\nbrew install openjdk@17\n```\nDownload and install node.js\nhttps://github.com/nvm-sh/nvm\n```\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash\n```\nInstall git secrets\nhttps://github.com/awslabs/git-secrets\n```\nbrew install git-secrets\n```\nInstall wget\n```\nbrew install wget\n```\n\nInstall jq\n```\nbrew install jq\n```\n#### Build the webservice\n(cd to where you cloned the dockstore/dockstore repo)\n```\n./mvnw clean install\n```\n\n#### Build the UI\n(cd to where you cloned the dockstore/dockstore-ui2 repo)\n\nSet up UI requirements\nNOTE: You must use the --legacy-peer-deps switch due to using npm version 8.11.0 (\u003e npm 6) \nfor reasons mentioned in [this post](https://stackoverflow.com/questions/66239691/what-does-npm-install-legacy-peer-deps-do-exactly-when-is-it-recommended-wh)\n```\nnpm ci --legacy-peer-deps\n```\n\nRun build\n```\nnpm run build\n```\n#### Optional\nInstall IntelliJ _(if on Apple Silicon, select the .dmg (Apple Silicon), otherwise select .dmg(Intel)_\n\nhttps://www.jetbrains.com/idea/download/#section=mac\n\nAdd the Scala plugin to IntelliJ\nhttps://www.jetbrains.com/help/idea/managing-plugins.html\n\n[//]: # (DO_NOT_DELETE_END_MACOS_INSTRUCTIONS: This section is automatically generated by scripts/macos-instructions.sh)\n\n\n### Database Schema Documentation \n\nThis is autogenerated at [https://dockstore.github.io/dockstore/](https://dockstore.github.io/dockstore/)\n\n\n### Legacy Material\n\nAdditional documentation on developing Dockstore is available at [legacy.md](https://github.com/dockstore/dockstore/blob/develop/legacy.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdockstore%2Fdockstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdockstore%2Fdockstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdockstore%2Fdockstore/lists"}