I Turba Feature Overview
This will be the first part of a short series of articles exploring the Turba application and its architecture.
Part I covers all the features and integrations provided by Turba.
Part II will look into implementation, code structure etc.
Part III will consist of proposals for a changed architecture.
Turba is the addressbook application of the Horde Groupware Suite. It offers access to addressbook information via various means and protocols.
These addressbooks can be of quite different nature:
- Readonly or Read/Write addressbooks stored in a backing system (LDAP, SQL databases, Kolab)
- Virtual addressbooks derived from Horde Groups or from favourite addresses data out of the IMP mail program or any other provider implementing the appropriate API.
- Addressbooks representing contact groups stored in addressbooks
- There is also a pseudo backing store through the Preferences API, which in turn needs some backing store.
Depending on the type of addressbook and backing system, different features are available
- searching for entries matching criteria
- user-controlled sharing addressbooks with others
- administrative reading or writing of data without the user being logged in
Administrators are allowed to customize the fields and presentation of the addressbooks presented to the user.
They may add custom fields relevant for their site like a student ID number or an ssh public key.
They may remove almost any default field if their LDAP does not expose it or if it’s simply unwanted.
While the primary work model used to be tp browse/search the addressbook or make the addressbook data available in the web interfaces of the calendar and webmail program,
modern users often consume the addressbooks by other methods.
- Turba allows for syncing addressbooks via the CardDAV protocol into mobile devices or desktop clients like Mozilla Thunderbird.
- Addressbooks can also be transmitted via Exchange ActiveSync (EAS) or used as a Global Address List (GAL). This allows limited integration with Microsoft Outlook.
- An older protocol SyncML offers similar, but limited capabilities. It has fallen out of wide spread use since. Turba is still a valid SyncML Server.
- Addressbooks and contacts are also served via WebDAV as folders and files.
- Imports/exports to CSV/TSV and LDIF formats, vCard format and some proprietary formats.
- Addressbook and Contact Reading/Writing is exposed via the Horde Inter-App API and – through this layer – via JSON-RPC and XML-RPC. The RPC layer also has a SOAP interface and an integration driver for phpGroupware / eGroupware though I have no idea if this works with current versions.
The next article in this series will give an overview of the current architecture.