[dev] WebDAV/CalDAV integration - first questions
Evert Pot
evertpot at gmail.com
Wed Sep 23 18:43:40 UTC 2009
On 2009-09-23, at 12:18 PM, Jan Schneider wrote:
> Zitat von Evert Pot <evertpot at gmail.com>:
>
>> 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?
>
> Why? WebDAV detection works fine, and if CalDAV is going to replace
> WebDAV, I see no reason why this shouldn't keep working.
Largly its a downright aversion against magic behaviour. In this case
specifically, I'm worried about certain requests triggering one of the
other RPC's.
It's also not very clear to me how GET requests are intercepted. How
is this currently done?
Lastly, the entire response appears to be buffered and sent as a
string from the default rpc.php. I'd like to avoid this and use php
streams instead. This can be a big memory saver. I've been able to up/
download up to 2GB files without triggering a memory_limit setting of
64MB.
> I'm not sure if this will work, because tasks and calendars are
> indeed provided by completely different applications. We might allow
> Kronolith to proxy CalDAV task access to Nag though.
>
> For the directory structure, I still prefer to keep BC with the
> current structure we have that would be:
> kronolith/username/calendarid/eventid
>
> If you don't want this to be the default structure for SabreDAV,
> then we need some hook/plugin to provide a different structure with
> our backend.
From the SabreDAV library there is some flexibility to setup
different structures. Just for my own sanity I will start off with a
structure that is the easiest to understand. Based on what I learned
at that point, we can look at this again.
My point of view is that there is no need for applications (kronolith,
nag) to inject new paths in CalDAV structure, instead they could just
register themselves as a new CalDAV-enabled backend. I plan to hide as
much of the protocol as possible from the backends, if we need support
for multiple collections of calendars per user (which is what this is
really about) it could imply that the various backends need to be much
more aware of the structure as needed; which is something I'd like to
avoid.
Regardless I will start off simple, and just with kronolith. Once
we're there it will be easier for me to figure out how multiple
directory structures work, or articulate why it will be inconvenient.
Just keep an open mind, and so will I =)
Evert
More information about the dev
mailing list