Documentation
¶
Index ¶
- type FileStorage
- func (fs *FileStorage) Close() error
- func (fs *FileStorage) Delete(sessionID string) error
- func (fs *FileStorage) Load(sessionID string) (*SessionData, error)
- func (fs *FileStorage) LoadAll() ([]*SessionData, error)
- func (fs *FileStorage) Save(session *SessionData) error
- func (fs *FileStorage) Update(session *SessionData) error
- type MemoryStorage
- func (m *MemoryStorage) Close() error
- func (m *MemoryStorage) Delete(sessionID string) error
- func (m *MemoryStorage) Load(sessionID string) (*SessionData, error)
- func (m *MemoryStorage) LoadAll() ([]*SessionData, error)
- func (m *MemoryStorage) Save(session *SessionData) error
- func (m *MemoryStorage) Update(session *SessionData) error
- type S3Storage
- func (s *S3Storage) Close() error
- func (s *S3Storage) Delete(sessionID string) error
- func (s *S3Storage) Load(sessionID string) (*SessionData, error)
- func (s *S3Storage) LoadAll() ([]*SessionData, error)
- func (s *S3Storage) Save(session *SessionData) error
- func (s *S3Storage) Update(session *SessionData) error
- type SessionData
- type Storage
- type StorageConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FileStorage ¶
type FileStorage struct {
// contains filtered or unexported fields
}
FileStorage implements file-based session persistence
func NewFileStorage ¶
func NewFileStorage(filePath string, syncInterval int, encryptSecrets bool) (*FileStorage, error)
NewFileStorage creates a new file storage instance
func (*FileStorage) Close ¶
func (fs *FileStorage) Close() error
Close stops the sync routine and performs final sync
func (*FileStorage) Delete ¶
func (fs *FileStorage) Delete(sessionID string) error
Delete removes a session and syncs to file
func (*FileStorage) Load ¶
func (fs *FileStorage) Load(sessionID string) (*SessionData, error)
Load retrieves a session by ID
func (*FileStorage) LoadAll ¶
func (fs *FileStorage) LoadAll() ([]*SessionData, error)
LoadAll retrieves all sessions
func (*FileStorage) Save ¶
func (fs *FileStorage) Save(session *SessionData) error
Save stores a session and syncs to file
func (*FileStorage) Update ¶
func (fs *FileStorage) Update(session *SessionData) error
Update updates an existing session
type MemoryStorage ¶
type MemoryStorage struct {
// contains filtered or unexported fields
}
MemoryStorage implements in-memory session storage
func NewMemoryStorage ¶
func NewMemoryStorage() *MemoryStorage
NewMemoryStorage creates a new memory storage instance
func (*MemoryStorage) Close ¶
func (m *MemoryStorage) Close() error
Close is a no-op for memory storage
func (*MemoryStorage) Delete ¶
func (m *MemoryStorage) Delete(sessionID string) error
Delete removes a session from memory
func (*MemoryStorage) Load ¶
func (m *MemoryStorage) Load(sessionID string) (*SessionData, error)
Load retrieves a session by ID
func (*MemoryStorage) LoadAll ¶
func (m *MemoryStorage) LoadAll() ([]*SessionData, error)
LoadAll retrieves all sessions
func (*MemoryStorage) Save ¶
func (m *MemoryStorage) Save(session *SessionData) error
Save stores a session in memory
func (*MemoryStorage) Update ¶
func (m *MemoryStorage) Update(session *SessionData) error
Update updates an existing session
type S3Storage ¶ added in v1.9.1
type S3Storage struct {
// contains filtered or unexported fields
}
S3Storage implements Storage interface using AWS S3
func NewS3Storage ¶ added in v1.9.1
func NewS3Storage(bucket, region, prefix, endpoint, accessKey, secretKey string, encryptSecrets bool) (*S3Storage, error)
NewS3Storage creates a new S3 storage instance
func (*S3Storage) Load ¶ added in v1.9.1
func (s *S3Storage) Load(sessionID string) (*SessionData, error)
Load retrieves a session from S3
func (*S3Storage) LoadAll ¶ added in v1.9.1
func (s *S3Storage) LoadAll() ([]*SessionData, error)
LoadAll retrieves all sessions from S3
func (*S3Storage) Save ¶ added in v1.9.1
func (s *S3Storage) Save(session *SessionData) error
Save stores a session in S3
func (*S3Storage) Update ¶ added in v1.9.1
func (s *S3Storage) Update(session *SessionData) error
Update updates an existing session in S3
type SessionData ¶
type SessionData struct {
ID string `json:"id"`
Port int `json:"port"`
StartedAt time.Time `json:"started_at"`
UserID string `json:"user_id"`
Status string `json:"status"`
Environment map[string]string `json:"environment"`
Tags map[string]string `json:"tags"`
ProcessID int `json:"process_id,omitempty"` // For validation on recovery
Command []string `json:"command,omitempty"` // To recreate process if needed
WorkingDir string `json:"working_dir,omitempty"`
}
SessionData represents the persistable session data
type Storage ¶
type Storage interface {
// Save persists a session to storage
Save(session *SessionData) error
// Load retrieves a session by ID
Load(sessionID string) (*SessionData, error)
// LoadAll retrieves all sessions
LoadAll() ([]*SessionData, error)
// Delete removes a session from storage
Delete(sessionID string) error
// Update updates an existing session
Update(session *SessionData) error
// Close cleans up any resources
Close() error
}
Storage defines the interface for session persistence
func NewStorage ¶
func NewStorage(config *StorageConfig) (Storage, error)
NewStorage creates a storage instance based on the configuration
type StorageConfig ¶
type StorageConfig struct {
Type string `json:"type"` // "memory", "file", "sqlite", "s3"
// File storage config
FilePath string `json:"file_path,omitempty"`
SyncInterval int `json:"sync_interval_seconds,omitempty"`
EncryptSecrets bool `json:"encrypt_sensitive_data,omitempty"`
// S3 storage config
S3Bucket string `json:"s3_bucket,omitempty"`
S3Region string `json:"s3_region,omitempty"`
S3Prefix string `json:"s3_prefix,omitempty"`
S3Endpoint string `json:"s3_endpoint,omitempty"` // For custom S3-compatible services
S3AccessKey string `json:"s3_access_key,omitempty"`
S3SecretKey string `json:"s3_secret_key,omitempty"`
// Future: Database config
DatabaseURL string `json:"database_url,omitempty"`
}
StorageConfig holds configuration for storage backends