53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
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()
|