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.