pub struct ChainLink {
pub id: Option<Uuid>,
pub sequence: Option<u64>,
pub kind: ChainLinkKind,
pub payload: Vec<u8>,
pub attestation: Vec<u8>,
pub signature: Option<Vec<u8>>,
}Expand description
One entry in an enclave’s public chain. The opaque byte fields are the same shape on the wire (base64 in the API JSON) and at rest (raw bytes in the backend DB) — this struct is the canonical representation either way.
id and sequence are assigned by the backend at insert time;
in-flight links being validated for the FIRST time will not have
them populated. Use [ChainLink::with_assignment] to attach them
after validation returns Outcome::Append.
Fields§
§id: Option<Uuid>Backend-assigned UUID. Absent on inbound (pre-ingest) links; populated on every link returned by the public read endpoint.
sequence: Option<u64>Per-enclave monotonic ordering, starts at 0. Absent on inbound links — the backend computes it at validation time.
kind: ChainLinkKind§payload: Vec<u8>CBOR-encoded payload. Decode against the kind-specific struct:
BootPayload / UpgradePayload / RevocationPayload.
attestation: Vec<u8>COSE_Sign1 attestation document. user_data == sha256(payload).
signature: Option<Vec<u8>>64-byte raw r || s ECDSA P-256 signature over payload under
the enclave’s control private key. Required for upgrade /
revocation, absent on boot.