hosts

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2026 License: AGPL-3.0 Imports: 26 Imported by: 0

Documentation

Overview

Package hosts owns host enrollment, authentication, inventory, connector ownership, and durable host management work.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrEnrollmentRateLimited = errors.New("host enrollment rate limit exceeded")
	ErrSlowDown              = errors.New("host enrollment polling too quickly")
)

Functions

This section is empty.

Types

type ActiveAttempt

type ActiveAttempt struct {
	JobID        uuid.UUID
	AttemptToken uuid.UUID
}

type ConnectorCancellation

type ConnectorCancellation struct {
	ConnectorID  uuid.UUID
	JobID        uuid.UUID
	AttemptToken uuid.UUID
}

type Detail

type Detail struct {
	Host         dbq.Host
	Capabilities []string
	OwnerName    string
	Connectors   []dbq.ConnectorResource
	Jobs         []dbq.HostManagementJob
}

type Enrollment

type Enrollment struct {
	DeviceSecret string
	UserCode     string
	VerifyURL    string
	ExpiresAt    time.Time
	PollInterval int32
}

type EnrollmentResult

type EnrollmentResult struct {
	Status     string
	HostID     uuid.UUID
	Credential string
}

type Identity

type Identity struct {
	HostID       uuid.UUID
	CredentialID uuid.UUID
}

type InstallRequest

type InstallRequest struct {
	AgentID        uuid.UUID
	NeedSlug       string
	ArtifactFileID uuid.UUID
	DisplayName    string
	Settings       json.RawMessage
	Timeout        time.Duration
}

type Service

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

func New

func New(database *db.DB, publicURL string, storageOrigins []string, store objectStore, connectorJobs *connectorjobssvc.Service, secretStore secrets.Store, logger *zap.Logger) *Service

func (*Service) AppendConnectorEvent

func (s *Service) AppendConnectorEvent(ctx context.Context, hostID, connectorID, jobID uuid.UUID, event protocol.JobEvent) error

func (*Service) AppendManagementEvent

func (s *Service) AppendManagementEvent(ctx context.Context, hostID, jobID uuid.UUID, event protocol.HostManagementEvent) (dbq.AppendHostManagementEventRow, error)

func (*Service) ApproveEnrollment

func (s *Service) ApproveEnrollment(ctx context.Context, p authz.Principal, userCode string) (dbq.HostEnrollmentSession, error)

func (*Service) Authenticate

func (s *Service) Authenticate(ctx context.Context, token string) (Identity, error)

func (*Service) BeginEnrollment

func (s *Service) BeginEnrollment(ctx context.Context, clientIP string, info protocol.HostInfo) (Enrollment, error)

func (*Service) Cancellations

func (s *Service) Cancellations(ctx context.Context, hostID uuid.UUID) ([]ConnectorCancellation, error)

func (*Service) ClaimWork

func (s *Service) ClaimWork(ctx context.Context, hostID uuid.UUID, claimConnector bool) (*protocol.HostWork, error)

func (*Service) CompleteConnector

func (s *Service) CompleteConnector(ctx context.Context, hostID, connectorID, jobID uuid.UUID, completion protocol.JobCompletion) (dbq.ConnectorJob, error)

func (*Service) CompleteEnrollment

func (s *Service) CompleteEnrollment(ctx context.Context, deviceSecret string) (EnrollmentResult, error)

func (*Service) CompleteManagement

func (s *Service) CompleteManagement(ctx context.Context, hostID, jobID uuid.UUID, completion protocol.HostManagementCompletion) (dbq.HostManagementJob, error)

func (*Service) DenyEnrollment

func (s *Service) DenyEnrollment(ctx context.Context, p authz.Principal, userCode string) error

func (*Service) Get

func (s *Service) Get(ctx context.Context, p authz.Principal, hostID uuid.UUID) (Detail, error)

func (*Service) GetJob

func (*Service) InspectEnrollment

func (s *Service) InspectEnrollment(ctx context.Context, p authz.Principal, userCode string) (dbq.HostEnrollmentSession, error)

func (*Service) List

func (s *Service) List(ctx context.Context, p authz.Principal) ([]dbq.ListHostsRow, error)

func (*Service) ReconcileInventory

ReconcileInventory applies one durable installation mutation under the shared connector lock protocol documented by connectors.LockResources.

func (*Service) RenewConnectorAttempts

func (s *Service) RenewConnectorAttempts(ctx context.Context, hostID uuid.UUID, attempts []ActiveAttempt) error

func (*Service) RenewManagementAttempts

func (s *Service) RenewManagementAttempts(ctx context.Context, hostID uuid.UUID, attempts []ActiveAttempt) error

func (*Service) RequestInstall

func (s *Service) RequestInstall(ctx context.Context, p authz.Principal, hostID uuid.UUID, request InstallRequest) (dbq.HostManagementJob, error)

func (*Service) RequestRemove

func (s *Service) RequestRemove(ctx context.Context, p authz.Principal, connectorID uuid.UUID, duration time.Duration) (dbq.HostManagementJob, error)

func (*Service) RequestRollback

func (s *Service) RequestRollback(ctx context.Context, p authz.Principal, connectorID uuid.UUID, duration time.Duration) (dbq.HostManagementJob, error)

func (*Service) RequestShell

func (s *Service) RequestShell(ctx context.Context, p authz.Principal, hostID uuid.UUID, input protocol.ShellInput, duration time.Duration) (dbq.HostManagementJob, error)

func (*Service) RequestUpdate

func (s *Service) RequestUpdate(ctx context.Context, p authz.Principal, connectorID, artifactFileID uuid.UUID, settings json.RawMessage, duration time.Duration) (dbq.HostManagementJob, error)

func (*Service) Sync

func (s *Service) Sync(ctx context.Context, hostID uuid.UUID, request protocol.HostSyncRequest) (dbq.Host, error)

func (*Service) WaitForWork

func (s *Service) WaitForWork(ctx context.Context, hostID uuid.UUID, claimConnector bool, maximum time.Duration) (*protocol.HostWork, error)

Jump to

Keyboard shortcuts

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