service

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2026 License: MIT Imports: 28 Imported by: 0

Documentation

Overview

Package service validates and coordinates standalone SecondBox authority.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContextWithRequestID

func ContextWithRequestID(ctx context.Context, requestID string) context.Context

ContextWithRequestID binds one validated transport correlation identifier to service work.

func NewCredentialMaterial

func NewCredentialMaterial() string

NewCredentialMaterial returns high-entropy plaintext used exactly once.

func NewOpaqueID

func NewOpaqueID(prefix string) string

NewOpaqueID returns a random, prefix-qualified public identifier.

func SystemClock

func SystemClock() time.Time

SystemClock returns the current time for production control-plane wiring.

Types

type ActivityStore

type ActivityStore interface {
	GetSandboxLifecyclePolicy(ctx context.Context, tenantRef, subjectRef, sandboxID string) (contracts.LifecyclePolicy, contracts.RetentionPolicy, error)
	SetSandboxDesiredState(ctx context.Context, input ports.LifecycleIntentInput) (contracts.Operation, error)
	AcquireLease(ctx context.Context, input ports.LeaseInput) (contracts.Lease, error)
	GetLeaseByID(ctx context.Context, tenantRef, subjectRef, leaseID string) (contracts.Lease, error)
	RenewLease(ctx context.Context, input ports.LeaseInput) (contracts.Lease, error)
	ReleaseLease(ctx context.Context, input ports.LeaseInput) (contracts.Lease, error)
	PingGuest(ctx context.Context, input ports.GenerationInput, serviceAccountID string) (contracts.Instance, error)
	ReadSandboxInspection(ctx context.Context, input ports.GenerationInput) (contracts.SandboxInspection, error)
	TouchActivity(ctx context.Context, input ports.ActivityInput) (time.Time, error)
	OpenActivitySession(ctx context.Context, input ports.ActivityInput) (contracts.ActivitySession, error)
	CloseActivitySession(ctx context.Context, input ports.ActivityInput) (contracts.ActivitySession, error)
}

ActivityStore owns lifecycle intent, leases, and useful-activity evidence.

type ControlPlaneConfig

type ControlPlaneConfig struct {
	Store                 ControlPlaneStore
	PlatformToken         string
	DefaultSubjectQuota   contracts.QuotaLimits
	Now                   func() time.Time
	NewID                 func(string) string
	NewCredentialMaterial func() string
	DataPlaneStore        DataPlaneStore
	LiveDataPlane         *runnercontrol.LiveDataPlaneBroker
	DataPlanePollInterval time.Duration
	IdempotencyRetention  time.Duration
	PortSessionStore      runnercontrol.PortSessionStore
	PublicBaseURL         string
}

ControlPlaneConfig contains explicit authority, quota, time, and identity dependencies.

type ControlPlaneService

type ControlPlaneService struct {
	// contains filtered or unexported fields
}

ControlPlaneService owns validation, authentication, and transaction inputs.

func NewControlPlaneService

func NewControlPlaneService(config ControlPlaneConfig) (*ControlPlaneService, error)

NewControlPlaneService constructs the standalone SecondBox coordinator.

func (*ControlPlaneService) AcquireSandboxLease

func (service *ControlPlaneService) AcquireSandboxLease(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
	idempotencyKey string,
	durationSeconds int64,
	replaceActive ...bool,
) (contracts.Lease, error)

AcquireSandboxLease creates profile-bounded authority for useful activity.

func (*ControlPlaneService) AcquireSandboxTerminalAttachment

func (service *ControlPlaneService) AcquireSandboxTerminalAttachment(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	generation int64,
) (runnercontrol.DataPlaneSession, string, error)

AcquireSandboxTerminalAttachment grants the single WebSocket attachment.

func (*ControlPlaneService) CancelSandboxExecStreamAtGeneration

func (service *ControlPlaneService) CancelSandboxExecStreamAtGeneration(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	generation int64,
	idempotencyKey string,
) (runnercontrol.DataPlaneSession, bool, error)

CancelSandboxExecStreamAtGeneration durably replays one key-scoped public cancellation response.

func (*ControlPlaneService) CancelSandboxTerminal

func (service *ControlPlaneService) CancelSandboxTerminal(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	generation int64,
	idempotencyKey string,
) (runnercontrol.DataPlaneSession, bool, error)

CancelSandboxTerminal durably replays one key-scoped public cancellation response.

func (*ControlPlaneService) CleanupSubject added in v0.6.0

func (service *ControlPlaneService) CleanupSubject(
	ctx context.Context,
	principal contracts.Principal,
	subjectRef string,
	idempotencyKey string,
	expectedRevision int64,
) (contracts.Operation, bool, error)

CleanupSubject creates or returns the one durable cleanup Operation for a closed Subject.

func (*ControlPlaneService) CloseActivitySession

func (service *ControlPlaneService) CloseActivitySession(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
	sessionID string,
) (contracts.ActivitySession, error)

CloseActivitySession releases idle suppression for completed useful work.

func (*ControlPlaneService) ClosePortTunnel

func (service *ControlPlaneService) ClosePortTunnel(
	ctx context.Context,
	tunnel runnercontrol.PortTunnel,
	reason string,
) error

ClosePortTunnel terminates a consumed proxy and its useful-activity record.

func (*ControlPlaneService) CloseSandboxPortSession

func (service *ControlPlaneService) CloseSandboxPortSession(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	idempotencyKey string,
) error

func (*ControlPlaneService) CloseSubject added in v0.6.0

func (service *ControlPlaneService) CloseSubject(
	ctx context.Context,
	principal contracts.Principal,
	subjectRef string,
	idempotencyKey string,
	expectedRevision int64,
) (contracts.Subject, bool, error)

CloseSubject revokes its application authorities and commits the admission barrier atomically.

func (*ControlPlaneService) ConsumeDirectDataPlane

func (service *ControlPlaneService) ConsumeDirectDataPlane(
	ctx context.Context,
	input runnercontrol.DirectDataPlaneConsumption,
) error

func (*ControlPlaneService) ConsumePortTunnel

func (service *ControlPlaneService) ConsumePortTunnel(
	ctx context.Context,
	endpoint string,
) (runnercontrol.PortTunnel, error)

ConsumePortTunnel atomically spends the signed URL before proxying any bytes.

func (*ControlPlaneService) ConsumePortTunnelToken

func (service *ControlPlaneService) ConsumePortTunnelToken(
	ctx context.Context,
	sessionID string,
	token string,
) (runnercontrol.PortTunnel, error)

ConsumePortTunnelToken spends a fragment-delivered credential for one exact session.

func (*ControlPlaneService) CreateApplicationAuthority added in v0.6.0

func (service *ControlPlaneService) CreateApplicationAuthority(ctx context.Context, principal contracts.Principal, idempotencyKey string, request contracts.CreateApplicationAuthorityRequest) (contracts.ApplicationCredentialResponse, bool, error)

func (*ControlPlaneService) CreateProfile

func (service *ControlPlaneService) CreateProfile(
	ctx context.Context,
	principal contracts.Principal,
	request contracts.CreateProfileRequest,
) (contracts.Profile, error)

CreateProfile creates one explicit Profile and immutable revision.

func (*ControlPlaneService) CreateProfileIdempotent

func (service *ControlPlaneService) CreateProfileIdempotent(
	ctx context.Context,
	principal contracts.Principal,
	idempotencyKey string,
	request contracts.CreateProfileRequest,
) (contracts.Profile, bool, error)

CreateProfileIdempotent creates or replays one exact Profile response.

func (*ControlPlaneService) CreateRunnerPool

func (service *ControlPlaneService) CreateRunnerPool(
	ctx context.Context,
	principal contracts.Principal,
	request contracts.CreateRunnerPoolRequest,
) (contracts.RunnerPool, error)

CreateRunnerPool creates one explicit operator-owned scheduling boundary.

func (*ControlPlaneService) CreateSandbox

func (service *ControlPlaneService) CreateSandbox(
	ctx context.Context,
	principal contracts.Principal,
	idempotencyKey string,
	request contracts.CreateSandboxRequest,
) (contracts.Sandbox, bool, error)

CreateSandbox transactionally resolves authorization, compatibility, quota, and idempotency.

func (*ControlPlaneService) CreateSandboxDirectory

func (service *ControlPlaneService) CreateSandboxDirectory(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, idempotencyKey string,
	request contracts.CreateDirectoryRequest,
) (bool, error)

func (*ControlPlaneService) CreateSandboxExecStream

func (service *ControlPlaneService) CreateSandboxExecStream(
	ctx context.Context,
	principal contracts.Principal,
	requestID string,
	sandboxID string,
	generation int64,
	leaseID string,
	idempotencyKey string,
	request contracts.StreamingExecRequest,
) (runnercontrol.DataPlaneSession, bool, error)

func (*ControlPlaneService) CreateSandboxOperation

func (service *ControlPlaneService) CreateSandboxOperation(
	ctx context.Context,
	principal contracts.Principal,
	idempotencyKey string,
	request contracts.CreateSandboxRequest,
) (contracts.Operation, bool, error)

CreateSandboxOperation creates durable Sandbox intent and returns its observable operation.

func (*ControlPlaneService) CreateSandboxPortSession

func (service *ControlPlaneService) CreateSandboxPortSession(
	ctx context.Context,
	principal contracts.Principal,
	requestID string,
	sandboxID string,
	generation int64,
	leaseID string,
	idempotencyKey string,
	transport string,
	request contracts.CreatePortSessionRequest,
) (contracts.PortSession, bool, error)

CreateSandboxPortSession admits one PortSession on the transport the caller's authority grants. Admission itself is identical for both transports: the same transactional binding of tenant, subject, pinned ProfileRevision, Lease, assignment fence, generation, named port, protocol, duration, and limits.

func (*ControlPlaneService) CreateSandboxSnapshot

func (service *ControlPlaneService) CreateSandboxSnapshot(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	idempotencyKey string,
	expectedRevision int64,
	request contracts.CreateSnapshotRequest,
) (contracts.Operation, bool, error)

CreateSandboxSnapshot admits an asynchronous runner-local clone.

func (*ControlPlaneService) CreateSandboxTerminal

func (service *ControlPlaneService) CreateSandboxTerminal(
	ctx context.Context,
	principal contracts.Principal,
	requestID string,
	sandboxID string,
	generation int64,
	leaseID string,
	idempotencyKey string,
	request contracts.CreateTerminalRequest,
) (runnercontrol.DataPlaneSession, bool, error)

CreateSandboxTerminal admits one leased PTY against the pinned Profile.

func (*ControlPlaneService) CreateSubject added in v0.6.0

func (service *ControlPlaneService) CreateSubject(ctx context.Context, principal contracts.Principal, idempotencyKey string, request contracts.CreateSubjectRequest) (contracts.Subject, bool, error)

func (*ControlPlaneService) CreateTenant added in v0.6.0

func (service *ControlPlaneService) CreateTenant(ctx context.Context, principal contracts.Principal, idempotencyKey string, request contracts.CreateTenantRequest) (contracts.Tenant, bool, error)

CreateTenant creates one explicit operator-owned Tenant boundary.

func (*ControlPlaneService) CreateTenantControllerAuthority added in v0.6.0

func (service *ControlPlaneService) CreateTenantControllerAuthority(ctx context.Context, principal contracts.Principal, tenantRef, idempotencyKey string, request contracts.CreateTenantControllerAuthorityRequest) (contracts.TenantControllerCredentialResponse, bool, error)

func (*ControlPlaneService) DataPlanePollInterval

func (service *ControlPlaneService) DataPlanePollInterval() time.Duration

func (*ControlPlaneService) DeleteSandbox

func (service *ControlPlaneService) DeleteSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	idempotencyKey string,
	expectedRevision int64,
) (contracts.Operation, error)

DeleteSandbox makes deletion dominate future lifecycle and activity admission.

func (*ControlPlaneService) DeleteSnapshot

func (service *ControlPlaneService) DeleteSnapshot(
	ctx context.Context,
	principal contracts.Principal,
	snapshotID string,
	idempotencyKey string,
) (contracts.Operation, bool, error)

DeleteSnapshot admits an asynchronous runner-local deletion.

func (*ControlPlaneService) DetachSandboxTerminalAttachment

func (service *ControlPlaneService) DetachSandboxTerminalAttachment(
	ctx context.Context,
	principal contracts.Principal,
	sessionID string,
	attachmentID string,
) (bool, error)

func (*ControlPlaneService) DisableProfile

func (service *ControlPlaneService) DisableProfile(
	ctx context.Context,
	principal contracts.Principal,
	name string,
) (contracts.Profile, error)

DisableProfile blocks future creation without rewriting pinned Sandboxes.

func (*ControlPlaneService) DisableProfileAtRevisionIdempotent

func (service *ControlPlaneService) DisableProfileAtRevisionIdempotent(
	ctx context.Context,
	principal contracts.Principal,
	name string,
	idempotencyKey string,
	expectedRevision int64,
) (contracts.Profile, bool, error)

DisableProfileAtRevisionIdempotent disables or replays one exact fenced Profile response.

func (*ControlPlaneService) ExecuteSandboxCommand

func (service *ControlPlaneService) ExecuteSandboxCommand(
	ctx context.Context,
	principal contracts.Principal,
	requestID string,
	sandboxID string,
	generation int64,
	leaseID string,
	idempotencyKey string,
	request contracts.BufferedExecRequest,
) (any, bool, error)

func (*ControlPlaneService) GetApplicationAuthority added in v0.6.0

func (service *ControlPlaneService) GetApplicationAuthority(ctx context.Context, principal contracts.Principal, authorityID string) (contracts.ApplicationAuthority, error)

func (*ControlPlaneService) GetDeploymentTiming

func (service *ControlPlaneService) GetDeploymentTiming(
	ctx context.Context,
	principal contracts.Principal,
	windowSeconds int64,
) (contracts.DeploymentTimingSummary, error)

GetDeploymentTiming returns a bounded current-deployment timing projection.

func (*ControlPlaneService) GetDeploymentUsage added in v0.6.0

func (service *ControlPlaneService) GetDeploymentUsage(
	ctx context.Context,
	principal contracts.Principal,
	limit int,
	cursor string,
) (contracts.DeploymentUsage, error)

GetDeploymentUsage returns deployment-wide usage to the platform operator.

func (*ControlPlaneService) GetOperation

func (service *ControlPlaneService) GetOperation(
	ctx context.Context,
	principal contracts.Principal,
	operationID string,
) (contracts.Operation, error)

GetOperation returns one durable mutation observation inside the authenticated Project.

func (*ControlPlaneService) GetOperationTiming

func (service *ControlPlaneService) GetOperationTiming(
	ctx context.Context,
	principal contracts.Principal,
	operationID string,
) (contracts.OperationTiming, error)

GetOperationTiming returns queue, execution, and boot-stage evidence for one Operation.

func (*ControlPlaneService) GetProfile

func (service *ControlPlaneService) GetProfile(
	ctx context.Context,
	principal contracts.Principal,
	name string,
) (contracts.Profile, error)

GetProfile returns a Profile head and its current immutable revision.

func (*ControlPlaneService) GetRunner

func (service *ControlPlaneService) GetRunner(
	ctx context.Context,
	principal contracts.Principal,
	runnerID string,
) (contracts.Runner, error)

GetRunner returns one enrolled execution identity and current capacity evidence.

func (*ControlPlaneService) GetRunnerPool

func (service *ControlPlaneService) GetRunnerPool(
	ctx context.Context,
	principal contracts.Principal,
	name string,
) (contracts.RunnerPool, error)

GetRunnerPool returns one administrative placement boundary.

func (*ControlPlaneService) GetSandbox

func (service *ControlPlaneService) GetSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
) (contracts.Sandbox, error)

GetSandbox enforces non-enumerating Project isolation.

func (*ControlPlaneService) GetSandboxExecStream

func (service *ControlPlaneService) GetSandboxExecStream(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	generation int64,
) (runnercontrol.DataPlaneSession, error)

func (*ControlPlaneService) GetSandboxLease

func (service *ControlPlaneService) GetSandboxLease(
	ctx context.Context,
	principal contracts.Principal,
	leaseID string,
) (contracts.Lease, error)

GetSandboxLease returns one Lease inside the authenticated Project.

func (*ControlPlaneService) GetSandboxPortSession

func (service *ControlPlaneService) GetSandboxPortSession(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	transport string,
) (contracts.PortSession, error)

func (*ControlPlaneService) GetSandboxTerminal

func (service *ControlPlaneService) GetSandboxTerminal(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	sessionID string,
	generation int64,
) (runnercontrol.DataPlaneSession, error)

GetSandboxTerminal resolves one project-owned, generation-bound Terminal.

func (*ControlPlaneService) GetSandboxTiming

func (service *ControlPlaneService) GetSandboxTiming(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	limit int,
) (contracts.SandboxTiming, error)

GetSandboxTiming returns bounded timing evidence owned by one caller-visible Sandbox.

func (*ControlPlaneService) GetSnapshot

func (service *ControlPlaneService) GetSnapshot(
	ctx context.Context,
	principal contracts.Principal,
	snapshotID string,
) (contracts.Snapshot, error)

GetSnapshot returns retained immutable disk-state metadata without provider authority.

func (*ControlPlaneService) GetSubject added in v0.6.0

func (service *ControlPlaneService) GetSubject(ctx context.Context, principal contracts.Principal, subjectRef string) (contracts.Subject, error)

func (*ControlPlaneService) GetSubjectUsage

func (service *ControlPlaneService) GetSubjectUsage(
	ctx context.Context,
	principal contracts.Principal,
) (contracts.SubjectUsage, error)

GetSubjectUsage returns aggregate quota reservations for the asserted subject.

func (*ControlPlaneService) GetTenant added in v0.6.0

func (service *ControlPlaneService) GetTenant(ctx context.Context, _ contracts.Principal, tenantRef string) (contracts.Tenant, error)

func (*ControlPlaneService) GetTenantControllerAuthority added in v0.6.0

func (service *ControlPlaneService) GetTenantControllerAuthority(ctx context.Context, _ contracts.Principal, tenantRef, authorityID string) (contracts.TenantControllerAuthority, error)

func (*ControlPlaneService) GetTenantUsage added in v0.6.0

func (service *ControlPlaneService) GetTenantUsage(
	ctx context.Context,
	principal contracts.Principal,
	limit int,
	cursor string,
) (contracts.TenantUsage, error)

GetTenantUsage returns aggregate and per-Subject usage for the authenticated tenant.

func (*ControlPlaneService) InspectSandbox

func (service *ControlPlaneService) InspectSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
) (contracts.SandboxInspection, error)

InspectSandbox returns current persisted guest and session evidence for one generation.

func (*ControlPlaneService) ListApplicationAuthorities added in v0.6.0

func (service *ControlPlaneService) ListApplicationAuthorities(ctx context.Context, principal contracts.Principal, subjectRef string, limit int, cursor string) (contracts.ApplicationAuthorityPage, error)

func (*ControlPlaneService) ListProfiles

func (service *ControlPlaneService) ListProfiles(
	ctx context.Context,
	principal contracts.Principal,
	limit int,
	cursor string,
) (contracts.ProfilePage, error)

ListProfiles returns a bounded stable Profile page.

func (*ControlPlaneService) ListRunnerPools

func (service *ControlPlaneService) ListRunnerPools(
	ctx context.Context,
	principal contracts.Principal,
	limit int,
	cursor string,
) (contracts.RunnerPoolPage, error)

ListRunnerPools returns a bounded administrative RunnerPool page.

func (*ControlPlaneService) ListRunners

func (service *ControlPlaneService) ListRunners(
	ctx context.Context,
	principal contracts.Principal,
	poolName string,
	limit int,
	cursor string,
) (contracts.RunnerPage, error)

ListRunners returns a bounded administrative Runner page filtered by exact pool.

func (*ControlPlaneService) ListSandboxDirectory

func (service *ControlPlaneService) ListSandboxDirectory(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, path string,
) (contracts.DirectoryListing, error)

func (*ControlPlaneService) ListSandboxSnapshots

func (service *ControlPlaneService) ListSandboxSnapshots(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	limit int,
	cursor string,
) (contracts.SnapshotPage, error)

ListSandboxSnapshots returns one retained Snapshot page inside the authenticated Project.

func (*ControlPlaneService) ListSandboxes

func (service *ControlPlaneService) ListSandboxes(
	ctx context.Context,
	principal contracts.Principal,
	limit int,
	cursor string,
	metadata map[string]string,
) (contracts.SandboxPage, error)

ListSandboxes returns only the authenticated Project projection.

func (*ControlPlaneService) ListSubjects added in v0.6.0

func (service *ControlPlaneService) ListSubjects(ctx context.Context, principal contracts.Principal, limit int, cursor string) (contracts.SubjectPage, error)

func (*ControlPlaneService) ListTenantControllerAuthorities added in v0.6.0

func (service *ControlPlaneService) ListTenantControllerAuthorities(ctx context.Context, _ contracts.Principal, tenantRef string, limit int, cursor string) (contracts.TenantControllerAuthorityPage, error)

func (*ControlPlaneService) ListTenants added in v0.6.0

func (service *ControlPlaneService) ListTenants(ctx context.Context, _ contracts.Principal, limit int, cursor string) (contracts.TenantPage, error)

func (*ControlPlaneService) Metrics

Metrics returns only fixed-cardinality state, outcome, timing, and transport signals.

func (*ControlPlaneService) MutateSandbox

func (service *ControlPlaneService) MutateSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	kind string,
	idempotencyKey string,
	expectedRevision int64,
	metadata map[string]string,
) (contracts.Operation, bool, error)

MutateSandbox exposes one exact HTTP lifecycle action with replay evidence.

func (*ControlPlaneService) OpenActivitySession

func (service *ControlPlaneService) OpenActivitySession(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
	leaseID string,
	kind string,
) (contracts.ActivitySession, error)

OpenActivitySession admits generation-bound exec, file, PTY, or port work.

func (*ControlPlaneService) OpenPortTunnel

func (service *ControlPlaneService) OpenPortTunnel(
	ctx context.Context,
	tunnel runnercontrol.PortTunnel,
) (*SandboxPortStream, error)

func (*ControlPlaneService) OpenSandboxExecStream

func (service *ControlPlaneService) OpenSandboxExecStream(
	ctx context.Context,
	session runnercontrol.DataPlaneSession,
) (*SandboxExecStream, error)

func (*ControlPlaneService) OpenSandboxTerminalStream

func (service *ControlPlaneService) OpenSandboxTerminalStream(
	ctx context.Context,
	session runnercontrol.DataPlaneSession,
	attachmentID string,
	afterSequence int64,
) (*SandboxTerminalStream, error)

func (*ControlPlaneService) PingSandbox

func (service *ControlPlaneService) PingSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
) (contracts.PingResult, error)

PingSandbox returns persisted health evidence without changing activity or liveness.

func (*ControlPlaneService) ReactivateTenant added in v0.6.0

func (service *ControlPlaneService) ReactivateTenant(ctx context.Context, principal contracts.Principal, tenantRef, idempotencyKey string, expectedRevision int64) (contracts.Tenant, bool, error)

func (*ControlPlaneService) ReadSandboxFile

func (service *ControlPlaneService) ReadSandboxFile(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, path string,
) ([]byte, string, error)

func (*ControlPlaneService) Ready

func (service *ControlPlaneService) Ready(ctx context.Context) error

Ready proves the database authority is reachable.

func (*ControlPlaneService) ReleaseSandboxLease

func (service *ControlPlaneService) ReleaseSandboxLease(
	ctx context.Context,
	principal contracts.Principal,
	leaseID string,
	idempotencyKey string,
) (contracts.Lease, error)

ReleaseSandboxLease ends bounded authority without deleting the Sandbox.

func (*ControlPlaneService) RelocateSandbox

func (service *ControlPlaneService) RelocateSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	idempotencyKey string,
	expectedRevision int64,
	request contracts.RelocateSandboxRequest,
) (contracts.Operation, bool, error)

RelocateSandbox starts one operator-initiated stopped Workspace transfer.

func (*ControlPlaneService) RemoveSandboxPath

func (service *ControlPlaneService) RemoveSandboxPath(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, idempotencyKey string,
	request contracts.RemovePathRequest,
) (bool, error)

func (*ControlPlaneService) RenewSandboxLease

func (service *ControlPlaneService) RenewSandboxLease(
	ctx context.Context,
	principal contracts.Principal,
	leaseID string,
	idempotencyKey string,
	durationSeconds int64,
) (contracts.Lease, error)

RenewSandboxLease renews only current, active generation authority.

func (*ControlPlaneService) ReportGuestLiveness

func (service *ControlPlaneService) ReportGuestLiveness(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
	liveness string,
) (contracts.Instance, error)

ReportGuestLiveness persists runner-reported guest health without renewing useful activity.

func (*ControlPlaneService) RestoreSandboxSnapshot

func (service *ControlPlaneService) RestoreSandboxSnapshot(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	idempotencyKey string,
	expectedRevision int64,
	request contracts.RestoreSnapshotRequest,
) (contracts.Operation, bool, error)

RestoreSandboxSnapshot admits a stopped-only in-place restore.

func (*ControlPlaneService) ReviseProfile

func (service *ControlPlaneService) ReviseProfile(
	ctx context.Context,
	principal contracts.Principal,
	name string,
	request contracts.ReviseProfileRequest,
) (contracts.Profile, error)

ReviseProfile appends immutable policy without mutating pinned Sandboxes.

func (*ControlPlaneService) ReviseProfileAtRevisionIdempotent

func (service *ControlPlaneService) ReviseProfileAtRevisionIdempotent(
	ctx context.Context,
	principal contracts.Principal,
	name string,
	idempotencyKey string,
	request contracts.ReviseProfileRequest,
	expectedRevision int64,
) (contracts.Profile, bool, error)

ReviseProfileAtRevisionIdempotent appends or replays one exact immutable Profile revision.

func (*ControlPlaneService) RevokeApplicationAuthority added in v0.6.0

func (service *ControlPlaneService) RevokeApplicationAuthority(ctx context.Context, principal contracts.Principal, authorityID, idempotencyKey string, expectedRevision int64) (contracts.ApplicationAuthority, bool, error)

func (*ControlPlaneService) RevokeTenantControllerAuthority added in v0.6.0

func (service *ControlPlaneService) RevokeTenantControllerAuthority(ctx context.Context, principal contracts.Principal, tenantRef, authorityID, idempotencyKey string, expectedRevision int64) (contracts.TenantControllerAuthority, bool, error)

func (*ControlPlaneService) RotateApplicationAuthority added in v0.6.0

func (service *ControlPlaneService) RotateApplicationAuthority(ctx context.Context, principal contracts.Principal, authorityID, idempotencyKey string, expectedRevision int64) (contracts.ApplicationCredentialResponse, bool, error)

func (*ControlPlaneService) RotateTenantControllerAuthority added in v0.6.0

func (service *ControlPlaneService) RotateTenantControllerAuthority(ctx context.Context, principal contracts.Principal, tenantRef, authorityID, idempotencyKey string, expectedRevision int64) (contracts.TenantControllerCredentialResponse, bool, error)

func (*ControlPlaneService) SandboxExecStreamEndpoint

func (service *ControlPlaneService) SandboxExecStreamEndpoint(
	sandboxID string,
	sessionID string,
) (string, error)

func (*ControlPlaneService) SandboxExecStreamOutcome

func (service *ControlPlaneService) SandboxExecStreamOutcome(
	ctx context.Context,
	principal contracts.Principal,
	sessionID string,
) (any, error)

func (*ControlPlaneService) SandboxFileExists

func (service *ControlPlaneService) SandboxFileExists(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, path string,
) (contracts.FileExistsResult, error)

func (*ControlPlaneService) SandboxTerminalEndpoint

func (service *ControlPlaneService) SandboxTerminalEndpoint(
	sandboxID string,
	sessionID string,
) (string, error)

func (*ControlPlaneService) SandboxTerminalOutcome

func (service *ControlPlaneService) SandboxTerminalOutcome(
	ctx context.Context,
	principal contracts.Principal,
	sessionID string,
) (any, error)

func (*ControlPlaneService) StartSandbox

func (service *ControlPlaneService) StartSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	idempotencyKey string,
	expectedRevision int64,
) (contracts.Operation, error)

StartSandbox records running intent for asynchronous reconciliation.

func (*ControlPlaneService) StatSandboxFile

func (service *ControlPlaneService) StatSandboxFile(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, path string,
) (contracts.FileStat, error)

func (*ControlPlaneService) StopSandbox

func (service *ControlPlaneService) StopSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	idempotencyKey string,
	expectedRevision int64,
) (contracts.Operation, error)

StopSandbox converges the Sandbox to stopped after durable local generation advance.

func (*ControlPlaneService) SuspendTenant added in v0.6.0

func (service *ControlPlaneService) SuspendTenant(ctx context.Context, principal contracts.Principal, tenantRef, idempotencyKey string, expectedRevision int64) (contracts.Tenant, bool, error)

func (*ControlPlaneService) TouchSandbox

func (service *ControlPlaneService) TouchSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	generation int64,
	leaseID string,
	idempotencyKey string,
) (contracts.TouchResult, error)

TouchSandbox records only explicit useful client activity.

func (*ControlPlaneService) UpdateRunnerPool

func (service *ControlPlaneService) UpdateRunnerPool(
	ctx context.Context,
	principal contracts.Principal,
	name string,
	request contracts.UpdateRunnerPoolRequest,
	expectedRevision int64,
) (contracts.RunnerPool, error)

UpdateRunnerPool changes explicit placement policy under optimistic concurrency.

func (*ControlPlaneService) UpdateSandboxMetadata

func (service *ControlPlaneService) UpdateSandboxMetadata(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	expectedRevision int64,
	request contracts.UpdateSandboxMetadataRequest,
) (contracts.Sandbox, error)

UpdateSandboxMetadata replaces bounded consumer correlation metadata without changing lifecycle, workspace, generation, placement, or profile authority.

func (*ControlPlaneService) UpdateSubjectQuota added in v0.6.0

func (service *ControlPlaneService) UpdateSubjectQuota(
	ctx context.Context,
	principal contracts.Principal,
	subjectRef string,
	idempotencyKey string,
	expectedRevision int64,
	request contracts.UpdateSubjectQuotaRequest,
) (contracts.Subject, bool, error)

UpdateSubjectQuota replaces one Subject quota under revision and usage fences.

func (*ControlPlaneService) WaitSandbox

func (service *ControlPlaneService) WaitSandbox(
	ctx context.Context,
	principal contracts.Principal,
	sandboxID string,
	request contracts.WaitSandboxRequest,
) (contracts.Sandbox, error)

WaitSandbox blocks until the persisted Sandbox reaches one requested state.

func (*ControlPlaneService) WriteSandboxFile

func (service *ControlPlaneService) WriteSandboxFile(
	ctx context.Context, principal contracts.Principal, requestID string, sandboxID string,
	generation int64, leaseID string, idempotencyKey string,
	path string, content []byte, sha256Hex string,
) (contracts.FileWriteResult, bool, error)

type ControlPlaneStore

ControlPlaneStore is the service's composite consumer-side store contract.

type DataPlaneStore

DataPlaneStore owns durable admission, lifecycle, and terminal projections.

type HealthStore

type HealthStore interface {
	Ping(ctx context.Context) error
}

HealthStore exposes only readiness authority.

type ManagementStore added in v0.6.0

type ManagementStore interface {
	CreateManagedTenant(context.Context, contracts.Tenant, ports.AdminIdempotencyInput) (contracts.Tenant, ports.AdminIdempotencyResult, error)
	GetTenant(context.Context, string) (contracts.Tenant, error)
	ListTenants(context.Context, int, string) (contracts.TenantPage, error)
	SetTenantState(context.Context, string, string, int64, time.Time, ports.AdminIdempotencyInput) (contracts.Tenant, ports.AdminIdempotencyResult, error)
	CreateManagedSubject(context.Context, contracts.Subject, ports.AdminIdempotencyInput) (contracts.Subject, ports.AdminIdempotencyResult, error)
	GetSubject(context.Context, string, string) (contracts.Subject, error)
	ListSubjects(context.Context, string, int, string) (contracts.SubjectPage, error)
	UpdateManagedSubjectQuota(context.Context, string, string, contracts.QuotaLimits, int64, time.Time, ports.AdminIdempotencyInput) (contracts.Subject, ports.AdminIdempotencyResult, error)
	CloseManagedSubject(context.Context, string, string, int64, time.Time, ports.AdminIdempotencyInput) (contracts.Subject, ports.AdminIdempotencyResult, error)
	CreateManagedSubjectCleanup(context.Context, string, string, contracts.Operation, int64, time.Time, ports.AdminIdempotencyInput) (contracts.Operation, ports.AdminIdempotencyResult, error)
	CreateManagedTenantControllerAuthority(context.Context, contracts.TenantControllerAuthority, ports.AdminIdempotencyInput) (contracts.TenantControllerCredentialResponse, ports.AdminIdempotencyResult, error)
	ListTenantControllerAuthorities(context.Context, string, int, string) (contracts.TenantControllerAuthorityPage, error)
	RotateManagedTenantControllerAuthority(context.Context, string, string, int64, time.Time, ports.AdminIdempotencyInput) (contracts.TenantControllerCredentialResponse, ports.AdminIdempotencyResult, error)
	RevokeManagedTenantControllerAuthority(context.Context, string, string, int64, time.Time, ports.AdminIdempotencyInput) (contracts.TenantControllerAuthority, ports.AdminIdempotencyResult, error)
	CreateManagedApplicationAuthority(context.Context, contracts.ApplicationAuthority, ports.AdminIdempotencyInput) (contracts.ApplicationCredentialResponse, ports.AdminIdempotencyResult, error)
	ListApplicationAuthorities(context.Context, string, string, int, string) (contracts.ApplicationAuthorityPage, error)
	RotateManagedApplicationAuthority(context.Context, string, string, int64, time.Time, ports.AdminIdempotencyInput) (contracts.ApplicationCredentialResponse, ports.AdminIdempotencyResult, error)
	RevokeManagedApplicationAuthority(context.Context, string, string, int64, time.Time, ports.AdminIdempotencyInput) (contracts.ApplicationAuthority, ports.AdminIdempotencyResult, error)
	GetTenantControllerAuthority(context.Context, string, string) (contracts.TenantControllerAuthority, error)
	GetApplicationAuthority(context.Context, string, string) (contracts.ApplicationAuthority, error)
	GetTenantUsage(context.Context, string, int, string, time.Time) (contracts.TenantUsage, error)
	GetDeploymentUsage(context.Context, int, string, time.Time) (contracts.DeploymentUsage, error)
}

ManagementStore owns durable delegated tenant management resources.

type ObservabilityStore

type ObservabilityStore interface {
	AppendAuditEvent(ctx context.Context, event contracts.AuditEvent) error
	ReadMetricsSnapshot(ctx context.Context) (contracts.MetricsSnapshot, error)
	ReadSandboxTiming(ctx context.Context, tenantRef, subjectRef, sandboxID string, limit int) (contracts.SandboxTiming, error)
	ReadOperationTiming(ctx context.Context, tenantRef, subjectRef, operationID string) (contracts.OperationTiming, error)
	ReadDeploymentTiming(ctx context.Context, since, until time.Time) (contracts.DeploymentTimingSummary, error)
}

ObservabilityStore owns audit and metrics reads/writes.

type ProfileStore

type ProfileStore interface {
	CreateProfile(ctx context.Context, profile contracts.Profile, idempotency ports.AdminIdempotencyInput) (contracts.Profile, ports.AdminIdempotencyResult, error)
	ReviseProfile(ctx context.Context, name string, revision contracts.ProfileRevision, expectedRevision int64, now time.Time, idempotency ports.AdminIdempotencyInput) (contracts.Profile, ports.AdminIdempotencyResult, error)
	DisableProfile(ctx context.Context, name string, expectedRevision int64, now time.Time, idempotency ports.AdminIdempotencyInput) (contracts.Profile, ports.AdminIdempotencyResult, error)
	GetProfile(ctx context.Context, name string) (contracts.Profile, error)
	ListProfiles(ctx context.Context, limit int, cursor string) (contracts.ProfilePage, error)
}

ProfileStore owns immutable Profile revisions.

type RunnerAdminStore

type RunnerAdminStore interface {
	CreateRunnerPool(ctx context.Context, pool contracts.RunnerPool) (contracts.RunnerPool, error)
	UpdateRunnerPool(ctx context.Context, name string, request contracts.UpdateRunnerPoolRequest, expectedRevision int64, now time.Time) (contracts.RunnerPool, error)
	GetRunnerPool(ctx context.Context, name string) (contracts.RunnerPool, error)
	ListRunnerPools(ctx context.Context, limit int, cursor string) (contracts.RunnerPoolPage, error)
	GetRunner(ctx context.Context, runnerID string) (contracts.Runner, error)
	ListRunners(ctx context.Context, poolName string, limit int, cursor string) (contracts.RunnerPage, error)
}

RunnerAdminStore owns runner-pool and runner administration.

type SandboxExecStream

type SandboxExecStream struct {
	// contains filtered or unexported fields
}

SandboxExecStream forwards one public streaming Exec attachment without retaining payload bytes outside the bounded live transport.

func (*SandboxExecStream) Cancel

func (stream *SandboxExecStream) Cancel(ctx context.Context, reason string) error

func (*SandboxExecStream) Close

func (stream *SandboxExecStream) Close() error

func (*SandboxExecStream) Receive

func (*SandboxExecStream) Send

type SandboxPortStream

type SandboxPortStream struct {
	// contains filtered or unexported fields
}

SandboxPortStream forwards one proxied PortSession over the authenticated Runner connection without retaining payload bytes in PostgreSQL.

func (*SandboxPortStream) Acknowledge

func (stream *SandboxPortStream) Acknowledge(
	ctx context.Context,
	event runnercontrol.PortTunnelEvent,
) error

func (*SandboxPortStream) Close

func (stream *SandboxPortStream) Close() error

func (*SandboxPortStream) Receive

func (*SandboxPortStream) Send

func (stream *SandboxPortStream) Send(ctx context.Context, payload []byte) error

type SandboxStore

type SandboxStore interface {
	CreateSandbox(ctx context.Context, input ports.CreateSandboxInput) (contracts.Sandbox, contracts.Operation, bool, error)
	UpdateSandboxMetadata(ctx context.Context, input ports.UpdateSandboxMetadataInput) (contracts.Sandbox, error)
	GetSandbox(ctx context.Context, tenantRef, subjectRef, sandboxID string) (contracts.Sandbox, error)
	ListSandboxes(ctx context.Context, tenantRef, subjectRef string, limit int, cursor string, metadata map[string]string) (contracts.SandboxPage, error)
	GetOperation(ctx context.Context, tenantRef, subjectRef, operationID string) (contracts.Operation, error)
	GetTenantOperation(ctx context.Context, tenantRef, operationID string) (contracts.Operation, error)
	GetSubjectUsage(ctx context.Context, tenantRef, subjectRef string) (contracts.SubjectUsage, error)
	RelocateSandbox(ctx context.Context, input ports.WorkspaceRelocationInput) (contracts.Operation, error)
}

SandboxStore owns public Sandbox and Operation records.

type SandboxTerminalStream

type SandboxTerminalStream struct {
	// contains filtered or unexported fields
}

SandboxTerminalStream forwards one exclusive Terminal attachment while the Runner owns bounded replay across attachment transports.

func (*SandboxTerminalStream) Close

func (stream *SandboxTerminalStream) Close() error

func (*SandboxTerminalStream) NextClientSequence added in v0.2.0

func (stream *SandboxTerminalStream) NextClientSequence() int64

NextClientSequence returns the Runner-authoritative public input sequence selected by the attachment handshake.

func (*SandboxTerminalStream) Receive

func (*SandboxTerminalStream) Send

type SnapshotStore

type SnapshotStore interface {
	CreateSnapshot(ctx context.Context, input ports.SnapshotCreationInput) (contracts.Operation, error)
	DeleteSnapshot(ctx context.Context, input ports.SnapshotDeletionInput) (contracts.Operation, error)
	RestoreSnapshot(ctx context.Context, input ports.SnapshotRestoreInput) (contracts.Operation, error)
	ListSnapshots(ctx context.Context, tenantRef, subjectRef, sandboxID string, limit int, cursor string, now time.Time) (contracts.SnapshotPage, error)
	GetSnapshot(ctx context.Context, tenantRef, subjectRef, snapshotID string, now time.Time) (contracts.Snapshot, error)
}

SnapshotStore owns durable user snapshots.

Jump to

Keyboard shortcuts

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