federation_node_report_in
The mothership link (CO 486): a self-hosted node reports in to the hub on its own initiative (poll-shaped, node-initiated — the hub never calls the node). NODE-SIGNED, not operator-token'd: the node's identity IS its signature over the canonical envelope { node_id, nonce, timestamp, route }, verified against its bound key (federation_node_key_bind). Carries version, catalog digest, and journal head; advances the node's liveness clock (minutes), which is separate from the operator's manager standing (days) — a dark node never accelerates its operator's decay. Fails closed on a bad/absent/replayed signature or a stale timestamp. No operator token required; the signature is the auth. Returns: { ok: true, last_report_in, report_in_count } or { error, code }. Example: call federation_node_report_in with arguments {}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| alg | Yes | Signature algorithm of the bound key. | |
| nonce | Yes | A fresh single-use nonce (part of the signed envelope). | |
| node_id | Yes | The reporting node. | |
| version | No | The node runtime version. | |
| signature | Yes | base64 signature over the canonical envelope, by the node bound key. | |
| timestamp | Yes | ISO timestamp, within the accepted skew window (part of the signed envelope). | |
| journal_head | No | The node journal head (git commit hash) for hub attestation. | |
| catalog_digest | No | Compact digest of the node catalog subtree. |