command-center-server.mjs) — not libp2p. Nodes present x-node-token. |CC_FEDERATION=1 required. Default OFF. Host must also POST [internal endpoint]. |.env / CC_CONTROL_TOKEN via node API | Node tokens are issued, hashed credentials — never the host control token. Node responses never serialize env. |enabled flag; only owner can issue credentials. |revoked:true + token hash left in place so resolve fails; instant deny. |nodeId + optional tenantId; list endpoints owner-only. |Issued nodes get capabilities: ['telemetry_write','knowledge_submit'] (read-only *from host's perspective* — node may write its own telemetry, not read host secrets).
1. Owner: POST [internal endpoint] {enabled:true}
2. Owner: POST [internal endpoint] {name} → { nodeId, token } once
3. Node: POST [internal endpoint] header x-node-token → session ack
4. Node: POST [internal endpoint] / POST [internal endpoint]
5. Owner: POST [internal endpoint]
State: state/federation.json + state/federation_quarantine.json under CC_STATE_DIR.