mirror of
https://github.com/stellarshenson/stellars-jupyterhub-ds.git
synced 2026-03-08 06:00:29 +00:00
Implemented comprehensive notification broadcast functionality allowing administrators to send notifications to all active user JupyterLab servers simultaneously through a dedicated admin panel. Core Features: - Admin-only notification panel accessible at /hub/notifications - Concurrent delivery to all active servers using asyncio with 5s timeout - Temporary API token generation (5-minute expiry) for authentication - Support for 6 notification types: default, info, success, warning, error, in-progress - 140-character message limit with live character counter - Auto-close toggle and dismiss button in notifications - Dynamic endpoint URL construction using spawner.server.base_url - Comprehensive error handling with user-friendly messages - One-line logging per server with message preview and outcome Technical Implementation: - Created BroadcastNotificationHandler in custom_handlers.py - Created NotificationsPageHandler for admin UI rendering - Added notifications.html template with Bootstrap 5 form - Registered handlers in jupyterhub_config.py extra_handlers - Sends to /jupyterlab-notifications-extension/ingest endpoint - Payload includes type, message, autoClose, and actions array - Navigation link added to home.html for admin access Integration: - Requires jupyterlab_notifications_extension installed on JupyterLab servers - Uses correct payload format (type field, not variant) - Includes Dismiss action button for manual notification closure Documentation: - Updated .claude/CLAUDE.md with complete feature documentation - Updated README.md Features section with notification broadcast details - Updated .claude/JOURNAL.md with implementation summary - Removed obsolete FEATURE_PLAN.md Version: 3.2.0 (bumped from 3.1.2)
2 lines
22 B
Markdown
2 lines
22 B
Markdown
project documentation
|