guildhouse-proto/attestation/v2/software.proto
Tyler King 98aa2b0ec7 feat(attestation): add SAT-SPEC-0002 protobuf definitions
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>
2026-02-28 09:12:59 -05:00

29 lines
1 KiB
Protocol Buffer

syntax = "proto3";
package substrate.attestation.v2;
// ─── Layer 2: Software Claim ────────────────────────────────────────
//
// Software provenance and capability declaration. Binds the running
// image to its build pipeline via QM-notarized build receipts.
message SoftwareClaim {
uint32 layer = 1; // MUST be 2
string image_id = 2;
bytes image_hash = 3;
bytes capability_manifest = 4; // H(manifest JSON)
repeated string capabilities = 5; // Informational
BuildProvenance build_provenance = 6;
string qm_build_receipt = 7;
bytes platform_claim_hash = 8; // L1 binding
bytes claim_hash = 9;
}
message BuildProvenance {
string source_repo = 1;
string source_commit = 2;
string builder_identity = 3; // SPIFFE ID or OIDC sub
string build_timestamp = 4; // ISO 8601
bool build_reproducible = 5;
uint32 builder_count = 6;
}