[dev] WebDAV/CalDAV integration - first questions

Evert Pot evertpot at gmail.com
Tue Sep 22 20:01:54 UTC 2009


Hey guys,

=Base url=

I was told the best place to integrate CalDAV, was through rpc.php.

Looking at that file, it appears it is almost completely based on  
autodetection.
I think it's preferable to have a dedicated url for CalDAV support.

I can either make the base url something like:

/horde/rpc.php/caldav/

or:

/horde/caldav.php/

Any preferences?

=Relation to WebDAV=

I also heard there was a desire to also use SabreDAV as the standard  
library for the existing WebDAV implementation.
I'm happy to provide this, and perhaps I should even start off with  
this; so I can get more familiar with the horde codebase.

Any opinions about this?

I will be able to either provide a different endpoint for WebDAV, e.g.:

/horde/rpc.php/webdav
/horde/webdav.php

Or I can combine both the WebDAV and CalDAV directory structure. The  
latter might be a bit slower, due to the extra hook-ins the CalDAV- 
related plugins have.

=Authentication=

Most clients seem to prefer HTTP Digest over HTTP Basic. Although HTTP  
Basic auth is support by virtually any client, many will give warnings  
if it's not used in combination with SSL.
I've noticed Horde uses Basic everywhere.

If you guys want to use Digest, some changes will have to be made in  
the authentication system to store an extra hash.

Opinions?

=CalDAV virtual directory structure=

I just wanted to bring this topic up once more. Some ideas have been  
brought forward by Jan on how to build up the CalDAV directory  
structure.
One of these ideas was to separate the virtual directories for Nag and  
Kronolith.

I'm against this.. Users will generally never be aware of these  
directory structures as they are obfuscated with long uuids. In order  
to keep things reasonably simple, I will need  to start off with  
something like :

caldavroot/users/Administrator/calendars/UUID/UUID

Perhaps down the road there will be the possibility to juggle a little  
bit with these pathnames, but in the short term I kinda need some  
flexibility.
I'm just mentioning this so there is no confusion around how this is  
going to work.

Thanks!
Evert


More information about the dev mailing list