This repository contains current updates to the Jupyterhub Admin Dashboard service, reducing the complexity from a mass of templated HTML to a simple React web application. This will integrate with Jupyterhub, speeding up client interactions while simplifying the admin dashboard codebase.
This service relies heavily on front-end web services, leaving little to be expected from the python/tornado server side template rendering system JupyterHub is accustomed to. Therefore, most of the heavy lifting is done on the React end.
First, cp react-fe
then:
yarn build
: Installs all dependencies and bundles the application yarn hot
: Bundles the application and runs a mock (serverless) version on port 8000 yarn place
: Copies bundle into the hubextension's static javascript directoryyarn test
: Runs Jest/Enzyme unit tests on all the presentational componentsyarn snap
: Updates the stored jest snapshot of the componentsyarn lint
: Lints the Javascript src directory with eslint and prettier{ yarn lint:fix || yarn lint --fix }
: Lints the Javascript src directory, fixing any possible issuespip install -e .
: Installs the package locally, directly from the source, for development from jhadmin.app import JH_ADMIN_TEMPLATE_PATHS
from jhadmin.hubextension import jhadmin_extra_handlers
c.JupyterHub.template_paths.extend(JH_ADMIN_TEMPLATE_PATHS)
c.JupyterHub.extra_handlers.extend(jhadmin_extra_handlers)
Main dashboard component allowing an admin to start/stop the hub's servers as well as perform user moderation.
React view for adding users and selecting their privilege level.
React view for delegating or revoking admin privilege as well as updating user names.
React view for listing available groups of users.
React view for adding or removing users from a group.