[Cosmo-dev] 0.6 sharing proposal
Randy Letness
randy at osafoundation.org
Wed Nov 1 14:10:03 PST 2006
Brian Moseley wrote:
>
> reading between the lines, i sense that you are worried about how to
> deal with chandler publishing only an eim record stream given that we
> store event info in an icalendar blob rather than as discrete database
> columns, but i'm not sure why. it seems straightforward to me for the
> chandler and cosmo teams working together to define an eim event
> record type that we can convert into icalendar format and store in the
> event item's calendar blob. it also seems straightforward given the
> existence of such a record type to convert an icalendar blob into a
> set of eim records to send back for subscription requests. there
> certainly doesn't seem any need to store eim records in the cosmo
> database.
>
The complexity comes in when Chandler wants to store extra data (like it
does today in the separate .xml resources). This "extra" data that
isn't stored in the icalendar blob would have to be stored in EIM form,
since Cosmo doesn't care about it (yet). So we have to store the EIM
records in Cosmo if we want to send back the same data. What about
collections other than calendars? These will be EIM records that Cosmo
doesn't understand, and has to just store and regurgitate in a generic way.
Ideally, Cosmo will be able to convert from recognized EIM record types
to icalendar and from icalendar to EIM records, but I was leaving that
out for the first phase due to the short release cycles we are aiming for.
Now if we don't care about generic EIM support (ignore records we don't
understand), then we can do what you suggested, and it would be pretty
straightforward as you noted. I was thinking that for 0.6 it would be
cool to support the sharing of any collection type in Chandler,
including new types added by add-on parcels and such. The separate .ics
resources only come into play for calendar collections. The idea I had
in my head for 0.6 is to provide this protocol for
sending/retrieving/syncing EIM records. Then we add more smarts into
Cosmo to handle recognized record types (events, contacts, whatever) to
support CalDAV and other protocols.
> also, let's not use hierarchical paths for morse code urls. the future
> is the item soup, so let's start building our protocols with this in
> mind. here's my proposal for the protocol commands:
>
> publish: PUT /cosmo/mcp/collection/<uid>?parent=<parent uid>
> update: POST /cosmo/mcp/collection/<uid>
> delete: DELETE /cosmo/mcp/collection/<uid>
> subscribe: GET /cosmo/mcp/collection/<uid>
> sync: GET /cosmo/mcp/collection/<uid>/?sync=<token>
>
I agreee, uid is the way to go. We need to come up with a URL friendly
uid format.
-Randy
More information about the cosmo-dev
mailing list