feat(FN-004): merge fusion/fn-004
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
from app.schemas.access_route import AccessRouteCreate, AccessRouteRead, AccessRouteUpdate
|
||||
from app.schemas.config import ConfigCreate, ConfigRead, ConfigUpdate
|
||||
from app.schemas.project import ProjectCreate, ProjectRead, ProjectUpdate
|
||||
from app.schemas.repository import RepositoryCreate, RepositoryRead, RepositoryUpdate
|
||||
from app.schemas.secret import SecretCreate, SecretRead, SecretUpdate
|
||||
from app.schemas.tool_definition import (
|
||||
ToolDefinitionCreate,
|
||||
ToolDefinitionRead,
|
||||
ToolDefinitionUpdate,
|
||||
)
|
||||
from app.schemas.tool_instance import ToolInstanceCreate, ToolInstanceRead, ToolInstanceUpdate
|
||||
from app.schemas.user import UserCreate, UserRead
|
||||
from app.schemas.workspace import WorkspaceCreate, WorkspaceRead, WorkspaceUpdate
|
||||
|
||||
__all__ = [
|
||||
"AccessRouteCreate",
|
||||
"AccessRouteRead",
|
||||
"AccessRouteUpdate",
|
||||
"ConfigCreate",
|
||||
"ConfigRead",
|
||||
"ConfigUpdate",
|
||||
"ProjectCreate",
|
||||
"ProjectRead",
|
||||
"ProjectUpdate",
|
||||
"RepositoryCreate",
|
||||
"RepositoryRead",
|
||||
"RepositoryUpdate",
|
||||
"SecretCreate",
|
||||
"SecretRead",
|
||||
"SecretUpdate",
|
||||
"ToolDefinitionCreate",
|
||||
"ToolDefinitionRead",
|
||||
"ToolDefinitionUpdate",
|
||||
"ToolInstanceCreate",
|
||||
"ToolInstanceRead",
|
||||
"ToolInstanceUpdate",
|
||||
"UserCreate",
|
||||
"UserRead",
|
||||
"WorkspaceCreate",
|
||||
"WorkspaceRead",
|
||||
"WorkspaceUpdate",
|
||||
]
|
||||
@@ -0,0 +1,29 @@
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class AccessRouteBase(OrmBase):
|
||||
domain: str
|
||||
path_prefix: str = "/"
|
||||
provider_type: str = "traefik"
|
||||
provider_config: dict[str, Any] | None = None
|
||||
is_active: bool = True
|
||||
|
||||
|
||||
class AccessRouteCreate(AccessRouteBase):
|
||||
pass
|
||||
|
||||
|
||||
class AccessRouteRead(AccessRouteBase):
|
||||
id: UUID
|
||||
tool_instance_id: UUID
|
||||
|
||||
|
||||
class AccessRouteUpdate(OrmBase):
|
||||
domain: str | None = None
|
||||
path_prefix: str | None = None
|
||||
provider_type: str | None = None
|
||||
provider_config: dict[str, Any] | None = None
|
||||
is_active: bool | None = None
|
||||
@@ -0,0 +1,5 @@
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
class OrmBase(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
@@ -0,0 +1,25 @@
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class ConfigBase(OrmBase):
|
||||
scope_type: str
|
||||
scope_id: UUID
|
||||
tool_definition_id: UUID | None = None
|
||||
key: str
|
||||
value: dict[str, Any]
|
||||
|
||||
|
||||
class ConfigCreate(ConfigBase):
|
||||
pass
|
||||
|
||||
|
||||
class ConfigRead(ConfigBase):
|
||||
id: UUID
|
||||
|
||||
|
||||
class ConfigUpdate(OrmBase):
|
||||
key: str | None = None
|
||||
value: dict[str, Any] | None = None
|
||||
@@ -0,0 +1,24 @@
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class ProjectBase(OrmBase):
|
||||
name: str
|
||||
slug: str
|
||||
description: str | None = None
|
||||
|
||||
|
||||
class ProjectCreate(ProjectBase):
|
||||
pass
|
||||
|
||||
|
||||
class ProjectRead(ProjectBase):
|
||||
id: UUID
|
||||
owner_id: UUID
|
||||
|
||||
|
||||
class ProjectUpdate(OrmBase):
|
||||
name: str | None = None
|
||||
slug: str | None = None
|
||||
description: str | None = None
|
||||
@@ -0,0 +1,26 @@
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class RepositoryBase(OrmBase):
|
||||
name: str
|
||||
git_url: str
|
||||
provider_type: str = "generic"
|
||||
default_branch: str = "main"
|
||||
|
||||
|
||||
class RepositoryCreate(RepositoryBase):
|
||||
pass
|
||||
|
||||
|
||||
class RepositoryRead(RepositoryBase):
|
||||
id: UUID
|
||||
project_id: UUID
|
||||
|
||||
|
||||
class RepositoryUpdate(OrmBase):
|
||||
name: str | None = None
|
||||
git_url: str | None = None
|
||||
provider_type: str | None = None
|
||||
default_branch: str | None = None
|
||||
@@ -0,0 +1,23 @@
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class SecretBase(OrmBase):
|
||||
scope_type: str
|
||||
scope_id: UUID
|
||||
key: str
|
||||
|
||||
|
||||
class SecretCreate(SecretBase):
|
||||
value: str
|
||||
|
||||
|
||||
class SecretRead(SecretBase):
|
||||
id: UUID
|
||||
value: str
|
||||
|
||||
|
||||
class SecretUpdate(OrmBase):
|
||||
key: str | None = None
|
||||
value: str | None = None
|
||||
@@ -0,0 +1,29 @@
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class ToolDefinitionBase(OrmBase):
|
||||
key: str
|
||||
name: str
|
||||
version: str = "1.0.0"
|
||||
description: str | None = None
|
||||
image: str
|
||||
manifest_data: dict[str, Any] | None = None
|
||||
|
||||
|
||||
class ToolDefinitionCreate(ToolDefinitionBase):
|
||||
pass
|
||||
|
||||
|
||||
class ToolDefinitionRead(ToolDefinitionBase):
|
||||
id: UUID
|
||||
|
||||
|
||||
class ToolDefinitionUpdate(OrmBase):
|
||||
name: str | None = None
|
||||
version: str | None = None
|
||||
description: str | None = None
|
||||
image: str | None = None
|
||||
manifest_data: dict[str, Any] | None = None
|
||||
@@ -0,0 +1,30 @@
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class ToolInstanceBase(OrmBase):
|
||||
name: str
|
||||
status: str = "pending"
|
||||
container_id: str | None = None
|
||||
subdomain: str | None = None
|
||||
config_override: dict[str, Any] | None = None
|
||||
|
||||
|
||||
class ToolInstanceCreate(ToolInstanceBase):
|
||||
tool_definition_id: UUID
|
||||
|
||||
|
||||
class ToolInstanceRead(ToolInstanceBase):
|
||||
id: UUID
|
||||
project_id: UUID
|
||||
tool_definition_id: UUID
|
||||
|
||||
|
||||
class ToolInstanceUpdate(OrmBase):
|
||||
name: str | None = None
|
||||
status: str | None = None
|
||||
container_id: str | None = None
|
||||
subdomain: str | None = None
|
||||
config_override: dict[str, Any] | None = None
|
||||
@@ -0,0 +1,21 @@
|
||||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class UserBase(OrmBase):
|
||||
authentik_sub: str
|
||||
email: str
|
||||
display_name: str | None = None
|
||||
is_active: bool = True
|
||||
|
||||
|
||||
class UserCreate(UserBase):
|
||||
pass
|
||||
|
||||
|
||||
class UserRead(UserBase):
|
||||
id: UUID
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
@@ -0,0 +1,22 @@
|
||||
from uuid import UUID
|
||||
|
||||
from app.schemas.base import OrmBase
|
||||
|
||||
|
||||
class WorkspaceBase(OrmBase):
|
||||
name: str
|
||||
mount_path: str | None = None
|
||||
|
||||
|
||||
class WorkspaceCreate(WorkspaceBase):
|
||||
pass
|
||||
|
||||
|
||||
class WorkspaceRead(WorkspaceBase):
|
||||
id: UUID
|
||||
project_id: UUID
|
||||
|
||||
|
||||
class WorkspaceUpdate(OrmBase):
|
||||
name: str | None = None
|
||||
mount_path: str | None = None
|
||||
Reference in New Issue
Block a user