Spaces:
Running
Running
Configuration Management
This directory contains the centralized configuration management for the MHS service, following the same pattern as the AMS service.
Files
config.py- Main configuration file with centralized settingssecurity_config.py- Security-specific configurationnlp_config.py- NLP-specific configuration
Usage
Basic Usage
from app.config.config import settings
# Database settings
mongo_uri = settings.MONGO_URI
db_name = settings.DB_NAME
# Cache settings
cache_uri = settings.CACHE_URI
cache_key = settings.CACHE_K
# JWT settings
jwt_secret = settings.JWT_SECRET_KEY
jwt_algorithm = settings.JWT_ALGORITHM
# Generate cache keys
cart_key = settings.get_cache_key("cart", user_id, "items")
order_key = settings.get_cache_key("order", order_id)
Configuration Validation
from app.config.config import validate_configuration
# Validate configuration on startup
try:
validate_configuration()
print("✅ Configuration is valid")
except ValueError as e:
print(f"❌ Configuration error: {e}")
Environment Variables
All configuration is loaded from environment variables with sensible defaults. Key variables include:
MONGO_URI- MongoDB connection stringDATABASE_URI- PostgreSQL connection stringCACHE_URI- Redis connection stringCACHE_K- Redis passwordJWT_SECRET_KEY- JWT signing secretRAZORPAY_KEY_ID- Payment gateway keyRAZORPAY_KEY_SECRET- Payment gateway secretCORS_ORIGINS- Allowed CORS originsALLOWED_HOSTS- Allowed hosts
Migration from Direct os.getenv()
Instead of:
import os
mongo_uri = os.getenv("MONGO_URI")
Use:
from app.config.config import settings
mongo_uri = settings.MONGO_URI
This provides:
- Type safety
- Default values
- Validation
- Centralized configuration
- Better error handling