Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2009-09-28 09:12:26
Size: 1103
Editor: qed777
Comment: Copied timdumol's outline from #sage-devel.
Revision 6 as of 2022-04-05 02:11:53
Size: 0
Editor: mkoeppe
Comment: outdated sagenb
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= The Sage Notebook Server =

This document gives an overview of the new Sage Notebook server, including how it responds to user requests, delegates tasks, etc. See [[http://trac.sagemath.org/sage_trac/ticket/6983 | #6983]] for instructions on trying out the new server.

 * All access goes through `guard.py`.

 * `locateChild` checks authentication.

 * If the user is authenticated, `locateResource` is called to get the appropriate page.

 * `locateResource`, in turn, uses the `LoginSystem` class in `avatars.py` to get the appropriate resource.

 * `LoginSystem` calls the appropriate function in `twist.py`.

 * Which would be `AdminTopLevel`, `UserTopLevel`, `FailedTopLevel`, or `AnonymousTopLevel`, depending on the user type.

 * The `*TopLevel` resources generate child resources based on their `childFactory` methods.

 * Each resource represents a segment of the URL.

 * Thus `'/'` is the `TopLevel` resource, and `'/home/'` is mapped to the `Worksheets` resource, etc.

 * The tree is traversed until a leaf is reached, then the leaf's `render` method is called.