make cookie_secret configurable
Allows config to specify logins that survive across server instances (default behavior unchanged).
Add warning about not sharing config files with cookie secret.
switch default ws_url logic to js side
In some cases (proxies, #3305), the request object doesn't have the right information about the originating information. This changes the default behavior, so that ws_url is generally empty by default, which the javascript takes to mean 'the same as http'. This is simpler and should be more resilient than trying a guess on server-side.
also replaces unused websocket_host with websocket_url
Rather than specifying only the hostname, it makes much more sense to specify the whole protocol,host,port in a single go.
instead of random.
The random cookie name meant that every time you restarted the notebook it would get a new key in the cookie for the same host, resulting in an ever-growing cookie full of obsolete data.
move settings to the tornado settings dict,
rather than a mixture of tornado settings and application references,
and application.ipython_app references.
removes any reference to application / ipython_app attributes in the handlers,
in favor of the tornado settings dict.
These were a massive pain for anyone who might want to re-use our handlers.
and move the friendly version checks to notebookapp.py
DEFAULT_STATIC_FILES_PATH is now accessible without pyzmq/tornado/jinja being importable.
If someone tries to use old pyzmq or tornado directly with handlers,
the version check won't happen, but that's probably the right thing to do anyway.
Notebook support for a reverse proxy which handles SSL
Added a "trust_xheaders" config option to NotebookApp to enable the passing of the xheaders flag to tornado.HTTPServer. This is necessary so tornado can generate the correct wss:// scheme
related to facebook/tornado#593
I've verified that this fix works for tornado 2.1, 2.4, 2.4.1, and the
behavior it fixes does not trigger on tornado 3.0
Now you can visit `localhost:8888/My Notebook.ipynb`,
and it will redirect you to the UUID url.
This allows cross-notebook links, etc. with `[other notebook](Notebook Name.ipynb)`
Directory and url/port information for the notebook server is now
printed when it receives one of these signals. SIGINFO is available only
on BSD-based systems, and is triggered via Ctrl-T.
This commit makes it possible to differentiate between many different
long-running notebook servers, where the original ip address and port
information printed at the beginning has scrolled out of the screen.
We save the server location string that gets printed on startup, and
re-print it when the user attempts to interrupt the server with Ctrl-C
Thanks to @minrk for discussion on how this should work.
Also added a docstring to the start() method
- merged IPKernelApp into KernelApp, they are no longer separate classes
- embed_kernel moved to its own file
- ipkernel now only contains the Kernel class
- associated imports updated