State Idunn's health wire contract where Idunn can own it
The RUDP connection id 0x1d0d0001 appeared nowhere in this repository. It lived only in Odin's publisher implementation, which meant the constant defining how to reach Idunn was owned by a consumer. The three constants are now stated here: connection id, signed statement schema, and the unsigned diagnostic schema. The publishing transport moves to CultLib as a generic module that takes them as a contract, so consumers declare them against this document rather than each carrying their own copy of the transport. Recorded a discrepancy while writing it down: the wire value for the unsigned schema is idunn.daemon_health, with no version suffix, while prose in guide.md and earlier in this file says idunn.daemon_health.v1. The table gives the wire value. Reconciling the prose is a separate question about whether the wire should carry the suffix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
a198db9b23
commit
1a9530b1ce
1 changed files with 28 additions and 0 deletions
|
|
@ -27,6 +27,34 @@ checkout or upstream cannot replace the daemon's liveness statement or block
|
|||
restart of an unhealthy admitted body. Continuity restart and deployment are
|
||||
separate authorities: only the latter is gated by the deployment brake.
|
||||
|
||||
## Wire contract
|
||||
|
||||
Idunn owns these constants. A publisher supplies them to a generic transport;
|
||||
they are not the transport's to choose, and this document is where they are
|
||||
defined.
|
||||
|
||||
| Constant | Value |
|
||||
| --- | --- |
|
||||
| RUDP connection id | `0x1d0d0001` |
|
||||
| Signed statement schema | `idunn.signed_daemon_health.v1` |
|
||||
| Unsigned diagnostic schema | `idunn.daemon_health` |
|
||||
|
||||
The signing purpose is the signed statement schema id, so a statement signed for
|
||||
Idunn cannot verify as another service's health. The signature and identity
|
||||
domains — `gamecult.provider-health.signature.v1` and
|
||||
`gamecult.provider-health.identity.v1` — are shared GameCult domains rather than
|
||||
Idunn's, and a publisher may not vary them.
|
||||
|
||||
The publishing transport lives in CultLib as
|
||||
`cultnet-ts`'s `signed-daemon-health` module. It is generic: it binds, shakes
|
||||
hands, signs, puts the document, and waits for the ack, taking the three
|
||||
constants above as a contract. Consumers declare that contract against this
|
||||
document; they do not each reimplement the transport.
|
||||
|
||||
Note that the unsigned schema is `idunn.daemon_health`, without a version
|
||||
suffix, while prose elsewhere in this repository says `idunn.daemon_health.v1`.
|
||||
The wire value is the one in the table.
|
||||
|
||||
## Inputs
|
||||
|
||||
The daemon-authored statement binds:
|
||||
|
|
|
|||
Loading…
Reference in a new issue