Apache CouchDB peruser

Clone this repo:
  1. 4eea957 Merge remote branch 'cloudant:3102-fix-number-of-elements' by ILYA Khlopotov · 3 years, 2 months ago master
  2. 0756d35 Fix a typo in match of config_change event by ILYA Khlopotov · 3 years, 2 months ago
  3. 39ef15a Merge remote branch 'cloudant:3102-fix-config_subscription' by ILYA Khlopotov · 3 years, 2 months ago
  4. ed3ad6f Update handle_config_terminate API by ILYA Khlopotov · 3 years, 2 months ago
  5. ff7d190 Test with master branch from couchdb repo by Klaus Trainer · 4 years, 2 months ago

couch_peruser Build Status

couch_peruser is a CouchDB daemon that ensures that a private per-user database exists for each document in _users. These databases are writable only by the corresponding user. Databases are in the form:

userdb-{hex encoded username}

For example, the user bob will have a database named userdb-626f62.

The reason for hex encoding is that CouchDB usernames have no restrictions, but CouchDB databases have restrictions. Hex encoding the UTF-8 representation of the username is a transformation that's easy to correctly implement in just about any language, especially JavaScript and Erlang. Other encodings would be possible, but would require additional client and server-side code to support that encoding. This is the simplest scheme that is obviously correct.