[Kolab-devel] CalDAV Collections vs. IMAP Folders

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Tue Jun 11 17:16:43 CEST 2013


On Thursday, April 04, 2013 04:05:14 PM Thomas Brüderli wrote:
> That's fine for the web client (actually we have that already) but it's
> not that simple for DAV clients which don't support hierarchical lists
> of collections. Example: two calendar folders in my personal namespace
> are Calendar/Home/Personal and Calendar/Work/Personal which would both
> translate into "Personal". That will make them indistinguishable in a
> DAV client. On the other hand, if we represent the full path in the
> display name, what should if I rename "Calendar/Home/Personal" to "My
> Home Calendar"? The new name cannot properly be translated into an IMAP
> folder hierarchy anymore. Of course we can just rename the folder to
> that name and having it placed on top level of my personal namespace in
> IMAP. Thus we're back at the question, when to use (and change) the real
> IMAP name and when the displayname metadata.
> 

This is a very difficult question, as;

Indeed stripping the hierarchy from the folder name (which makes the folder 
names in the CalDAV client most appealing) could spawn the need to "display" 
the folder different from its folder "base name" - such as would be the case 
when IMAP holds Calendar/Work/Personal and Calendar/Home/Personal, though the 
wrong example, both would be "Personal" in the CalDAV client, and therefore a 
user must be tempted to display a different text. To argue this point I would 
move to refer to Calendar/Work/Holidays and Calendar/Family/Holidays, for 
example.

Should the IMAP hierarchy be preserved, in the display of said folders to the 
CalDAV client, surely a user too would be tempted to do away with the rather 
redundant "Calendar" in such name, as well as may not want/understand (and for 
right reasons) why all these slashes (hierarchy seperators) are in there -> 
user edits display name.

That said, it is very tempting to chose to only ever set the /displayname in 
METADATA should it change.

Now, however, we do away with folder hierarchy altogether - if the other 
clients are expected to use the display name as well, we render any hierarchy 
effectively flat.

So, we may have to consider making it a preference for those clients capable 
of making the distinction, of using the /displayname (flat), expose the 
hierarchy yet use the /displayname (replacing the folder "basename", if you 
will), or only use the folder hierarchy and ignore the /displayname.

In this light, we may also consider simply asserting that there is little (to 
no) purpose in maintaining the concept of calendar folder hierarchies as soon 
as one of the protocols used includes CalDAV, and therefore do away with the 
concept altogether for the sake of following the least common denominator 
between all clients. I suppose it is only fair to, in such circumstances, 
create all new calendar folders to whichever current calendar folder exists in 
one's personal namespace (default to event.default, of course), as to preserve 
the ability to set different quota and later on, recursive expiry.

> > The CalDAV UID required could indeed go to /vendor/kolab/dav-uid (/shared
> > only, I reckon).
> 
> Preferably shared but for existing folders, I suppose the UID is
> generated on the first access through DAV. If one uses a CalDAV client
> to access a shared folder with read-only permission, the only option to
> save the UID would be /private/vendor/kolab/dav-uid.
> 

Unless the UID communicated to/from a CalDAV client needs to be of a rather 
specific format (length?), perhaps the UID communicated for read-only folders 
when a client first hooks up to the CalDAV service best be 
/shared/vendor/cmu/cyrus-imapd/uniqueid (admittedly rendering the CalDAV 
protocol access unavailable for Cyrus IMAP 2.4, while I can only retrieve the 
uniqueid metadata value using Cyrus IMAP 2.5).

Kind regards,

Jeroen van Meeuwen

-- 
Systems Architect, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
m: +44 74 2516 3817
w: http://www.kolabsys.com

pgp: 9342 BF08




More information about the devel mailing list