81 lines
1.5 KiB
Python
81 lines
1.5 KiB
Python
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class AppSectionConfig:
|
|
name: str
|
|
env: str
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class HttpConfig:
|
|
host: str
|
|
port: int
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class LoggingConfig:
|
|
level: str
|
|
output: str
|
|
format: str
|
|
file_path: str | None
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class MetricsConfig:
|
|
enabled: bool
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class TracingConfig:
|
|
enabled: bool
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class OtelConfig:
|
|
service_name: str
|
|
logs_endpoint: str
|
|
metrics_endpoint: str
|
|
traces_endpoint: str
|
|
metric_export_interval: int
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class DockerConfig:
|
|
base_url: str
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class SandboxConfig:
|
|
image: str
|
|
network_name: str
|
|
agent_service_port: int
|
|
ttl_seconds: int
|
|
cleanup_interval_seconds: int
|
|
chats_root: str
|
|
dependencies_host_path: str
|
|
lambda_tools_host_path: str
|
|
chat_mount_path: str
|
|
dependencies_mount_path: str
|
|
lambda_tools_mount_path: str
|
|
volume_mount_path: str
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class SecurityConfig:
|
|
token_header: str
|
|
api_token: str
|
|
signing_key: str
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class AppConfig:
|
|
app: AppSectionConfig
|
|
http: HttpConfig
|
|
logging: LoggingConfig
|
|
metrics: MetricsConfig
|
|
tracing: TracingConfig
|
|
otel: OtelConfig
|
|
docker: DockerConfig
|
|
sandbox: SandboxConfig
|
|
security: SecurityConfig
|