32 lines
1023 B
Python
32 lines
1023 B
Python
import os
|
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
|
|
|
|
|
class Configs(BaseSettings):
|
|
"""
|
|
MongoDB configuration settings.
|
|
"""
|
|
|
|
# MongoDB connection settings
|
|
ENGINE: str = "mongodb"
|
|
USERNAME: str = "appuser" # Application user
|
|
PASSWORD: str = "apppassword" # Application password
|
|
HOST: str = "10.10.2.13"
|
|
PORT: int = 27017
|
|
DB: str = "appdb" # The application database
|
|
AUTH_DB: str = "appdb" # Authentication is done against admin database
|
|
|
|
@property
|
|
def url(self):
|
|
"""Generate the database URL.
|
|
mongodb://{MONGO_USERNAME}:{MONGO_PASSWORD}@{MONGO_HOST}:{MONGO_PORT}/{DB}?authSource={MONGO_AUTH_DB}
|
|
"""
|
|
# Include the database name in the URI
|
|
return f"{self.ENGINE}://{self.USERNAME}:{self.PASSWORD}@{self.HOST}:{self.PORT}/{self.DB}?authSource={self.DB}"
|
|
|
|
model_config = SettingsConfigDict(env_prefix="_MONGO_")
|
|
|
|
|
|
# Create a singleton instance of the MongoDB configuration settings
|
|
mongo_configs = Configs()
|