Documentation ¶
Overview ¶
Copyright (c) Ultraviolet SPDX-License-Identifier: Apache-2.0
Copyright (c) Ultraviolet SPDX-License-Identifier: Apache-2.0
Index ¶
- Constants
- Variables
- func DecompressFromContext(ctx context.Context) bool
- func DecompressToContext(ctx context.Context, decompress bool) context.Context
- func IndexFromContext(ctx context.Context) (int, bool)
- func IndexToContext(ctx context.Context, index int) context.Context
- func RegisterAgentServiceServer(s grpc.ServiceRegistrar, srv AgentServiceServer)
- type AgentConfig
- type AgentServiceClient
- type AgentServiceServer
- type AgentService_AlgoClient
- type AgentService_AlgoServer
- type AgentService_DataClient
- type AgentService_DataServer
- type AgentService_ResultClient
- type AgentService_ResultServer
- type AlgoRequest
- func (*AlgoRequest) Descriptor() ([]byte, []int)deprecated
- func (x *AlgoRequest) GetAlgorithm() []byte
- func (x *AlgoRequest) GetRequirements() []byte
- func (*AlgoRequest) ProtoMessage()
- func (x *AlgoRequest) ProtoReflect() protoreflect.Message
- func (x *AlgoRequest) Reset()
- func (x *AlgoRequest) String() string
- type AlgoResponse
- type Algorithm
- type AttestationRequest
- func (*AttestationRequest) Descriptor() ([]byte, []int)deprecated
- func (x *AttestationRequest) GetReportData() []byte
- func (*AttestationRequest) ProtoMessage()
- func (x *AttestationRequest) ProtoReflect() protoreflect.Message
- func (x *AttestationRequest) Reset()
- func (x *AttestationRequest) String() string
- type AttestationResponse
- func (*AttestationResponse) Descriptor() ([]byte, []int)deprecated
- func (x *AttestationResponse) GetFile() []byte
- func (*AttestationResponse) ProtoMessage()
- func (x *AttestationResponse) ProtoReflect() protoreflect.Message
- func (x *AttestationResponse) Reset()
- func (x *AttestationResponse) String() string
- type Computation
- type DataRequest
- func (*DataRequest) Descriptor() ([]byte, []int)deprecated
- func (x *DataRequest) GetDataset() []byte
- func (x *DataRequest) GetFilename() string
- func (*DataRequest) ProtoMessage()
- func (x *DataRequest) ProtoReflect() protoreflect.Message
- func (x *DataRequest) Reset()
- func (x *DataRequest) String() string
- type DataResponse
- type Dataset
- type Datasets
- type ManifestIndexKey
- type ResultConsumer
- type ResultRequest
- type ResultResponse
- type Service
- type StateMachine
- type UnimplementedAgentServiceServer
- func (UnimplementedAgentServiceServer) Algo(AgentService_AlgoServer) error
- func (UnimplementedAgentServiceServer) Attestation(context.Context, *AttestationRequest) (*AttestationResponse, error)
- func (UnimplementedAgentServiceServer) Data(AgentService_DataServer) error
- func (UnimplementedAgentServiceServer) Result(*ResultRequest, AgentService_ResultServer) error
- type UnsafeAgentServiceServer
Constants ¶
const ( AgentService_Algo_FullMethodName = "/agent.AgentService/Algo" AgentService_Data_FullMethodName = "/agent.AgentService/Data" AgentService_Result_FullMethodName = "/agent.AgentService/Result" AgentService_Attestation_FullMethodName = "/agent.AgentService/Attestation" )
const DecompressKey = "decompress"
const (
// ReportDataSize is the size of the report data expected by the attestation service.
ReportDataSize = 64
)
Variables ¶
var ( // ErrMalformedEntity indicates malformed entity specification (e.g. // invalid username or password). ErrMalformedEntity = errors.New("malformed entity specification") // when accessing a protected resource. ErrUnauthorizedAccess = errors.New("missing or invalid credentials provided") // ErrUndeclaredAlgorithm indicates algorithm was not declared in computation manifest. ErrUndeclaredDataset = errors.New("dataset not declared in computation manifest") // ErrAllManifestItemsReceived indicates no new computation manifest items expected. ErrAllManifestItemsReceived = errors.New("all expected manifest Items have been received") // ErrUndeclaredConsumer indicates the consumer requesting results in not declared in computation manifest. ErrUndeclaredConsumer = errors.New("result consumer is undeclared in computation manifest") // ErrResultsNotReady indicates the computation results are not ready. ErrResultsNotReady = errors.New("computation results are not yet ready") // ErrStateNotReady agent received a request in the wrong state. ErrStateNotReady = errors.New("agent not expecting this operation in the current state") // ErrHashMismatch provided algorithm/dataset does not match hash in manifest. ErrHashMismatch = errors.New("malformed data, hash does not match manifest") // ErrFileNameMismatch provided dataset filename does not match filename in manifest. ErrFileNameMismatch = errors.New("malformed data, filename does not match manifest") // ErrAllResultsConsumed indicates all results have been consumed. ErrAllResultsConsumed = errors.New("all results have been consumed by declared consumers") )
var AgentService_ServiceDesc = grpc.ServiceDesc{ ServiceName: "agent.AgentService", HandlerType: (*AgentServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "Attestation", Handler: _AgentService_Attestation_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "Algo", Handler: _AgentService_Algo_Handler, ClientStreams: true, }, { StreamName: "Data", Handler: _AgentService_Data_Handler, ClientStreams: true, }, { StreamName: "Result", Handler: _AgentService_Result_Handler, ServerStreams: true, }, }, Metadata: "agent/agent.proto", }
AgentService_ServiceDesc is the grpc.ServiceDesc for AgentService service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_agent_agent_proto protoreflect.FileDescriptor
Functions ¶
func DecompressFromContext ¶ added in v0.3.0
func DecompressToContext ¶ added in v0.3.0
func IndexToContext ¶ added in v0.2.0
func RegisterAgentServiceServer ¶
func RegisterAgentServiceServer(s grpc.ServiceRegistrar, srv AgentServiceServer)
Types ¶
type AgentConfig ¶ added in v0.0.2
type AgentConfig struct { LogLevel string `json:"log_level"` Host string `json:"host"` Port string `json:"port"` CertFile string `json:"cert_file"` KeyFile string `json:"server_key"` ServerCAFile string `json:"server_ca_file"` ClientCAFile string `json:"client_ca_file"` AttestedTls bool `json:"attested_tls"` }
type AgentServiceClient ¶
type AgentServiceClient interface { Algo(ctx context.Context, opts ...grpc.CallOption) (AgentService_AlgoClient, error) Data(ctx context.Context, opts ...grpc.CallOption) (AgentService_DataClient, error) Result(ctx context.Context, in *ResultRequest, opts ...grpc.CallOption) (AgentService_ResultClient, error) Attestation(ctx context.Context, in *AttestationRequest, opts ...grpc.CallOption) (*AttestationResponse, error) }
AgentServiceClient is the client API for AgentService 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 NewAgentServiceClient ¶
func NewAgentServiceClient(cc grpc.ClientConnInterface) AgentServiceClient
type AgentServiceServer ¶
type AgentServiceServer interface { Algo(AgentService_AlgoServer) error Data(AgentService_DataServer) error Result(*ResultRequest, AgentService_ResultServer) error Attestation(context.Context, *AttestationRequest) (*AttestationResponse, error) // contains filtered or unexported methods }
AgentServiceServer is the server API for AgentService service. All implementations must embed UnimplementedAgentServiceServer for forward compatibility
type AgentService_AlgoClient ¶ added in v0.2.0
type AgentService_AlgoClient interface { Send(*AlgoRequest) error CloseAndRecv() (*AlgoResponse, error) grpc.ClientStream }
type AgentService_AlgoServer ¶ added in v0.2.0
type AgentService_AlgoServer interface { SendAndClose(*AlgoResponse) error Recv() (*AlgoRequest, error) grpc.ServerStream }
type AgentService_DataClient ¶ added in v0.2.0
type AgentService_DataClient interface { Send(*DataRequest) error CloseAndRecv() (*DataResponse, error) grpc.ClientStream }
type AgentService_DataServer ¶ added in v0.2.0
type AgentService_DataServer interface { SendAndClose(*DataResponse) error Recv() (*DataRequest, error) grpc.ServerStream }
type AgentService_ResultClient ¶ added in v0.2.0
type AgentService_ResultClient interface { Recv() (*ResultResponse, error) grpc.ClientStream }
type AgentService_ResultServer ¶ added in v0.2.0
type AgentService_ResultServer interface { Send(*ResultResponse) error grpc.ServerStream }
type AlgoRequest ¶
type AlgoRequest struct { Algorithm []byte `protobuf:"bytes,1,opt,name=algorithm,proto3" json:"algorithm,omitempty"` Requirements []byte `protobuf:"bytes,2,opt,name=requirements,proto3" json:"requirements,omitempty"` // contains filtered or unexported fields }
func (*AlgoRequest) Descriptor
deprecated
func (*AlgoRequest) Descriptor() ([]byte, []int)
Deprecated: Use AlgoRequest.ProtoReflect.Descriptor instead.
func (*AlgoRequest) GetAlgorithm ¶
func (x *AlgoRequest) GetAlgorithm() []byte
func (*AlgoRequest) GetRequirements ¶ added in v0.2.0
func (x *AlgoRequest) GetRequirements() []byte
func (*AlgoRequest) ProtoMessage ¶
func (*AlgoRequest) ProtoMessage()
func (*AlgoRequest) ProtoReflect ¶
func (x *AlgoRequest) ProtoReflect() protoreflect.Message
func (*AlgoRequest) Reset ¶
func (x *AlgoRequest) Reset()
func (*AlgoRequest) String ¶
func (x *AlgoRequest) String() string
type AlgoResponse ¶
type AlgoResponse struct {
// contains filtered or unexported fields
}
func (*AlgoResponse) Descriptor
deprecated
func (*AlgoResponse) Descriptor() ([]byte, []int)
Deprecated: Use AlgoResponse.ProtoReflect.Descriptor instead.
func (*AlgoResponse) ProtoMessage ¶
func (*AlgoResponse) ProtoMessage()
func (*AlgoResponse) ProtoReflect ¶
func (x *AlgoResponse) ProtoReflect() protoreflect.Message
func (*AlgoResponse) Reset ¶
func (x *AlgoResponse) Reset()
func (*AlgoResponse) String ¶
func (x *AlgoResponse) String() string
type AttestationRequest ¶
type AttestationRequest struct { ReportData []byte `protobuf:"bytes,1,opt,name=report_data,json=reportData,proto3" json:"report_data,omitempty"` // Should be of length 64. // contains filtered or unexported fields }
func (*AttestationRequest) Descriptor
deprecated
func (*AttestationRequest) Descriptor() ([]byte, []int)
Deprecated: Use AttestationRequest.ProtoReflect.Descriptor instead.
func (*AttestationRequest) GetReportData ¶ added in v0.0.2
func (x *AttestationRequest) GetReportData() []byte
func (*AttestationRequest) ProtoMessage ¶
func (*AttestationRequest) ProtoMessage()
func (*AttestationRequest) ProtoReflect ¶
func (x *AttestationRequest) ProtoReflect() protoreflect.Message
func (*AttestationRequest) Reset ¶
func (x *AttestationRequest) Reset()
func (*AttestationRequest) String ¶
func (x *AttestationRequest) String() string
type AttestationResponse ¶
type AttestationResponse struct { File []byte `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` // contains filtered or unexported fields }
func (*AttestationResponse) Descriptor
deprecated
func (*AttestationResponse) Descriptor() ([]byte, []int)
Deprecated: Use AttestationResponse.ProtoReflect.Descriptor instead.
func (*AttestationResponse) GetFile ¶
func (x *AttestationResponse) GetFile() []byte
func (*AttestationResponse) ProtoMessage ¶
func (*AttestationResponse) ProtoMessage()
func (*AttestationResponse) ProtoReflect ¶
func (x *AttestationResponse) ProtoReflect() protoreflect.Message
func (*AttestationResponse) Reset ¶
func (x *AttestationResponse) Reset()
func (*AttestationResponse) String ¶
func (x *AttestationResponse) String() string
type Computation ¶
type Computation struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Description string `json:"description,omitempty"` Datasets Datasets `json:"datasets,omitempty"` Algorithm Algorithm `json:"algorithm,omitempty"` ResultConsumers []ResultConsumer `json:"result_consumers,omitempty"` AgentConfig AgentConfig `json:"agent_config,omitempty"` }
type DataRequest ¶
type DataRequest struct { Dataset []byte `protobuf:"bytes,1,opt,name=dataset,proto3" json:"dataset,omitempty"` Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` // contains filtered or unexported fields }
func (*DataRequest) Descriptor
deprecated
func (*DataRequest) Descriptor() ([]byte, []int)
Deprecated: Use DataRequest.ProtoReflect.Descriptor instead.
func (*DataRequest) GetDataset ¶
func (x *DataRequest) GetDataset() []byte
func (*DataRequest) GetFilename ¶ added in v0.3.0
func (x *DataRequest) GetFilename() string
func (*DataRequest) ProtoMessage ¶
func (*DataRequest) ProtoMessage()
func (*DataRequest) ProtoReflect ¶
func (x *DataRequest) ProtoReflect() protoreflect.Message
func (*DataRequest) Reset ¶
func (x *DataRequest) Reset()
func (*DataRequest) String ¶
func (x *DataRequest) String() string
type DataResponse ¶
type DataResponse struct {
// contains filtered or unexported fields
}
func (*DataResponse) Descriptor
deprecated
func (*DataResponse) Descriptor() ([]byte, []int)
Deprecated: Use DataResponse.ProtoReflect.Descriptor instead.
func (*DataResponse) ProtoMessage ¶
func (*DataResponse) ProtoMessage()
func (*DataResponse) ProtoReflect ¶
func (x *DataResponse) ProtoReflect() protoreflect.Message
func (*DataResponse) Reset ¶
func (x *DataResponse) Reset()
func (*DataResponse) String ¶
func (x *DataResponse) String() string
type ManifestIndexKey ¶ added in v0.2.0
type ManifestIndexKey struct{}
type ResultConsumer ¶ added in v0.2.0
type ResultConsumer struct {
UserKey []byte `json:"user_key,omitempty"`
}
type ResultRequest ¶
type ResultRequest struct {
// contains filtered or unexported fields
}
func (*ResultRequest) Descriptor
deprecated
func (*ResultRequest) Descriptor() ([]byte, []int)
Deprecated: Use ResultRequest.ProtoReflect.Descriptor instead.
func (*ResultRequest) ProtoMessage ¶
func (*ResultRequest) ProtoMessage()
func (*ResultRequest) ProtoReflect ¶
func (x *ResultRequest) ProtoReflect() protoreflect.Message
func (*ResultRequest) Reset ¶
func (x *ResultRequest) Reset()
func (*ResultRequest) String ¶
func (x *ResultRequest) String() string
type ResultResponse ¶
type ResultResponse struct { File []byte `protobuf:"bytes,1,opt,name=file,proto3" json:"file,omitempty"` // contains filtered or unexported fields }
func (*ResultResponse) Descriptor
deprecated
func (*ResultResponse) Descriptor() ([]byte, []int)
Deprecated: Use ResultResponse.ProtoReflect.Descriptor instead.
func (*ResultResponse) GetFile ¶
func (x *ResultResponse) GetFile() []byte
func (*ResultResponse) ProtoMessage ¶
func (*ResultResponse) ProtoMessage()
func (*ResultResponse) ProtoReflect ¶
func (x *ResultResponse) ProtoReflect() protoreflect.Message
func (*ResultResponse) Reset ¶
func (x *ResultResponse) Reset()
func (*ResultResponse) String ¶
func (x *ResultResponse) String() string
type Service ¶
type Service interface { Algo(ctx context.Context, algorithm Algorithm) error Data(ctx context.Context, dataset Dataset) error Result(ctx context.Context) ([]byte, error) Attestation(ctx context.Context, reportData [ReportDataSize]byte) ([]byte, error) }
Service specifies an API that must be fullfiled by the domain service implementation, and all of its decorators (e.g. logging & metrics).
type StateMachine ¶
type StateMachine struct { State state EventChan chan event Transitions map[state]map[event]state StateFunctions map[state]func() // contains filtered or unexported fields }
StateMachine represents the state machine.
func NewStateMachine ¶
func NewStateMachine(logger *slog.Logger, cmp Computation) *StateMachine
NewStateMachine creates a new StateMachine.
func (*StateMachine) GetState ¶
func (sm *StateMachine) GetState() state
func (*StateMachine) SendEvent ¶
func (sm *StateMachine) SendEvent(event event)
SendEvent sends an event to the state machine.
func (*StateMachine) SetState ¶
func (sm *StateMachine) SetState(state state)
func (*StateMachine) Start ¶
func (sm *StateMachine) Start(ctx context.Context)
Start the state machine.
type UnimplementedAgentServiceServer ¶
type UnimplementedAgentServiceServer struct { }
UnimplementedAgentServiceServer must be embedded to have forward compatible implementations.
func (UnimplementedAgentServiceServer) Algo ¶
func (UnimplementedAgentServiceServer) Algo(AgentService_AlgoServer) error
func (UnimplementedAgentServiceServer) Attestation ¶
func (UnimplementedAgentServiceServer) Attestation(context.Context, *AttestationRequest) (*AttestationResponse, error)
func (UnimplementedAgentServiceServer) Data ¶
func (UnimplementedAgentServiceServer) Data(AgentService_DataServer) error
func (UnimplementedAgentServiceServer) Result ¶
func (UnimplementedAgentServiceServer) Result(*ResultRequest, AgentService_ResultServer) error
type UnsafeAgentServiceServer ¶
type UnsafeAgentServiceServer interface {
// contains filtered or unexported methods
}
UnsafeAgentServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AgentServiceServer will result in compilation errors.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations.
|
Package api contains API-related concerns: endpoint definitions, middlewares and all resource representations. |
grpc
Package grpc contains implementation of kit service gRPC API.
|
Package grpc contains implementation of kit service gRPC API. |