CardDAV Concepts and Architecture
(Very draft notes)
CardDAv is a DAV based protocol to deliver vcard type information. This implementation will deliver vcs files and json formats.
The protocol is still in development and available as an ietf draft rfc.
Server provides a mapping from a DAV style principal hierarchy, e.g. /principles/users/jim on to a (probably) ldap based system, e.g. "uid=jim, dc=somewhere, dc=org".
This is achieved through the use of directory handlers which are mapped using initial path segments. For example, there could be a directory handler for the path segment "/principals/users/" which would map on to the enterprise user directory. "/principals/locations" could map on to an enterprise maintained directory of locations.
In the default quickstart settings "/user" maps on to user addressbooks which lie under the dn "ou=users,ou=addrbooks,dc=bedework,dc=org" and /public maps on to public address books in "ou=public,ou=addrbooks,dc=bedework,dc=org".
Each address book is implemented as a custom object class based on teh organizationalUnit and contains entries fro al types of directory information. For example the dn for the address book for user jim might be "ou=address-book,ou=jim,ou=users,ou=addrbooks,dc=bedework,dc=org".
Inside that we might have entries for people as inetOrgPerson objectClass entries. We probably need to extend that class to store all vcard information, so that a vcard schema is dsirable (and there is th eintent for the vcard group to create one). It should be possible to have links back to the original enterprise entry.