Ga naar hoofdinhoud

CnFlowsPage

The app-scoped flow list — manifest page type flows.

Every app authors its own flows (ADR-110 Decision 4): a dossiq flow operates on cases, a shillinq flow on budget lines, so the authoring surface belongs in the app whose objects it drives rather than behind a deep link to another app's list. The engine stays single (ADR-065) — this is a scoped view onto OpenRegister's one native flow store, not a per-app store.

Built on CnIndexPage per ADR-096, and deliberately not on the deprecated CnFlowIndexPage: a flow list is an ordinary index surface. The source is external (:objects from useFlowStore) because a flow is not an OpenRegister object — there is no register/schema pair for a type: "index" page to bind to, which is exactly why this needs its own page type.

Manifest usage

{
"id": "Flows",
"route": "/flows",
"type": "flows",
"title": "Flows",
"config": { "app": "dossiq" }
}

Pair it with a CnFlowEditorPage at /flows/:id.

Props

PropTypeDefaultDescription
appStringnullThe owning app id this list is scoped to. Omit to list every app's flows — the fleet-wide view OpenRegister uses. A leaf app should always set it, or it shows other apps' automations as its own.
titleString''Page heading. Defaults to a translated "Flows".
descriptionString''Page description. Defaults to a translated one-line explanation of what a flow is.
detailRouteString'/flows'Route path the list navigates to for a flow, with /<id> appended. Change only if the detail page is mounted somewhere other than the conventional /flows/:id.

Why the status column says more than "Enabled"

Enabled and dispatchable are not the same thing. A trigger fires with no acting user, so a flow with no owner has no identity to run as and will not start however enabled it looks. The list renders Enabled, but has no owner — it will not start for that case: it is the only place a user finds out before waiting for a run that never comes.