from pydantic import model_validator
from pydantic_settings import BaseSettings
import logging
import pytz
[docs]
class Settings(BaseSettings):
# default values if env variables does not exist
# Ace API access to Centralize API service
CENTRALIZE_API_URL: str
CENTRALIZE_API_KEY: str
CENTRALIZE_BASE_URL: str = "https://dev.centralize.equisoft.io"
# Monitoring settings
TIMEZONE: str
# DATABASE SETTING
CONNECT_DATABASE: bool = False
USE_DB_CONTEXT: bool = False
DBMS_TYPE: str = ""
DATABASE_NAME: str
DATABASE_HOST: str = ""
DATABASE_PORT: int = 0
DATABASE_USER: str
DATABASE_PASSWORD: str
DATABASE_DRIVER: str
DATABASE_AUTH_METHOD: str = "SQL_SERVER_AUTH"
DATABASE_REQUEST_TIMEOUT: int = 30
ACE_SERVICE_USER_ID: int = 0
DATABASE_UPDATE_METHOD: str = "DIRECT"
ACE_SCRIPT_REPO: str
# RabbitMQ response publishing
RESPONSE_PUBLISH_ROUTING_KEY: str = "event.response.ace.#"
# SFTP settings
SFTP_AUTH_METHOD: str = "password" # password or private_key
SFTP_HOST: str = ""
SFTP_PORT: int = 22
SFTP_USERNAME: str = ""
SFTP_PASSWORD: str = ""
SFTP_PRIVATE_KEY: str = ""
SFTP_PRIVATE_KEY_FILE: str = ""
# SMTP settings
SMTP_HOST: str = ""
SMTP_PORT: int = 587
SMTP_USERNAME: str = ""
SMTP_PASSWORD: str = ""
EMAIL_TEMPLATE_PATH: str = "templates/emails/"
# specify .env file location as Config attribute
[docs]
class Config:
env_file = ".env"
extra = "allow"
settings = Settings()