loapi/app/config.py
2025-12-28 19:01:46 -06:00

39 lines
1.3 KiB
Python

from pydantic import Field
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
env: str = Field(default='DEV', alias="ENV")
# Server settings
host: str = Field(default="0.0.0.0", alias="HOST")
port: int = Field(default=8000, alias="PORT")
debug: bool = Field(default=False, alias="DEBUG")
log_level: str = Field(default="INFO", alias="LOG_LEVEL")
# Database settings
oracle_user: str = Field(alias="ORACLE_USER")
oracle_password: str = Field(alias="ORACLE_PASSWORD")
oracle_dsn: str = Field(alias="ORACLE_DSN")
# Sentry settings
sentry_dsn: str | None = Field(default=None, alias="SENTRY_DSN")
# Datadog settings
dd_service: str = Field(default="loapi", alias="DD_SERVICE")
dd_env: str = Field(default="development", alias="DD_ENV")
dd_version: str = Field(default="1.0.0", alias="DD_VERSION")
# Rate limiting settings
rate_limit_enabled: bool = Field(default=True, alias="RATE_LIMIT_ENABLED")
rate_limit_requests: int = Field(default=100, alias="RATE_LIMIT_REQUESTS")
rate_limit_period: str = Field(default="1/minute", alias="RATE_LIMIT_PERIOD")
class Config:
env_file = ".env"
case_sensitive = False
settings = Settings() # type:ignore[call-arg]