Skip to content

Workflow Definition

Direktiv Workflow Definition

This document describes the rules for Direktiv workflow definition files. These files are written in YAML and dictate the behaviour of a workflow running on Direktiv.

Workflow
direktiv_api: workflow/v1
description: |
  A simple "Hello, world" demonstration.
states:
- id: hello
  type: noop
  transform: 'jq({ msg: "Hello, world!" })'
Input
{}
Output
{
  "msg": "Hello, world!"
}

Workflows have inputs and outputs, usually in JSON. Where examples appear in this document they will often be accompanied by inputs and outputs as seen above.

WorkflowDefinition

This is the top-level structure of a Direktiv workflow definition. All workflows must have one.

Parameter Description Type Required
direktiv_api Set it to 'workflow/v1' to reduce ambiguity, enabling tools to better identify this file as a workflow. string no
url Link to further information. string no
description Short description of the workflow. string no
functions List of function definitions for use by function-based states. []FunctionDefinition no
start Configuration for how the workflow should start. StartDefinition no
states List of all possible workflow states. []StateDefinition yes
timeouts Configuration of workflow-level timeouts. TimeoutsDefinition no