35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""Runtime configuration for the officeconvert Connect server."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
import os
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class ServerConfig:
|
|
"""Defines environment-driven settings for server orchestration."""
|
|
|
|
minio_endpoint: str
|
|
minio_access_key: str
|
|
minio_secret_key: str
|
|
minio_secure: bool
|
|
minio_public_endpoint: str
|
|
minio_session_ttl_seconds: int
|
|
conversion_cleanup_delay_seconds: int
|
|
|
|
|
|
def load_server_config() -> ServerConfig:
|
|
"""Load server configuration from environment variables."""
|
|
return ServerConfig(
|
|
minio_endpoint=os.getenv("MINIO_ENDPOINT", "localhost:9000"),
|
|
minio_access_key=os.getenv("MINIO_ACCESS_KEY", "minioadmin"),
|
|
minio_secret_key=os.getenv("MINIO_SECRET_KEY", "minioadmin"),
|
|
minio_secure=os.getenv("MINIO_USE_SSL", "false").lower() == "true",
|
|
minio_public_endpoint=os.getenv("MINIO_PUBLIC_ENDPOINT", "localhost:9000"),
|
|
minio_session_ttl_seconds=int(os.getenv("MINIO_SESSION_TTL_SECONDS", "3600")),
|
|
conversion_cleanup_delay_seconds=int(
|
|
os.getenv("CONVERSION_CLEANUP_DELAY_SECONDS", "3600")
|
|
),
|
|
)
|