120 lines
2.9 KiB
Python
120 lines
2.9 KiB
Python
"""
|
|
Application configuration settings.
|
|
|
|
This module handles environment variables and application configuration
|
|
using simple os.getenv() approach without external validation libraries.
|
|
"""
|
|
|
|
import os
|
|
|
|
|
|
def get_mongodb_url() -> str:
|
|
"""
|
|
Get MongoDB connection URL from environment variables.
|
|
|
|
Returns:
|
|
str: MongoDB connection URL
|
|
|
|
Returns default localhost URL if MONGODB_URL not set.
|
|
"""
|
|
return os.getenv("MONGODB_URL", "mongodb://localhost:27017")
|
|
|
|
|
|
def get_mongodb_database_name() -> str:
|
|
"""
|
|
Get MongoDB database name from environment variables.
|
|
|
|
Returns:
|
|
str: MongoDB database name
|
|
"""
|
|
return os.getenv("MONGODB_DATABASE", "mydocmanager")
|
|
|
|
|
|
def get_redis_url() -> str:
|
|
return os.getenv("REDIS_URL", "redis://localhost:6379/0")
|
|
|
|
|
|
# def get_redis_host() -> str:
|
|
# redis_url = get_redis_url()
|
|
# if redis_url.startswith("redis://"):
|
|
# return redis_url.split("redis://")[1].split("/")[0]
|
|
# else:
|
|
# return redis_url
|
|
#
|
|
#
|
|
# def get_redis_port() -> int:
|
|
# redis_url = get_redis_url()
|
|
# if redis_url.startswith("redis://"):
|
|
# return int(redis_url.split("redis://")[1].split("/")[0].split(":")[1])
|
|
# else:
|
|
# return int(redis_url.split(":")[1])
|
|
|
|
|
|
def get_jwt_secret_key() -> str:
|
|
"""
|
|
Get JWT secret key from environment variables.
|
|
|
|
Returns:
|
|
str: JWT secret key
|
|
|
|
Raises:
|
|
ValueError: If JWT_SECRET is not set in production
|
|
"""
|
|
secret = os.getenv("JWT_SECRET")
|
|
if not secret:
|
|
# For development, provide a default key with warning
|
|
if os.getenv("ENVIRONMENT", "development") == "development":
|
|
print("WARNING: Using default JWT secret key for development")
|
|
return "dev-secret-key-change-in-production"
|
|
else:
|
|
raise ValueError("JWT_SECRET environment variable must be set in production")
|
|
return secret
|
|
|
|
|
|
def get_jwt_algorithm() -> str:
|
|
"""
|
|
Get JWT algorithm from environment variables.
|
|
|
|
Returns:
|
|
str: JWT algorithm (default: HS256)
|
|
"""
|
|
return os.getenv("JWT_ALGORITHM", "HS256")
|
|
|
|
|
|
def get_jwt_expire_hours() -> int:
|
|
"""
|
|
Get JWT token expiration time in hours from environment variables.
|
|
|
|
Returns:
|
|
int: JWT expiration time in hours (default: 24)
|
|
"""
|
|
try:
|
|
return int(os.getenv("JWT_EXPIRE_HOURS", "24"))
|
|
except ValueError:
|
|
return 24
|
|
|
|
|
|
def is_development_environment() -> bool:
|
|
"""
|
|
Check if running in development environment.
|
|
|
|
Returns:
|
|
bool: True if development environment
|
|
"""
|
|
return os.getenv("ENVIRONMENT", "development").lower() == "development"
|
|
|
|
|
|
def get_objects_folder() -> str:
|
|
"""
|
|
Get Vault path from environment variables.
|
|
|
|
Returns:
|
|
str: Vault path
|
|
"""
|
|
return os.getenv("OBJECTS_FOLDER", "/objects")
|
|
|
|
|
|
def watch_directory() -> str:
|
|
"""Directory to monitor for new files"""
|
|
return os.getenv("WATCH_DIRECTORY", "/watched_files")
|