23 lines
748 B
Python
23 lines
748 B
Python
from __future__ import annotations
|
|
|
|
import os
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class Settings:
|
|
flex_auth_base_url: str | None
|
|
flex_auth_timeout_seconds: float
|
|
host: str
|
|
port: int
|
|
database_path: str | None = None
|
|
|
|
@classmethod
|
|
def from_env(cls) -> "Settings":
|
|
return cls(
|
|
flex_auth_base_url=os.getenv("TENANT_ENGINE_FLEX_AUTH_URL") or None,
|
|
flex_auth_timeout_seconds=float(os.getenv("TENANT_ENGINE_FLEX_AUTH_TIMEOUT_SECONDS", "3")),
|
|
host=os.getenv("TENANT_ENGINE_HOST", "127.0.0.1"),
|
|
port=int(os.getenv("TENANT_ENGINE_HTTP_PORT", "8090")),
|
|
database_path=os.getenv("TENANT_ENGINE_DATABASE_PATH") or None,
|
|
)
|