Initial project snapshot
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package sessionbroker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"time"
|
||||
|
||||
sessioncontracts "github.com/example/remote-access-platform/backend/pkg/contracts/session"
|
||||
)
|
||||
|
||||
type LiveStateStore interface {
|
||||
UpsertSession(ctx context.Context, state LiveSessionState) error
|
||||
GetSession(ctx context.Context, sessionID string) (*LiveSessionState, error)
|
||||
DeleteSession(ctx context.Context, sessionID string) error
|
||||
BindController(ctx context.Context, binding sessioncontracts.ControllerBinding, ttl time.Duration) error
|
||||
GetControllerBinding(ctx context.Context, sessionID string) (*sessioncontracts.ControllerBinding, error)
|
||||
ClearControllerBinding(ctx context.Context, sessionID string) error
|
||||
StoreAttachToken(ctx context.Context, claims sessioncontracts.AttachTokenClaims, ttl time.Duration) error
|
||||
ConsumeAttachToken(ctx context.Context, token string) (*sessioncontracts.AttachTokenClaims, error)
|
||||
TouchAttachmentHeartbeat(ctx context.Context, sessionID, attachmentID string, ttl time.Duration) error
|
||||
UpdateWorkerRoute(ctx context.Context, route WorkerRoute, ttl time.Duration) error
|
||||
GetWorkerRoute(ctx context.Context, sessionID string) (*WorkerRoute, error)
|
||||
DeleteWorkerRoute(ctx context.Context, sessionID string) error
|
||||
}
|
||||
|
||||
type LiveSessionState struct {
|
||||
SessionID string `json:"session_id"`
|
||||
ResourceID string `json:"resource_id"`
|
||||
WorkerID string `json:"worker_id"`
|
||||
State sessioncontracts.State `json:"state"`
|
||||
ControllerID string `json:"controller_id"`
|
||||
AttachmentID string `json:"attachment_id"`
|
||||
TakeoverVersion int `json:"takeover_version"`
|
||||
RenderQualityProfile string `json:"render_quality_profile,omitempty"`
|
||||
RenderState string `json:"render_state,omitempty"`
|
||||
RenderWidth int `json:"render_width,omitempty"`
|
||||
RenderHeight int `json:"render_height,omitempty"`
|
||||
RenderFrameSequence int64 `json:"render_frame_sequence,omitempty"`
|
||||
RenderFrameFormat string `json:"render_frame_format,omitempty"`
|
||||
RenderFrameData string `json:"render_frame_data,omitempty"`
|
||||
LastInputCorrelationID string `json:"last_input_correlation_id,omitempty"`
|
||||
WorkerFrameCapturedAt string `json:"worker_frame_captured_at,omitempty"`
|
||||
CursorX int `json:"cursor_x,omitempty"`
|
||||
CursorY int `json:"cursor_y,omitempty"`
|
||||
CursorVisible bool `json:"cursor_visible,omitempty"`
|
||||
DirtyRectangles int `json:"dirty_rectangles,omitempty"`
|
||||
LastRenderAt *time.Time `json:"last_render_at,omitempty"`
|
||||
ClipboardSequence int64 `json:"clipboard_sequence,omitempty"`
|
||||
ClipboardText string `json:"clipboard_text,omitempty"`
|
||||
ClipboardOrigin string `json:"clipboard_origin,omitempty"`
|
||||
ClipboardContentHash string `json:"clipboard_content_hash,omitempty"`
|
||||
ClipboardUpdatedAt *time.Time `json:"clipboard_updated_at,omitempty"`
|
||||
FileDownloadSequence int64 `json:"file_download_sequence,omitempty"`
|
||||
FileDownloadType string `json:"file_download_type,omitempty"`
|
||||
FileDownloadPayload map[string]any `json:"file_download_payload,omitempty"`
|
||||
FileDownloadUpdatedAt *time.Time `json:"file_download_updated_at,omitempty"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
|
||||
type WorkerRoute struct {
|
||||
SessionID string `json:"session_id"`
|
||||
WorkerID string `json:"worker_id"`
|
||||
LeaseID string `json:"lease_id"`
|
||||
ControlStream string `json:"control_stream"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
}
|
||||
Reference in New Issue
Block a user