--- /srv/rebuilderd/tmp/rebuilderdFLVBc7/inputs/jupyterhub_5.2.1+ds1-4_all.deb +++ /srv/rebuilderd/tmp/rebuilderdFLVBc7/out/jupyterhub_5.2.1+ds1-4_all.deb ├── file list │ @@ -1,3 +1,3 @@ │ -rw-r--r-- 0 0 0 4 2025-05-28 09:40:25.000000 debian-binary │ --rw-r--r-- 0 0 0 59496 2025-05-28 09:40:25.000000 control.tar.xz │ --rw-r--r-- 0 0 0 1962752 2025-05-28 09:40:25.000000 data.tar.xz │ +-rw-r--r-- 0 0 0 59480 2025-05-28 09:40:25.000000 control.tar.xz │ +-rw-r--r-- 0 0 0 1962396 2025-05-28 09:40:25.000000 data.tar.xz ├── control.tar.xz │ ├── control.tar │ │ ├── ./md5sums │ │ │ ├── ./md5sums │ │ │ │┄ Files differ ├── data.tar.xz │ ├── data.tar │ │ ├── file list │ │ │ @@ -146,15 +146,15 @@ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/doc/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/doc/jupyterhub/ │ │ │ -rw-r--r-- 0 root (0) root (0) 1679 2025-05-28 09:40:25.000000 ./usr/share/doc/jupyterhub/README.Debian.md │ │ │ -rw-r--r-- 0 root (0) root (0) 3837 2024-10-21 09:35:53.000000 ./usr/share/doc/jupyterhub/README.md.gz │ │ │ -rw-r--r-- 0 root (0) root (0) 1363 2025-05-28 09:40:25.000000 ./usr/share/doc/jupyterhub/changelog.Debian.gz │ │ │ -rw-r--r-- 0 root (0) root (0) 2121 2025-05-28 09:40:25.000000 ./usr/share/doc/jupyterhub/copyright │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/ │ │ │ --rw-r--r-- 0 root (0) root (0) 98384 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/jupyterhub_config.py │ │ │ +-rw-r--r-- 0 root (0) root (0) 98386 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/jupyterhub_config.py │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/static/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/static/components/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/static/components/@fortawesome/ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/static/components/@fortawesome/fontawesome-free/ │ │ │ -rw-r--r-- 0 root (0) root (0) 7427 2024-10-21 09:36:01.000000 ./usr/share/jupyterhub/static/components/@fortawesome/fontawesome-free/LICENSE.txt │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-05-28 09:40:25.000000 ./usr/share/jupyterhub/static/components/@fortawesome/fontawesome-free/css/ │ │ │ -rw-r--r-- 0 root (0) root (0) 132658 2024-10-21 09:36:00.000000 ./usr/share/jupyterhub/static/components/@fortawesome/fontawesome-free/css/all.css │ │ ├── ./usr/share/jupyterhub/jupyterhub_config.py │ │ │ @@ -2178,14 +2178,238 @@ │ │ │ # c.Authenticator.username_pattern = '' │ │ │ │ │ │ ## Deprecated, use `Authenticator.allowed_users` │ │ │ # Default: set() │ │ │ # c.Authenticator.whitelist = set() │ │ │ │ │ │ #------------------------------------------------------------------------------ │ │ │ +# DummyAuthenticator(Authenticator) configuration │ │ │ +#------------------------------------------------------------------------------ │ │ │ +## Dummy Authenticator for testing │ │ │ +# │ │ │ +# By default, any username + password is allowed If a non-empty password is set, │ │ │ +# any username will be allowed if it logs in with that password. │ │ │ +# │ │ │ +# .. versionadded:: 1.0 │ │ │ +# │ │ │ +# .. versionadded:: 5.0 │ │ │ +# `allow_all` defaults to True, │ │ │ +# preserving default behavior. │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.admin_users │ │ │ +# c.DummyAuthenticator.admin_users = set() │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.allow_all │ │ │ +# c.DummyAuthenticator.allow_all = False │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.allow_existing_users │ │ │ +# c.DummyAuthenticator.allow_existing_users = False │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.allowed_users │ │ │ +# c.DummyAuthenticator.allowed_users = set() │ │ │ + │ │ │ +## Is there any allow config? │ │ │ +# See also: Authenticator.any_allow_config │ │ │ +# c.DummyAuthenticator.any_allow_config = False │ │ │ + │ │ │ +## The max age (in seconds) of authentication info │ │ │ +# See also: Authenticator.auth_refresh_age │ │ │ +# c.DummyAuthenticator.auth_refresh_age = 300 │ │ │ + │ │ │ +## Automatically begin the login process │ │ │ +# See also: Authenticator.auto_login │ │ │ +# c.DummyAuthenticator.auto_login = False │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.auto_login_oauth2_authorize │ │ │ +# c.DummyAuthenticator.auto_login_oauth2_authorize = False │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.blocked_users │ │ │ +# c.DummyAuthenticator.blocked_users = set() │ │ │ + │ │ │ +## Delete any users from the database that do not pass validation │ │ │ +# See also: Authenticator.delete_invalid_users │ │ │ +# c.DummyAuthenticator.delete_invalid_users = False │ │ │ + │ │ │ +## Enable persisting auth_state (if available). │ │ │ +# See also: Authenticator.enable_auth_state │ │ │ +# c.DummyAuthenticator.enable_auth_state = False │ │ │ + │ │ │ +## Let authenticator manage user groups │ │ │ +# See also: Authenticator.manage_groups │ │ │ +# c.DummyAuthenticator.manage_groups = False │ │ │ + │ │ │ +## Let authenticator manage roles │ │ │ +# See also: Authenticator.manage_roles │ │ │ +# c.DummyAuthenticator.manage_roles = False │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.otp_prompt │ │ │ +# c.DummyAuthenticator.otp_prompt = 'OTP:' │ │ │ + │ │ │ +## Set a global password for all users wanting to log in. │ │ │ +# │ │ │ +# This allows users with any username to log in with the same static password. │ │ │ +# Default: '' │ │ │ +# c.DummyAuthenticator.password = '' │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.post_auth_hook │ │ │ +# c.DummyAuthenticator.post_auth_hook = None │ │ │ + │ │ │ +## Force refresh of auth prior to spawn. │ │ │ +# See also: Authenticator.refresh_pre_spawn │ │ │ +# c.DummyAuthenticator.refresh_pre_spawn = False │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.request_otp │ │ │ +# c.DummyAuthenticator.request_otp = False │ │ │ + │ │ │ +## Reset managed roles to result of `load_managed_roles()` on startup. │ │ │ +# See also: Authenticator.reset_managed_roles_on_startup │ │ │ +# c.DummyAuthenticator.reset_managed_roles_on_startup = False │ │ │ + │ │ │ +## Dictionary mapping authenticator usernames to JupyterHub users. │ │ │ +# See also: Authenticator.username_map │ │ │ +# c.DummyAuthenticator.username_map = {} │ │ │ + │ │ │ +## │ │ │ +# See also: Authenticator.username_pattern │ │ │ +# c.DummyAuthenticator.username_pattern = '' │ │ │ + │ │ │ +## Deprecated, use `Authenticator.allowed_users` │ │ │ +# See also: Authenticator.whitelist │ │ │ +# c.DummyAuthenticator.whitelist = set() │ │ │ + │ │ │ +#------------------------------------------------------------------------------ │ │ │ +# CryptKeeper(SingletonConfigurable) configuration │ │ │ +#------------------------------------------------------------------------------ │ │ │ +## Encapsulate encryption configuration │ │ │ +# │ │ │ +# Use via the encryption_config singleton below. │ │ │ + │ │ │ +# Default: [] │ │ │ +# c.CryptKeeper.keys = [] │ │ │ + │ │ │ +## The number of threads to allocate for encryption │ │ │ +# Default: 16 │ │ │ +# c.CryptKeeper.n_threads = 16 │ │ │ + │ │ │ +#------------------------------------------------------------------------------ │ │ │ +# Proxy(LoggingConfigurable) configuration │ │ │ +#------------------------------------------------------------------------------ │ │ │ +## Base class for configurable proxies that JupyterHub can use. │ │ │ +# │ │ │ +# A proxy implementation should subclass this and must define the following │ │ │ +# methods: │ │ │ +# │ │ │ +# - :meth:`.get_all_routes` return a dictionary of all JupyterHub-related routes │ │ │ +# - :meth:`.add_route` adds a route - :meth:`.delete_route` deletes a route │ │ │ +# │ │ │ +# In addition to these, the following method(s) may need to be implemented: │ │ │ +# │ │ │ +# - :meth:`.start` start the proxy, if it should be launched by the Hub │ │ │ +# instead of externally managed. │ │ │ +# If the proxy is externally managed, it should set :attr:`should_start` to False. │ │ │ +# - :meth:`.stop` stop the proxy. Only used if :meth:`.start` is also used. │ │ │ +# │ │ │ +# And the following method(s) are optional, but can be provided: │ │ │ +# │ │ │ +# - :meth:`.get_route` gets a single route. │ │ │ +# There is a default implementation that extracts data from :meth:`.get_all_routes`, │ │ │ +# but implementations may choose to provide a more efficient implementation │ │ │ +# of fetching a single route. │ │ │ + │ │ │ +## Additional routes to be maintained in the proxy. │ │ │ +# │ │ │ +# A dictionary with a route specification as key, and a URL as target. The hub │ │ │ +# will ensure this route is present in the proxy. │ │ │ +# │ │ │ +# If the hub is running in host based mode (with JupyterHub.subdomain_host set), │ │ │ +# the routespec *must* have a domain component (example.com/my-url/). If the hub │ │ │ +# is not running in host based mode, the routespec *must not* have a domain │ │ │ +# component (/my-url/). │ │ │ +# │ │ │ +# Helpful when the hub is running in API-only mode. │ │ │ +# Default: {} │ │ │ +# c.Proxy.extra_routes = {} │ │ │ + │ │ │ +## Should the Hub start the proxy │ │ │ +# │ │ │ +# If True, the Hub will start the proxy and stop it. │ │ │ +# Set to False if the proxy is managed externally, │ │ │ +# such as by systemd, docker, or another service manager. │ │ │ +# Default: True │ │ │ +# c.Proxy.should_start = True │ │ │ + │ │ │ +#------------------------------------------------------------------------------ │ │ │ +# ConfigurableHTTPProxy(Proxy) configuration │ │ │ +#------------------------------------------------------------------------------ │ │ │ +## Proxy implementation for the default configurable-http-proxy. │ │ │ +# │ │ │ +# This is the default proxy implementation for running the nodejs proxy │ │ │ +# `configurable-http-proxy`. │ │ │ +# │ │ │ +# If the proxy should not be run as a subprocess of the Hub, (e.g. in a separate │ │ │ +# container), set:: │ │ │ +# │ │ │ +# c.ConfigurableHTTPProxy.should_start = False │ │ │ + │ │ │ +## The ip (or hostname) of the proxy's API endpoint │ │ │ +# Default: '' │ │ │ +# c.ConfigurableHTTPProxy.api_url = '' │ │ │ + │ │ │ +## The Proxy auth token │ │ │ +# │ │ │ +# Loaded from the CONFIGPROXY_AUTH_TOKEN env variable by default. │ │ │ +# Default: '' │ │ │ +# c.ConfigurableHTTPProxy.auth_token = '' │ │ │ + │ │ │ +## Interval (in seconds) at which to check if the proxy is running. │ │ │ +# Default: 5 │ │ │ +# c.ConfigurableHTTPProxy.check_running_interval = 5 │ │ │ + │ │ │ +## The command to start the proxy │ │ │ +# Default: ['configurable-http-proxy'] │ │ │ +# c.ConfigurableHTTPProxy.command = ['configurable-http-proxy'] │ │ │ + │ │ │ +## The number of requests allowed to be concurrently outstanding to the proxy │ │ │ +# │ │ │ +# Limiting this number avoids potential timeout errors by sending too many │ │ │ +# requests to update the proxy at once │ │ │ +# Default: 10 │ │ │ +# c.ConfigurableHTTPProxy.concurrency = 10 │ │ │ + │ │ │ +## Add debug-level logging to the Proxy. │ │ │ +# Default: False │ │ │ +# c.ConfigurableHTTPProxy.debug = False │ │ │ + │ │ │ +## │ │ │ +# See also: Proxy.extra_routes │ │ │ +# c.ConfigurableHTTPProxy.extra_routes = {} │ │ │ + │ │ │ +## Proxy log level │ │ │ +# Choices: any of ['debug', 'info', 'warn', 'error'] (case-insensitive) │ │ │ +# Default: 'info' │ │ │ +# c.ConfigurableHTTPProxy.log_level = 'info' │ │ │ + │ │ │ +## File in which to write the PID of the proxy process. │ │ │ +# Default: 'jupyterhub-proxy.pid' │ │ │ +# c.ConfigurableHTTPProxy.pid_file = 'jupyterhub-proxy.pid' │ │ │ + │ │ │ +## Should the Hub start the proxy │ │ │ +# See also: Proxy.should_start │ │ │ +# c.ConfigurableHTTPProxy.should_start = True │ │ │ + │ │ │ +#------------------------------------------------------------------------------ │ │ │ # NullAuthenticator(Authenticator) configuration │ │ │ #------------------------------------------------------------------------------ │ │ │ ## Null Authenticator for JupyterHub │ │ │ # │ │ │ # For cases where authentication should be disabled, e.g. only allowing access │ │ │ # via API tokens. │ │ │ # │ │ │ @@ -2268,28 +2492,14 @@ │ │ │ # c.NullAuthenticator.username_pattern = '' │ │ │ │ │ │ ## Deprecated, use `Authenticator.allowed_users` │ │ │ # See also: Authenticator.whitelist │ │ │ # c.NullAuthenticator.whitelist = set() │ │ │ │ │ │ #------------------------------------------------------------------------------ │ │ │ -# CryptKeeper(SingletonConfigurable) configuration │ │ │ -#------------------------------------------------------------------------------ │ │ │ -## Encapsulate encryption configuration │ │ │ -# │ │ │ -# Use via the encryption_config singleton below. │ │ │ - │ │ │ -# Default: [] │ │ │ -# c.CryptKeeper.keys = [] │ │ │ - │ │ │ -## The number of threads to allocate for encryption │ │ │ -# Default: 6 │ │ │ -# c.CryptKeeper.n_threads = 6 │ │ │ - │ │ │ -#------------------------------------------------------------------------------ │ │ │ # LocalAuthenticator(Authenticator) configuration │ │ │ #------------------------------------------------------------------------------ │ │ │ ## Base class for Authenticators that work with local Linux/UNIX users │ │ │ # │ │ │ # Checks for local users, and can attempt to create them if they exist. │ │ │ │ │ │ ## The command to use for creating users as a list of strings │ │ │ @@ -2591,217 +2801,7 @@ │ │ │ ## │ │ │ # See also: Authenticator.username_pattern │ │ │ # c.PAMAuthenticator.username_pattern = '' │ │ │ │ │ │ ## Deprecated, use `Authenticator.allowed_users` │ │ │ # See also: Authenticator.whitelist │ │ │ # c.PAMAuthenticator.whitelist = set() │ │ │ - │ │ │ -#------------------------------------------------------------------------------ │ │ │ -# Proxy(LoggingConfigurable) configuration │ │ │ -#------------------------------------------------------------------------------ │ │ │ -## Base class for configurable proxies that JupyterHub can use. │ │ │ -# │ │ │ -# A proxy implementation should subclass this and must define the following │ │ │ -# methods: │ │ │ -# │ │ │ -# - :meth:`.get_all_routes` return a dictionary of all JupyterHub-related routes │ │ │ -# - :meth:`.add_route` adds a route - :meth:`.delete_route` deletes a route │ │ │ -# │ │ │ -# In addition to these, the following method(s) may need to be implemented: │ │ │ -# │ │ │ -# - :meth:`.start` start the proxy, if it should be launched by the Hub │ │ │ -# instead of externally managed. │ │ │ -# If the proxy is externally managed, it should set :attr:`should_start` to False. │ │ │ -# - :meth:`.stop` stop the proxy. Only used if :meth:`.start` is also used. │ │ │ -# │ │ │ -# And the following method(s) are optional, but can be provided: │ │ │ -# │ │ │ -# - :meth:`.get_route` gets a single route. │ │ │ -# There is a default implementation that extracts data from :meth:`.get_all_routes`, │ │ │ -# but implementations may choose to provide a more efficient implementation │ │ │ -# of fetching a single route. │ │ │ - │ │ │ -## Additional routes to be maintained in the proxy. │ │ │ -# │ │ │ -# A dictionary with a route specification as key, and a URL as target. The hub │ │ │ -# will ensure this route is present in the proxy. │ │ │ -# │ │ │ -# If the hub is running in host based mode (with JupyterHub.subdomain_host set), │ │ │ -# the routespec *must* have a domain component (example.com/my-url/). If the hub │ │ │ -# is not running in host based mode, the routespec *must not* have a domain │ │ │ -# component (/my-url/). │ │ │ -# │ │ │ -# Helpful when the hub is running in API-only mode. │ │ │ -# Default: {} │ │ │ -# c.Proxy.extra_routes = {} │ │ │ - │ │ │ -## Should the Hub start the proxy │ │ │ -# │ │ │ -# If True, the Hub will start the proxy and stop it. │ │ │ -# Set to False if the proxy is managed externally, │ │ │ -# such as by systemd, docker, or another service manager. │ │ │ -# Default: True │ │ │ -# c.Proxy.should_start = True │ │ │ - │ │ │ -#------------------------------------------------------------------------------ │ │ │ -# ConfigurableHTTPProxy(Proxy) configuration │ │ │ -#------------------------------------------------------------------------------ │ │ │ -## Proxy implementation for the default configurable-http-proxy. │ │ │ -# │ │ │ -# This is the default proxy implementation for running the nodejs proxy │ │ │ -# `configurable-http-proxy`. │ │ │ -# │ │ │ -# If the proxy should not be run as a subprocess of the Hub, (e.g. in a separate │ │ │ -# container), set:: │ │ │ -# │ │ │ -# c.ConfigurableHTTPProxy.should_start = False │ │ │ - │ │ │ -## The ip (or hostname) of the proxy's API endpoint │ │ │ -# Default: '' │ │ │ -# c.ConfigurableHTTPProxy.api_url = '' │ │ │ - │ │ │ -## The Proxy auth token │ │ │ -# │ │ │ -# Loaded from the CONFIGPROXY_AUTH_TOKEN env variable by default. │ │ │ -# Default: '' │ │ │ -# c.ConfigurableHTTPProxy.auth_token = '' │ │ │ - │ │ │ -## Interval (in seconds) at which to check if the proxy is running. │ │ │ -# Default: 5 │ │ │ -# c.ConfigurableHTTPProxy.check_running_interval = 5 │ │ │ - │ │ │ -## The command to start the proxy │ │ │ -# Default: ['configurable-http-proxy'] │ │ │ -# c.ConfigurableHTTPProxy.command = ['configurable-http-proxy'] │ │ │ - │ │ │ -## The number of requests allowed to be concurrently outstanding to the proxy │ │ │ -# │ │ │ -# Limiting this number avoids potential timeout errors by sending too many │ │ │ -# requests to update the proxy at once │ │ │ -# Default: 10 │ │ │ -# c.ConfigurableHTTPProxy.concurrency = 10 │ │ │ - │ │ │ -## Add debug-level logging to the Proxy. │ │ │ -# Default: False │ │ │ -# c.ConfigurableHTTPProxy.debug = False │ │ │ - │ │ │ -## │ │ │ -# See also: Proxy.extra_routes │ │ │ -# c.ConfigurableHTTPProxy.extra_routes = {} │ │ │ - │ │ │ -## Proxy log level │ │ │ -# Choices: any of ['debug', 'info', 'warn', 'error'] (case-insensitive) │ │ │ -# Default: 'info' │ │ │ -# c.ConfigurableHTTPProxy.log_level = 'info' │ │ │ - │ │ │ -## File in which to write the PID of the proxy process. │ │ │ -# Default: 'jupyterhub-proxy.pid' │ │ │ -# c.ConfigurableHTTPProxy.pid_file = 'jupyterhub-proxy.pid' │ │ │ - │ │ │ -## Should the Hub start the proxy │ │ │ -# See also: Proxy.should_start │ │ │ -# c.ConfigurableHTTPProxy.should_start = True │ │ │ - │ │ │ -#------------------------------------------------------------------------------ │ │ │ -# DummyAuthenticator(Authenticator) configuration │ │ │ -#------------------------------------------------------------------------------ │ │ │ -## Dummy Authenticator for testing │ │ │ -# │ │ │ -# By default, any username + password is allowed If a non-empty password is set, │ │ │ -# any username will be allowed if it logs in with that password. │ │ │ -# │ │ │ -# .. versionadded:: 1.0 │ │ │ -# │ │ │ -# .. versionadded:: 5.0 │ │ │ -# `allow_all` defaults to True, │ │ │ -# preserving default behavior. │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.admin_users │ │ │ -# c.DummyAuthenticator.admin_users = set() │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.allow_all │ │ │ -# c.DummyAuthenticator.allow_all = False │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.allow_existing_users │ │ │ -# c.DummyAuthenticator.allow_existing_users = False │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.allowed_users │ │ │ -# c.DummyAuthenticator.allowed_users = set() │ │ │ - │ │ │ -## Is there any allow config? │ │ │ -# See also: Authenticator.any_allow_config │ │ │ -# c.DummyAuthenticator.any_allow_config = False │ │ │ - │ │ │ -## The max age (in seconds) of authentication info │ │ │ -# See also: Authenticator.auth_refresh_age │ │ │ -# c.DummyAuthenticator.auth_refresh_age = 300 │ │ │ - │ │ │ -## Automatically begin the login process │ │ │ -# See also: Authenticator.auto_login │ │ │ -# c.DummyAuthenticator.auto_login = False │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.auto_login_oauth2_authorize │ │ │ -# c.DummyAuthenticator.auto_login_oauth2_authorize = False │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.blocked_users │ │ │ -# c.DummyAuthenticator.blocked_users = set() │ │ │ - │ │ │ -## Delete any users from the database that do not pass validation │ │ │ -# See also: Authenticator.delete_invalid_users │ │ │ -# c.DummyAuthenticator.delete_invalid_users = False │ │ │ - │ │ │ -## Enable persisting auth_state (if available). │ │ │ -# See also: Authenticator.enable_auth_state │ │ │ -# c.DummyAuthenticator.enable_auth_state = False │ │ │ - │ │ │ -## Let authenticator manage user groups │ │ │ -# See also: Authenticator.manage_groups │ │ │ -# c.DummyAuthenticator.manage_groups = False │ │ │ - │ │ │ -## Let authenticator manage roles │ │ │ -# See also: Authenticator.manage_roles │ │ │ -# c.DummyAuthenticator.manage_roles = False │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.otp_prompt │ │ │ -# c.DummyAuthenticator.otp_prompt = 'OTP:' │ │ │ - │ │ │ -## Set a global password for all users wanting to log in. │ │ │ -# │ │ │ -# This allows users with any username to log in with the same static password. │ │ │ -# Default: '' │ │ │ -# c.DummyAuthenticator.password = '' │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.post_auth_hook │ │ │ -# c.DummyAuthenticator.post_auth_hook = None │ │ │ - │ │ │ -## Force refresh of auth prior to spawn. │ │ │ -# See also: Authenticator.refresh_pre_spawn │ │ │ -# c.DummyAuthenticator.refresh_pre_spawn = False │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.request_otp │ │ │ -# c.DummyAuthenticator.request_otp = False │ │ │ - │ │ │ -## Reset managed roles to result of `load_managed_roles()` on startup. │ │ │ -# See also: Authenticator.reset_managed_roles_on_startup │ │ │ -# c.DummyAuthenticator.reset_managed_roles_on_startup = False │ │ │ - │ │ │ -## Dictionary mapping authenticator usernames to JupyterHub users. │ │ │ -# See also: Authenticator.username_map │ │ │ -# c.DummyAuthenticator.username_map = {} │ │ │ - │ │ │ -## │ │ │ -# See also: Authenticator.username_pattern │ │ │ -# c.DummyAuthenticator.username_pattern = '' │ │ │ - │ │ │ -## Deprecated, use `Authenticator.allowed_users` │ │ │ -# See also: Authenticator.whitelist │ │ │ -# c.DummyAuthenticator.whitelist = set()