[Kolab-devel] event triggered freebusy data generation

Thomas Brüderli bruederli at kolabsys.com
Mon Mar 3 10:23:08 CET 2014


Thomas Brüderli wrote:
> Paul Boddie wrote:
>> On Friday 28. February 2014 10.21.27 hede wrote:
>>> I would prefer a solution where the imap daemon itself triggers an event
>>> with every new upload to a folder with type "calendar". This solution
>>> would be independent from any client-support. Even deleting events with
>>> some pure email-only-client would be fine.
>> Currently, these free/busy resources are generated by the daemon and served by 
>> a PHP resource that seems to just forward this static data, but would it not 
>> be sufficient to generate the resources entirely using some kind of dynamic 
>> resource (PHP, other Web "script" mechanism) instead?
>>
>> In other words, instead of performing the free/busy resource generation in 
>> kolab-freebusyd, the script published at /freebusy would dynamically generate 
>> (and cache) the data for the requested .ifb resource. Was there a reason not 
>> to do this, such as doubts about performance or reluctance to duplicate 
>> functionality already written in the KDE-derived libraries?
> 
> Freebusy data collection and caching (using PHP and Horde) is what we
> had in Kolab 2.x and you all know how that ended. Think of a user with
> several calendar folders and subscribed to shared calendars, iterating
> over all the events on demand doesn't scale. Even caching with cache
> validation checks has its downsides.
> 
> As Jeroen van Meeuwen already pointed out, subscribing to update
> notifications right in Cyrus IMAP and rebuilding freebusy data upon
> change is the preferred way to go. With that in mind already, we decided
> to build the kolab-freebusy daemon which is still needs some
> improvements and polishing. But now as Cyrus 2.5 is available, work can
> continue.

And even more important: collecting freebusy data from any user's
calendar requires admin authentication on IMAP. And from a security
perspective, it's more safe to have a daemon running on the server
operating with admin rights rather than a publicly accessible web
service being able to access anyone's mailboxes.

And with the freebusy web service serving static files or delegating
generation to a paced daemon running in the background makes it less
vulnerable against overload and DoS attacks.

Please bear these things in mind when you consider writing an on-demand
python script for delivering freebusy lists.

Kind regards,
Thomas


More information about the devel mailing list