70 lines
1.9 KiB
Python
70 lines
1.9 KiB
Python
# ================================================================
|
|
# ENVIRONMENT-SPECIFIC CONFIGURATIONS
|
|
# shared/config/environments.py
|
|
# ================================================================
|
|
|
|
"""
|
|
Environment-specific configuration overrides
|
|
"""
|
|
|
|
from typing import Dict, Any
|
|
|
|
DEVELOPMENT_OVERRIDES: Dict[str, Any] = {
|
|
"DEBUG": True,
|
|
"LOG_LEVEL": "DEBUG",
|
|
"DB_ECHO": True,
|
|
"API_DOCS_ENABLED": True,
|
|
"CORS_ORIGINS": "http://localhost:3000,http://localhost:3001,http://127.0.0.1:3000",
|
|
"MOCK_EXTERNAL_APIS": True,
|
|
"AUTO_RELOAD": True,
|
|
}
|
|
|
|
STAGING_OVERRIDES: Dict[str, Any] = {
|
|
"DEBUG": False,
|
|
"LOG_LEVEL": "INFO",
|
|
"DB_ECHO": False,
|
|
"API_DOCS_ENABLED": True,
|
|
"MOCK_EXTERNAL_APIS": False,
|
|
"AUTO_RELOAD": False,
|
|
}
|
|
|
|
PRODUCTION_OVERRIDES: Dict[str, Any] = {
|
|
"DEBUG": False,
|
|
"LOG_LEVEL": "WARNING",
|
|
"DB_ECHO": False,
|
|
"API_DOCS_ENABLED": False,
|
|
"MOCK_EXTERNAL_APIS": False,
|
|
"AUTO_RELOAD": False,
|
|
"PROFILING_ENABLED": False,
|
|
"RATE_LIMIT_ENABLED": True,
|
|
}
|
|
|
|
TESTING_OVERRIDES: Dict[str, Any] = {
|
|
"TESTING": True,
|
|
"DEBUG": True,
|
|
"LOG_LEVEL": "DEBUG",
|
|
"DATABASE_URL": "postgresql+asyncpg://test_user:test_pass@test-db:5432/test_db",
|
|
"REDIS_URL": "redis://test-redis:6379",
|
|
"MOCK_EXTERNAL_APIS": True,
|
|
"EMAIL_VERIFICATION_REQUIRED": False,
|
|
"RATE_LIMIT_ENABLED": False,
|
|
}
|
|
|
|
def get_environment_overrides(environment: str) -> Dict[str, Any]:
|
|
"""
|
|
Get configuration overrides for specific environment
|
|
|
|
Args:
|
|
environment: Environment name (development, staging, production, testing)
|
|
|
|
Returns:
|
|
Dict: Configuration overrides
|
|
"""
|
|
overrides = {
|
|
"development": DEVELOPMENT_OVERRIDES,
|
|
"staging": STAGING_OVERRIDES,
|
|
"production": PRODUCTION_OVERRIDES,
|
|
"testing": TESTING_OVERRIDES,
|
|
}
|
|
|
|
return overrides.get(environment.lower(), {}) |