From f50dfbd3c543c3151e588bdf9c9d5d0ac463663b Mon Sep 17 00:00:00 2001 From: stellarshenson Date: Wed, 7 Jan 2026 01:45:22 +0100 Subject: [PATCH] docs: update journal with custom logo support --- .claude/JOURNAL.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.claude/JOURNAL.md b/.claude/JOURNAL.md index 9590236..b29445f 100644 --- a/.claude/JOURNAL.md +++ b/.claude/JOURNAL.md @@ -126,3 +126,6 @@ This journal tracks substantive work on documents, diagrams, and documentation c 41. **Task - Server-side authorization discard fix**: Replaced clunky JavaScript API call with server-side Jinja2 logic
**Result**: Created StellarsNativeAuthenticator subclass that overrides get_handlers() to inject CustomAuthorizationAreaHandler, which passes hub_usernames set to template. Updated authorization-area.html to use `{% if user.username not in hub_usernames %}` instead of JavaScript fetch. Removes API call, XSRF token handling, and flash of Discard buttons before hiding + +42. **Task - Custom logo support**: Added JUPYTERHUB_LOGO_FILE configuration for custom branding
+ **Result**: Added logo_file config that checks for file at /srv/jupyterhub/logo.svg (or JUPYTERHUB_LOGO_FILE env var), JupyterHub serves it at {{ base_url }}logo automatically. Fixed CustomAuthorizationAreaHandler 403 by adding @needs_scope('admin:users') decorator and importing orm inside get() method. Simplified page.html logo block to always use base_url/logo