fix(config): require PLATFORM_URL explicitly, no hardcoded domain default
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled
The previous fix defaulted PLATFORM_URL to this deployment's own domain directly in docker-compose.prod.yml — any other deployment of this repo would silently inherit it if they forgot to set their own. Now there is no default at all: the compose file requires the env var to be set, and the backend refuses to start in production if PLATFORM_URL still equals the dev value, mirroring the existing SECRET_KEY enforcement.
This commit is contained in:
@@ -211,3 +211,14 @@ if _is_production:
|
||||
f"Set a strong value via the {name} environment variable "
|
||||
f"before running in production."
|
||||
)
|
||||
|
||||
# PLATFORM_URL has no safe production default — it's baked into every
|
||||
# emailed link (set-password, notifications). Falling back silently to
|
||||
# the dev value (or to some other deployment's hardcoded domain) would
|
||||
# ship broken/wrong links without anyone noticing.
|
||||
if settings.PLATFORM_URL == "http://localhost:5173":
|
||||
raise RuntimeError(
|
||||
"CRITICAL: PLATFORM_URL is not configured. Set it to this "
|
||||
"deployment's real public frontend URL via the PLATFORM_URL "
|
||||
"environment variable before running in production."
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user