mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-07 18:14:10 +00:00
56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
# create a role with permissions to:
|
|
# 1. start/stop servers, and
|
|
# 2. access the server API
|
|
|
|
c.JupyterHub.load_roles = [
|
|
{
|
|
"name": "launcher",
|
|
"scopes": [
|
|
"servers", # manage servers
|
|
"access:servers", # access servers themselves
|
|
],
|
|
# assign role to our 'launcher' service
|
|
"services": ["launcher"],
|
|
}
|
|
]
|
|
|
|
|
|
# persist token to a file, to share it with the launch-server.py script
|
|
import pathlib
|
|
import secrets
|
|
|
|
here = pathlib.Path(__file__).parent
|
|
token_file = here.joinpath("service-token")
|
|
if token_file.exists():
|
|
with token_file.open("r") as f:
|
|
token = f.read()
|
|
else:
|
|
token = secrets.token_hex(16)
|
|
with token_file.open("w") as f:
|
|
f.write(token)
|
|
|
|
# define our service
|
|
c.JupyterHub.services = [
|
|
{
|
|
"name": "launcher",
|
|
"api_token": token,
|
|
}
|
|
]
|
|
|
|
# ensure spawn requests return immediately,
|
|
# rather than waiting up to 10 seconds for spawn to complete
|
|
# this ensures that we use the progress API
|
|
|
|
c.JupyterHub.tornado_settings = {"slow_spawn_timeout": 0}
|
|
|
|
# create our test-user
|
|
c.Authenticator.allowed_users = {
|
|
'test-user',
|
|
}
|
|
|
|
|
|
# testing boilerplate: fake auth/spawner, localhost. Don't use this for real!
|
|
c.JupyterHub.authenticator_class = 'dummy'
|
|
c.JupyterHub.spawner_class = 'simple'
|
|
c.JupyterHub.ip = '127.0.0.1'
|