Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterSchedulerServiceServer(s grpc.ServiceRegistrar, srv SchedulerServiceServer)
- func RegisterWorkerServiceServer(s grpc.ServiceRegistrar, srv WorkerServiceServer)
- type ActiveVM
- func (*ActiveVM) Descriptor() ([]byte, []int)deprecated
- func (x *ActiveVM) GetImageDigest() string
- func (x *ActiveVM) GetState() VMState
- func (x *ActiveVM) GetTenantId() string
- func (x *ActiveVM) GetVmId() string
- func (*ActiveVM) ProtoMessage()
- func (x *ActiveVM) ProtoReflect() protoreflect.Message
- func (x *ActiveVM) Reset()
- func (x *ActiveVM) String() string
- type AuditRecord
- func (*AuditRecord) Descriptor() ([]byte, []int)deprecated
- func (x *AuditRecord) GetCacheKey() string
- func (x *AuditRecord) GetDurationMs() int64
- func (x *AuditRecord) GetExitCode() int32
- func (x *AuditRecord) GetFlags() []string
- func (x *AuditRecord) GetImageDigest() string
- func (x *AuditRecord) GetOutputDigest() []byte
- func (x *AuditRecord) GetSchedulerId() string
- func (x *AuditRecord) GetSourceDigest() []byte
- func (x *AuditRecord) GetTenantId() string
- func (x *AuditRecord) GetTimestamp() int64
- func (x *AuditRecord) GetVmId() string
- func (x *AuditRecord) GetWorkerId() string
- func (*AuditRecord) ProtoMessage()
- func (x *AuditRecord) ProtoReflect() protoreflect.Message
- func (x *AuditRecord) Reset()
- func (x *AuditRecord) String() string
- type AuthRequest
- func (*AuthRequest) Descriptor() ([]byte, []int)deprecated
- func (x *AuthRequest) GetJwtToken() string
- func (x *AuthRequest) GetStaticToken() string
- func (x *AuthRequest) GetTenantId() string
- func (x *AuthRequest) GetToken() isAuthRequest_Token
- func (*AuthRequest) ProtoMessage()
- func (x *AuthRequest) ProtoReflect() protoreflect.Message
- func (x *AuthRequest) Reset()
- func (x *AuthRequest) String() string
- type AuthRequest_JwtToken
- type AuthRequest_StaticToken
- type AuthResponse
- func (*AuthResponse) Descriptor() ([]byte, []int)deprecated
- func (x *AuthResponse) GetSessionToken() string
- func (x *AuthResponse) GetSigningPublicKey() []byte
- func (x *AuthResponse) GetSuccess() bool
- func (*AuthResponse) ProtoMessage()
- func (x *AuthResponse) ProtoReflect() protoreflect.Message
- func (x *AuthResponse) Reset()
- func (x *AuthResponse) String() string
- type BlobChunk
- func (*BlobChunk) Descriptor() ([]byte, []int)deprecated
- func (x *BlobChunk) GetBody() isBlobChunk_Body
- func (x *BlobChunk) GetData() []byte
- func (x *BlobChunk) GetHeader() *BlobDigest
- func (*BlobChunk) ProtoMessage()
- func (x *BlobChunk) ProtoReflect() protoreflect.Message
- func (x *BlobChunk) Reset()
- func (x *BlobChunk) String() string
- type BlobChunk_Data
- type BlobChunk_Header
- type BlobDigest
- func (*BlobDigest) Descriptor() ([]byte, []int)deprecated
- func (x *BlobDigest) GetDigest() []byte
- func (x *BlobDigest) GetSchedulerToken() string
- func (x *BlobDigest) GetSize() uint64
- func (x *BlobDigest) GetTenantId() string
- func (*BlobDigest) ProtoMessage()
- func (x *BlobDigest) ProtoReflect() protoreflect.Message
- func (x *BlobDigest) Reset()
- func (x *BlobDigest) String() string
- type BlobRef
- func (*BlobRef) Descriptor() ([]byte, []int)deprecated
- func (x *BlobRef) GetDigest() []byte
- func (x *BlobRef) GetPath() string
- func (x *BlobRef) GetSize() uint64
- func (*BlobRef) ProtoMessage()
- func (x *BlobRef) ProtoReflect() protoreflect.Message
- func (x *BlobRef) Reset()
- func (x *BlobRef) String() string
- type CasDescriptor
- func (*CasDescriptor) Descriptor() ([]byte, []int)deprecated
- func (x *CasDescriptor) GetBlobs() []*BlobRef
- func (x *CasDescriptor) GetEntryPath() string
- func (x *CasDescriptor) GetManifestDigest() []byte
- func (*CasDescriptor) ProtoMessage()
- func (x *CasDescriptor) ProtoReflect() protoreflect.Message
- func (x *CasDescriptor) Reset()
- func (x *CasDescriptor) String() string
- type CompileProbe
- func (*CompileProbe) Descriptor() ([]byte, []int)deprecated
- func (x *CompileProbe) GetArgs() []string
- func (x *CompileProbe) GetImageDigest() string
- func (x *CompileProbe) GetManifestDigest() []byte
- func (x *CompileProbe) GetSchedulerToken() string
- func (x *CompileProbe) GetTenantId() string
- func (*CompileProbe) ProtoMessage()
- func (x *CompileProbe) ProtoReflect() protoreflect.Message
- func (x *CompileProbe) Reset()
- func (x *CompileProbe) String() string
- type CompileRequest
- func (*CompileRequest) Descriptor() ([]byte, []int)deprecated
- func (x *CompileRequest) GetArgs() []string
- func (x *CompileRequest) GetCwd() string
- func (x *CompileRequest) GetDescriptor_() *RemoteDescriptor
- func (*CompileRequest) ProtoMessage()
- func (x *CompileRequest) ProtoReflect() protoreflect.Message
- func (x *CompileRequest) Reset()
- func (x *CompileRequest) String() string
- type CompileResponse
- func (*CompileResponse) Descriptor() ([]byte, []int)deprecated
- func (x *CompileResponse) GetAudit() *AuditRecord
- func (x *CompileResponse) GetCacheKey() string
- func (x *CompileResponse) GetExitCode() int32
- func (x *CompileResponse) GetExtraOutputs() map[string][]byte
- func (x *CompileResponse) GetOutputArtifact() []byte
- func (x *CompileResponse) GetStderr() []byte
- func (x *CompileResponse) GetStdout() []byte
- func (*CompileResponse) ProtoMessage()
- func (x *CompileResponse) ProtoReflect() protoreflect.Message
- func (x *CompileResponse) Reset()
- func (x *CompileResponse) String() string
- type GetTenantIdPRequest
- func (*GetTenantIdPRequest) Descriptor() ([]byte, []int)deprecated
- func (x *GetTenantIdPRequest) GetTenantId() string
- func (*GetTenantIdPRequest) ProtoMessage()
- func (x *GetTenantIdPRequest) ProtoReflect() protoreflect.Message
- func (x *GetTenantIdPRequest) Reset()
- func (x *GetTenantIdPRequest) String() string
- type GetTenantIdPResponse
- func (*GetTenantIdPResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetTenantIdPResponse) GetAudience() string
- func (x *GetTenantIdPResponse) GetClientId() string
- func (x *GetTenantIdPResponse) GetIssuer() string
- func (x *GetTenantIdPResponse) GetScope() string
- func (x *GetTenantIdPResponse) GetTokenUrl() string
- func (*GetTenantIdPResponse) ProtoMessage()
- func (x *GetTenantIdPResponse) ProtoReflect() protoreflect.Message
- func (x *GetTenantIdPResponse) Reset()
- func (x *GetTenantIdPResponse) String() string
- type HeartbeatResponse
- type PreprocessedDescriptor
- func (*PreprocessedDescriptor) Descriptor() ([]byte, []int)deprecated
- func (x *PreprocessedDescriptor) GetPreprocessedSource() []byte
- func (*PreprocessedDescriptor) ProtoMessage()
- func (x *PreprocessedDescriptor) ProtoReflect() protoreflect.Message
- func (x *PreprocessedDescriptor) Reset()
- func (x *PreprocessedDescriptor) String() string
- type ProbeMiss
- type ProbeResponse
- func (*ProbeResponse) Descriptor() ([]byte, []int)deprecated
- func (x *ProbeResponse) GetHit() *CompileResponse
- func (x *ProbeResponse) GetMiss() *ProbeMiss
- func (x *ProbeResponse) GetResult() isProbeResponse_Result
- func (*ProbeResponse) ProtoMessage()
- func (x *ProbeResponse) ProtoReflect() protoreflect.Message
- func (x *ProbeResponse) Reset()
- func (x *ProbeResponse) String() string
- type ProbeResponse_Hit
- type ProbeResponse_Miss
- type RegisterWorkerRequest
- func (*RegisterWorkerRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RegisterWorkerRequest) GetAvailableVcpus() int32
- func (x *RegisterWorkerRequest) GetCertFingerprint() []byte
- func (x *RegisterWorkerRequest) GetCurrentLoad() int32
- func (x *RegisterWorkerRequest) GetImageDigests() []string
- func (x *RegisterWorkerRequest) GetPublicAddr() string
- func (x *RegisterWorkerRequest) GetRuntime() RuntimeType
- func (x *RegisterWorkerRequest) GetSessionToken() string
- func (x *RegisterWorkerRequest) GetWorkerId() string
- func (*RegisterWorkerRequest) ProtoMessage()
- func (x *RegisterWorkerRequest) ProtoReflect() protoreflect.Message
- func (x *RegisterWorkerRequest) Reset()
- func (x *RegisterWorkerRequest) String() string
- type RegisterWorkerResponse
- func (*RegisterWorkerResponse) Descriptor() ([]byte, []int)deprecated
- func (x *RegisterWorkerResponse) GetErrorCode() uint32
- func (x *RegisterWorkerResponse) GetSuccess() bool
- func (*RegisterWorkerResponse) ProtoMessage()
- func (x *RegisterWorkerResponse) ProtoReflect() protoreflect.Message
- func (x *RegisterWorkerResponse) Reset()
- func (x *RegisterWorkerResponse) String() string
- type RemoteDescriptor
- func (*RemoteDescriptor) Descriptor() ([]byte, []int)deprecated
- func (x *RemoteDescriptor) GetCas() *CasDescriptor
- func (x *RemoteDescriptor) GetImageDigest() string
- func (x *RemoteDescriptor) GetImageRef() string
- func (x *RemoteDescriptor) GetPreprocessed() *PreprocessedDescriptor
- func (x *RemoteDescriptor) GetSchedulerToken() string
- func (x *RemoteDescriptor) GetSourceMode() SourceMode
- func (x *RemoteDescriptor) GetSourceSettings() isRemoteDescriptor_SourceSettings
- func (x *RemoteDescriptor) GetTenantId() string
- func (*RemoteDescriptor) ProtoMessage()
- func (x *RemoteDescriptor) ProtoReflect() protoreflect.Message
- func (x *RemoteDescriptor) Reset()
- func (x *RemoteDescriptor) String() string
- type RemoteDescriptor_Cas
- type RemoteDescriptor_Preprocessed
- type RouteRequest
- func (*RouteRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RouteRequest) GetImageDigest() string
- func (x *RouteRequest) GetSessionToken() string
- func (x *RouteRequest) GetTenantId() string
- func (*RouteRequest) ProtoMessage()
- func (x *RouteRequest) ProtoReflect() protoreflect.Message
- func (x *RouteRequest) Reset()
- func (x *RouteRequest) String() string
- type RouteResponse
- func (*RouteResponse) Descriptor() ([]byte, []int)deprecated
- func (x *RouteResponse) GetCertFingerprint() []byte
- func (x *RouteResponse) GetToken() string
- func (x *RouteResponse) GetWorkerAddress() string
- func (*RouteResponse) ProtoMessage()
- func (x *RouteResponse) ProtoReflect() protoreflect.Message
- func (x *RouteResponse) Reset()
- func (x *RouteResponse) String() string
- type RuntimeType
- func (RuntimeType) Descriptor() protoreflect.EnumDescriptor
- func (x RuntimeType) Enum() *RuntimeType
- func (RuntimeType) EnumDescriptor() ([]byte, []int)deprecated
- func (x RuntimeType) Number() protoreflect.EnumNumber
- func (x RuntimeType) String() string
- func (RuntimeType) Type() protoreflect.EnumType
- type SchedulerServiceClient
- type SchedulerServiceServer
- type SourceMode
- type UnimplementedSchedulerServiceServer
- func (UnimplementedSchedulerServiceServer) Authenticate(context.Context, *AuthRequest) (*AuthResponse, error)
- func (UnimplementedSchedulerServiceServer) GetTenantIdP(context.Context, *GetTenantIdPRequest) (*GetTenantIdPResponse, error)
- func (UnimplementedSchedulerServiceServer) Heartbeat(context.Context, *WorkerHeartbeat) (*HeartbeatResponse, error)
- func (UnimplementedSchedulerServiceServer) RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerResponse, error)
- func (UnimplementedSchedulerServiceServer) Route(context.Context, *RouteRequest) (*RouteResponse, error)
- type UnimplementedWorkerServiceServer
- func (UnimplementedWorkerServiceServer) Compile(context.Context, *CompileRequest) (*CompileResponse, error)
- func (UnimplementedWorkerServiceServer) FindMissingBlobs(grpc.BidiStreamingServer[BlobDigest, BlobDigest]) error
- func (UnimplementedWorkerServiceServer) ProbeCompileCache(context.Context, *CompileProbe) (*ProbeResponse, error)
- func (UnimplementedWorkerServiceServer) UploadBlobs(grpc.ClientStreamingServer[BlobChunk, UploadResult]) error
- type UnsafeSchedulerServiceServer
- type UnsafeWorkerServiceServer
- type UploadResult
- func (*UploadResult) Descriptor() ([]byte, []int)deprecated
- func (x *UploadResult) GetBlobsReceived() uint64
- func (x *UploadResult) GetBytesReceived() uint64
- func (x *UploadResult) GetRejectedDigests() [][]byte
- func (*UploadResult) ProtoMessage()
- func (x *UploadResult) ProtoReflect() protoreflect.Message
- func (x *UploadResult) Reset()
- func (x *UploadResult) String() string
- type VMState
- type WorkerHeartbeat
- func (*WorkerHeartbeat) Descriptor() ([]byte, []int)deprecated
- func (x *WorkerHeartbeat) GetActiveVms() []*ActiveVM
- func (x *WorkerHeartbeat) GetAvailableVcpus() int32
- func (x *WorkerHeartbeat) GetCurrentLoad() int32
- func (x *WorkerHeartbeat) GetSessionToken() string
- func (x *WorkerHeartbeat) GetWorkerId() string
- func (*WorkerHeartbeat) ProtoMessage()
- func (x *WorkerHeartbeat) ProtoReflect() protoreflect.Message
- func (x *WorkerHeartbeat) Reset()
- func (x *WorkerHeartbeat) String() string
- type WorkerServiceClient
- type WorkerServiceServer
- type WorkerService_FindMissingBlobsClient
- type WorkerService_FindMissingBlobsServer
- type WorkerService_UploadBlobsClient
- type WorkerService_UploadBlobsServer
Constants ¶
const ( SchedulerService_GetTenantIdP_FullMethodName = "/protocol.SchedulerService/GetTenantIdP" SchedulerService_Authenticate_FullMethodName = "/protocol.SchedulerService/Authenticate" SchedulerService_Route_FullMethodName = "/protocol.SchedulerService/Route" SchedulerService_RegisterWorker_FullMethodName = "/protocol.SchedulerService/RegisterWorker" SchedulerService_Heartbeat_FullMethodName = "/protocol.SchedulerService/Heartbeat" )
const ( WorkerService_Compile_FullMethodName = "/protocol.WorkerService/Compile" WorkerService_ProbeCompileCache_FullMethodName = "/protocol.WorkerService/ProbeCompileCache" WorkerService_FindMissingBlobs_FullMethodName = "/protocol.WorkerService/FindMissingBlobs" WorkerService_UploadBlobs_FullMethodName = "/protocol.WorkerService/UploadBlobs" )
const MaxCompileMessageBytes = 256 << 20 // 256 MiB
MaxCompileMessageBytes is the gRPC message-size ceiling for the worker.Compile RPC. gRPC's default 4 MiB is wildly insufficient for real compile workloads: a single Linux-kernel TU's preprocessed source can hit 15 MiB once <linux/*.h> finishes expanding, and the returned object (with debug info or kallsyms-style symbol tables) can be much larger again. 256 MiB is enough headroom that even the pathological TUs in the kernel build complete, with the request / response still bounded so a confused client can't OOM a worker.
Both ends of the unary worker.Compile RPC apply this limit: the server via grpc.MaxRecvMsgSize / grpc.MaxSendMsgSize, the client via grpc.MaxCallRecvMsgSize / grpc.MaxCallSendMsgSize. The scheduler RPCs (Route, RegisterWorker, Heartbeat) stay on gRPC defaults — they carry routing decisions, not compile payloads.
Variables ¶
var ( RuntimeType_name = map[int32]string{ 0: "FIRECRACKER", 1: "HYPERV", 2: "DANGEROUS", } RuntimeType_value = map[string]int32{ "FIRECRACKER": 0, "HYPERV": 1, "DANGEROUS": 2, } )
Enum value maps for RuntimeType.
var ( VMState_name = map[int32]string{ 0: "RUNNING", 1: "SNAPSHOTTED", 2: "BOOTING", } VMState_value = map[string]int32{ "RUNNING": 0, "SNAPSHOTTED": 1, "BOOTING": 2, } )
Enum value maps for VMState.
var ( SourceMode_name = map[int32]string{ 0: "SOURCE_MODE_UNSPECIFIED", 1: "CAS", 2: "PREPROCESSED", } SourceMode_value = map[string]int32{ "SOURCE_MODE_UNSPECIFIED": 0, "CAS": 1, "PREPROCESSED": 2, } )
Enum value maps for SourceMode.
var File_compile_proto protoreflect.FileDescriptor
var File_enums_proto protoreflect.FileDescriptor
var File_messages_proto protoreflect.FileDescriptor
var File_scheduler_proto protoreflect.FileDescriptor
var File_worker_proto protoreflect.FileDescriptor
var SchedulerService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "protocol.SchedulerService", HandlerType: (*SchedulerServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "GetTenantIdP", Handler: _SchedulerService_GetTenantIdP_Handler, }, { MethodName: "Authenticate", Handler: _SchedulerService_Authenticate_Handler, }, { MethodName: "Route", Handler: _SchedulerService_Route_Handler, }, { MethodName: "RegisterWorker", Handler: _SchedulerService_RegisterWorker_Handler, }, { MethodName: "Heartbeat", Handler: _SchedulerService_Heartbeat_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "scheduler.proto", }
SchedulerService_ServiceDesc is the grpc.ServiceDesc for SchedulerService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var WorkerService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "protocol.WorkerService", HandlerType: (*WorkerServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "Compile", Handler: _WorkerService_Compile_Handler, }, { MethodName: "ProbeCompileCache", Handler: _WorkerService_ProbeCompileCache_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "FindMissingBlobs", Handler: _WorkerService_FindMissingBlobs_Handler, ServerStreams: true, ClientStreams: true, }, { StreamName: "UploadBlobs", Handler: _WorkerService_UploadBlobs_Handler, ClientStreams: true, }, }, Metadata: "worker.proto", }
WorkerService_ServiceDesc is the grpc.ServiceDesc for WorkerService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
Functions ¶
func RegisterSchedulerServiceServer ¶
func RegisterSchedulerServiceServer(s grpc.ServiceRegistrar, srv SchedulerServiceServer)
func RegisterWorkerServiceServer ¶
func RegisterWorkerServiceServer(s grpc.ServiceRegistrar, srv WorkerServiceServer)
Types ¶
type ActiveVM ¶
type ActiveVM struct {
VmId string `protobuf:"bytes,1,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
ImageDigest string `protobuf:"bytes,3,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
State VMState `protobuf:"varint,4,opt,name=state,proto3,enum=protocol.VMState" json:"state,omitempty"`
// contains filtered or unexported fields
}
func (*ActiveVM) Descriptor
deprecated
func (*ActiveVM) GetImageDigest ¶
func (*ActiveVM) GetTenantId ¶
func (*ActiveVM) ProtoMessage ¶
func (*ActiveVM) ProtoMessage()
func (*ActiveVM) ProtoReflect ¶
func (x *ActiveVM) ProtoReflect() protoreflect.Message
type AuditRecord ¶
type AuditRecord struct {
TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
SchedulerId string `protobuf:"bytes,2,opt,name=scheduler_id,json=schedulerId,proto3" json:"scheduler_id,omitempty"`
WorkerId string `protobuf:"bytes,3,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"`
VmId string `protobuf:"bytes,4,opt,name=vm_id,json=vmId,proto3" json:"vm_id,omitempty"`
ImageDigest string `protobuf:"bytes,5,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
SourceDigest []byte `protobuf:"bytes,6,opt,name=source_digest,json=sourceDigest,proto3" json:"source_digest,omitempty"`
OutputDigest []byte `protobuf:"bytes,7,opt,name=output_digest,json=outputDigest,proto3" json:"output_digest,omitempty"`
CacheKey string `protobuf:"bytes,8,opt,name=cache_key,json=cacheKey,proto3" json:"cache_key,omitempty"`
Flags []string `protobuf:"bytes,9,rep,name=flags,proto3" json:"flags,omitempty"`
ExitCode int32 `protobuf:"varint,10,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
DurationMs int64 `protobuf:"varint,11,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"`
Timestamp int64 `protobuf:"varint,12,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
// contains filtered or unexported fields
}
func (*AuditRecord) Descriptor
deprecated
func (*AuditRecord) Descriptor() ([]byte, []int)
Deprecated: Use AuditRecord.ProtoReflect.Descriptor instead.
func (*AuditRecord) GetCacheKey ¶
func (x *AuditRecord) GetCacheKey() string
func (*AuditRecord) GetDurationMs ¶
func (x *AuditRecord) GetDurationMs() int64
func (*AuditRecord) GetExitCode ¶
func (x *AuditRecord) GetExitCode() int32
func (*AuditRecord) GetFlags ¶
func (x *AuditRecord) GetFlags() []string
func (*AuditRecord) GetImageDigest ¶
func (x *AuditRecord) GetImageDigest() string
func (*AuditRecord) GetOutputDigest ¶
func (x *AuditRecord) GetOutputDigest() []byte
func (*AuditRecord) GetSchedulerId ¶
func (x *AuditRecord) GetSchedulerId() string
func (*AuditRecord) GetSourceDigest ¶
func (x *AuditRecord) GetSourceDigest() []byte
func (*AuditRecord) GetTenantId ¶
func (x *AuditRecord) GetTenantId() string
func (*AuditRecord) GetTimestamp ¶
func (x *AuditRecord) GetTimestamp() int64
func (*AuditRecord) GetVmId ¶
func (x *AuditRecord) GetVmId() string
func (*AuditRecord) GetWorkerId ¶
func (x *AuditRecord) GetWorkerId() string
func (*AuditRecord) ProtoMessage ¶
func (*AuditRecord) ProtoMessage()
func (*AuditRecord) ProtoReflect ¶
func (x *AuditRecord) ProtoReflect() protoreflect.Message
func (*AuditRecord) Reset ¶
func (x *AuditRecord) Reset()
func (*AuditRecord) String ¶
func (x *AuditRecord) String() string
type AuthRequest ¶
type AuthRequest struct {
// tenant_id selects which tenant's IdP the scheduler validates the
// JWT against. Required for jwt_token; ignored for static_token
// (workers are tenant-agnostic at the auth layer). Carried in the
// request rather than as a JWT claim so that an IdP configured for
// tenant A is never asked to validate a token labeled as tenant B —
// see docs/plan/multi-tenant.md "Threat model".
TenantId string `protobuf:"bytes,3,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
// Types that are valid to be assigned to Token:
//
// *AuthRequest_JwtToken
// *AuthRequest_StaticToken
Token isAuthRequest_Token `protobuf_oneof:"token"`
// contains filtered or unexported fields
}
func (*AuthRequest) Descriptor
deprecated
func (*AuthRequest) Descriptor() ([]byte, []int)
Deprecated: Use AuthRequest.ProtoReflect.Descriptor instead.
func (*AuthRequest) GetJwtToken ¶
func (x *AuthRequest) GetJwtToken() string
func (*AuthRequest) GetStaticToken ¶
func (x *AuthRequest) GetStaticToken() string
func (*AuthRequest) GetTenantId ¶
func (x *AuthRequest) GetTenantId() string
func (*AuthRequest) GetToken ¶
func (x *AuthRequest) GetToken() isAuthRequest_Token
func (*AuthRequest) ProtoMessage ¶
func (*AuthRequest) ProtoMessage()
func (*AuthRequest) ProtoReflect ¶
func (x *AuthRequest) ProtoReflect() protoreflect.Message
func (*AuthRequest) Reset ¶
func (x *AuthRequest) Reset()
func (*AuthRequest) String ¶
func (x *AuthRequest) String() string
type AuthRequest_JwtToken ¶
type AuthRequest_JwtToken struct {
JwtToken string `protobuf:"bytes,1,opt,name=jwt_token,json=jwtToken,proto3,oneof"`
}
type AuthRequest_StaticToken ¶
type AuthRequest_StaticToken struct {
StaticToken string `protobuf:"bytes,2,opt,name=static_token,json=staticToken,proto3,oneof"`
}
type AuthResponse ¶
type AuthResponse struct {
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
SessionToken string `protobuf:"bytes,2,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"` // pass as "session-token" gRPC metadata on subsequent calls
SigningPublicKey []byte `protobuf:"bytes,3,opt,name=signing_public_key,json=signingPublicKey,proto3,oneof" json:"signing_public_key,omitempty"` // scheduler's public key for verifying task JWTs (workers only)
// contains filtered or unexported fields
}
func (*AuthResponse) Descriptor
deprecated
func (*AuthResponse) Descriptor() ([]byte, []int)
Deprecated: Use AuthResponse.ProtoReflect.Descriptor instead.
func (*AuthResponse) GetSessionToken ¶
func (x *AuthResponse) GetSessionToken() string
func (*AuthResponse) GetSigningPublicKey ¶
func (x *AuthResponse) GetSigningPublicKey() []byte
func (*AuthResponse) GetSuccess ¶
func (x *AuthResponse) GetSuccess() bool
func (*AuthResponse) ProtoMessage ¶
func (*AuthResponse) ProtoMessage()
func (*AuthResponse) ProtoReflect ¶
func (x *AuthResponse) ProtoReflect() protoreflect.Message
func (*AuthResponse) Reset ¶
func (x *AuthResponse) Reset()
func (*AuthResponse) String ¶
func (x *AuthResponse) String() string
type BlobChunk ¶
type BlobChunk struct {
// First message in a per-blob run carries the header; subsequent
// messages carry data only. The worker tracks the active blob via
// stream state, opens a BLAKE3 hasher on header, and finalises on
// the next header (or stream close).
//
// Types that are valid to be assigned to Body:
//
// *BlobChunk_Header
// *BlobChunk_Data
Body isBlobChunk_Body `protobuf_oneof:"body"`
// contains filtered or unexported fields
}
func (*BlobChunk) Descriptor
deprecated
func (*BlobChunk) GetHeader ¶
func (x *BlobChunk) GetHeader() *BlobDigest
func (*BlobChunk) ProtoMessage ¶
func (*BlobChunk) ProtoMessage()
func (*BlobChunk) ProtoReflect ¶
func (x *BlobChunk) ProtoReflect() protoreflect.Message
type BlobChunk_Data ¶
type BlobChunk_Data struct {
Data []byte `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}
type BlobChunk_Header ¶
type BlobChunk_Header struct {
Header *BlobDigest `protobuf:"bytes,1,opt,name=header,proto3,oneof"` // digest the client claims; worker recomputes and verifies
}
type BlobDigest ¶
type BlobDigest struct {
Digest []byte `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
Size uint64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
// tenant_id scopes the source-store namespace this blob lives in,
// and is cross-checked against scheduler_token's tenant claim by
// the worker. Required on every header.
TenantId string `protobuf:"bytes,3,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
// scheduler_token is the short-lived per-route JWT the scheduler
// issued when the client called Route. Worker verifies it against
// the scheduler pubkey (already hydrated at RegisterWorker) and
// refuses the stream if tenant_id, image_digest, or worker_id
// don't match. Required on every header — repeated rather than
// stream-init because gRPC bidi streams have no first-message
// contract enforced by the runtime. See docs/plan/multi-tenant.md
// "Worker enforcement".
SchedulerToken string `protobuf:"bytes,4,opt,name=scheduler_token,json=schedulerToken,proto3" json:"scheduler_token,omitempty"`
// contains filtered or unexported fields
}
func (*BlobDigest) Descriptor
deprecated
func (*BlobDigest) Descriptor() ([]byte, []int)
Deprecated: Use BlobDigest.ProtoReflect.Descriptor instead.
func (*BlobDigest) GetDigest ¶
func (x *BlobDigest) GetDigest() []byte
func (*BlobDigest) GetSchedulerToken ¶
func (x *BlobDigest) GetSchedulerToken() string
func (*BlobDigest) GetSize ¶
func (x *BlobDigest) GetSize() uint64
func (*BlobDigest) GetTenantId ¶
func (x *BlobDigest) GetTenantId() string
func (*BlobDigest) ProtoMessage ¶
func (*BlobDigest) ProtoMessage()
func (*BlobDigest) ProtoReflect ¶
func (x *BlobDigest) ProtoReflect() protoreflect.Message
func (*BlobDigest) Reset ¶
func (x *BlobDigest) Reset()
func (*BlobDigest) String ¶
func (x *BlobDigest) String() string
type BlobRef ¶
type BlobRef struct {
Digest []byte `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"` // BLAKE3-256 of the file's bytes
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` // materialization path inside the source root (validated for traversal at apply time)
Size uint64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` // size in bytes; advisory, worker re-checks on fetch
// contains filtered or unexported fields
}
func (*BlobRef) Descriptor
deprecated
func (*BlobRef) ProtoMessage ¶
func (*BlobRef) ProtoMessage()
func (*BlobRef) ProtoReflect ¶
func (x *BlobRef) ProtoReflect() protoreflect.Message
type CasDescriptor ¶
type CasDescriptor struct {
ManifestDigest []byte `protobuf:"bytes,1,opt,name=manifest_digest,json=manifestDigest,proto3" json:"manifest_digest,omitempty"` // BLAKE3-256 of the path-sorted (path, blob.digest) list
Blobs []*BlobRef `protobuf:"bytes,2,rep,name=blobs,proto3" json:"blobs,omitempty"`
EntryPath string `protobuf:"bytes,3,opt,name=entry_path,json=entryPath,proto3" json:"entry_path,omitempty"` // which blob is the translation-unit root
// contains filtered or unexported fields
}
CasDescriptor names the source-closure for a CAS-mode compile. The worker re-verifies manifest_digest against the (path, blob.digest) pairs in blobs, refuses on mismatch, then materializes each blob inside the VM at its Path before invoking the compiler against entry_path. See docs/plan/cas.md for the trust model (client never writes to S3; worker re-hashes everything on receipt) and the upload protocol (FindMissingBlobs + UploadBlobs on WorkerService).
func (*CasDescriptor) Descriptor
deprecated
func (*CasDescriptor) Descriptor() ([]byte, []int)
Deprecated: Use CasDescriptor.ProtoReflect.Descriptor instead.
func (*CasDescriptor) GetBlobs ¶
func (x *CasDescriptor) GetBlobs() []*BlobRef
func (*CasDescriptor) GetEntryPath ¶
func (x *CasDescriptor) GetEntryPath() string
func (*CasDescriptor) GetManifestDigest ¶
func (x *CasDescriptor) GetManifestDigest() []byte
func (*CasDescriptor) ProtoMessage ¶
func (*CasDescriptor) ProtoMessage()
func (*CasDescriptor) ProtoReflect ¶
func (x *CasDescriptor) ProtoReflect() protoreflect.Message
func (*CasDescriptor) Reset ¶
func (x *CasDescriptor) Reset()
func (*CasDescriptor) String ¶
func (x *CasDescriptor) String() string
type CompileProbe ¶
type CompileProbe struct {
ManifestDigest []byte `protobuf:"bytes,1,opt,name=manifest_digest,json=manifestDigest,proto3" json:"manifest_digest,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"` // worker derives flag-key from these
TenantId string `protobuf:"bytes,3,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
ImageDigest string `protobuf:"bytes,4,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
SchedulerToken string `protobuf:"bytes,5,opt,name=scheduler_token,json=schedulerToken,proto3" json:"scheduler_token,omitempty"`
// contains filtered or unexported fields
}
func (*CompileProbe) Descriptor
deprecated
func (*CompileProbe) Descriptor() ([]byte, []int)
Deprecated: Use CompileProbe.ProtoReflect.Descriptor instead.
func (*CompileProbe) GetArgs ¶
func (x *CompileProbe) GetArgs() []string
func (*CompileProbe) GetImageDigest ¶
func (x *CompileProbe) GetImageDigest() string
func (*CompileProbe) GetManifestDigest ¶
func (x *CompileProbe) GetManifestDigest() []byte
func (*CompileProbe) GetSchedulerToken ¶
func (x *CompileProbe) GetSchedulerToken() string
func (*CompileProbe) GetTenantId ¶
func (x *CompileProbe) GetTenantId() string
func (*CompileProbe) ProtoMessage ¶
func (*CompileProbe) ProtoMessage()
func (*CompileProbe) ProtoReflect ¶
func (x *CompileProbe) ProtoReflect() protoreflect.Message
func (*CompileProbe) Reset ¶
func (x *CompileProbe) Reset()
func (*CompileProbe) String ¶
func (x *CompileProbe) String() string
type CompileRequest ¶
type CompileRequest struct {
Cwd string `protobuf:"bytes,1,opt,name=cwd,proto3" json:"cwd,omitempty"`
Args []string `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
// For remote compilation only
Descriptor_ *RemoteDescriptor `protobuf:"bytes,3,opt,name=descriptor,proto3,oneof" json:"descriptor,omitempty"`
// contains filtered or unexported fields
}
func (*CompileRequest) Descriptor
deprecated
func (*CompileRequest) Descriptor() ([]byte, []int)
Deprecated: Use CompileRequest.ProtoReflect.Descriptor instead.
func (*CompileRequest) GetArgs ¶
func (x *CompileRequest) GetArgs() []string
func (*CompileRequest) GetCwd ¶
func (x *CompileRequest) GetCwd() string
func (*CompileRequest) GetDescriptor_ ¶
func (x *CompileRequest) GetDescriptor_() *RemoteDescriptor
func (*CompileRequest) ProtoMessage ¶
func (*CompileRequest) ProtoMessage()
func (*CompileRequest) ProtoReflect ¶
func (x *CompileRequest) ProtoReflect() protoreflect.Message
func (*CompileRequest) Reset ¶
func (x *CompileRequest) Reset()
func (*CompileRequest) String ¶
func (x *CompileRequest) String() string
type CompileResponse ¶
type CompileResponse struct {
ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
Stdout []byte `protobuf:"bytes,2,opt,name=stdout,proto3" json:"stdout,omitempty"`
Stderr []byte `protobuf:"bytes,3,opt,name=stderr,proto3" json:"stderr,omitempty"`
// For remote compilation only
OutputArtifact []byte `protobuf:"bytes,4,opt,name=output_artifact,json=outputArtifact,proto3,oneof" json:"output_artifact,omitempty"`
CacheKey *string `protobuf:"bytes,5,opt,name=cache_key,json=cacheKey,proto3,oneof" json:"cache_key,omitempty"`
Audit *AuditRecord `protobuf:"bytes,6,opt,name=audit,proto3,oneof" json:"audit,omitempty"`
// Side-effect output files the compile produced besides the primary
// `-o` artifact — typically `.d` files written by `-Wp,-MMD,<path>`
// / `-MF <path>` for the Make-style dep tracking the kernel build
// depends on for incremental builds. Keys are paths relative to
// the per-RPC output staging dir (`/out` in-container); the client
// writes each back to the corresponding path under its `inv.Cwd`.
//
// Populated for CAS-mode dispatches whether the response was a
// fresh compile or a cache hit — the CompileCache stores extras
// alongside the primary artifact (as a single `extras` blob,
// JSON-encoded) so warm hits replay the same .d files cold
// compiles produced. Without that, deleting a .d on disk would
// leave `make` re-firing the compile rule forever on cache-hit
// responses that returned the .o but no .d.
ExtraOutputs map[string][]byte `` /* 171-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*CompileResponse) Descriptor
deprecated
func (*CompileResponse) Descriptor() ([]byte, []int)
Deprecated: Use CompileResponse.ProtoReflect.Descriptor instead.
func (*CompileResponse) GetAudit ¶
func (x *CompileResponse) GetAudit() *AuditRecord
func (*CompileResponse) GetCacheKey ¶
func (x *CompileResponse) GetCacheKey() string
func (*CompileResponse) GetExitCode ¶
func (x *CompileResponse) GetExitCode() int32
func (*CompileResponse) GetExtraOutputs ¶
func (x *CompileResponse) GetExtraOutputs() map[string][]byte
func (*CompileResponse) GetOutputArtifact ¶
func (x *CompileResponse) GetOutputArtifact() []byte
func (*CompileResponse) GetStderr ¶
func (x *CompileResponse) GetStderr() []byte
func (*CompileResponse) GetStdout ¶
func (x *CompileResponse) GetStdout() []byte
func (*CompileResponse) ProtoMessage ¶
func (*CompileResponse) ProtoMessage()
func (*CompileResponse) ProtoReflect ¶
func (x *CompileResponse) ProtoReflect() protoreflect.Message
func (*CompileResponse) Reset ¶
func (x *CompileResponse) Reset()
func (*CompileResponse) String ¶
func (x *CompileResponse) String() string
type GetTenantIdPRequest ¶
type GetTenantIdPRequest struct {
TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
// contains filtered or unexported fields
}
func (*GetTenantIdPRequest) Descriptor
deprecated
func (*GetTenantIdPRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetTenantIdPRequest.ProtoReflect.Descriptor instead.
func (*GetTenantIdPRequest) GetTenantId ¶
func (x *GetTenantIdPRequest) GetTenantId() string
func (*GetTenantIdPRequest) ProtoMessage ¶
func (*GetTenantIdPRequest) ProtoMessage()
func (*GetTenantIdPRequest) ProtoReflect ¶
func (x *GetTenantIdPRequest) ProtoReflect() protoreflect.Message
func (*GetTenantIdPRequest) Reset ¶
func (x *GetTenantIdPRequest) Reset()
func (*GetTenantIdPRequest) String ¶
func (x *GetTenantIdPRequest) String() string
type GetTenantIdPResponse ¶
type GetTenantIdPResponse struct {
Issuer string `protobuf:"bytes,1,opt,name=issuer,proto3" json:"issuer,omitempty"`
TokenUrl string `protobuf:"bytes,2,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"`
Audience string `protobuf:"bytes,3,opt,name=audience,proto3" json:"audience,omitempty"`
// OAuth client_id + scope for this tenant. Both live on the
// scheduler so ops can rotate them without re-flashing every
// client. Empty fields are omitted from the password-grant POST.
ClientId string `protobuf:"bytes,4,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
Scope string `protobuf:"bytes,5,opt,name=scope,proto3" json:"scope,omitempty"`
// contains filtered or unexported fields
}
func (*GetTenantIdPResponse) Descriptor
deprecated
func (*GetTenantIdPResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetTenantIdPResponse.ProtoReflect.Descriptor instead.
func (*GetTenantIdPResponse) GetAudience ¶
func (x *GetTenantIdPResponse) GetAudience() string
func (*GetTenantIdPResponse) GetClientId ¶
func (x *GetTenantIdPResponse) GetClientId() string
func (*GetTenantIdPResponse) GetIssuer ¶
func (x *GetTenantIdPResponse) GetIssuer() string
func (*GetTenantIdPResponse) GetScope ¶
func (x *GetTenantIdPResponse) GetScope() string
func (*GetTenantIdPResponse) GetTokenUrl ¶
func (x *GetTenantIdPResponse) GetTokenUrl() string
func (*GetTenantIdPResponse) ProtoMessage ¶
func (*GetTenantIdPResponse) ProtoMessage()
func (*GetTenantIdPResponse) ProtoReflect ¶
func (x *GetTenantIdPResponse) ProtoReflect() protoreflect.Message
func (*GetTenantIdPResponse) Reset ¶
func (x *GetTenantIdPResponse) Reset()
func (*GetTenantIdPResponse) String ¶
func (x *GetTenantIdPResponse) String() string
type HeartbeatResponse ¶
type HeartbeatResponse struct {
// contains filtered or unexported fields
}
func (*HeartbeatResponse) Descriptor
deprecated
func (*HeartbeatResponse) Descriptor() ([]byte, []int)
Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead.
func (*HeartbeatResponse) ProtoMessage ¶
func (*HeartbeatResponse) ProtoMessage()
func (*HeartbeatResponse) ProtoReflect ¶
func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message
func (*HeartbeatResponse) Reset ¶
func (x *HeartbeatResponse) Reset()
func (*HeartbeatResponse) String ¶
func (x *HeartbeatResponse) String() string
type PreprocessedDescriptor ¶
type PreprocessedDescriptor struct {
PreprocessedSource []byte `protobuf:"bytes,1,opt,name=preprocessed_source,json=preprocessedSource,proto3" json:"preprocessed_source,omitempty"`
// contains filtered or unexported fields
}
func (*PreprocessedDescriptor) Descriptor
deprecated
func (*PreprocessedDescriptor) Descriptor() ([]byte, []int)
Deprecated: Use PreprocessedDescriptor.ProtoReflect.Descriptor instead.
func (*PreprocessedDescriptor) GetPreprocessedSource ¶
func (x *PreprocessedDescriptor) GetPreprocessedSource() []byte
func (*PreprocessedDescriptor) ProtoMessage ¶
func (*PreprocessedDescriptor) ProtoMessage()
func (*PreprocessedDescriptor) ProtoReflect ¶
func (x *PreprocessedDescriptor) ProtoReflect() protoreflect.Message
func (*PreprocessedDescriptor) Reset ¶
func (x *PreprocessedDescriptor) Reset()
func (*PreprocessedDescriptor) String ¶
func (x *PreprocessedDescriptor) String() string
type ProbeMiss ¶
type ProbeMiss struct {
// contains filtered or unexported fields
}
ProbeMiss carries no payload today; defined as a typed empty message so future fields (e.g. "missing blobs hint" if we ever fold FindMissingBlobs into the probe) don't break wire compatibility.
func (*ProbeMiss) Descriptor
deprecated
func (*ProbeMiss) ProtoMessage ¶
func (*ProbeMiss) ProtoMessage()
func (*ProbeMiss) ProtoReflect ¶
func (x *ProbeMiss) ProtoReflect() protoreflect.Message
type ProbeResponse ¶
type ProbeResponse struct {
// Types that are valid to be assigned to Result:
//
// *ProbeResponse_Hit
// *ProbeResponse_Miss
Result isProbeResponse_Result `protobuf_oneof:"result"`
// contains filtered or unexported fields
}
func (*ProbeResponse) Descriptor
deprecated
func (*ProbeResponse) Descriptor() ([]byte, []int)
Deprecated: Use ProbeResponse.ProtoReflect.Descriptor instead.
func (*ProbeResponse) GetHit ¶
func (x *ProbeResponse) GetHit() *CompileResponse
func (*ProbeResponse) GetMiss ¶
func (x *ProbeResponse) GetMiss() *ProbeMiss
func (*ProbeResponse) GetResult ¶
func (x *ProbeResponse) GetResult() isProbeResponse_Result
func (*ProbeResponse) ProtoMessage ¶
func (*ProbeResponse) ProtoMessage()
func (*ProbeResponse) ProtoReflect ¶
func (x *ProbeResponse) ProtoReflect() protoreflect.Message
func (*ProbeResponse) Reset ¶
func (x *ProbeResponse) Reset()
func (*ProbeResponse) String ¶
func (x *ProbeResponse) String() string
type ProbeResponse_Hit ¶
type ProbeResponse_Hit struct {
Hit *CompileResponse `protobuf:"bytes,1,opt,name=hit,proto3,oneof"` // cache hit: full result, client is done
}
type ProbeResponse_Miss ¶
type ProbeResponse_Miss struct {
Miss *ProbeMiss `protobuf:"bytes,2,opt,name=miss,proto3,oneof"` // cache miss: client proceeds to upload dance
}
type RegisterWorkerRequest ¶
type RegisterWorkerRequest struct {
SessionToken string `protobuf:"bytes,1,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
WorkerId string `protobuf:"bytes,2,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"`
PublicAddr string `protobuf:"bytes,3,opt,name=public_addr,json=publicAddr,proto3" json:"public_addr,omitempty"`
ImageDigests []string `protobuf:"bytes,4,rep,name=image_digests,json=imageDigests,proto3" json:"image_digests,omitempty"`
AvailableVcpus int32 `protobuf:"varint,5,opt,name=available_vcpus,json=availableVcpus,proto3" json:"available_vcpus,omitempty"`
CurrentLoad int32 `protobuf:"varint,6,opt,name=current_load,json=currentLoad,proto3" json:"current_load,omitempty"`
Runtime RuntimeType `protobuf:"varint,7,opt,name=runtime,proto3,enum=protocol.RuntimeType" json:"runtime,omitempty"`
CertFingerprint []byte `protobuf:"bytes,8,opt,name=cert_fingerprint,json=certFingerprint,proto3" json:"cert_fingerprint,omitempty"`
// contains filtered or unexported fields
}
func (*RegisterWorkerRequest) Descriptor
deprecated
func (*RegisterWorkerRequest) Descriptor() ([]byte, []int)
Deprecated: Use RegisterWorkerRequest.ProtoReflect.Descriptor instead.
func (*RegisterWorkerRequest) GetAvailableVcpus ¶
func (x *RegisterWorkerRequest) GetAvailableVcpus() int32
func (*RegisterWorkerRequest) GetCertFingerprint ¶
func (x *RegisterWorkerRequest) GetCertFingerprint() []byte
func (*RegisterWorkerRequest) GetCurrentLoad ¶
func (x *RegisterWorkerRequest) GetCurrentLoad() int32
func (*RegisterWorkerRequest) GetImageDigests ¶
func (x *RegisterWorkerRequest) GetImageDigests() []string
func (*RegisterWorkerRequest) GetPublicAddr ¶
func (x *RegisterWorkerRequest) GetPublicAddr() string
func (*RegisterWorkerRequest) GetRuntime ¶
func (x *RegisterWorkerRequest) GetRuntime() RuntimeType
func (*RegisterWorkerRequest) GetSessionToken ¶
func (x *RegisterWorkerRequest) GetSessionToken() string
func (*RegisterWorkerRequest) GetWorkerId ¶
func (x *RegisterWorkerRequest) GetWorkerId() string
func (*RegisterWorkerRequest) ProtoMessage ¶
func (*RegisterWorkerRequest) ProtoMessage()
func (*RegisterWorkerRequest) ProtoReflect ¶
func (x *RegisterWorkerRequest) ProtoReflect() protoreflect.Message
func (*RegisterWorkerRequest) Reset ¶
func (x *RegisterWorkerRequest) Reset()
func (*RegisterWorkerRequest) String ¶
func (x *RegisterWorkerRequest) String() string
type RegisterWorkerResponse ¶
type RegisterWorkerResponse struct {
Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
ErrorCode uint32 `protobuf:"varint,2,opt,name=error_code,json=errorCode,proto3" json:"error_code,omitempty"`
// contains filtered or unexported fields
}
func (*RegisterWorkerResponse) Descriptor
deprecated
func (*RegisterWorkerResponse) Descriptor() ([]byte, []int)
Deprecated: Use RegisterWorkerResponse.ProtoReflect.Descriptor instead.
func (*RegisterWorkerResponse) GetErrorCode ¶
func (x *RegisterWorkerResponse) GetErrorCode() uint32
func (*RegisterWorkerResponse) GetSuccess ¶
func (x *RegisterWorkerResponse) GetSuccess() bool
func (*RegisterWorkerResponse) ProtoMessage ¶
func (*RegisterWorkerResponse) ProtoMessage()
func (*RegisterWorkerResponse) ProtoReflect ¶
func (x *RegisterWorkerResponse) ProtoReflect() protoreflect.Message
func (*RegisterWorkerResponse) Reset ¶
func (x *RegisterWorkerResponse) Reset()
func (*RegisterWorkerResponse) String ¶
func (x *RegisterWorkerResponse) String() string
type RemoteDescriptor ¶
type RemoteDescriptor struct {
TenantId string `protobuf:"bytes,1,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
ImageDigest string `protobuf:"bytes,2,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
SchedulerToken string `protobuf:"bytes,3,opt,name=scheduler_token,json=schedulerToken,proto3" json:"scheduler_token,omitempty"`
SourceMode SourceMode `protobuf:"varint,4,opt,name=source_mode,json=sourceMode,proto3,enum=protocol.SourceMode" json:"source_mode,omitempty"`
// Types that are valid to be assigned to SourceSettings:
//
// *RemoteDescriptor_Preprocessed
// *RemoteDescriptor_Cas
SourceSettings isRemoteDescriptor_SourceSettings `protobuf_oneof:"source_settings"`
// Full OCI image reference, e.g. "ghcr.io/foo/toolchain@sha256:abc..."
// or "registry.example.com/team/toolchain:v1.2.3". Used by the worker
// to pull the image if it's not already in the local snapshotter.
// image_digest remains the canonical identity for routing, cache keys,
// and audit; image_ref is the pullable address.
ImageRef string `protobuf:"bytes,8,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"`
// contains filtered or unexported fields
}
func (*RemoteDescriptor) Descriptor
deprecated
func (*RemoteDescriptor) Descriptor() ([]byte, []int)
Deprecated: Use RemoteDescriptor.ProtoReflect.Descriptor instead.
func (*RemoteDescriptor) GetCas ¶
func (x *RemoteDescriptor) GetCas() *CasDescriptor
func (*RemoteDescriptor) GetImageDigest ¶
func (x *RemoteDescriptor) GetImageDigest() string
func (*RemoteDescriptor) GetImageRef ¶
func (x *RemoteDescriptor) GetImageRef() string
func (*RemoteDescriptor) GetPreprocessed ¶
func (x *RemoteDescriptor) GetPreprocessed() *PreprocessedDescriptor
func (*RemoteDescriptor) GetSchedulerToken ¶
func (x *RemoteDescriptor) GetSchedulerToken() string
func (*RemoteDescriptor) GetSourceMode ¶
func (x *RemoteDescriptor) GetSourceMode() SourceMode
func (*RemoteDescriptor) GetSourceSettings ¶
func (x *RemoteDescriptor) GetSourceSettings() isRemoteDescriptor_SourceSettings
func (*RemoteDescriptor) GetTenantId ¶
func (x *RemoteDescriptor) GetTenantId() string
func (*RemoteDescriptor) ProtoMessage ¶
func (*RemoteDescriptor) ProtoMessage()
func (*RemoteDescriptor) ProtoReflect ¶
func (x *RemoteDescriptor) ProtoReflect() protoreflect.Message
func (*RemoteDescriptor) Reset ¶
func (x *RemoteDescriptor) Reset()
func (*RemoteDescriptor) String ¶
func (x *RemoteDescriptor) String() string
type RemoteDescriptor_Cas ¶
type RemoteDescriptor_Cas struct {
Cas *CasDescriptor `protobuf:"bytes,7,opt,name=cas,proto3,oneof"`
}
type RemoteDescriptor_Preprocessed ¶
type RemoteDescriptor_Preprocessed struct {
Preprocessed *PreprocessedDescriptor `protobuf:"bytes,6,opt,name=preprocessed,proto3,oneof"`
}
type RouteRequest ¶
type RouteRequest struct {
SessionToken string `protobuf:"bytes,1,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
TenantId string `protobuf:"bytes,2,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
ImageDigest string `protobuf:"bytes,3,opt,name=image_digest,json=imageDigest,proto3" json:"image_digest,omitempty"`
// contains filtered or unexported fields
}
func (*RouteRequest) Descriptor
deprecated
func (*RouteRequest) Descriptor() ([]byte, []int)
Deprecated: Use RouteRequest.ProtoReflect.Descriptor instead.
func (*RouteRequest) GetImageDigest ¶
func (x *RouteRequest) GetImageDigest() string
func (*RouteRequest) GetSessionToken ¶
func (x *RouteRequest) GetSessionToken() string
func (*RouteRequest) GetTenantId ¶
func (x *RouteRequest) GetTenantId() string
func (*RouteRequest) ProtoMessage ¶
func (*RouteRequest) ProtoMessage()
func (*RouteRequest) ProtoReflect ¶
func (x *RouteRequest) ProtoReflect() protoreflect.Message
func (*RouteRequest) Reset ¶
func (x *RouteRequest) Reset()
func (*RouteRequest) String ¶
func (x *RouteRequest) String() string
type RouteResponse ¶
type RouteResponse struct {
WorkerAddress string `protobuf:"bytes,1,opt,name=worker_address,json=workerAddress,proto3" json:"worker_address,omitempty"`
Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` // JWT signed by scheduler; worker verifies signature
CertFingerprint []byte `protobuf:"bytes,3,opt,name=cert_fingerprint,json=certFingerprint,proto3" json:"cert_fingerprint,omitempty"` // SHA-256 of worker's TLS cert, for client-side pinning
// contains filtered or unexported fields
}
func (*RouteResponse) Descriptor
deprecated
func (*RouteResponse) Descriptor() ([]byte, []int)
Deprecated: Use RouteResponse.ProtoReflect.Descriptor instead.
func (*RouteResponse) GetCertFingerprint ¶
func (x *RouteResponse) GetCertFingerprint() []byte
func (*RouteResponse) GetToken ¶
func (x *RouteResponse) GetToken() string
func (*RouteResponse) GetWorkerAddress ¶
func (x *RouteResponse) GetWorkerAddress() string
func (*RouteResponse) ProtoMessage ¶
func (*RouteResponse) ProtoMessage()
func (*RouteResponse) ProtoReflect ¶
func (x *RouteResponse) ProtoReflect() protoreflect.Message
func (*RouteResponse) Reset ¶
func (x *RouteResponse) Reset()
func (*RouteResponse) String ¶
func (x *RouteResponse) String() string
type RuntimeType ¶
type RuntimeType int32
const ( RuntimeType_FIRECRACKER RuntimeType = 0 RuntimeType_HYPERV RuntimeType = 1 // DANGEROUS runs every compile as a child of the worker process with // no isolation at all — selected by the "really_really_dangerous" // runtime handler. Development and CI/test only. RuntimeType_DANGEROUS RuntimeType = 2 )
func (RuntimeType) Descriptor ¶
func (RuntimeType) Descriptor() protoreflect.EnumDescriptor
func (RuntimeType) Enum ¶
func (x RuntimeType) Enum() *RuntimeType
func (RuntimeType) EnumDescriptor
deprecated
func (RuntimeType) EnumDescriptor() ([]byte, []int)
Deprecated: Use RuntimeType.Descriptor instead.
func (RuntimeType) Number ¶
func (x RuntimeType) Number() protoreflect.EnumNumber
func (RuntimeType) String ¶
func (x RuntimeType) String() string
func (RuntimeType) Type ¶
func (RuntimeType) Type() protoreflect.EnumType
type SchedulerServiceClient ¶
type SchedulerServiceClient interface {
// GetTenantIdP is unauthenticated by design: the client only knows
// its tenant_id + scheduler URL from local config, and needs to
// discover where to OAuth before it can produce a JWT. See
// docs/plan/multi-tenant.md "Identity discovery (client side)".
GetTenantIdP(ctx context.Context, in *GetTenantIdPRequest, opts ...grpc.CallOption) (*GetTenantIdPResponse, error)
Authenticate(ctx context.Context, in *AuthRequest, opts ...grpc.CallOption) (*AuthResponse, error)
Route(ctx context.Context, in *RouteRequest, opts ...grpc.CallOption) (*RouteResponse, error)
RegisterWorker(ctx context.Context, in *RegisterWorkerRequest, opts ...grpc.CallOption) (*RegisterWorkerResponse, error)
Heartbeat(ctx context.Context, in *WorkerHeartbeat, opts ...grpc.CallOption) (*HeartbeatResponse, error)
}
SchedulerServiceClient is the client API for SchedulerService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewSchedulerServiceClient ¶
func NewSchedulerServiceClient(cc grpc.ClientConnInterface) SchedulerServiceClient
type SchedulerServiceServer ¶
type SchedulerServiceServer interface {
// GetTenantIdP is unauthenticated by design: the client only knows
// its tenant_id + scheduler URL from local config, and needs to
// discover where to OAuth before it can produce a JWT. See
// docs/plan/multi-tenant.md "Identity discovery (client side)".
GetTenantIdP(context.Context, *GetTenantIdPRequest) (*GetTenantIdPResponse, error)
Authenticate(context.Context, *AuthRequest) (*AuthResponse, error)
Route(context.Context, *RouteRequest) (*RouteResponse, error)
RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerResponse, error)
Heartbeat(context.Context, *WorkerHeartbeat) (*HeartbeatResponse, error)
// contains filtered or unexported methods
}
SchedulerServiceServer is the server API for SchedulerService service. All implementations must embed UnimplementedSchedulerServiceServer for forward compatibility.
type SourceMode ¶
type SourceMode int32
const ( // Proto3 requires a zero-valued enumerator; UNSPECIFIED catches // unset/legacy fields so they don't collide with a real mode. SourceMode_SOURCE_MODE_UNSPECIFIED SourceMode = 0 // CAS-mode source staging (plan §4.5, docs/plan/cas.md). Client ships a // CasDescriptor referencing content-addressed blobs that the worker // materializes inside the VM. Re-opened from the originally-reserved // tag 1; the prior `reserved 1` annotation is removed now that the // intended semantics match what was reserved (no risk of decoding // old PREPROCESSED bytes as CAS). SourceMode_CAS SourceMode = 1 SourceMode_PREPROCESSED SourceMode = 2 // client ships preprocessed bytes )
func (SourceMode) Descriptor ¶
func (SourceMode) Descriptor() protoreflect.EnumDescriptor
func (SourceMode) Enum ¶
func (x SourceMode) Enum() *SourceMode
func (SourceMode) EnumDescriptor
deprecated
func (SourceMode) EnumDescriptor() ([]byte, []int)
Deprecated: Use SourceMode.Descriptor instead.
func (SourceMode) Number ¶
func (x SourceMode) Number() protoreflect.EnumNumber
func (SourceMode) String ¶
func (x SourceMode) String() string
func (SourceMode) Type ¶
func (SourceMode) Type() protoreflect.EnumType
type UnimplementedSchedulerServiceServer ¶
type UnimplementedSchedulerServiceServer struct{}
UnimplementedSchedulerServiceServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedSchedulerServiceServer) Authenticate ¶
func (UnimplementedSchedulerServiceServer) Authenticate(context.Context, *AuthRequest) (*AuthResponse, error)
func (UnimplementedSchedulerServiceServer) GetTenantIdP ¶
func (UnimplementedSchedulerServiceServer) GetTenantIdP(context.Context, *GetTenantIdPRequest) (*GetTenantIdPResponse, error)
func (UnimplementedSchedulerServiceServer) Heartbeat ¶
func (UnimplementedSchedulerServiceServer) Heartbeat(context.Context, *WorkerHeartbeat) (*HeartbeatResponse, error)
func (UnimplementedSchedulerServiceServer) RegisterWorker ¶
func (UnimplementedSchedulerServiceServer) RegisterWorker(context.Context, *RegisterWorkerRequest) (*RegisterWorkerResponse, error)
func (UnimplementedSchedulerServiceServer) Route ¶
func (UnimplementedSchedulerServiceServer) Route(context.Context, *RouteRequest) (*RouteResponse, error)
type UnimplementedWorkerServiceServer ¶
type UnimplementedWorkerServiceServer struct{}
UnimplementedWorkerServiceServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedWorkerServiceServer) Compile ¶
func (UnimplementedWorkerServiceServer) Compile(context.Context, *CompileRequest) (*CompileResponse, error)
func (UnimplementedWorkerServiceServer) FindMissingBlobs ¶
func (UnimplementedWorkerServiceServer) FindMissingBlobs(grpc.BidiStreamingServer[BlobDigest, BlobDigest]) error
func (UnimplementedWorkerServiceServer) ProbeCompileCache ¶
func (UnimplementedWorkerServiceServer) ProbeCompileCache(context.Context, *CompileProbe) (*ProbeResponse, error)
func (UnimplementedWorkerServiceServer) UploadBlobs ¶
func (UnimplementedWorkerServiceServer) UploadBlobs(grpc.ClientStreamingServer[BlobChunk, UploadResult]) error
type UnsafeSchedulerServiceServer ¶
type UnsafeSchedulerServiceServer interface {
// contains filtered or unexported methods
}
UnsafeSchedulerServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to SchedulerServiceServer will result in compilation errors.
type UnsafeWorkerServiceServer ¶
type UnsafeWorkerServiceServer interface {
// contains filtered or unexported methods
}
UnsafeWorkerServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to WorkerServiceServer will result in compilation errors.
type UploadResult ¶
type UploadResult struct {
BlobsReceived uint64 `protobuf:"varint,1,opt,name=blobs_received,json=blobsReceived,proto3" json:"blobs_received,omitempty"`
BytesReceived uint64 `protobuf:"varint,2,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"`
// Digests the worker refused to commit — hash mismatch, quota
// overrun, etc. The client treats these as the upload-failed set
// and either retries or falls back to local compile. Reasons are
// intentionally not carried on the wire; logs on the worker
// capture them.
RejectedDigests [][]byte `protobuf:"bytes,3,rep,name=rejected_digests,json=rejectedDigests,proto3" json:"rejected_digests,omitempty"`
// contains filtered or unexported fields
}
func (*UploadResult) Descriptor
deprecated
func (*UploadResult) Descriptor() ([]byte, []int)
Deprecated: Use UploadResult.ProtoReflect.Descriptor instead.
func (*UploadResult) GetBlobsReceived ¶
func (x *UploadResult) GetBlobsReceived() uint64
func (*UploadResult) GetBytesReceived ¶
func (x *UploadResult) GetBytesReceived() uint64
func (*UploadResult) GetRejectedDigests ¶
func (x *UploadResult) GetRejectedDigests() [][]byte
func (*UploadResult) ProtoMessage ¶
func (*UploadResult) ProtoMessage()
func (*UploadResult) ProtoReflect ¶
func (x *UploadResult) ProtoReflect() protoreflect.Message
func (*UploadResult) Reset ¶
func (x *UploadResult) Reset()
func (*UploadResult) String ¶
func (x *UploadResult) String() string
type VMState ¶
type VMState int32
func (VMState) Descriptor ¶
func (VMState) Descriptor() protoreflect.EnumDescriptor
func (VMState) EnumDescriptor
deprecated
func (VMState) Number ¶
func (x VMState) Number() protoreflect.EnumNumber
func (VMState) Type ¶
func (VMState) Type() protoreflect.EnumType
type WorkerHeartbeat ¶
type WorkerHeartbeat struct {
SessionToken string `protobuf:"bytes,1,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
WorkerId string `protobuf:"bytes,2,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"`
AvailableVcpus int32 `protobuf:"varint,3,opt,name=available_vcpus,json=availableVcpus,proto3" json:"available_vcpus,omitempty"`
CurrentLoad int32 `protobuf:"varint,4,opt,name=current_load,json=currentLoad,proto3" json:"current_load,omitempty"`
ActiveVms []*ActiveVM `protobuf:"bytes,5,rep,name=active_vms,json=activeVms,proto3" json:"active_vms,omitempty"`
// contains filtered or unexported fields
}
func (*WorkerHeartbeat) Descriptor
deprecated
func (*WorkerHeartbeat) Descriptor() ([]byte, []int)
Deprecated: Use WorkerHeartbeat.ProtoReflect.Descriptor instead.
func (*WorkerHeartbeat) GetActiveVms ¶
func (x *WorkerHeartbeat) GetActiveVms() []*ActiveVM
func (*WorkerHeartbeat) GetAvailableVcpus ¶
func (x *WorkerHeartbeat) GetAvailableVcpus() int32
func (*WorkerHeartbeat) GetCurrentLoad ¶
func (x *WorkerHeartbeat) GetCurrentLoad() int32
func (*WorkerHeartbeat) GetSessionToken ¶
func (x *WorkerHeartbeat) GetSessionToken() string
func (*WorkerHeartbeat) GetWorkerId ¶
func (x *WorkerHeartbeat) GetWorkerId() string
func (*WorkerHeartbeat) ProtoMessage ¶
func (*WorkerHeartbeat) ProtoMessage()
func (*WorkerHeartbeat) ProtoReflect ¶
func (x *WorkerHeartbeat) ProtoReflect() protoreflect.Message
func (*WorkerHeartbeat) Reset ¶
func (x *WorkerHeartbeat) Reset()
func (*WorkerHeartbeat) String ¶
func (x *WorkerHeartbeat) String() string
type WorkerServiceClient ¶
type WorkerServiceClient interface {
Compile(ctx context.Context, in *CompileRequest, opts ...grpc.CallOption) (*CompileResponse, error)
// ProbeCompileCache is the cache short-circuit for CAS mode. Client
// sends just the manifest digest + args + image; worker computes
// the compile cache key and checks the compile cache (local +
// S3-backed). On hit, the client gets the artifact back and skips
// FindMissingBlobs / UploadBlobs entirely — typical for incremental
// builds where most TUs are cached. On miss, client proceeds with
// the upload dance. Mirrors Bazel's ActionCache.GetActionResult.
ProbeCompileCache(ctx context.Context, in *CompileProbe, opts ...grpc.CallOption) (*ProbeResponse, error)
// FindMissingBlobs is the client's "what do I need to upload?"
// probe in CAS mode. Client streams the digests it intends to
// ship; worker streams back the subset it isn't already storing
// locally. Single-layer lookup (sourceStore.Has) — source blobs
// are worker-local-ephemeral, so there's nothing else to probe.
// Bidi-streaming so the client can pipeline upload decisions
// without waiting for the full probe set.
FindMissingBlobs(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[BlobDigest, BlobDigest], error)
// UploadBlobs streams missing blobs to the worker. The worker
// opens a BLAKE3 hasher per blob, tees incoming bytes to a temp
// file in the local source store, and on header-boundary verifies
// the recomputed digest matches the client-claimed one. Match →
// atomic-rename into the local store keyed by recomputed digest.
// Mismatch / quota / bad path → reject and report in
// UploadResult.rejected_digests. Source blobs are worker-local-
// ephemeral (no S3 write-through); the client is the source of
// truth and re-uploads on cache miss.
UploadBlobs(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[BlobChunk, UploadResult], error)
}
WorkerServiceClient is the client API for WorkerService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func NewWorkerServiceClient ¶
func NewWorkerServiceClient(cc grpc.ClientConnInterface) WorkerServiceClient
type WorkerServiceServer ¶
type WorkerServiceServer interface {
Compile(context.Context, *CompileRequest) (*CompileResponse, error)
// ProbeCompileCache is the cache short-circuit for CAS mode. Client
// sends just the manifest digest + args + image; worker computes
// the compile cache key and checks the compile cache (local +
// S3-backed). On hit, the client gets the artifact back and skips
// FindMissingBlobs / UploadBlobs entirely — typical for incremental
// builds where most TUs are cached. On miss, client proceeds with
// the upload dance. Mirrors Bazel's ActionCache.GetActionResult.
ProbeCompileCache(context.Context, *CompileProbe) (*ProbeResponse, error)
// FindMissingBlobs is the client's "what do I need to upload?"
// probe in CAS mode. Client streams the digests it intends to
// ship; worker streams back the subset it isn't already storing
// locally. Single-layer lookup (sourceStore.Has) — source blobs
// are worker-local-ephemeral, so there's nothing else to probe.
// Bidi-streaming so the client can pipeline upload decisions
// without waiting for the full probe set.
FindMissingBlobs(grpc.BidiStreamingServer[BlobDigest, BlobDigest]) error
// UploadBlobs streams missing blobs to the worker. The worker
// opens a BLAKE3 hasher per blob, tees incoming bytes to a temp
// file in the local source store, and on header-boundary verifies
// the recomputed digest matches the client-claimed one. Match →
// atomic-rename into the local store keyed by recomputed digest.
// Mismatch / quota / bad path → reject and report in
// UploadResult.rejected_digests. Source blobs are worker-local-
// ephemeral (no S3 write-through); the client is the source of
// truth and re-uploads on cache miss.
UploadBlobs(grpc.ClientStreamingServer[BlobChunk, UploadResult]) error
// contains filtered or unexported methods
}
WorkerServiceServer is the server API for WorkerService service. All implementations must embed UnimplementedWorkerServiceServer for forward compatibility.
type WorkerService_FindMissingBlobsClient ¶
type WorkerService_FindMissingBlobsClient = grpc.BidiStreamingClient[BlobDigest, BlobDigest]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WorkerService_FindMissingBlobsServer ¶
type WorkerService_FindMissingBlobsServer = grpc.BidiStreamingServer[BlobDigest, BlobDigest]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WorkerService_UploadBlobsClient ¶
type WorkerService_UploadBlobsClient = grpc.ClientStreamingClient[BlobChunk, UploadResult]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type WorkerService_UploadBlobsServer ¶
type WorkerService_UploadBlobsServer = grpc.ClientStreamingServer[BlobChunk, UploadResult]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.