Skip to content

EMERGENCY: DJANGO_DEBUG=false for workbench + celery-worker (fixes #38, deploy side) - #39

Merged
man4ish merged 1 commit into
mainfrom
fix/debug-env-driven-38
Aug 11, 2026
Merged

EMERGENCY: DJANGO_DEBUG=false for workbench + celery-worker (fixes #38, deploy side)#39
man4ish merged 1 commit into
mainfrom
fix/debug-env-driven-38

Conversation

@man4ish

@man4ish man4ish commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Urgent — production info-leak, interim scope only

Companion PR to omnibioai-workbench#206, which wires settings.py's DEBUG off a real env var (was hardcoded True, unconditional). This is the compose-side half — closes #38's active leak.

What

Both workbench and celery-worker had DEBUG: "1" — vestigial, settings.py never read that key. Replaced with the env var settings.py now actually reads:

-      DEBUG: "1"
+      DJANGO_DEBUG: "false"

Mirrors the DJANGO_DEBUG pattern already used for lims in this same file (line 263).

Deliberately out of scope

Same as the companion PR — SECRET_KEY rotation and ALLOWED_HOSTS narrowing are separate, deliberate follow-up (see analysis comment on #38). Not touched here.

Verification

Rebuilt + recreated both containers from this branch + omnibioai-workbench#206 together:

$ docker exec omnibioai-studio-workbench-1 python manage.py shell -c "from django.conf import settings; print(settings.DEBUG)"
False

404 against a nonexistent route on both localhost:8000 and the real public https://workbench.omnibioai.org (through the actual Cloudflare Tunnel + nginx-router path) returns the plain production 404 page — no stack trace, no settings dump:

<!doctype html><html lang="en"><head><title>Not Found</title></head>
<body><h1>Not Found</h1><p>The requested resource was not found on this server.</p></body></html>

Requesting fast review

Needs to merge alongside omnibioai-workbench#206 — flagging directly given the urgency of the underlying leak, would appreciate review ahead of the normal queue.

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

Companion to omnibioai-workbench#206, which wires settings.py's DEBUG
off this env var (was hardcoded True, unconditional). The DEBUG: "1"
that lived here before was vestigial -- settings.py never read that
key -- so this also pins production intent explicitly rather than
relying solely on settings.py's own default.

Emergency/interim piece of #38. SECRET_KEY rotation and ALLOWED_HOSTS
narrowing are separate, sequenced follow-up work (analysis posted on
the issue) -- not touched here.

Verified live against the real workbench + celery-worker containers
(rebuilt + recreated) and against public https://workbench.omnibioai.org
through the actual Cloudflare Tunnel + nginx-router path -- see #38
for the full verification transcript.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@man4ish
man4ish merged commit aee84cd into main Aug 11, 2026
2 checks passed
@man4ish
man4ish deleted the fix/debug-env-driven-38 branch August 11, 2026 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

workbench.omnibioai.org: DEBUG=True hardcoded, leaks Django debug pages (stack traces, config) on a public production domain

1 participant