federation_node_catalog_sync
Push your node's vendor-catalog projection to the hub index (CO 492 Phase 2). NODE-SIGNED like report-in: the node signs the canonical envelope and replaces ONLY its own indexed entries — one node can never touch another's projection, because the sync is keyed by the authenticated node id. Push-not-pull: discovery reads the hub-local index and never reaches out to a node at search time, so a dark node adds zero latency and zero failure to search. Entries carry tenant_id/sku/name/price (USD, peg applied node-side) + optional category/description; wholesale replace; max 500 entries. Served to buyers only while the node's staleness rung is fresh or flagged (CO 490) — a withheld node's vendors vanish from discovery by construction. Returns: { ok: true, count, refused: [{ tenant_id, holder_node_id }] } or { error, code }. Example: call federation_node_catalog_sync 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). | |
| entries | Yes | The full current projection (wholesale replace; max 500). Each: tenant_id, sku, name, price (USD) + optional category/description. | |
| node_id | Yes | The syncing node. | |
| signature | Yes | base64 signature over the canonical envelope, by the node bound key. | |
| timestamp | Yes | ISO timestamp within the skew window (part of the signed envelope). |