""" Authentication service configuration """ import os from pydantic import BaseSettings class Settings(BaseSettings): """Application settings""" # Basic settings APP_NAME: str = "Authentication Service" VERSION: str = "1.0.0" DEBUG: bool = os.getenv("DEBUG", "False").lower() == "true" LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO") # Database settings DATABASE_URL: str = os.getenv("DATABASE_URL", "postgresql+asyncpg://auth_user:auth_pass123@auth-db:5432/auth_db") # Redis settings REDIS_URL: str = os.getenv("REDIS_URL", "redis://redis:6379/0") # JWT settings JWT_SECRET_KEY: str = os.getenv("JWT_SECRET_KEY", "your-super-secret-jwt-key") JWT_ALGORITHM: str = os.getenv("JWT_ALGORITHM", "HS256") JWT_ACCESS_TOKEN_EXPIRE_MINUTES: int = int(os.getenv("JWT_ACCESS_TOKEN_EXPIRE_MINUTES", "30")) JWT_REFRESH_TOKEN_EXPIRE_DAYS: int = int(os.getenv("JWT_REFRESH_TOKEN_EXPIRE_DAYS", "7")) # Password settings PASSWORD_MIN_LENGTH: int = 8 PASSWORD_REQUIRE_UPPERCASE: bool = True PASSWORD_REQUIRE_LOWERCASE: bool = True PASSWORD_REQUIRE_NUMBERS: bool = True PASSWORD_REQUIRE_SYMBOLS: bool = False # Security settings BCRYPT_ROUNDS: int = 12 MAX_LOGIN_ATTEMPTS: int = 5 LOCKOUT_DURATION_MINUTES: int = 30 # RabbitMQ settings RABBITMQ_URL: str = os.getenv("RABBITMQ_URL", "amqp://bakery:forecast123@rabbitmq:5672/") class Config: env_file = ".env" settings = Settings()