File size: 2,079 Bytes
2fe2727
ffa0093
 
 
2fe2727
ffa0093
 
 
 
 
2fe2727
 
 
ffa0093
2fe2727
ffa0093
2fe2727
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ffa0093
 
 
 
 
2fe2727
 
 
 
8605269
2fe2727
9d1006c
 
8605269
 
 
 
 
2fe2727
 
 
 
 
9d1006c
2fe2727
 
 
 
 
 
8605269
1cfbe6f
9d1006c
2fe2727
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
"""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"