Zebflow Documentation

DSL Syntax

Pipeline DSL syntax reference

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

VerbPurpose
registerCreate or update a pipeline definition
activateEnable a pipeline to respond to triggers
deactivateDisable a pipeline
executeRun 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