wspubsub

package
v2.32.0 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const AllWorkspaceEventChannel = "workspace_updates:all"

AllWorkspaceEventChannel is a global channel that receives events for all workspaces. This is useful when you need to watch N workspaces without creating N separate subscriptions.

Variables

This section is empty.

Functions

func HandleWorkspaceBuildUpdate added in v2.32.0

func HandleWorkspaceBuildUpdate(cb func(ctx context.Context, payload codersdk.WorkspaceBuildUpdate, err error)) func(ctx context.Context, message []byte, err error)

HandleWorkspaceBuildUpdate wraps a callback to parse WorkspaceBuildUpdate messages from the pubsub.

func HandleWorkspaceEvent

func HandleWorkspaceEvent(cb func(ctx context.Context, payload WorkspaceEvent, err error)) func(ctx context.Context, message []byte, err error)

func PublishWorkspaceBuildUpdate added in v2.32.0

func PublishWorkspaceBuildUpdate(_ context.Context, ps pubsub.Pubsub, update codersdk.WorkspaceBuildUpdate) error

PublishWorkspaceBuildUpdate is a helper to publish a workspace build update to the AllWorkspaceEventChannel. This should be called when a build completes (succeeds, fails, or is canceled).

func WorkspaceEventChannel

func WorkspaceEventChannel(ownerID uuid.UUID) string

WorkspaceEventChannel can be used to subscribe to events for workspaces owned by the provided user ID.

Types

type WorkspaceEvent

type WorkspaceEvent struct {
	Kind        WorkspaceEventKind `json:"kind"`
	WorkspaceID uuid.UUID          `json:"workspace_id" format:"uuid"`
	// AgentID is only set for WorkspaceEventKindAgent* events
	// (excluding AgentTimeout)
	AgentID *uuid.UUID `json:"agent_id,omitempty" format:"uuid"`
}

func (*WorkspaceEvent) Validate

func (w *WorkspaceEvent) Validate() error

type WorkspaceEventKind

type WorkspaceEventKind string
const (
	WorkspaceEventKindStateChange     WorkspaceEventKind = "state_change"
	WorkspaceEventKindStatsUpdate     WorkspaceEventKind = "stats_update"
	WorkspaceEventKindMetadataUpdate  WorkspaceEventKind = "mtd_update"
	WorkspaceEventKindAppHealthUpdate WorkspaceEventKind = "app_health"

	WorkspaceEventKindAgentLifecycleUpdate  WorkspaceEventKind = "agt_lifecycle_update"
	WorkspaceEventKindAgentConnectionUpdate WorkspaceEventKind = "agt_connection_update"
	WorkspaceEventKindAgentFirstLogs        WorkspaceEventKind = "agt_first_logs"
	WorkspaceEventKindAgentLogsOverflow     WorkspaceEventKind = "agt_logs_overflow"
	WorkspaceEventKindAgentTimeout          WorkspaceEventKind = "agt_timeout"
	WorkspaceEventKindAgentAppStatusUpdate  WorkspaceEventKind = "agt_app_status_update"
)

Jump to

Keyboard shortcuts

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