Documentation
¶
Index ¶
- func AddProxiedPermissions(m *authz.PermissionMatcher)
- func LogBroadcaster() *logs.Broadcaster
- func NewWebSocketHandler(appCtx context.Context, group *echo.Group, ...)
- type WebSocketHandler
- func (h *WebSocketHandler) ActorDiagnosticsStream(c *echo.Context) error
- func (h *WebSocketHandler) ContainerExec(c *echo.Context) error
- func (h *WebSocketHandler) ContainerLogs(c *echo.Context) error
- func (h *WebSocketHandler) ContainerStats(c *echo.Context) error
- func (h *WebSocketHandler) ContainersStats(c *echo.Context) error
- func (h *WebSocketHandler) DiagnosticsStream(c *echo.Context) error
- func (h *WebSocketHandler) ProjectLogs(c *echo.Context) error
- func (h *WebSocketHandler) ServerLogsStream(c *echo.Context) error
- func (h *WebSocketHandler) ServiceLogs(c *echo.Context) error
- func (h *WebSocketHandler) SystemStats(c *echo.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddProxiedPermissions ¶ added in v2.1.0
func AddProxiedPermissions(m *authz.PermissionMatcher)
AddProxiedPermissions registers the permissions required by proxied WebSocket routes with the environment proxy permission matcher. These streams are served by Echo (not Huma), so they are absent from the OpenAPI document and must be registered with the matcher separately. The paths are stored relative to /environments/{id} (i.e. prefixed with "/ws"), matching the resource suffix the proxy computes for forwarded requests.
func LogBroadcaster ¶ added in v2.4.0
func LogBroadcaster() *logs.Broadcaster
LogBroadcaster returns the backend-wide log broadcaster used by diagnostics.
func NewWebSocketHandler ¶
func NewWebSocketHandler( appCtx context.Context, group *echo.Group, projectService *project.ProjectService, containerService *container.ContainerService, swarmService *swarm.SwarmService, systemService *system.SystemService, diagnosticsService *diagnostics.DiagnosticsService, authMiddleware *auth.AuthMiddleware, cfg *config.Config, )
Types ¶
type WebSocketHandler ¶
type WebSocketHandler struct {
// contains filtered or unexported fields
}
WebSocketHandler consolidates all WebSocket and streaming endpoints. REST endpoints are handled by Huma handlers.
func (*WebSocketHandler) ActorDiagnosticsStream ¶ added in v2.15.0
func (h *WebSocketHandler) ActorDiagnosticsStream(c *echo.Context) error
ActorDiagnosticsStream pushes actor diagnostics for every environment on connect and then every actorDiagnosticsStreamInterval.
func (*WebSocketHandler) ContainerExec ¶
func (h *WebSocketHandler) ContainerExec(c *echo.Context) error
ContainerExec provides interactive terminal access to a container.
@Summary Execute command in container via WebSocket
@Description Interactive terminal access to a container over WebSocket
@Tags WebSocket
@Param id path string true "Environment ID"
@Param containerId path string true "Container ID"
@Param shell query string false "Shell to execute" default(/bin/sh)
@Router /api/environments/{id}/ws/containers/{containerId}/terminal [get]
func (*WebSocketHandler) ContainerLogs ¶
func (h *WebSocketHandler) ContainerLogs(c *echo.Context) error
ContainerLogs streams container logs over WebSocket.
@Summary Get container logs via WebSocket
@Description Stream container logs over WebSocket connection
@Tags WebSocket
@Param id path string true "Environment ID"
@Param containerId path string true "Container ID"
@Param follow query bool false "Follow log output" default(true)
@Param tail query string false "Number of lines to show from the end" default(100)
@Param since query string false "Show logs since timestamp"
@Param timestamps query bool false "Show timestamps" default(false)
@Param format query string false "Output format (text or json)" default(text)
@Param batched query bool false "Batch log messages" default(false)
@Router /api/environments/{id}/ws/containers/{containerId}/logs [get]
func (*WebSocketHandler) ContainerStats ¶
func (h *WebSocketHandler) ContainerStats(c *echo.Context) error
ContainerStats streams container stats over WebSocket.
@Summary Get container stats via WebSocket
@Description Stream container resource statistics over WebSocket connection
@Tags WebSocket
@Param id path string true "Environment ID"
@Param containerId path string true "Container ID"
@Router /api/environments/{id}/ws/containers/{containerId}/stats [get]
func (*WebSocketHandler) ContainersStats ¶ added in v2.16.1
func (h *WebSocketHandler) ContainersStats(c *echo.Context) error
ContainersStats streams resource samples for a client-chosen set of containers over one WebSocket. The client sends a ResourceSampleSubscription whenever its set changes; the server answers with a ResourceSampleBatch every couple of seconds.
@Summary Get batched container stats via WebSocket
@Description Stream resource samples for the subscribed containers over one WebSocket connection
@Tags WebSocket
@Param id path string true "Environment ID"
@Router /api/environments/{id}/ws/containers/stats [get]
func (*WebSocketHandler) DiagnosticsStream ¶
func (h *WebSocketHandler) DiagnosticsStream(c *echo.Context) error
DiagnosticsStream pushes a snapshot on connect and every diagnosticsStreamInterval, and answers refresh, dump, leak-scan, and profile commands from the client.
func (*WebSocketHandler) ProjectLogs ¶
func (h *WebSocketHandler) ProjectLogs(c *echo.Context) error
ProjectLogs streams project logs over WebSocket.
@Summary Get project logs via WebSocket
@Description Stream project logs over WebSocket connection
@Tags WebSocket
@Param id path string true "Environment ID"
@Param projectId path string true "Project ID"
@Param follow query bool false "Follow log output" default(true)
@Param tail query string false "Number of lines to show from the end" default(100)
@Param since query string false "Show logs since timestamp"
@Param timestamps query bool false "Show timestamps" default(false)
@Param format query string false "Output format (text or json)" default(text)
@Param batched query bool false "Batch log messages" default(false)
@Router /api/environments/{id}/ws/projects/{projectId}/logs [get]
func (*WebSocketHandler) ServerLogsStream ¶
func (h *WebSocketHandler) ServerLogsStream(c *echo.Context) error
ServerLogsStream replays the recent backend log backlog then streams new entries live.
func (*WebSocketHandler) ServiceLogs ¶
func (h *WebSocketHandler) ServiceLogs(c *echo.Context) error
ServiceLogs streams swarm service logs over WebSocket.
@Summary Get swarm service logs via WebSocket
@Description Stream swarm service logs over WebSocket connection
@Tags WebSocket
@Param id path string true "Environment ID"
@Param serviceId path string true "Service ID"
@Param follow query bool false "Follow log output" default(true)
@Param tail query string false "Number of lines to show from the end" default(100)
@Param since query string false "Show logs since timestamp"
@Param timestamps query bool false "Show timestamps" default(false)
@Param format query string false "Output format (text or json)" default(text)
@Param batched query bool false "Batch log messages" default(false)
@Router /api/environments/{id}/ws/swarm/services/{serviceId}/logs [get]
func (*WebSocketHandler) SystemStats ¶
func (h *WebSocketHandler) SystemStats(c *echo.Context) error
SystemStats streams system stats over WebSocket.
@Summary Get system stats via WebSocket
@Description Stream system resource statistics over WebSocket connection
@Tags WebSocket
@Param id path string true "Environment ID"
@Router /api/environments/{id}/ws/system/stats [get]