- User variables (like
{USERNAME}
) are expanded inunit_extra_parameters
, thanks to @tullis - PR #83 - Some cleanup of packaging metadata, thanks to @minrk - PR #75
Fixes vulnerability GHSA-cg54-gpgr-4rm6 affecting all previous releases.
- Use EnvironmentFile to pass environment variables to units.
- define entrypoints for JupyterHub spawner configuration
- Fixes for CentOS 7
- Fix
slice
support by making it a configurable option
- Allow setting which Systemd Slice users' services should belong to. This lets admins set policy for all JupyterHub users in one go. [Thanks to @mariusvniekerk]
- Handle failed units that need reset. [thanks to @RohitK89]
- Fix bug in cleaning up services from a previously running JupyterHub. [thanks to @minrk]
- Username templates let you map jupyterhub usernames to different system usernames. Extremely useful for prefixing usernames to prevent collisions.
- Users' home directories now properly read from pwd database, rather than assumed to be under
/home
. Thanks to @cpainterwakefield for reporting & suggested PR!
use_sudo
option is no longer supported. It offered questionable security, and complicated the code unnecessarily. If 'securely run as normal user with sudo' is a required feature, we can re-implement it securely later.- If a path in
readonly_paths
does not exist, spawning user will now fail.
- Dynamic users support, creating users as required with their own persistent homes with systemd's dynamic users feature. Useful for using with tmpnb.
- Add additional properties to the user's systemd unit with
unit_extra_properties
. Thanks to @kfix for most of the work!
- If a user's notebook server service is already running, kill it before attempting to start a new one. GitHub Issue
- Python 3.5 is the minimum supported Python version.
- JupyterHub 0.9 is the minimum supported JupyterHub version.
- Tornado 5.0 is the minimum supported Tornado version.