Re: [art] ART Area Review for draft-ietf-calext-caldav-attachments-02

Ken Murchison <murch@andrew.cmu.edu> Mon, 22 May 2017 18:59 UTC

Return-Path: <murch@andrew.cmu.edu>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CFB712878D; Mon, 22 May 2017 11:59:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.501
X-Spam-Level:
X-Spam-Status: No, score=-1.501 tagged_above=-999 required=5 tests=[BAYES_50=0.8, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UpilocMj7ZWp; Mon, 22 May 2017 11:59:22 -0700 (PDT)
Received: from smtp.andrew.cmu.edu (SMTP.ANDREW.CMU.EDU [128.2.105.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 985AB126C2F; Mon, 22 May 2017 11:59:22 -0700 (PDT)
Received: from [172.31.24.242] (VPN-172-31-24-242.VPN.CMU.LOCAL [172.31.24.242]) (user=murch mech=PLAIN (0 bits)) by smtp.andrew.cmu.edu (8.15.2/8.15.2) with ESMTPSA id v4MIx7xR050219 (version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 22 May 2017 14:59:08 -0400
To: Julian Reschke <julian.reschke@gmx.de>, IETF Discussion <ietf@ietf.org>, art@ietf.org
References: <c04f39e2-79d2-ab9d-59ab-26e51d7ab5fc@gmx.de> <81613220-989b-ca78-fe56-0ac7b19e7ce6@andrew.cmu.edu> <b2a4924d-c7c9-b40b-484f-9fab48bfe5de@gmx.de> <a603f3de-2d96-6f86-e0c3-3e0a4884a185@andrew.cmu.edu> <7bcfecea-3a89-978c-9e1b-edf9aac5dd44@gmx.de>
From: Ken Murchison <murch@andrew.cmu.edu>
Organization: Carnegie Mellon University
Cc: Cyrus Daboo <cyrus@daboo.name>
Message-ID: <07f64bc5-13f6-62a0-3c04-91c780f69672@andrew.cmu.edu>
Date: Mon, 22 May 2017 14:59:07 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0
MIME-Version: 1.0
In-Reply-To: <7bcfecea-3a89-978c-9e1b-edf9aac5dd44@gmx.de>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Language: en-US
X-PMX-Version: 6.3.0.2556906, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2017.5.22.185116
X-SMTP-Spam-Clean: 10% ( TO_IN_SUBJECT 0.5, HTML_00_01 0.05, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DATE_TZ_NA 0, FROM_EDU_TLD 0, IN_REP_TO 0, LEGITIMATE_SIGNS 0, MSG_THREAD 0, MULTIPLE_REAL_RCPTS 0, NO_CTA_URI_FOUND 0, NO_URI_FOUND 0, NO_URI_HTTPS 0, REFERENCES 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CC_NAME 0, __CC_NAME_DIFF_FROM_ACC 0, __CC_REAL_NAMES 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __FORWARDED_MSG 0, __HAS_CC_HDR 0, __HAS_FROM 0, __HAS_MSGID 0, __IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MIME_TEXT_P 0, __MIME_TEXT_P1 0, __MIME_VERSION 0, __MOZILLA_USER_AGENT 0, __NO_HTML_TAG_RAW 0, __PHISH_SPEAR_STRUCTURE_1 0, __REFERENCES 0, __SANE_MSGID 0, __SUBJ_ALPHA_NEGATE 0, __TO_IN_SUBJECT2 0, __TO_MALFORMED_2 0, __TO_NAME 0, __TO_NAME_DIFF_FROM_ACC 0, __TO_REAL_NAMES 0, __USER_AGENT 0)
X-SMTP-Spam-Score: 10%
X-Scanned-By: MIMEDefang 2.78 on 128.2.105.202
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/Xb8KsNU5llRCtHfU7dDjN_XY6o4>
Subject: Re: [art] ART Area Review for draft-ietf-calext-caldav-attachments-02
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 22 May 2017 18:59:24 -0000


On 05/17/2017 09:58 AM, Julian Reschke wrote:
> On 2017-05-17 15:07, Ken Murchison wrote:
>> ...
>>> Only for creation of the attachment. Once is has been created, it
>>> should have its own URI, and the usual HTTP methods should be 
>>> applicable.
>>
>> Using HTTP methods directly on the attachment URI makes things more
>> difficult because the calendar resource(s) referencing the attachment
>> also need to be updated.  This would have to be done either as a
>> side-effect of the PUT/DELETE on the attachment, or as a separate PUT
>> (and separate round-trips) on the resource(s).  The desire was to avoid
>> doing either one of these, which is why a POST on the calendar resource
>> was chosen as the method to add/update/delete an attachment from a
>> calendar resource.
>
> But the POST is *not* on the calendar resource, but on the calendar 
> resource + query parameters, which, from HTTP's point of view is a 
> different resource already.
>
> Furthermore, what URIs are used is orthogonal to the question of which 
> methods to use.
>
> Why is
>
>   POST /calendar-entry?action=remove&attachment=xyz
>
> easier to process than
>
>   DELETE /calendar-entry?attachment=xyz
>
> or
>
>   DELETE /calendar-entry/attachments/xyz
>
> ?

The issue here is that a single calendar resource may contain multiple 
events (recurring event with overrides) and a particular attachment may 
be associated with more than one instance of that event.  For this 
reason, we felt it best to use the calendar resource as the gateway to 
the attachments, thus allowing manipulating multiple instances of an 
attachment in a single round-trip.  Also, by preventing clients from 
manipulating attachments directly, a CalDAV server isn't forced to alter 
all calendar resources associated with a particular attachment.

We also have a fairly large number of deployed implementations which we 
do not want to make non-compliant by substantially modifying the 
protocol.  At this point, specifying the use of HTTP methods other than 
POST would indeed make existing implementations non-compliant.

We would definitely like to make this protocol conform to current HTTP 
practice where possible, and would also document where we have strayed 
from existing practice if required to do so.  Do you think we can come 
to some kind of consensus that meets these goals?

-- 
Kenneth Murchison
Principal Systems Software Engineer
Carnegie Mellon University