Docs / docs (push) Successful in 26s
Playwright Tests / test-playwright (1, 2) (push) Failing after 4m7s
Playwright Tests / test-playwright (2, 2) (push) Failing after 2m30s
pre-commit / pre-commit (push) Failing after 2m42s
Test Backend / test-backend (push) Failing after 3m3s
Compose Smoke Test / test-compose (push) Successful in 32s
Playwright Tests / merge-reports (push) Successful in 1m51s
150 lines
5.8 KiB
Markdown
150 lines
5.8 KiB
Markdown
# The flow editor
|
|
|
|
Build a flow by naming its messages and configuring its nodes. Fluksio draws
|
|
the connections and arranges the canvas for you.
|
|
|
|
## The canvas
|
|
|
|
The graph runs left to right on desktop and top to bottom on phones.
|
|
|
|
- **Nodes** show their execution status.
|
|
- **Edges** pulse when values pass through. Click one to inspect its payload.
|
|
- **Endpoints** show flow inputs, dashboard widgets and nodes in other flows
|
|
that exchange messages with this flow.
|
|
|
|
Values update over a websocket. A connection banner tells you when the editor
|
|
cannot reach the engine.
|
|
|
|
## Adding a node
|
|
|
|
Choose **Add node** in the bottom dock, or use ⌘P / Ctrl-P. The command palette
|
|
also jumps between flows and offers reusable nodes. Select a type to add it
|
|
and open its settings.
|
|
|
|
## The node panel
|
|
|
|
**Consumes** and **Provides** declare the node's ports. Each has a port name,
|
|
payload type, bound message and delivery interval. Outputs also have a
|
|
streaming toggle.
|
|
|
|
Message fields suggest existing names. Matching an output's message is how
|
|
you connect an input.
|
|
|
|
A blank port-name field follows the message's last segment. Set a port name
|
|
to keep the argument name fixed while changing its message binding. Names use
|
|
letters, digits and `_`, cannot start with a digit, and must be unique among
|
|
the node's inputs or outputs.
|
|
|
|
Renaming an output's message updates its consumers in the flow. Changing an
|
|
input binding points that input at a different message.
|
|
|
|
### Settings
|
|
|
|
Built-in nodes show forms for their configuration. Credential fields offer
|
|
stored [secrets](operations.md#secrets). JSON settings open a larger editor
|
|
and save only when the value parses.
|
|
|
|
Function nodes also let you add settings passed as arguments alongside the
|
|
ports. See [Where a node's values come from](../concepts/values.md).
|
|
|
|
**Timeout** on a Function node limits silence, not total duration. A node
|
|
yielding regularly can run longer than its timeout. Empty or `0` means no
|
|
limit, the default.
|
|
|
|
**Resources** selects a shared worker pool, a named flavor or custom CPU,
|
|
memory and GPU requirements. Placement by `device` and `device_policy` is
|
|
configured through the API or flow JSON; see [Remote workers](../code/workers.md).
|
|
|
|
### Code and reuse
|
|
|
|
Define `process(...)` in **Code**. If the file instead contains exactly one
|
|
public function, Fluksio uses that function.
|
|
|
|
Code saves as you type. ⌘S / Ctrl-S in the code editor saves immediately;
|
|
**Publish** applies ordinary node code to the running flow. Generated code
|
|
from `fluksio sync` is read-only: edit its source repository and sync again.
|
|
|
|
Only superusers can add or edit code-running nodes. Other users can read code
|
|
and configure permitted built-in nodes.
|
|
|
|
**Reuse** shares node code as a library entry. Saving shared code takes effect
|
|
immediately in every flow using it, so check its users before changing it.
|
|
|
|
## The flow panel
|
|
|
|
Open **Flow settings** from the pencil button in the dock.
|
|
|
|
| Setting | Purpose |
|
|
|---|---|
|
|
| **Running** | starts or stops the published live flow's subscriptions, schedules and webhooks |
|
|
| **Mode** | chooses continuous `live` operation or requested `batch` runs |
|
|
| **Inputs** | declares external messages and starting values; batch inputs become run parameters |
|
|
| **Result** | selects batch output messages |
|
|
| **Contents** | shows the node count and message namespace |
|
|
|
|
For live inputs, **Publish this value now** sends the starting value immediately.
|
|
Changing a stored starting value alone does not replace an existing message.
|
|
|
|
## Inspecting an edge
|
|
|
|
Click an edge to see its latest payload, timestamp and recent numeric history.
|
|
Republish its value from the producer to run downstream nodes without waiting
|
|
for the next sensor reading.
|
|
|
|
## The dock
|
|
|
|
| Control | Action |
|
|
|---|---|
|
|
| **Add node** | opens the command palette |
|
|
| **Fit to screen** | fits the graph; desktop only |
|
|
| **Run** | executes the current live flow once; for batch flows, asks for run parameters |
|
|
| **Pause / Resume** | holds or releases pending work while values still arrive |
|
|
| **Step** | releases one held item while paused |
|
|
| **Flow settings** | opens the flow panel |
|
|
| **Publish** | puts the saved draft live |
|
|
| **Discard** | removes unpublished changes |
|
|
| **Issues** | lists problems by node |
|
|
| **Logs** | shows filterable node output |
|
|
|
|
**Run** uses the current draft when one exists without publishing it. It
|
|
executes real node code, including device and network actions. To try a single
|
|
value in a live flow, publish it from a flow input or edge inspector.
|
|
|
|
Pause and step are useful for inspecting held work. They do not make a draft
|
|
run a simulation.
|
|
|
|
## Shortcuts
|
|
|
|
Use ⌘ on macOS and Ctrl elsewhere.
|
|
|
|
| Shortcut | Action |
|
|
|---|---|
|
|
| ⌘P / Ctrl-P | command palette |
|
|
| ⌘S / Ctrl-S | publish the flow; inside the code editor, save code |
|
|
| ⌘Z / Ctrl-Z | undo a graph edit |
|
|
| ⌘⇧Z / Ctrl-Shift-Z | redo a graph edit |
|
|
| ⌘C / Ctrl-C | copy selected nodes |
|
|
| ⌘V / Ctrl-V | paste nodes, including into another flow |
|
|
|
|
Text fields and the code editor keep their own undo and clipboard behavior.
|
|
|
|
## Drafts, conflicts and issues
|
|
|
|
Edits are saved as drafts. The engine keeps running the published version until
|
|
you publish; shared code follows the exception above. **Discard** returns to
|
|
the published version. Delete a never-published flow to remove it.
|
|
|
|
If another editor saved the same flow, a stale save or publish returns a
|
|
conflict. Reload and review their changes before retrying.
|
|
|
|
The canvas reports unconnected inputs, missing starting values, cycles and
|
|
code-load errors. These prevent the affected flow from running. Unauthenticated
|
|
webhooks are advisory; runtime node-health problems clear when the node
|
|
recovers. See [Flow issues](../concepts/flows.md#when-a-flow-needs-attention).
|
|
|
|
## See also
|
|
|
|
- [Flows, nodes and messages](../concepts/flows.md)
|
|
- [Node types](../reference/node-types.md)
|
|
- [Writing node code](../code/nodes.md)
|