MetaWorkflowRun[json]

MetaWorkflowRun[json] is a json data format that describes the structure of a multi-step workflow given the corresponding MetaWorkflow[json], specific input and defined end points. Scatter, gather and dependencies information are used to create and link all the shards for individual steps (WorkflowRun[json]) that are necessary to reach end points based on the input.

Structure

{
  ## General MetaWorkflowRun[json] information
  "meta_workflow": "", # universally unique identifier
                       #   for the corresponding MetaWorkflow[json]

  ## Shards for MetaWorkflowRun[json]
  "workflow_runs" : [

        # WorkflowRun[json] structure
        {
          # These are necessary fields
          "name": "",
          "status": "", # pending | running | completed | failed
          "shard": "", # x 1D | x:x 2D | x:x:x 3D | ...
          # These are optional fields
          #   or fields created during the processing
          "dependencies": [],
          "output": [
            # Structure for a file argument,
            #   only type of argument that can be output of a WorkflowRun[json]
            {
              # These are necessary fields
              "argument_name": "",
              "files": ""
            }
          ],
          # Additonal fields created to link the actual run
          "jobid": "", # run identifier
          "workflow_run": # universally unique identifier
        },

        # Example
        { "name": "step1",
          "workflow_run": "uuid-step1:0-run",
          "status": "complete",
          "output": [
            {
              "argument_name": "out_step1",
              "files": "uuid-out_step1:0"
            }
          ],
          "shard": "0"
        },
        { "name": "step1",
          "workflow_run": "uuid-step1:1-run",
          "status": "complete",
          "output": [
            {
              "argument_name": "out_step1",
              "files": "uuid-out_step1:1"
            }
          ],
          "shard": "1"
        },
        { "name": "step2",
          "workflow_run": "uuid-step2:0-run",
          "status": "running",
          "dependencies": ["step1:0"],
          "shard": "0"
        },
        { "name": "step2",
          "workflow_run": "uuid-step2:1-run",
          "status": "running",
          "dependencies": ["step1:1"],
          "shard": "1"
        },
        { "name": "step3",
          "status": "pending",
          "dependencies": ["step2:0", "step2:1"],
          "shard": "0"
        }
  ],

  ## Specific input for MetaWorkflowRun[json]
  "input": [
    # Structure for a file argument
    {
      # These are necessary fields
      "argument_name": "",
      "argument_type": "file",
      "files": ""
    },

    # Structure for a parameter argument
    {
      # These are necessary fields
      "argument_name": "",
      "argument_type": "parameter",
      "value": ""
    }
  ],

  ## Final status
  "final_status": "", # pending | running | completed | failed

  ## Optional general fields for MetaWorkflowRun[json]
  "common_fields": {}
}