Skip to content

Recorder Control Node

mchristegh edited this page Jul 14, 2026 · 1 revision

flight-recorder-control — the cockpit panel. An input-only node targeting one recorder (inline or tap); wire inject buttons into it to build a control panel in your workspace. Its entire input is commands by definition, which is what keeps the inline recorder's traffic wire pure.

Ports

Port Carries
Input Commands: a string in msg.payload, case-insensitive, whitespace-tolerant.
Output — ack One receipt per command (see below).

Configuration

Recorder — a picker listing every recorder in the workspace as "name — inline/tap on 'Flow Label'". If a previously configured target no longer exists, the picker shows "(missing recorder: id)" so you can see why commands are failing rather than staring at a blank field.

Target resolution happens per command, not at deploy — so deploy order between the control and its target doesn't matter, and a target that's redeployed is found again automatically.

Commands

The full vocabulary lives on the Commands page. In brief: dump, clear, pause, resume, mark, query, mute, unmute — with optional companions msg.context (dump), msg.annotation (mark), and msg.target (mute/unmute).

mute/unmute are tap concepts; sent to an inline recorder they're acknowledged by the recorder as an ignored command rather than erroring.

Where results go — receipt vs. delivery

This is the node's key semantic: results route to the target recorder's outputs; the ack is a receipt.

A dump sent through the control produces the incident on the recorder's incidents output — the recorder stays the single source of truth for wiring, no matter where commands come from. The control's ack output emits, per command:

{
  "ok": true,
  "command": "dump",
  "targetId": "abc123",
  "result": { ...the incident / snapshot / command result... },
  "reason": null
}

with msg.inReplyTo echoing the triggering message's _msgid, so a flow issuing several commands can correlate receipts. On failure, ok: false and a reason string.

Failure behavior

Nothing throws; every failure produces a warn, a red status, and a structured nack:

Situation Receipt reason
Non-string payload command must be a string payload
Unrecognized command unknown command '...'
No target configured no target recorder configured
Target not currently deployed target recorder not deployed
Target's command handler threw command failed: ...

Status

Green dump ✓ after each successful command; red with the failure reason otherwise.

Clone this wiki locally