A web application to view and share Common Workflow Language workflows
Java HTML Common Workflow Language JavaScript Other
Clone or download
Latest commit 12ecbb1 May 24, 2018
Failed to load latest commit information.
.mvn/wrapper Initial commit Oct 8, 2016
src aria-hidden tags for email obfuscation tags May 24, 2018
.travis.yml Update .travis.yml Aug 18, 2017
CONTRIBUTING.md Add basic flow and overview of some classes Aug 25, 2017
Dockerfile Use newer ruamel.yaml May 25, 2018
ISSUE_TEMPLATE.md Start of developer documentation Aug 25, 2017
README.md Expose Location header in CORS #189 Feb 7, 2018
docker-compose.yml Prepare for 1.2.1 Aug 22, 2017
mvnw Initial commit Oct 8, 2016
mvnw.cmd Initial commit Oct 8, 2016
pom.xml Add some unit tests. Apr 24, 2018


CWL Viewer

This is a Spring Boot MVC application which fetches Common Workflow Language files from a Github repository and creates a page for it detailing the main workflow and its inputs, outputs and steps.

Build Status Coverage Status Gitter Docker image commonworkflowlanguage/cwlviewer DOI


Distributed under the Apache License, Version 2.0. See the file LICENSE.md for details, and NOTICE.md for required attribution notices.


Feel free to contribute! You may raise an issue, provide a pull request or join the gitter chat for cwlviewer!

Using CWL Viewer

You are recommended to use the production instance of CWL Viewer at https://view.commonwl.org/ which runs the latest release. Any downtime should be reported on the gitter chat for cwlviewer.

The dev instance at http://view.commonwl.org:8082/ corresponds to the current master branch, and is updated every 6 minutes to run the latest commonworkflowlanguage/cwlviewer docker image. Note that this instance is NOT secured and might break at any time.


If you are a developer, or you want to use the CWL Viewer in a closed environment, then you can run your own instance.

Recommended - Running with Docker

This application can be started with Docker and Docker Compose.

To start CWLViewer exposed on port 8080, run:

docker-compose up

To stop and remove:

docker-compose down

If you change the source code, then use this docker-compose.override.yml and re-build with docker-compose build:

version: '3.2'
    build: .

See the docker-compose.yml file for details.

If you have modified the source code, then you may want to build the docker image locally first:

docker build -t commonworkflowlanguage/cwlviewer .

Running without Docker



You will need to have MongoDB running, by default on localhost:27017

If you are running from the command line, you can override this by supplying system properties like -Dspring.data.mongodb.host=mongo.example.org and -Dspring.data.mongodb.port=1337

Apache Jena Fuseki (or alternative SPARQL server)

You will also need to have a SPARQL server such as Apache Jena Fuseki running, by default on localhost:3030

Compiling and Running

To compile you will need Java 8 or OpenJDK 8 (apt install openjdk-8-jdk), as well as Apache Maven 3 (apt install maven).

Spring Boot uses an embedded HTTP server. The Spring Boot Maven plugin includes a run goal which can be used to quickly compile and run it:

$ mvn spring-boot:run

Alternatively, you can run the application from your IDE as a simple Java application by importing the Maven project.

You need to install Graphviz for all unit tests to pass.

You can create an executable JAR file by using:

mvn clean install

Afterwards, run:

java -jar target/cwlviewer*.jar

(The exact filename will vary per version)

Once CWL Viewer is running, you should see log output somewhat like:

s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
org.researchobject.CwlViewerApplication  : Started CwlViewerApplication in 28.604 seconds

Now check out http://localhost:8080/ to access CWL Viewer.


There are a variety of configuration options detailed in the application configuration file which can be adjusted.

When deploying with docker, these can be overriden externally by creating/modifying docker-compose.override.yml as follows:

version: '3.2'
            applicationName: Common Workflow Language Viewer
            applicationURL: https://view.commonwl.org
            cacheDays: 1

The properties can alternatively be provided as system properties on the command line, e.g. -DcacheDays=1 or via a variety of other methods supported by Spring Boot


Developers and contributors include:

Thanks to: