From acbfb3fb379a933080d3076d6ad531b8444d290f Mon Sep 17 00:00:00 2001 From: chihlasm Date: Fri, 10 Apr 2026 03:45:52 +0000 Subject: [PATCH] feat: add ADMIN_DATABASE_URL setting with fallback to DATABASE_URL Co-Authored-By: Claude Sonnet 4.6 --- backend/app/core/config.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/backend/app/core/config.py b/backend/app/core/config.py index 7fdf7fb6..d8cbfe2f 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -28,6 +28,20 @@ class Settings(BaseSettings): """Get sync URL by removing asyncpg prefix from DATABASE_URL.""" return self.DATABASE_URL.replace("postgresql+asyncpg://", "postgresql://", 1) + # Admin database — resolutionflow_admin role, BYPASSRLS. + # Used by /admin/* endpoints. Defaults to DATABASE_URL for local dev. + ADMIN_DATABASE_URL: str = "" + + @field_validator("ADMIN_DATABASE_URL", mode="before") + @classmethod + def default_admin_database_url(cls, v: str, info) -> str: + """Fall back to DATABASE_URL if ADMIN_DATABASE_URL is not set.""" + if not v: + return info.data.get("DATABASE_URL", "") + if v.startswith("postgresql://"): + return v.replace("postgresql://", "postgresql+asyncpg://", 1) + return v + # JWT Settings SECRET_KEY: str = _DEFAULT_SECRET_KEY