From 63fa45ffdd080d0d304a36f0a363038a2924e0c2 Mon Sep 17 00:00:00 2001 From: Jason Staack Date: Thu, 12 Mar 2026 15:36:36 -0500 Subject: [PATCH] feat(api): add remote access pydantic schemas --- backend/app/schemas/remote_access.py | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 backend/app/schemas/remote_access.py diff --git a/backend/app/schemas/remote_access.py b/backend/app/schemas/remote_access.py new file mode 100644 index 0000000..dda16aa --- /dev/null +++ b/backend/app/schemas/remote_access.py @@ -0,0 +1,39 @@ +from pydantic import BaseModel, Field + + +class WinboxSessionResponse(BaseModel): + tunnel_id: str + host: str = "127.0.0.1" + port: int + winbox_uri: str + idle_timeout_seconds: int = 300 + + +class SSHSessionRequest(BaseModel): + cols: int = Field(default=80, gt=0, le=500) + rows: int = Field(default=24, gt=0, le=200) + + +class SSHSessionResponse(BaseModel): + token: str + websocket_url: str + idle_timeout_seconds: int = 900 + + +class TunnelStatusItem(BaseModel): + tunnel_id: str + local_port: int + active_conns: int + idle_seconds: int + created_at: str + + +class SSHSessionStatusItem(BaseModel): + session_id: str + idle_seconds: int + created_at: str + + +class ActiveSessionsResponse(BaseModel): + winbox_tunnels: list[TunnelStatusItem] = [] + ssh_sessions: list[SSHSessionStatusItem] = []