39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
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)
|