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
- gatekeep (authorisation)
- page-setup and cookie grab
- config file load
- selector/routes
- log (set up logging)
Of course not all bits will be present in any particular implementation .... so configuration is key.
URLS
- 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 routing.py file in the pylons config directory!
Reality
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 setup.py develop
- and now I try to run pylons:
cd ../ows_server paster serve --reload development.ini