Help us shape the future of Go! Take the 2026 Go Developer Survey

connectapi

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Overview

Package connectapi exposes typed engine operations through Connect, gRPC and gRPC-Web. The host owns TLS, authenticated identity verification and lifecycle.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewHandler

func NewHandler(engine Engine, verify IdentityVerifier, limits Limits) (http.Handler, error)

NewHandler registers the implemented engine services without opening sockets or starting goroutines. HTTP/2 is required for gRPC. The host must set HTTP server read, write and idle deadlines in addition to the per-RPC timeout.

func NewHandlerWithOptions

func NewHandlerWithOptions(engine Engine, verify IdentityVerifier, limits Limits, options HandlerOptions) (http.Handler, error)

NewHandlerWithOptions adds injected RPC telemetry and optional traceparent extraction without modifying global providers or identity verification.

Types

type AttestationEngine

type AttestationEngine interface {
	RecordAttestation(context.Context, model.Caller, model.AttestationRequest) (model.CommitResult, error)
	RecordDelegatedAttestation(context.Context, model.Caller, model.DelegatedAttestationRequest) (model.CommitResult, error)
	WithdrawAttestation(context.Context, model.Caller, model.Withdrawal) (model.CommitResult, error)
}

type CalculationEngine

type CalculationEngine interface {
	RecordCalculation(context.Context, model.Caller, model.CalculationReceipt) (model.CalculationRecord, error)
	GetCalculationReceipt(context.Context, model.Caller, model.CalculationQuery) (model.CalculationRecord, error)
}

type DefinitionEngine

type DefinitionEngine interface {
	RegisterMemoryType(context.Context, model.Caller, model.MemoryTypeRequest) (model.CommitResult, error)
	RegisterAcceptancePolicy(context.Context, model.Caller, model.PolicyRequest) (model.CommitResult, error)
	RegisterPredicateVersion(context.Context, model.Caller, model.PredicateRequest) (model.CommitResult, error)
}

type Engine

Engine is the shared application backend required by the registered services. The public facts_engine.Engine satisfies it.

type HandlerOptions

type HandlerOptions struct {
	Telemetry          model.TelemetryOptions
	AcceptTraceContext bool
}

HandlerOptions is opt-in, host-owned observability. Trace headers never grant identity or permissions. Only traceparent is accepted; baggage and tracestate are not extracted from requests.

type IdentityVerifier

type IdentityVerifier func(context.Context) (model.Caller, error)

IdentityVerifier must authenticate the peer/session or a signed gateway assertion. It must not trust caller-supplied identity headers without proof. Any initiator must be bound to a verified delegation by the host.

type Limits

type Limits struct {
	Timeout          time.Duration
	MaxConcurrent    int
	MaxRequestBytes  int
	MaxResponseBytes int
}

Limits are required. Timeout includes identity verification and engine work; MaxConcurrent is a fail-fast admission bound, not an unbounded waiting queue.

type RetentionEngine

type RetentionEngine interface {
	DisposeBatch(context.Context, model.Caller, model.DisposalBatchRequest) (model.CommitResult, error)
	DisposeAttestation(context.Context, model.Caller, model.AttestationDisposalRequest) (model.CommitResult, error)
	DisposeConversation(context.Context, model.Caller, model.ConversationDisposalRequest) (model.CommitResult, error)
	CleanupProjection(context.Context, model.Caller, model.ProjectionCleanupRequest) (model.CommitResult, error)
	DisposeVersion(context.Context, model.Caller, model.VersionDisposalRequest) (model.CommitResult, error)
	DisposeExtraction(context.Context, model.Caller, model.ExtractionDisposalRequest) (model.CommitResult, error)
	DisposeContext(context.Context, model.Caller, model.ContextDisposalRequest) (model.CommitResult, error)
	DisposeSnapshot(context.Context, model.Caller, model.SnapshotDisposalRequest) (model.CommitResult, error)
	DisposeOrphanEvidence(context.Context, model.Caller, model.OrphanEvidenceDisposalRequest) (model.CommitResult, error)
	RegisterRetentionPolicy(context.Context, model.Caller, model.RetentionPolicyRequest) (model.CommitResult, error)
	PlaceLegalHold(context.Context, model.Caller, model.LegalHoldRequest) (model.CommitResult, error)
	ReleaseLegalHold(context.Context, model.Caller, model.ReleaseLegalHoldRequest) (model.CommitResult, error)
	DisposeEvidence(context.Context, model.Caller, model.EvidenceDisposalRequest) (model.CommitResult, error)
	GetRetentionStatus(context.Context, model.Caller, model.RetentionStatusQuery) (model.RetentionStatus, error)
}

type SnapshotEngine

type SnapshotEngine interface {
	CreateFactSnapshot(context.Context, model.Caller, model.FactSnapshotRequest) (model.FactSnapshot, error)
	GetFactSnapshot(context.Context, model.Caller, model.SnapshotQuery) (model.FactSnapshot, error)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL