Files
LOGAR/src/server_models.py
T
me0nline f2a9e43619
CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 1m14s
Refactor Server.py into modular domain classes (models, auth, storage, queue, licensing, PKI, UI)
2026-10-02 21:57:29 +02:00

77 lines
1.8 KiB
Python

"""
LOGAR - Server Pydantic Models
Provides structured request and response models for the LOGAR Server Hub API.
"""
from typing import Optional
from pydantic import BaseModel
class ClientEnrollRequest(BaseModel):
client_id: str
hostname: str
os: str
enrollment_secret: str
class ClientActionRequest(BaseModel):
client_id: str
class LicenseImportRequest(BaseModel):
ca_cert: str
upstream_ca: Optional[str] = None
class HermesTokenCreateRequest(BaseModel):
name: str
class HermesTokenRevokeRequest(BaseModel):
token: str
class ClientProfileExportRequest(BaseModel):
server_host: Optional[str] = None
server_port: Optional[int] = None
client_id: Optional[str] = None
class ChangePasswordRequest(BaseModel):
old_password: str
new_password: str
class DbConnectionTestRequest(BaseModel):
host: str = "localhost"
port: int = 5432
database: str = "logar"
user: str = "postgres"
password: str = ""
sslmode: str = "prefer"
connect_timeout: int = 5
pool_size: int = 10
class DbSwitchBackendRequest(BaseModel):
db_type: str = "sqlite" # "sqlite" | "postgres"
host: Optional[str] = "localhost"
port: Optional[int] = 5432
database: Optional[str] = "logar"
user: Optional[str] = "postgres"
password: Optional[str] = ""
sslmode: Optional[str] = "prefer"
connect_timeout: Optional[int] = 5
pool_size: Optional[int] = 10
db_path: Optional[str] = None
class DbFullConfigRequest(BaseModel):
storage_engine: str = "sqlite" # "sqlite" | "postgres"
cache_mode: str = "direct" # "direct" | "buffered"
flush_interval: float = 2.0
batch_size: int = 100
max_queue: int = 50000
encrypt_at_rest: bool = False
pg_config: Optional[DbConnectionTestRequest] = None