Paste Stack

I think the middleware cascade should be something like

  • lint (check's wsgi compliance)
    • log (set up logging)
      • selector/routes
        • config file load
          • page-setup and cookie grab
            • gatekeep (authorisation)
              • browse
              • WMS
              • WCS
              • WPS
              • WFS
              • CSML-API
            • discovery (NDG)
            • discovery (CSW) (!)
            • login

Of course not all bits will be present in any particular implementation .... so configuration is key.


  • discovery
  • view, e.g.
    • http://domainName/ndg/view/uri is the html version laid out "nice"
    • http://domainName/ndg/view/uri?format=xml is an html version of the xml
    • http://domainName/ndg/retrieve/uri returns the raw document in xml.
    • in all three cases, a further addition to the query string original=1 will be interpretted for DIF requests, and ignored for others ,e.g
      • http://domainName/ndg/view/uri?original=1 or
      • http://domainName/ndg/view/uri?format=xml&original=1
  • login, used to login at THIS site e.g.
    • http://domainName/ndg/login?r=url will login and redirect back to url
  • logout,e.g.
    • http://domainName/ndg/logout?r=url will kill cookies and redirect back to url
  • wayf, e.g.
    • http://domainName/ndg/wayf?r=url will provide a WAYF screen, with all options (to logins) linked with the redirect...
  • wms/wcs
    • http://domainName/ndg/wms/uri is a wms endpoint for a csml_granule uri
    • http://domainName/ndg/wcs/uri is a wcs endpoint for a csml_granule uri
  • csml api
    • http://domainName/ndg/csml/uri is the csml api endpoint for a document
  • gui, we expect to post a shopping cart to the gui, or allow a user to save the shopping cart and upload it ...
    • http://domainName/ndg/viz
  • do we need to worry about an ftp/wget interface?

This will be encoded in the file in the pylons config directory!


So, getting started with this, I

  • did an easy_install of csml from svn:
    easy_install $SVN/TI02-CSML/trunk
  • and then I went into the delivery code to set up the ows framework egg
    cd TI05-delivery/ows_framework/trunk/ows_common
    python develop
  • and now I try to run pylons:
    cd ../ows_server
    paster serve --reload development.ini