feat(gateways): Introduce gateway model and update agent provisioning templates

This commit is contained in:
Abhimanyu Saharan
2026-02-04 23:07:22 +05:30
parent 1297c12a73
commit b6f31fe6ea
32 changed files with 2770 additions and 724 deletions

View File

@@ -1,6 +1,7 @@
from app.schemas.activity_events import ActivityEventRead
from app.schemas.agents import AgentCreate, AgentRead, AgentUpdate
from app.schemas.boards import BoardCreate, BoardRead, BoardUpdate
from app.schemas.gateways import GatewayCreate, GatewayRead, GatewayUpdate
from app.schemas.metrics import DashboardMetrics
from app.schemas.tasks import TaskCreate, TaskRead, TaskUpdate
from app.schemas.users import UserCreate, UserRead, UserUpdate
@@ -13,6 +14,9 @@ __all__ = [
"BoardCreate",
"BoardRead",
"BoardUpdate",
"GatewayCreate",
"GatewayRead",
"GatewayUpdate",
"DashboardMetrics",
"TaskCreate",
"TaskRead",

View File

@@ -12,6 +12,8 @@ class AgentBase(SQLModel):
name: str
status: str = "provisioning"
heartbeat_config: dict[str, Any] | None = None
identity_template: str | None = None
soul_template: str | None = None
class AgentCreate(AgentBase):
@@ -23,6 +25,8 @@ class AgentUpdate(SQLModel):
name: str | None = None
status: str | None = None
heartbeat_config: dict[str, Any] | None = None
identity_template: str | None = None
soul_template: str | None = None
class AgentRead(AgentBase):

View File

@@ -9,26 +9,17 @@ from sqlmodel import SQLModel
class BoardBase(SQLModel):
name: str
slug: str
gateway_url: str | None = None
gateway_main_session_key: str | None = None
gateway_workspace_root: str | None = None
identity_template: str | None = None
soul_template: str | None = None
gateway_id: UUID | None = None
class BoardCreate(BoardBase):
gateway_token: str | None = None
pass
class BoardUpdate(SQLModel):
name: str | None = None
slug: str | None = None
gateway_url: str | None = None
gateway_token: str | None = None
gateway_main_session_key: str | None = None
gateway_workspace_root: str | None = None
identity_template: str | None = None
soul_template: str | None = None
gateway_id: UUID | None = None
class BoardRead(BoardBase):

View File

@@ -0,0 +1,34 @@
from __future__ import annotations
from datetime import datetime
from uuid import UUID
from sqlmodel import SQLModel
class GatewayBase(SQLModel):
name: str
url: str
main_session_key: str
workspace_root: str
skyll_enabled: bool = False
class GatewayCreate(GatewayBase):
token: str | None = None
class GatewayUpdate(SQLModel):
name: str | None = None
url: str | None = None
token: str | None = None
main_session_key: str | None = None
workspace_root: str | None = None
skyll_enabled: bool | None = None
class GatewayRead(GatewayBase):
id: UUID
token: str | None = None
created_at: datetime
updated_at: datetime