guildhouse-proto/quartermaster/v1/capabilities.proto
Tyler King 2720a631b8 Initial: Guildhouse protobuf definitions
14 proto files across 5 gRPC service domains:
- quartermaster/v1 (6): governance, registry, notary, credentials, capabilities, pipelines
- bascule/v1 (4): session, command, gateway, ceremony
- workspace/v1 (1): workspace management
- runner/v1 (2): pipeline execution
- schematic/v1 (1): composite meta-artifacts

Consumed as a git submodule by guildhouse-platform (Rust) and guildhouse-dashboard (Python).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 10:29:06 -05:00

87 lines
2 KiB
Protocol Buffer

syntax = "proto3";
package quartermaster.v1;
import "google/protobuf/timestamp.proto";
service QuartermasterCapabilities {
rpc SubmitProfile (SubmitProfileRequest) returns (SubmitProfileResponse);
rpc GetProfile (GetProfileRequest) returns (GetProfileResponse);
rpc ListProfiles (ListProfilesRequest) returns (ListProfilesResponse);
rpc VerifyProfile (VerifyProfileRequest) returns (VerifyProfileResponse);
rpc FlushAnchor (FlushAnchorRequest) returns (FlushAnchorResponse);
}
message SubmitProfileRequest {
string cluster_id = 1;
string image_digest = 2;
bytes profile_canonical = 3;
bytes profile_hash = 4;
string miner_version = 5;
string source_repo = 6;
string source_commit = 7;
}
message SubmitProfileResponse {
string capability_id = 1;
google.protobuf.Timestamp accepted_at = 2;
bool anchored = 3;
string anchor_id = 4;
}
message GetProfileRequest {
bytes manifest_hash = 1;
}
message GetProfileResponse {
string capability_id = 1;
google.protobuf.Timestamp time = 2;
string cluster_id = 3;
bytes manifest_hash = 4;
string image_digest = 5;
string miner_version = 6;
string source_repo = 7;
string source_commit = 8;
bool anchored = 9;
string anchor_id = 10;
int32 leaf_index = 11;
}
message ListProfilesRequest {
string cluster_id = 1;
int64 limit = 2;
}
message ListProfilesResponse {
repeated GetProfileResponse profiles = 1;
}
message VerifyProfileRequest {
bytes manifest_hash = 1;
}
message ProofStepMsg {
enum Direction {
LEFT = 0;
RIGHT = 1;
}
Direction direction = 1;
bytes hash = 2;
}
message VerifyProfileResponse {
bool verified = 1;
string anchor_id = 2;
bytes merkle_root = 3;
repeated ProofStepMsg proof = 4;
string error = 5;
}
message FlushAnchorRequest {
string cluster_id = 1;
}
message FlushAnchorResponse {
string anchor_id = 1;
bytes merkle_root = 2;
int32 leaf_count = 3;
}