Browse the docs
Visual ↔ YAML
The canvas and the file are two views of one workflow.
A Destaris workflow is portable YAML. The visual canvas is for building it; the YAML is what actually runs. They're two views of the same thing, and you can switch between them at any time from the toolbar.
Why portable YAML
Because a workflow is plain text, it's:
- Version-controllable — commit it, review changes in a pull request, diff it like any other code.
- Auditable — every step is explicit. There's no hidden state and no black box.
- Portable — the format is the open engine's own. Your automations aren't rows in someone's database; they're files you own.
The shape of the file
A workflow has a name, a list of nodes, and a list of edges connecting them:
name: triage-and-notify
nodes:
- id: schedule
type: trigger.cron
config: { cron: "*/15 * * * *" }
- id: fetchIssues
type: task.http
config:
url: "https://api.example.com/issues?state=open"
- id: triage
type: agent.run
config:
prompt: "Decide the priority of the newest issue."
- id: route
type: task.branch
config: { expression: "triage.priority" }
edges:
- { from: schedule, to: fetchIssues }
- { from: fetchIssues, to: triage }
- { from: triage, to: route }
Each node has an id, a type (from the node reference),
and a config. Edges wire from one node to another, optionally when a branch
takes a particular path.
Switching views
In the editor toolbar, toggle Visual ↔ YAML. Edits in either view describe the same workflow — build visually when that's faster, drop into YAML when you want precise control or to copy a workflow between machines.