from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", extra="ignore") APP_NAME: str = "APIsService" DB_HOST: str DB_PORT: int = 5432 DB_USER: str DB_PASSWORD: str DB_NAME: str DB_SSLMODE: str = "prefer" SUPABASE_DB_HOST: str SUPABASE_DB_PORT: int = 5432 SUPABASE_DB_USER: str SUPABASE_DB_PASSWORD: str SUPABASE_DB_NAME: str SUPABASE_DB_SSLMODE: str = "disable" SUPABASE_API_URL: str SUPABASE_API_KEY: str ROOT_PATH: str = "" TIMEZONE: str = "Asia/Bangkok" ADMIN_SECRET_KEY: str ADMIN_USERNAME: str ADMIN_PASSWORD: str API_KEY_ENC_SECRET: str | None = None # Debug settings DEBUG_AUTH: bool = False # Set to True to enable detailed authentication logging # Keycloak Authentication (for web pages only) KEYCLOAK_SERVER_URL: str = "http://keycloak:8080" KEYCLOAK_REALM: str = "master" KEYCLOAK_CLIENT_ID: str = "apiservice" KEYCLOAK_CLIENT_SECRET: str = "" KEYCLOAK_REDIRECT_URI: str = "http://localhost:8040/apiservice/auth/callback" # Airflow Integration AIRFLOW_API_URL: str = "http://airflow-webserver:8080" AIRFLOW_API_TOKEN: str = "" AIRFLOW_DAG_ID_FINANCE: str = "process_finance_excel" settings = Settings()