Defining New Workflows
There are front end and back end requirements for workflows.
Workflow definition on the front end
At the core of workflows is a JSON structured file. The file defines components and labels of a workflow. Below is the definition for the Visualizer workflow segmented for annotation.
import rootNewSimulation from './components/root/NewSimulation'; |
Imported views for the workflow. These are all referenced in the object that’s exported from this file.
export default { |
In the components
object, NewSimulation
is a view which goes below the “Name” and “Description” fields in a new simulation view. They’re often where you’ll see file upload inputs. ViewSimulation
is the root component for containing the workflow. It’s usually an ActiveList
panel with the Workflow’s steps and the views corresponding to the Workflow step.
logo
it not required but helps visually distinguish projects in the projects list.
config: { |
Extra config options which are appended to the run simulaiton view.
steps: { |
Workflow step definition. _order
determines the step order in the ActiveList
the strings here must match the keys of the steps. _initial_state
defines if the step is enabled or disabled. #FIXME type isn’t used for anything?
Introduction
and Visualization
are the step definitions. Within them you can define multiple views. default
is the default view the user will see when they first open that step, here it’s stepStartViz
which is imported above. Here the run
step defines the view which you see when the simulation is running.
taskFlows: { |
The keys in taskFlows
correspond to step names and the value corresponds to a python path class which the backend of HPCCloud uses to run the step’s taskflow on a target machine.
primaryJobs: { |
The keys in ‘primaryJobs’ are the step names, the value is the name of the job which runs on the target machine.
labels: { |
Labels for the steps and step subviews.