[Kolab-devel] Kolab 3.0: Mime Message Storage

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Wed May 16 17:55:24 CEST 2012


On Wednesday, May 16, 2012 04:30:13 PM Christian Mollekopf wrote:
> Hey,
> 

Hi Christian,

> I wrote down what I know or believe to know how kolab objects are supposed
> to be stored on an IMAP server:
> https://wiki.kolab.org/Kolab_3.0_Storage_Format
> 
> That is mostly the same as for Kolab v2, but with some additional
> specifications.
> 
> Tell me if you think something is wrong/under-/overspecified or should be
> changed otherwise.
> 

"""All folders MUST be annotated with an entry "/vendor/kolab/folder-type" 
containing the attribute (...)"""

The theory is fine, but in practice most mail folders are actually not 
annotated.

I suggest re-phrasing the entire section so that it is clear that;

- All folders with Kolab Groupware content MUST be annotated, while folders 
with mail contents MAY exist but without metadata, it is assumed folders 
without metadata are mail folders, and clients SHOULD set metadata for folders 
that have some special sort of mail (Drafts, Trash, Sent, etc...).

- the difference between ANNOTATEMORE (the draft) and METADATA (the RFC) 
doesn't matter for the verbiage of this part of the format definition,

- The shared namespace (/vendor/kolab/ value.shared in ANNOTATEMORE, 
/shared/vendor/kolab/ in METADATA) is good for groupware types, while sub-
types are usually best set in the private namespace,

"""All annotation MUST be set during the initial creation of a folder and 
cannot be altered afterwards"""

They MUST be set alright, but SHOULD NOT (or even MUST NOT) be altered 
afterwards. It's not like they "cannot be changed".

Also, consider that this would apply to the type only, and not (equally well) 
to the sub-type.

Folders without any metadata MUST (not SHOULD) be treated as (not assumed to 
be) mail folders.

===

"""All "default" Kolab-Folders MUST be located within the personal IMAP 
namespace. """

I don't think that MUST holds true, and I don't think we need to restrict 
'.default' sub-types to only ever be allowed in the personal IMAP namespace.

What must be considered is any personal IMAP namespace '.default' folder takes 
precendence over any other, and that there may only be one (or less, depending 
on opinions on the aforementioned) such personal IMAP namespace '.default' 
folder.

I would also consider adding that, if multiple .default folders exist, either 
"in the personal namespace" or "none in personal but multiple in the shared 
namespace" clients SHOULD pretend nothing has been marked as '.default' and 
behave accordingly (i.e. always pop up a "save to what folder?" type of 
dialog?).

===

"""TODO: we probably should have a bit a firmer specification how multiple 
folders SHOULD be interpreted for each type to get a consistent user 
experience."""

This remark doesn't make much sense, perhaps you care to elaborate?

===

"""* The XML describing the object. Content-Type: application/x-vnd.kolab.*"""

I would very much like to consider using the xcal and xcard content-type's for 
the appropriate objects.

===

As to the X-Kolab-* headers;

X-Kolab-Type is a duplicate of the Content-Type header to the attachment. I 
don't really see what purpose this serves, as in addition to the duplication, 
the object is also only supposed to be stored in a folder marked as containing 
rfc822 encapsulated payload of a particular type.

X-Kolab-Version is a duplicate of the version contained within the XML and 
should not be used.

X-Kolab-Conflict (I suppose) is depending on the outcome of the conflict 
resolution review and discussion...

===

"""The following headers/options MUST be used:"""

I made this a separate bullet point, and second, I see no reason to restrict 
the charset or encoding.

This brings me back to the bullet point just before this one, too. I suppose a 
localized version of said text could be allowed, as long as the English 
version is somewhere?

===

"""The following headers/options MUST be used:"""

I made this a separate bullet point, and second, again I see no reason to 
restrict the encoding to quoted-printable, nor a reason to restrict the 
filename to kolab.xml.

"""MIMETYPE MUST be one of (as specified in KEP #17):"""

I think this is inconsistent with the aforementioned x vnd kolab headers?

===

Attachments SHOULD be stored separately but MUST be referenced? Perhaps a 
little fine-tuning of the verbiage is justified... ;-)

===

The example is... large. For demonstrative sake, can we insert a "may remove 
carriage returns and superfluous whitespace", if not simply a "base64 encoding 
allowed" perhaps (even though it is kinda nice to be able to read as a human 
being) - just offering this one up for consideration.

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kolab.org/pipermail/devel/attachments/20120516/9611ab9c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.kolab.org/pipermail/devel/attachments/20120516/9611ab9c/attachment.sig>


More information about the devel mailing list