bmc_hub/app/core/config.py
Christian 2361bd2277 Fix: Add missing env vars to Settings class and remove inline comments from .env
- Added API_RELOAD, CORS_ORIGINS to Settings
- Added deployment-specific vars: POSTGRES_*, RELEASE_VERSION, GITEA_URL, GITHUB_TOKEN, GITHUB_REPO
- Removed inline comments from boolean values (Pydantic can't parse them)
- Updated CORS middleware to use CORS_ORIGINS with fallback to ALLOWED_ORIGINS
2025-12-17 17:28:50 +01:00

86 lines
2.5 KiB
Python

"""
Configuration Module
Handles environment variables and application settings
"""
import os
from typing import List
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Application settings loaded from environment variables"""
# Database
DATABASE_URL: str = "postgresql://bmc_hub:bmc_hub@localhost:5432/bmc_hub"
# API
API_HOST: str = "0.0.0.0"
API_PORT: int = 8000
API_RELOAD: bool = False
# Security
SECRET_KEY: str = "dev-secret-key-change-in-production"
ALLOWED_ORIGINS: List[str] = ["http://localhost:8000", "http://localhost:3000"]
CORS_ORIGINS: str = "http://localhost:8000,http://localhost:3000"
# Logging
LOG_LEVEL: str = "INFO"
LOG_FILE: str = "logs/app.log"
# e-conomic Integration
ECONOMIC_API_URL: str = "https://restapi.e-conomic.com"
ECONOMIC_APP_SECRET_TOKEN: str = ""
ECONOMIC_AGREEMENT_GRANT_TOKEN: str = ""
ECONOMIC_READ_ONLY: bool = True
ECONOMIC_DRY_RUN: bool = True
# Ollama LLM
OLLAMA_ENDPOINT: str = "http://localhost:11434"
OLLAMA_MODEL: str = "llama3.2:3b"
# vTiger Cloud Integration
VTIGER_URL: str = ""
VTIGER_USERNAME: str = ""
VTIGER_API_KEY: str = ""
# Time Tracking Module Settings
TIMETRACKING_DEFAULT_HOURLY_RATE: float = 1200.00
TIMETRACKING_AUTO_ROUND: bool = True
TIMETRACKING_ROUND_INCREMENT: float = 0.5
TIMETRACKING_ROUND_METHOD: str = "up" # "up", "down", "nearest"
# Time Tracking Module Safety Flags
TIMETRACKING_VTIGER_READ_ONLY: bool = True
TIMETRACKING_VTIGER_DRY_RUN: bool = True
TIMETRACKING_ECONOMIC_READ_ONLY: bool = True
TIMETRACKING_ECONOMIC_DRY_RUN: bool = True
TIMETRACKING_EXPORT_TYPE: str = "draft" # "draft" or "booked"
# Simply-CRM (Old vTiger On-Premise)
OLD_VTIGER_URL: str = ""
OLD_VTIGER_USERNAME: str = ""
OLD_VTIGER_API_KEY: str = ""
# Simply-CRM (Separate System)
SIMPLYCRM_URL: str = ""
SIMPLYCRM_USERNAME: str = ""
SIMPLYCRM_API_KEY: str = ""
# Deployment Configuration (used by Docker/Podman)
POSTGRES_USER: str = "bmc_hub"
POSTGRES_PASSWORD: str = "bmc_hub"
POSTGRES_DB: str = "bmc_hub"
POSTGRES_PORT: int = 5432
RELEASE_VERSION: str = "latest"
GITEA_URL: str = "https://g.bmcnetworks.dk"
GITHUB_TOKEN: str = ""
GITHUB_REPO: str = "ct/bmc_hub"
class Config:
env_file = ".env"
case_sensitive = True
settings = Settings()