Workflow Schema

Workflow Schema

Welcome to the Workflow Schema Page! If you haven’t already, please take some time to familiarize yourself with higher level schema concepts, such as Inputs, UI (and Groups), and Conditionals.

Note: All the supported features in Schema Guide 2.0 apply to V3 of our Workflow Schemas. If developing a workflow still on V2, please see the V3 Conversion Guide to get up to date.

V3 Conversion Guide
V3 Conversion Guide

Now that you’re all up-to-speed on the main concepts of a Form Bio schema and working on a V3 Workflow Schema, let’s take a look at what makes the Workflow Schema unique.

Let’s take a look at a simple example schema to analyze:

{
	"id": "myWorkflowSchema",
	"schema": "v3",
	"displayName": "My Workflow Schema",
	"description": "Here is my workflow schema",
	"title": "formbio/nf-myWorkflow",
	"workflowVersion": "v1.0.0",
	"categories": ["My Workflow Category"],
	"inputs": {
		"myFirstTextInput": {
			"title": "My First Text Input",
			"type": "string",
			"hidden": false,
			"required": true,
			"description": "Here is a description",
			"help_text": "Here are more details....",
			"default": "my default value",
			"pattern": "someRegexPatternItMustMatch"
		},
		"mySecondTextInput": {
			"title": "My Second Text Input",
			"type": "string",
			"hidden": false,
			"required": true,
			"description": "Here is a description",
			"help_text": "Here are more details....",
			"default": "my default value",
			"pattern": "someRegexPatternItMustMatch"
		}
	},
	"ui": {
		"inputs": [
			{
				"id": "myGroup",
			  "title": "My Group",
				"fields": ["myFirstTextInput", "mySecondTextInput"],
			  "help_text": "More information on this grouping...",
			  "description": "Here is a description",
			  "hidden": false
			}
		]
	},
	"conditionals": [
	  {
	    "if": [
	      {
	        "myFirstTextInput": {
	          "eq": "another value"
					}
	      }
	    ],
	    "then": {
	      "inputs": {
	        "mySecondTextInput": {
	          "hidden": true
	        }
	      }
	    }
	  }
	],
	"config": {
    "mainScript": "main.nf",
    "executionEngine": "nextflow"
  }
}

id

  • A unique id for identifying this workflow.

schema

  • A pointer to the schema version, should be v3.

displayName

  • A user-friendly name displayed in the UI for this workflow.

title

  • A pointer to the repo name this workflow lives inside.

workflowVersion

  • The version of this schema to be uploaded and selected in the UI. Should be incremented on any changes.

categories

  • An array of categories this workflow belongs to.
  • For a list of categories supported in the UI with their own icons, see the subpage. Categories do not have to match one of these.
Workflow Categories
Workflow Categories

description

  • A description of this workflow to be explained to users in the UI.

inputs

ui

  • See UI (and Groups)
  • Note that all workflow field inputs must be nested inside a Group.
  • Note that workflows do not have outputs so only inputs is supported inside ui.

conditionals

config

🚧 More details coming soon!

Workflow Management
Workflow Management

Workflow Config