https://github.com/common-workflow-language/workflow-service
Implementation of the GA4GH Workflow Execution Service, a REST service for running workflows
https://github.com/common-workflow-language/workflow-service
python
Last synced: 5 months ago
JSON representation
Implementation of the GA4GH Workflow Execution Service, a REST service for running workflows
- Host: GitHub
- URL: https://github.com/common-workflow-language/workflow-service
- Owner: common-workflow-language
- License: apache-2.0
- Created: 2015-09-16T05:06:55.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-06-26T14:23:15.000Z (10 months ago)
- Last Synced: 2024-08-09T13:13:49.834Z (9 months ago)
- Topics: python
- Language: Python
- Homepage:
- Size: 353 KB
- Stars: 36
- Watchers: 12
- Forks: 21
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Workflow as a Service
This is a client and server implementation of the [GA4GH Workflow
Execution Service](https://github.com/ga4gh/workflow-execution-schemas) 1.0.0 API.It provides [Arvados](https://arvados.org/) and [Toil](http://toil.ucsc-cgl.org/) backends. It
also works with any `cwl-runner` that supports the CWL standard command line
interface: http://www.commonwl.org/v1.0/CommandLineTool.html#Executing_CWL_documents_as_scripts## Installation:
```
pip install wes-service
```## Usage
### Client configuration
Command line parameter or environment variable.
`--host` or `WES_API_HOST`
The host to contact.
`--proto` or `WES_API_PROTO`
The protocol (http or https) to use.
`--auth` or `WES_API_AUTH`
Credentials. Format is 'Header: value' or just 'value'. If header name is not provided, value goes in the 'Authorization'.
### Get service info
```
$ wes-client --info
```### Submit a workflow to run:
Attachments must be accessible from the filesystem. Workflow runners may also support http URLs or other storage systems.
```
$ wes-client --attachments="testdata/dockstore-tool-md5sum.cwl,testdata/md5sum.input" testdata/md5sum.cwl testdata/md5sum.cwl.json
```### List workflows
```
$ wes-client --list
```### Get workflow status
```
$ wes-client --get
```### Get stderr log from workflow:
```
$ wes-client --log
```## Server Configuration
### Run a standalone server with default `cwl-runner` backend:
```
$ wes-server
```### Run a standalone server with Arvados backend:
```
$ pip install arvados-cwl-runner
$ wes-server --backend=wes_service.arvados_wes
```### Run a standalone server with Toil backend:
```
$ pip install toil[all]
$ wes-server --backend=wes_service.toil_wes --opt extra=--clean=never
```### Use alternate executable with cwl-runner backend
```
$ pip install cwltool
$ wes-server --backend=wes_service.cwl_runner --opt runner=cwltool --opt extra=--logLevel=CRITICAL
```### Pass parameters to cwl-runner
Use "--opt" following by "key=value"
```
$ wes-server --backend=wes_service.cwl_runner --opt extra=--workDir=/tmp/work
```## Development
If you would like to develop against `workflow-service` make sure you pass the provided test and it is flake8 compliant#### Install from Source
```
$ virtualenv venv && source venv/bin/activate && pip install toil[all] && pip install . --process-dependency-links && pip install -r dev-requirements.txt
```#### Running Tests
From path `workflow-service` run```
$ pytest && flake8
```