mirror of
https://github.com/henrygd/beszel.git
synced 2025-12-17 02:36:17 +01:00
- Add new /containers route with virtualized table showing all containers across systems - Implement container stats collection (CPU, memory, network usage) with health status tracking - Add container logs and info API endpoints with syntax highlighting using Shiki - Create detailed container views with fullscreen logs/info dialogs and refresh functionality - Add container table to individual system pages with lazy loading - Implement container record storage with automatic cleanup and historical averaging - Update navbar with container navigation icon - Extract reusable ActiveAlerts component from home page - Add FooterRepoLink component for consistent GitHub/version display - Enhance filtering and search capabilities across container tables
64 lines
2.0 KiB
Go
64 lines
2.0 KiB
Go
package common
|
|
|
|
import (
|
|
"github.com/henrygd/beszel/internal/entities/system"
|
|
)
|
|
|
|
type WebSocketAction = uint8
|
|
|
|
const (
|
|
// Request system data from agent
|
|
GetData WebSocketAction = iota
|
|
// Check the fingerprint of the agent
|
|
CheckFingerprint
|
|
// Request container logs from agent
|
|
GetContainerLogs
|
|
// Request container info from agent
|
|
GetContainerInfo
|
|
// Add new actions here...
|
|
)
|
|
|
|
// HubRequest defines the structure for requests sent from hub to agent.
|
|
type HubRequest[T any] struct {
|
|
Action WebSocketAction `cbor:"0,keyasint"`
|
|
Data T `cbor:"1,keyasint,omitempty,omitzero"`
|
|
Id *uint32 `cbor:"2,keyasint,omitempty"`
|
|
}
|
|
|
|
// AgentResponse defines the structure for responses sent from agent to hub.
|
|
type AgentResponse struct {
|
|
Id *uint32 `cbor:"0,keyasint,omitempty"`
|
|
SystemData *system.CombinedData `cbor:"1,keyasint,omitempty,omitzero"`
|
|
Fingerprint *FingerprintResponse `cbor:"2,keyasint,omitempty,omitzero"`
|
|
Error string `cbor:"3,keyasint,omitempty,omitzero"`
|
|
String *string `cbor:"4,keyasint,omitempty,omitzero"`
|
|
// Logs *LogsPayload `cbor:"4,keyasint,omitempty,omitzero"`
|
|
// RawBytes []byte `cbor:"4,keyasint,omitempty,omitzero"`
|
|
}
|
|
|
|
type FingerprintRequest struct {
|
|
Signature []byte `cbor:"0,keyasint"`
|
|
NeedSysInfo bool `cbor:"1,keyasint"` // For universal token system creation
|
|
}
|
|
|
|
type FingerprintResponse struct {
|
|
Fingerprint string `cbor:"0,keyasint"`
|
|
// Optional system info for universal token system creation
|
|
Hostname string `cbor:"1,keyasint,omitzero"`
|
|
Port string `cbor:"2,keyasint,omitzero"`
|
|
Name string `cbor:"3,keyasint,omitzero"`
|
|
}
|
|
|
|
type DataRequestOptions struct {
|
|
CacheTimeMs uint16 `cbor:"0,keyasint"`
|
|
// ResourceType uint8 `cbor:"1,keyasint,omitempty,omitzero"`
|
|
}
|
|
|
|
type ContainerLogsRequest struct {
|
|
ContainerID string `cbor:"0,keyasint"`
|
|
}
|
|
|
|
type ContainerInfoRequest struct {
|
|
ContainerID string `cbor:"0,keyasint"`
|
|
}
|