"""Application configuration for DocVault.""" import os BASE_DIR = os.path.abspath(os.path.dirname(__file__)) PROJECT_ROOT = os.path.dirname(BASE_DIR) LOG_DIR = os.path.join(PROJECT_ROOT, "logs") os.makedirs(LOG_DIR, exist_ok=True) DEBUG = os.getenv("DEBUG", "false").lower() == "true" SECRET_KEY = os.getenv("SECRET_KEY") JSONIFY_PRETTYPRINT_REGULAR = False MAX_CONTENT_LENGTH = 50 * 1024 * 1024 ALLOWED_EXTENSIONS = { "txt", "pdf", "png", "jpg", "jpeg", "gif", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "zip", "rar", "json", "xml", "csv", "md", "py", "js", "html", "css", "yml", "yaml", "gitkeep", } DEFAULT_USER_ID = "default_user" FOLDER_MARKER = ".gitkeep" LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO") HF_STORAGE_LABEL = "HF" def _optional_env(name: str, default: str | None = None) -> str | None: value = os.getenv(name, "").strip() if not value and default is not None: value = default.strip() return value or None def _required_env(name: str, default: str | None = None) -> str: value = _optional_env(name, default) if not value: raise RuntimeError(f"Missing required environment variable: {name}") return value STORAGE_MODE = _required_env("STORAGE_MODE", "HF").upper() if STORAGE_MODE != HF_STORAGE_LABEL: raise RuntimeError( f"Unsupported STORAGE_MODE '{STORAGE_MODE}'. " f"DocVault is production-configured for STORAGE_MODE={HF_STORAGE_LABEL} only." ) HF_TOKEN = _optional_env("HF_TOKEN") or _optional_env("HUGGING_FACE_HUB_TOKEN") or _optional_env("HF_API_TOKEN") HF_REPO_ID = _optional_env("HF_REPO_ID", "mohsin-devs/docvault-storage") HF_REPO_TYPE = _required_env("HF_REPO_TYPE", "dataset") if HF_REPO_TYPE not in {"dataset", "model", "space"}: raise RuntimeError( "Invalid HF_REPO_TYPE. Supported values are: dataset, model, space." ) if not SECRET_KEY: SECRET_KEY = "docvault-production-secret"