Type: New Feature
Affects Version/s: None
Fix Version/s: None
Ubuntu 9.10 64bit
Skill Level:Committers Level (Medium to Hard)
It would be nice if CouchDB had a comprehensive offering for varying levels of access to documents and databases.
Here are some ideas:
o User lists are stored in the database, per database.
o Roles and role membership are stored in the database, per database.
o ACLs are stored in the database, per database.
o CouchDB can use ACLs to store and simplify permissions for internal functionality (manage the db, manage users, add roles, add users to roles, etc...)
o CouchApps can take advantage of the ACLs to support login/logout and arbitrary business rules as needed.
o A simple API can be made to conduct role, ACL and ownership checks.
I suppose there is some theory and discussion behind determining whether users, roles or both are stored in ACL rules. Also, something worth discussing is whether the checks are automatically performed by couchdb, or if views are to be performing checks prior to emitting data. Or both...
Building all this into CouchDB would mean that it has a mechanism for complex applications to be developed. Ones that mandate privacy and other visibility concerns.