Pre-release v0.0.2#17
Merged
Merged
Conversation
Features: - Quota tracking with per-accelerator rates (GPU/NPU) - Admin UI quota column with inline editing - Batch quota operations API - Auto-refresh with CronJob support (configurable rules) - Pydantic validation for all quota API endpoints Security & Stability: - Input validation with Pydantic models - Proper API authentication - SQL injection prevention - Rate limiting support Documentation: - quota-system.md with full API reference - Updated user-management.md
Features: - Add defaultQuota setting to grant initial quota to new users - Add defaultUnlimited setting to grant unlimited quota to new users - Auto-allocate quota when new users first attempt to start container - Record initial grants in transaction log as 'initial_grant' type Documentation: - Update quota system docs with new configuration options - Fix outdated configuration examples (enabled: null) - Fix transaction field structure in API examples - Add /api/quota/me response fields (accelerators, enabled) - Add screenshots for admin quota management UI - Remove outdated quota status indicator documentation Implementation: - Add ensure_user_quota() method in QuotaManager - Update can_start_container() to support default quota allocation - Add DEFAULT_QUOTA and DEFAULT_UNLIMITED config loading - Add logging for new user quota grants
Features: - Add expandable user details panel showing User and Server info - Display auth_state, state, user_options as formatted JSON - Add delete user button with confirmation modal - Move "Back to Users" button to right side in GroupList UI improvements: - JSON fields displayed in formatted <pre> with syntax highlighting - Expand/collapse toggle (▶/▼) for each user row - Delete button disabled for admin user
- Split /api/accelerators from /api/quota/me and /api/quota/rates - Add XSRF token to spawn page API calls (fixes 403 error) - Update documentation with new API structure
- Add missing doc links to main README (authentication, user-management, quota-system) - Remove outdated jupyterhub_config.py sections from docs/jupyterhub/README.md - Fix CustomNativeAuthenticator -> CustomFirstUseAuthenticator in authentication-guide.md
- Remove adminsUnlimited, unlimitedUsers, defaultUnlimited config options - Unlimited quota now managed exclusively via Admin UI - Auto-login mode still disables quota system entirely - Update documentation and values.yaml
Add user quota management system
…nto material/add-physim
Disable runtime input when hidden to prevent browser validation error: 'invalid form control with name=runtime is not focusable'
…ning-cloud into material/add-physim
TODO: Find a way to properly disable the timer in single-node mode
- Change AMD logo color to black in navigation bar - Update all buttons from blue to dark/gray theme - Modify Admin UI React components button colors - Update spawn page resource tags and accent colors - Add home.html template with dark theme buttons - Fix Launch button not enabled on default resource selection
Material/add physim
Black theme UI and branding updates
- Add EXTERNAL_IMAGES array with all JupyterHub core component images - Add pull_external_images() function to pull and save images to K3s - Include external image pulling in default install flow - Add pull-images command for standalone use
- Add MIRROR_* environment variables for configuring registry mirrors - Configure K3s registries.yaml automatically when mirrors are set - Support mirror configuration in Dockerfile build args - Update Makefile to pass mirror settings to docker build - Add help documentation for mirror configuration
- Add MIRROR_PIP and MIRROR_NPM environment variables - Configure pip index URL in Hub and Base Dockerfiles - Configure pnpm registry in Hub Dockerfile - Update help documentation with package manager mirrors
- Replace multiple MIRROR_* vars with single MIRROR_PREFIX - Use prefix pattern: <prefix>/<registry>/<image> - Fix Dockerfile ARG scope for multi-stage builds - Tested with actual build using mirror prefix
- Add base images for Docker build to EXTERNAL_IMAGES - Tag pulled images to mirror-prefixed name for Docker build cache
This ensures K3s cluster networking works even when external network is disconnected.
…st binding Create a dummy network interface with fallback default route for K3s. This allows K3s to detect node IP even when external network is disconnected. Reference: https://docs.k3s.io/installation/airgap
Use a stable dummy interface IP (10.255.255.1) as node-ip and flannel-iface. This ensures K3s works regardless of which WiFi/network is connected.
Add offline and portable single-node deployment support
MioYuuIH
approved these changes
Feb 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Pre-release version 0.0.2 with major feature additions including user quota management, Physics Simulation course, UI branding updates, and offline/portable deployment support.
Changes
New Features
User Quota Management System
Physics Simulation (PhySim) Course
Offline & Portable Deployment
UI & Branding
Bug Fixes
Documentation
Files Changed
Testing
Checklist