Specifications
Chapter 3 Advanced Address Book Server Information 27
Implementation Details
Address Book Server is implemented using Python v2.6 or later, using the Twisted
network framework. This open source framework gives excellent network performance
using an asynchronous networking model, without using threads.
The Twisted framework does’t support WebDAV level 2 locking or WebDAV versioning
(neither is required for CardDAV).
The following are software dependencies in implementing Address Book Server:
Third-party tools Apple-provided tools
Twisted PyKerberos
pyXML PyOpenDirectory
pyOpenSSL
pysqlite
vobject
xattr
dateutil
ZOPEInterface
Understanding Address Book Server’s Data Store
By default, the main data store location is /Library/AddressBookServer/Documents/,
but you can specify another location using the Settings tab of the Address Book pane
in Server Admin.
The contents of /Library/AddressBookServer/Documents/ include both the individual
vCards and their groups, as well as lists of users authorized to access these address
book collections. The groups and users authorized to access the address book data are
referred to as principals. In the data store implementation, these are dened by their
globally unique identier (GUID).
/Library/AddressBookServer/Documents/ isn’t a folder that you should manually
interact with. Users and groups should be managed through Workgroup Manager,
Server Preferences, or from the command line with serveradmin.
However, you should back up /Library/AddressBookServer/Documents/. Because
the principals are determined by GUID, you should restore this folder only onto a
computer with the same directory service settings. Otherwise, Address Book Server
won’t work as expected.