Frontend addresses flows and dashboards by id: routes /flows/$flowId, /dashboards/$id and /view/$id, query keys, saves, lists, device pickers, search, brain and endpoint links and generated results dashboards go by id, while live values, issues, pauses and message names keep the key; tabs take the title from the document; creating uses POST and opens the issued id; the flow and dashboard panels show key and id with a copy button and a served HTTP or WebSocket node shows its hook URL under the flow id; specs create by POST and ids.spec.ts exercises issued ids

This commit is contained in:
2026-11-02 19:57:43 +01:00
parent fd637e0f1e
commit fa15522cb0
65 changed files with 1380 additions and 784 deletions
+7 -1
View File
@@ -256,6 +256,12 @@ when no usable message value is available.
To change one on a schedule, have a scheduled node publish its bound message.
The top of the panel shows the dashboard's key and its id, with a copy button
for the id. The id never changes: the editor, `/view/{id}` and the devices
showing the dashboard all use it. A dashboard from before ids were introduced
kept its key as its id, while one created now gets an opaque id such as
`d_k3q7m2xa`. The tab shows the title.
### Look and theme
**Fluksio** is the default look. **Material** uses flat tonal cards; **Glass**
@@ -448,7 +454,7 @@ under the finger, as a tile view moves.
## Showing one
Open `/view/{name}` for a dashboard-only view with your normal session.
Open `/view/{id}` for a dashboard-only view with your normal session.
For a dedicated screen, pair a device.
## Devices: hanging a screen on a wall
+12
View File
@@ -82,6 +82,12 @@ limit, the default.
memory and GPU requirements. Placement by `worker` and `worker_policy` is
configured through the API or flow JSON; see [Remote workers](../code/workers.md).
An HTTP or WebSocket node whose URL is a path, such as `/tick`, is served by
the engine. The panel then shows the full **Webhook URL** (or **Socket URL**)
with a copy button. It sits under the flow's id, `/hooks/<flow id>/tick`, so it
keeps working whatever the flow is called. A stored secret is not shown. The
URL names it as the last segment for you to fill in.
### Code and reuse
Define `process(...)` in **Code**. If the file instead contains exactly one
@@ -105,12 +111,18 @@ Open **Flow settings** from the pencil button in the dock.
| Setting | Purpose |
|---|---|
| **Identity** | shows the flow's key, the namespace of its messages, and its id with a copy button |
| **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, their starting values and whether a run or a panel writes them; run inputs become run parameters |
| **Result** | selects batch output messages |
| **Contents** | shows the node count and message namespace |
The id never changes. The editor's address, hook URLs and the API use it. A
flow that existed before ids were introduced kept its key as its id, while a
flow created now gets an opaque one such as `f_k3q7m2xa`. The tab and the
canvas show the title, or the key when there is no title.
For live inputs, **Publish this value now** sends the starting value immediately.
Changing a stored starting value alone does not replace an existing message.