https://github.com/ga4gh/dockstore
Revision 137f86c21b61520cc690599e05896e309af1cfca authored by Charles Overbeck on 28 February 2019, 21:43:30 UTC, committed by GitHub on 28 February 2019, 21:43:30 UTC

#1768

Allows a user to submit a zip file to add a new version to a hosted workflow. The zip file needs
to contain a .dockstore.yml in its root directory that describes the contents of the zip. See the DockstoreYaml.java class for expected fields.

I was initially going to do by submitting an application/octet-stream, but Swagger 2 codegen does not generate correct code for client libraries. See https://swagger.io/docs/specification/2-0/file-upload/.

Making it a multipart/form-data allows users to hit the UI from the Swagger UI.

The code ZipSourceFileHelper.java guards against "zip bomb" attacks. Unfortunately we can only see the size of the uncompressed entries in a zip by writing to a file -- reading from the payload directly in memory doesn't reliably give the sizes.

Todos

Should support a workflowVersion value in .dockstoreYaml, which will tag the revision accordingly. The code currently makes assumptions about the name field always being a number. See AbstractHostedEntryResourceName.calculateNextVersionName.

UI does not show .dockstore.yml.

DockstoreYaml.java is just a beginning and not really generic enough yet.
1 parent 9ceb049
History
Tip revision: 137f86c21b61520cc690599e05896e309af1cfca authored by Charles Overbeck on 28 February 2019, 21:43:30 UTC
Create a new version of a hosted workflow with Zip (#2148)
Tip revision: 137f86c

README.md

back to top