from pydantic_settings import BaseSettings, SettingsConfigDict from typing import Optional class Settings(BaseSettings): # AWS Settings AWS_ACCESS_KEY_ID: Optional[str] = None AWS_SECRET_ACCESS_KEY: Optional[str] = None AWS_REGION: str = "us-east-1" AWS_S3_BUCKET: Optional[str] = None # Security SECRET_KEY: str = "supersecret-placeholder" ALGORITHM: str = "HS256" ACCESS_TOKEN_EXPIRE_MINUTES: int = 30 # LLM Keys OPENAI_API_KEY: Optional[str] = None GEMINI_API_KEY: Optional[str] = None # Database DATABASE_URL: Optional[str] = None # Google / Transformation Settings GOOGLE_OAUTH_CLIENT_SECRETS: Optional[str] = None GOOGLE_OAUTH_TOKEN: Optional[str] = None GOOGLE_OAUTH_TOKEN_JSON: Optional[str] = None GCS_BUCKET: Optional[str] = None GCP_SA_JSON: Optional[str] = None GEMINI_USE_VERTEX: Optional[str] = None GCP_PROJECT: Optional[str] = None GCP_LOCATION: Optional[str] = None DRIVE_FOLDER_ID: Optional[str] = None # Azure RAG Settings AZURE_SEARCH_KEY: Optional[str] = None AZURE_SEARCH_INDEX_NAME: Optional[str] = None BLOB_CONNECTION_STRING: Optional[str] = None BLOB_CONTAINER_NAME: Optional[str] = None AZURE_SEARCH_ENDPOINT: Optional[str] = None AZURE_OPENAI_ENDPOINT: Optional[str] = None AZURE_OPENAI_API_KEY: Optional[str] = None AZURE_OPENAI_DEPLOYMENT_NAME: Optional[str] = None AZURE_OPENAI_API_VERSION: Optional[str] = None # Supabase Settings (Unified Auth) SUPABASE_URL: Optional[str] = None SUPABASE_ANON_KEY: Optional[str] = None SUPABASE_JWT_SECRET: Optional[str] = None model_config = SettingsConfigDict( env_file=".env", extra="ignore" ) settings = Settings()