#summary Url scheme in melange
#labels Contents-Skeleton

= URLs in Melange =

  * First path component is “module” (/gsoc, /gci, /core, /tasks)
  * Second is “component” (/dashboard, /home, /document)
  * Third is “function” or “action”, (sometimes omitted) (“edit”, “show”, “create”, “update”)
    * Under what conditions does this appear? If it’s a document, “edit” and “show” will probably appear... but there’s not really consistent criteria
  * Fourth path component is ID, keyname, or enough of the key name to unambiguously identify the viewed entity prefixed by /<sponsor>/<program>.
  * Common patterns live in url_patterns.py
  * Get parameters are used for things like telling the user that their form was saved correctly
  * GCI uses Get parameters to determine action in task view.
  * URLs are registered with DjangoUrlPatterns during frontend instantiation
  * See each module’s callback.py module
  * MapReduces live at some /_ah/mapreduce “special” url.
  * AppEngine ensures that only app developers can reach those urls.