Skip to content
douglm edited this page Dec 31, 2012 · 2 revisions

Overview

Bedework CardDAV is intended to act as a carddav gateway to various directory systems. Currently implemented is support for LDAP directories and database address books.

The server implements a principal hierarchy, the exact form of which is configurable but should match that used by the accompanying services, e.g. bedework CalDAV.

A principal hierarchy will look something like:

/principals
/principals/users
/principals/users/douglm
...
/principals/groups
/principals/groups/admingroup1
...
/principals/locations
...

In addition to the principal hierarchy a set of resources are maintained in their own hierarchy. This will typically look something like:

/public
/public/people
/public/people/douglm.vcs
...
/public/locations
...
/user

The CardDAV service uses directory handlers (Dirhandlers) to support branches of the hierarchies.

In a typical configuration each branch of the principal hierarchy will be mapped on to a principal directory handler. For example - LdapPrincipalDirHandler. usually each branch will represent an ou in an LDAP directory, for example we might have

/principals/users -> ou=accounts,dc=bedework,dc=org
/principals/locations -> ou=locations,dc=bedework,dc=org

The resource hierarchy acts like a DAV hierarchy of resources with collections, sub-collections and address-book collections. In the above "/public" is a collection (folder) and "/public/people" is an address-book collection containing vcards.

Usually, in the public hierarchy, there are no real vcards. They are created on demand from ldap directory information. Hence the resource at path "/public/people/douglm.vcs" may be created from the ldap information found at the dn "uid=douglm,ou=people,dc=bedework,dc=org".

The public hierarchy is usually a view of the enterprise directories and is usually read-only.

The branch "/user" is usually handled by a database directory handler and this is where personal address books are stored. Each user has an address-book home, e.g. "/user/douglm" which is a regular DAV collection.

Inside that may be one or more address-books or collections.

Clone this wiki locally