Files
client/interface/proto/forest/v1/artifacts.proto
2026-03-15 19:46:33 +01:00

63 lines
1.6 KiB
Protocol Buffer

syntax = "proto3";
package forest.v1;
message BeginUploadArtifactRequest {}
message BeginUploadArtifactResponse {
string upload_id = 1;
}
message UploadArtifactRequest {
string upload_id = 1;
string env = 2;
string destination = 3;
string file_name = 4;
string file_content = 5;
// Category of the file: "deployment" (default), "spec", or "attachment"
string category = 6;
}
message UploadArtifactResponse {}
message CommitArtifactRequest{
string upload_id = 1;
}
message CommitArtifactResponse {
string artifact_id = 1;
}
message GetArtifactFilesRequest {
// The artifact_id (UUID from annotations/artifacts table)
string artifact_id = 1;
// Optional filter: "deployment", "spec", "attachment". Empty = all categories.
optional string category = 2;
}
message GetArtifactFilesResponse {
repeated ArtifactFile files = 1;
}
message ArtifactFile {
string file_name = 1;
string category = 2;
string env = 3;
string destination = 4;
string content = 5;
}
message GetArtifactSpecRequest {
string artifact_id = 1;
}
message GetArtifactSpecResponse {
// The spec file content (forest.cue), empty string if no spec was uploaded.
string content = 1;
}
service ArtifactService {
rpc BeginUploadArtifact(BeginUploadArtifactRequest) returns (BeginUploadArtifactResponse);
rpc UploadArtifact(stream UploadArtifactRequest) returns (UploadArtifactResponse);
rpc CommitArtifact(CommitArtifactRequest) returns (CommitArtifactResponse);
rpc GetArtifactFiles(GetArtifactFilesRequest) returns (GetArtifactFilesResponse);
rpc GetArtifactSpec(GetArtifactSpecRequest) returns (GetArtifactSpecResponse);
}