import os from pathlib import Path def _get_bool_setting(name: str, default: bool) -> bool: """Parse conventional boolean environment values.""" value = os.environ.get(name) if value is None: return default return value.strip().lower() in {"1", "true", "yes", "on"} def _get_max_content_length() -> int: """Resolve the upload size limit from environment settings.""" upload_limit_mb = os.environ.get("MAX_UPLOAD_SIZE_MB") if upload_limit_mb: return int(upload_limit_mb) * 1024 * 1024 max_content_length = os.environ.get("MAX_CONTENT_LENGTH") if max_content_length: return int(max_content_length) return 100 * 1024 * 1024 class Config: """Default configuration for local and container usage.""" SECRET_KEY = os.environ.get("SECRET_KEY", "dev-secret-key-change-me") # Default to 100 MiB so larger WAF exports can be processed without tuning. MAX_CONTENT_LENGTH = _get_max_content_length() PREVIEW_RECORD_LIMIT = int(os.environ.get("PREVIEW_RECORD_LIMIT", 5)) OUTPUT_DIRECTORY = Path( os.environ.get("OUTPUT_DIRECTORY", Path("instance") / "outputs") ) OUTPUT_RETENTION_HOURS = int(os.environ.get("OUTPUT_RETENTION_HOURS", 24)) CLEANUP_ON_STARTUP = _get_bool_setting("CLEANUP_ON_STARTUP", True) CLEANUP_AFTER_DOWNLOAD = _get_bool_setting("CLEANUP_AFTER_DOWNLOAD", False)