Source code for qualpipe_webapp.backend.backends.factory
"""Factory for creating backend API instances based on environment configuration.
This module provides the create_backend function, which instantiates the appropriate
backend (e.g., FileBackend) according to environment variables.
"""
import os
from pathlib import Path
from .base import BackendAPI
from .file_backend import FileBackend
[docs]
def create_backend() -> BackendAPI:
"""
Create backend instance based on environment configuration.
Environment Variables
---------------------
BACKEND_TYPE : str, default="file"
Backend type to use ("file", "sqlite", "postgres", etc.)
DATA_DIR : str, default="/app/data"
Base directory containing site subdirectories (ctao-north, ctao-south)
"""
backend_type = os.environ.get("BACKEND_TYPE", "file").lower()
data_dir = Path(os.environ.get("DATA_DIR", "/app/data"))
if backend_type == "file":
return FileBackend(data_dir=data_dir)
elif backend_type == "postgres":
# Future: PostgresBackend(db_url=os.environ.get("DB_URL"))
raise NotImplementedError("PostgreSQL backend not yet implemented")
else:
raise ValueError(f"Unknown backend type: {backend_type}")