Workflow Observatory is a static, browser-only app: no server, no accounts, no network calls, no secrets, no real side effects.
| Input | Treated as |
|---|---|
| Run JSON import | Untrusted. 2 MB cap, strict schema (unknown keys rejected), every definition validated, and the stored ledger must equal a fresh replay of the commands; else nothing changes. |
| Workflow JSON import | Untrusted. Same cap, strict schema and structural validation; an older or equal revision of an existing workflow is refused. |
localStorage workspace |
Untrusted. Re-validated and every run replayed on load; an unreadable copy is kept aside and offered as a download, and the examples are shown. |
| Names, labels, notes, data | Rendered as text by React, never as HTML. Length-limited. |
- "Side effects" such as sending a proposal email are records in an in-page store. No email, HTTP request, file write or message is produced.
- Roles are labels chosen in the UI, not authenticated identities. The approval checks demonstrate a state-machine rule; they are not access control.
- The app makes no claim of durable, distributed or fault-tolerant execution.
The runtime reads no clock and uses no randomness. Run ids and a run's epoch are chosen once, outside the runtime, when a run is created; replays reuse them.
Report problems through a private security advisory on the repository once it is published, or by contacting the owner.