DSL Syntax
Zebflow pipelines are defined using a shell-like DSL.
Registration
register pipelines/my-pipeline.zf.json
--
| trigger.webhook --path /api/data --method POST
| transform.set --field status --value active
| sekejap.put --collection records
The first line is the verb + file path. After --, the pipeline body follows.
Pipe mode
Nodes are chained with |. Data flows top-to-bottom — each node receives the previous node's output.
| trigger.webhook --path /upload --method POST
| fs.save --field file --folder uploads
| fs.thumbnail --width 200 --height 200 --format jpg --folder thumbs
Graph mode
For branching logic, use named nodes and --> connections:
[webhook] trigger.webhook --path /process --method POST
[check] transform.branch --condition "{{ $input.type == 'image' }}"
[save_img] fs.save --field file --folder images
[save_doc] fs.save --field file --folder docs
webhook --> check
check -->|image| save_img
check -->|default| save_doc
Verbs
| Verb | Purpose |
|---|---|
register | Create or update a pipeline definition |
activate | Enable a pipeline to respond to triggers |
deactivate | Disable a pipeline |
execute | Run a pipeline manually with input |
Flags
Flags use --name value syntax. Common types:
--path /api/route— string value--method GET,POST— comma-separated list--width 200— number--durable— boolean (presence = true)--value "{{ $input.name }}"— expression with template interpolation