Differences between revisions 1 and 2
Revision 1 as of 2009-09-28 09:12:26
Size: 1103
Editor: qed777
Comment: Copied timdumol's outline from #sage-devel.
Revision 2 as of 2009-09-28 09:14:48
Size: 1134
Editor: qed777
Comment: Trivial.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= The Sage Notebook Server = = The Sage Notebook Server: A Technical Overview =
Line 3: Line 3:
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. This document gives a technical 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.

The Sage Notebook Server: A Technical Overview

This document gives a technical overview of the new Sage Notebook server, including how it responds to user requests, delegates tasks, etc. See #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.