Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Workflow configuration

Xylem reads JSON and YAML configurations. A workflow describes requirements, zero or more inputs, shared variables, ordered modules, and execution options.

{
  "version": "1.0.0",
  "description": "Run a local greeting module",
  "requirements": ["sh"],
  "input": ["first", "second"],
  "variables": {
    "GREETING": "Hello"
  },
  "modules": [
    {
      "name": "Greeting",
      "type": "script",
      "programmingLanguage": "generic",
      "uri": "file:./modules/greeting",
      "template": {
        "command": "sh",
        "arguments": ["run.sh", "{{ GREETING }}", "{{ INPUT }}"]
      }
    }
  ]
}

Relative file: module paths resolve from the directory where Xylem is launched. Modules execute in array order for each active input.

Variables

Workflow variables are available to every module. Module variables override workflow values. Xylem then supplies reserved values such as MODULE_LIST, INPUT, and PARENT_DIRECTORY. Placeholders use {{ VARIABLE_NAME }} syntax.

Resolved values are passed to child processes with an _XYLEM_ prefix. For example, GREETING is available as _XYLEM_GREETING.

Options

Configuration options include dry_run, offline, skip_verify_checksum, and skip_verify_requirements. Equivalent CLI flags are combined with the configuration values.

See the repository’s module specification for the normative Xylem 1.x module contract.