Add protobuf message definitions for the four-layer attestation architecture defined in SAT-SPEC-0002. Package: substrate.attestation.v2 Files: - common.proto: QmReceipt (hash-chained Ed25519-signed receipts) - platform.proto: PlatformClaim, TpmQuoteBinding (L1 hardware identity) - software.proto: SoftwareClaim, BuildProvenance (L2 image provenance) - governance.proto: GovernanceClaim, AccordReference, DelegationReference (L3) - session.proto: SessionClaim, ActorContext, PostureEvidence, PostureLevel (L4) - sat.proto: SatBundle (composite, optional claim fields for has_*() codegen) Also adds buf.yaml for lint/breaking-change checks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
44 lines
1.4 KiB
Protocol Buffer
44 lines
1.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package substrate.attestation.v2;
|
|
|
|
// ─── Layer 3: Governance Claim ──────────────────────────────────────
|
|
//
|
|
// Governance state binding: active accords, delegations, and ceremony
|
|
// state. Hash-chained via governance_epoch for tamper detection.
|
|
|
|
message GovernanceClaim {
|
|
uint32 layer = 1; // MUST be 3
|
|
bytes governance_state_hash = 2;
|
|
repeated AccordReference active_accords = 3;
|
|
repeated DelegationReference active_delegations = 4;
|
|
uint32 pending_ceremonies = 5;
|
|
uint64 governance_epoch = 6;
|
|
bytes previous_governance_hash = 7;
|
|
bytes platform_claim_hash = 8;
|
|
bytes software_claim_hash = 9;
|
|
bytes claim_hash = 10;
|
|
}
|
|
|
|
message AccordReference {
|
|
string accord_id = 1;
|
|
bytes accord_hash = 2;
|
|
string forge_repo = 3;
|
|
string forge_commit = 4;
|
|
repeated string parties = 5;
|
|
string scope = 6; // Summary
|
|
string activated_at = 7; // ISO 8601
|
|
optional string expires_at = 8;
|
|
string qm_receipt = 9;
|
|
}
|
|
|
|
message DelegationReference {
|
|
string delegation_id = 1;
|
|
string delegator = 2;
|
|
string delegate = 3;
|
|
repeated string scope = 4;
|
|
string delegator_accord = 5;
|
|
optional string ceremony_id = 6;
|
|
string qm_receipt = 7;
|
|
string expires_at = 8; // ISO 8601
|
|
}
|