- Evidence integrity — every figure recomputed from a signed, hash-linked chain your products export. This is the proven-not-asserted posture, verifiable offline.
- Live service health — whether each product is actually up right now, polled on demand.
The bridge mirrors the Substrate 2 control plane contract on purpose,
so the same small pattern plugs a product into either control plane. The Command Center is
the control plane for the Health and Legal estate; Substrate 2 is the control plane for
payments and trust.
The contract
A product joins with two things, and nothing more:- A
/healthendpoint returning HTTP 200. - One self-register call on boot —
POST /v1/serviceswith a service token.
/health on demand and folds the result into the Live service
health panel. The product’s evidence export, if it has one, is unchanged: live health is
added alongside it, never in place of it.
The service token
Registration is gated by a dedicated service token, deliberately separate from the console’s role-based login. It is narrowly scoped: it can register and remove services, and nothing else. Set it explicitly withCOMMAND_CENTER_SERVICE_TOKEN, or let the console bootstrap one on
first run into <COMMAND_CENTER_DATA_DIR>/command-center-service-token (written 0600):
Records Vault: the worked example
Records Vault ships a serve layer that self-registers on boot. Point it at the console with theCCC_HUB_* environment variables and run it:
CCC_HUB_SELF_URL is the address the console uses to poll the product’s health, so it must be
the product’s own reachable URL on your network. On startup the vault registers itself; if the
console is absent or unreachable the registration is skipped and the vault still boots.
Confirm it joined and is live:
records-vault as Live, beside the Evidence integrity panel that re-verifies the
evidence the vault exports.
Add any product
Any service, in any language, joins the same way. It needs a/health endpoint returning 200
and one call on boot:
hub_client (~50 lines, standard library only) and call
register_from_env() on startup; a non-Python product makes the same single request directly.
There is no shared SDK to adopt and no outbound dependency: the product makes one call, the
console does the rest.
On-demand polling
The console polls health when the dashboard is loaded or/api/services is called, not on a
background loop. A product that is down reads as Down, never as an error, so a failed poll
never breaks the console. Registrations and removals are appended to the console’s
Falcon-signed, hash-linked audit log, so which products were bridged, and when is itself
offline-verifiable evidence.
Command Center bridge API
| Endpoint | Purpose |
|---|---|
POST /v1/services | register a product (service token) |
GET /v1/services | list registered products |
DELETE /v1/services/{name} | remove a product (service token) |
GET /api/services | live health across all registered products (signed-in) |
See also
- Compliance Command Center — the console this plugs into
- Records Vault — the worked example, the first product to bridge
- Substrate 2 Addons — the same contract for the payments and trust control plane