add /api/status endpoint for retrieving current status
includes
- started: start time of the server
- last_activity: latest activity across all endpoints
- connections: number of current connections
- kernels: number of current kernels
When list_running_servers find an old nbserver-xxxx.json info file, it attempts to delete it. It needs to use the full path rather than the filename. An exception was being raised, but the error was suppressed silently.
- reset counter on status: idle (avoids Run All running into limits)
- fix rate measurements to exclude messages not sent due to rate limiting
- fix formatting of rate-exceeded messages, tweak text a bit
- after pausing output, don't resume sending until rate has dropped 20% below limit, to avoid rapid back & forth across the limit
- add NotebookApp.login_token, used when NotebookApp.password is not set
- store login_token, bool(password) in notebook server-info file
- `jupyter notebook list` shows pasteable URLs with token
General changes:
- notebook servers are now authenticated by default
- first connect with token sets a cookie
- once a user has logged into one server with a token, their browser is logged in to
all subsequent servers on the same system+port until cookie_secret changes
Not doing this can lead to subtle incomprehensible issues when 2
extensions (eg, jupyterlab and jupyterlab_extensions) both register the
same handlers, that will randomly at each start get a different
extension take precedence.
* Change handler for consistency with nbconvert
* Change bundler function API to take ContentManager models
* Change CLI to work as jupyter bundler
* Change UI to fit into existing template / JS structure
(c) Copyright IBM Corp. 2016
This should avoid the issue several people have had with unstyled pages
on misconfigured Windows systems. I think practicality beats purity
here.
Closes gh-1350
we were stripping `/`, which is fine except when that's the whole string,
which we were then interpreting as `''`, which gives the CWD.
This is a regression in 4.1