app.get "/",
    makeResponder(null, {isLocal: nopts.is_local})
  app.get "/dump/typeof.Proxy", (req, res) ->
    res.send(typeof Proxy)
  app.get "/dump/process.version", (req, res) ->
    res.send(process.version)
  app.get "/now", (req, res) ->
    res.send(noodb.now_baseXX())
  app.get "/dump/headers", (req, res) ->
    res.setHeader('content-type', 'text/plain')
    res.write(JSON.stringify(req.headers,null,4))
    res.end()
  app.set("trust proxy", true)
  app.get "/dump/", (req, res) ->
    if req.path.endsWith('dump')
      res.redirect('/dump/')
      return
    res.send("""
  These are various little windows into the back-end which should not stay available after alpha.
  <dl>
    <dt><a href="/__/">/__/</a>
      <dd>experience Nooron visualizations of data, ie the nooron app experience
    <dt><a href="by/s">/dump/by/s</a>
      <dd>subject
    <dt><a href="by/p">/dump/by/p</a>
      <dd>predicate
    <dt><a href="by/o">/dump/by/o</a>
      <dd>object
    <dt><a href="by/g">/dump/by/g</a>
      <dd>graph
    <dt><a href="by/i">/dump/by/i</a>
      <dd>idx
    <dt><a href="expand/">/dump/expand/:curie</a>
      <dd>expands <i>:curie</i> eg. <a href="/dump/expand/rdf:type">/dump/noicetrie/rdf:type</a>
    <dt><a href="headers">/dump/headers</a>
      <dd>req.headers
    <dt><a href="ips">/dump/ips</a>
      <dd>req.ips
    <dt><a href="noicetrie">/dump/noicetrie</a>
      <dd>dump the whole noodb.prefixdb.prefixes tree
    <dt><a href="noicetrie/nrn">/dump/noicetrie/:prfx</a>
      <dd>expands <i>:prfx</i> eg. <a href="/dump/noicetrie/rdf">/dump/noicetrie/rdf</a>
    <dt><a href="typeof.Proxy">/dump/typeof.Proxy</a>
      <dd>is ES6 Proxy supported on the server?
    <dt><a href="process.version">/dump/process.version</a>
      <dd>process.version (ie the version of nodejs aka node --version)
    <dt><a href="/now">/now</a>
      <dd>the current time (to the second) in Nooron's time format
    <dt><a href="/dev/fractalpanel_sandbox.html">/dev/fractalpanel_sandbox.html</a></dt>
      <dd>a place to play with FractalPanel</dd>
  </dl>
    """)
  app.get "/dump/details/:abbrev?", (req, res) ->
    res.setHeader('content-type', 'text/html')
    subj = req.params.abbrev
    res.write("WOOT:#{subj}")
    for pred in noodb.query({s: subj})
      res.write(pred.toString())
    res.end()
  app.get "/dump/ips", (req, res) ->
    res.send(req.ips.length and req.ips[0] or req.ip)
  app.get "/dump/noicetrie", (req, res) ->
    res.setHeader('content-type', 'text/plain')
    res.send(noodb.prefixdb.prefixes.tree())
  app.get "/dump/noicetrie/:prfx", (req, res) ->
    res.setHeader('content-type', 'text/plain')
    res.send(noodb.prefixdb.prefixes.getValue(req.params.prfx))
  app.get "/dump/by/:term?", (req, res) ->
    res.setHeader('content-type', 'text/plain')
    if req.params.term
      buffer = "by.#{req.params.term}\n"
      buffer += noodb.by[req.params.term].dump()
      res.send(buffer)
    else
      res.send('spogi'.split('').join("\n"))
  app.get "/dump/expand/:curie?", (req, res) ->
    if req.params.curie