feat(gateways): Introduce gateway model and update agent provisioning templates
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from app.models.activity_events import ActivityEvent
|
||||
from app.models.agents import Agent
|
||||
from app.models.boards import Board
|
||||
from app.models.gateways import Gateway
|
||||
from app.models.tasks import Task
|
||||
from app.models.users import User
|
||||
|
||||
@@ -8,6 +9,7 @@ __all__ = [
|
||||
"ActivityEvent",
|
||||
"Agent",
|
||||
"Board",
|
||||
"Gateway",
|
||||
"Task",
|
||||
"User",
|
||||
]
|
||||
|
||||
@@ -4,7 +4,7 @@ from datetime import datetime
|
||||
from typing import Any
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
from sqlalchemy import Column, JSON
|
||||
from sqlalchemy import Column, JSON, Text
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@ class Agent(SQLModel, table=True):
|
||||
heartbeat_config: dict[str, Any] | None = Field(
|
||||
default=None, sa_column=Column(JSON)
|
||||
)
|
||||
identity_template: str | None = Field(default=None, sa_column=Column(Text))
|
||||
soul_template: str | None = Field(default=None, sa_column=Column(Text))
|
||||
provision_requested_at: datetime | None = Field(default=None)
|
||||
provision_confirm_token_hash: str | None = Field(default=None, index=True)
|
||||
provision_action: str | None = Field(default=None, index=True)
|
||||
|
||||
@@ -14,11 +14,6 @@ class Board(TenantScoped, table=True):
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
name: str
|
||||
slug: str = Field(index=True)
|
||||
gateway_url: str | None = Field(default=None)
|
||||
gateway_token: str | None = Field(default=None)
|
||||
gateway_main_session_key: str | None = Field(default=None)
|
||||
gateway_workspace_root: str | None = Field(default=None)
|
||||
identity_template: str | None = Field(default=None)
|
||||
soul_template: str | None = Field(default=None)
|
||||
gateway_id: UUID | None = Field(default=None, foreign_key="gateways.id", index=True)
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
20
backend/app/models/gateways.py
Normal file
20
backend/app/models/gateways.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from uuid import UUID, uuid4
|
||||
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
|
||||
class Gateway(SQLModel, table=True):
|
||||
__tablename__ = "gateways"
|
||||
|
||||
id: UUID = Field(default_factory=uuid4, primary_key=True)
|
||||
name: str
|
||||
url: str
|
||||
token: str | None = Field(default=None)
|
||||
main_session_key: str
|
||||
workspace_root: str
|
||||
skyll_enabled: bool = Field(default=False)
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
Reference in New Issue
Block a user