Anonymous takes care of extra user tasks. It can perform a (couch-level) log-in if {"assertion": a} is posted as JSON to _anonymous/persona/login, where a is a Persona-generated login assertion. It will create accounts in couch as needed.

Caveat: it stores a randomly generated password in plain text on the user's documents, to perform couch login. This implies it will fail if the actual password is changed. It also implies you don't know your couch password as long as you are using Persona to log in.

Helper daemons are written in livescript and run on node.js. This directory is an npm package, geared towards self-contained installation.

Integration considerations

We rely on proxies adding some headers:

We add the following endpoint:

...and the clients probably need access to at least these:

Build / Install

Then, either


( Alternatively, the global-install step can be bypassed if the paths in the couch config are adjusted accordingly.)

Finally, restart couchdb.


A reference implementation is provided: python example/

Further work

Rewrite this in Erlang and stick it into the database.

( 2013-08-17 )

git clone git://