DocumentVault / server /config.py
mohsin-devs's picture
Default HF repo id for Space startup
1cfbe6f
"""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"