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>
118 lines
2.8 KiB
Protocol Buffer
118 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
package runner.v1;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/protobuf/duration.proto";
|
|
|
|
// ── Enums ──
|
|
|
|
enum TriggerType {
|
|
TRIGGER_TYPE_UNSPECIFIED = 0;
|
|
TRIGGER_TYPE_MERGE = 1;
|
|
TRIGGER_TYPE_TAG = 2;
|
|
TRIGGER_TYPE_MANUAL = 3;
|
|
TRIGGER_TYPE_SCHEDULE = 4;
|
|
TRIGGER_TYPE_WEBHOOK = 5;
|
|
TRIGGER_TYPE_AGENT = 6;
|
|
}
|
|
|
|
enum StepStatus {
|
|
STEP_STATUS_UNSPECIFIED = 0;
|
|
STEP_STATUS_PENDING = 1;
|
|
STEP_STATUS_RUNNING = 2;
|
|
STEP_STATUS_SUCCEEDED = 3;
|
|
STEP_STATUS_FAILED = 4;
|
|
STEP_STATUS_SKIPPED = 5;
|
|
STEP_STATUS_CANCELLED = 6;
|
|
}
|
|
|
|
enum RunPhase {
|
|
RUN_PHASE_UNSPECIFIED = 0;
|
|
RUN_PHASE_PENDING = 1;
|
|
RUN_PHASE_RUNNING = 2;
|
|
RUN_PHASE_SUCCEEDED = 3;
|
|
RUN_PHASE_FAILED = 4;
|
|
RUN_PHASE_CANCELLED = 5;
|
|
RUN_PHASE_NOTARIZED = 6;
|
|
}
|
|
|
|
// ── Messages ──
|
|
|
|
message TriggerEvent {
|
|
TriggerType trigger_type = 1;
|
|
string commit_hash = 2;
|
|
string branch = 3;
|
|
string tag = 4;
|
|
string requested_by = 5;
|
|
string merge_session_id = 6;
|
|
google.protobuf.Timestamp triggered_at = 7;
|
|
}
|
|
|
|
message StepResult {
|
|
string name = 1;
|
|
string step_type = 2;
|
|
StepStatus status = 3;
|
|
int32 exit_code = 4;
|
|
google.protobuf.Duration duration = 5;
|
|
bytes stdout_hash = 6;
|
|
bytes stderr_hash = 7;
|
|
repeated ArtifactRef artifacts = 8;
|
|
string error_message = 9;
|
|
uint32 attempt = 10;
|
|
google.protobuf.Timestamp started_at = 11;
|
|
google.protobuf.Timestamp completed_at = 12;
|
|
}
|
|
|
|
message ArtifactRef {
|
|
string name = 1;
|
|
string path = 2;
|
|
bytes content_hash = 3;
|
|
int64 size_bytes = 4;
|
|
string media_type = 5;
|
|
string oci_digest = 6;
|
|
}
|
|
|
|
message PipelineResult {
|
|
string run_id = 1;
|
|
string pipeline_name = 2;
|
|
TriggerEvent trigger = 3;
|
|
RunPhase phase = 4;
|
|
repeated StepResult steps = 5;
|
|
google.protobuf.Timestamp started_at = 6;
|
|
google.protobuf.Timestamp completed_at = 7;
|
|
google.protobuf.Duration total_duration = 8;
|
|
string runner_svid = 9;
|
|
bytes pipeline_yaml_hash = 10;
|
|
string cluster_id = 11;
|
|
AttestationInfo attestation = 12;
|
|
}
|
|
|
|
message AttestationInfo {
|
|
bool anchored = 1;
|
|
string anchor_id = 2;
|
|
bytes merkle_leaf = 3;
|
|
bytes merkle_root = 4;
|
|
int32 leaf_index = 5;
|
|
}
|
|
|
|
message LogEntry {
|
|
string step_name = 1;
|
|
string stream = 2;
|
|
string line = 3;
|
|
google.protobuf.Timestamp timestamp = 4;
|
|
uint64 sequence = 5;
|
|
}
|
|
|
|
message PipelineRunSummary {
|
|
string run_id = 1;
|
|
string pipeline_name = 2;
|
|
RunPhase phase = 3;
|
|
TriggerType trigger_type = 4;
|
|
string commit_hash = 5;
|
|
google.protobuf.Timestamp started_at = 6;
|
|
google.protobuf.Timestamp completed_at = 7;
|
|
uint32 steps_total = 8;
|
|
uint32 steps_succeeded = 9;
|
|
uint32 steps_failed = 10;
|
|
bool attested = 11;
|
|
}
|