""" Configuration module for Session Management Service Centralized configuration loading from environment variables with defaults. """ import os from pathlib import Path # Session storage configuration SESSIONS_DIR = Path("/app/sessions") SESSIONS_FILE = Path("/app/sessions/sessions.json") # Container configuration CONTAINER_IMAGE = os.getenv("CONTAINER_IMAGE", "lovdata-opencode:latest") # Resource limits - configurable via environment variables with defaults CONTAINER_MEMORY_LIMIT = os.getenv( "CONTAINER_MEMORY_LIMIT", "4g" ) # Memory limit per container CONTAINER_CPU_QUOTA = int( os.getenv("CONTAINER_CPU_QUOTA", "100000") ) # CPU quota (100000 = 1 core) CONTAINER_CPU_PERIOD = int( os.getenv("CONTAINER_CPU_PERIOD", "100000") ) # CPU period (microseconds) # Session management MAX_CONCURRENT_SESSIONS = int( os.getenv("MAX_CONCURRENT_SESSIONS", "3") ) # Max concurrent sessions SESSION_TIMEOUT_MINUTES = int( os.getenv("SESSION_TIMEOUT_MINUTES", "60") ) # Auto-cleanup timeout # Resource monitoring thresholds MEMORY_WARNING_THRESHOLD = float( os.getenv("MEMORY_WARNING_THRESHOLD", "0.8") ) # 80% memory usage CPU_WARNING_THRESHOLD = float( os.getenv("CPU_WARNING_THRESHOLD", "0.9") ) # 90% CPU usage # Feature flags USE_ASYNC_DOCKER = os.getenv("USE_ASYNC_DOCKER", "true").lower() == "true" USE_DATABASE_STORAGE = os.getenv("USE_DATABASE_STORAGE", "true").lower() == "true"