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

Julian Reschke <julian.reschke@gmx.de> Mon, 15 May 2017 16:09 UTC

Return-Path: <julian.reschke@gmx.de>
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 E41AE12EAC6; Mon, 15 May 2017 09:09:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.4
X-Spam-Level:
X-Spam-Status: No, score=-5.4 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-2.8, SPF_PASS=-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 2dcfzZW0ltGn; Mon, 15 May 2017 09:09:39 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73EAE12EAC1; Mon, 15 May 2017 09:04:42 -0700 (PDT)
Received: from [192.168.178.20] ([93.217.120.200]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MSdRI-1dblX92eSC-00RbhZ; Mon, 15 May 2017 18:04:31 +0200
To: Ken Murchison <murch@andrew.cmu.edu>, IETF Discussion <ietf@ietf.org>, art@ietf.org
References: <c04f39e2-79d2-ab9d-59ab-26e51d7ab5fc@gmx.de> <81613220-989b-ca78-fe56-0ac7b19e7ce6@andrew.cmu.edu>
From: Julian Reschke <julian.reschke@gmx.de>
Message-ID: <b2a4924d-c7c9-b40b-484f-9fab48bfe5de@gmx.de>
Date: Mon, 15 May 2017 18:04:28 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <81613220-989b-ca78-fe56-0ac7b19e7ce6@andrew.cmu.edu>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:n/iUtHBhmkiQmU1oJS98CwbDX2IFXcMEh6e8+EZw0cb9BF/Ju11 p/y29Nt+LgQ+IMW/gmKmxmoxv2m2J/7PRv1Nmx8SzYUkShqN1JimVJn1WFcLHssYktmQGGc BweUazeMCw+67lKi+jmTFMZ3SOMqXBVEb7zswu650wCRrBK3V41OJv4hNVNJffWmuOvCFkv BzizMnmh4V8bTqx+LtW3A==
X-UI-Out-Filterresults: notjunk:1;V01:K0:49s4ZXwvPek=:ffhbn/sr94+FoQ7xDhqIpr cgYMLiCv6ldpDaREMpxTOx/HBFWFf3u4GM586eCq30c4m8tnuRlsje0nY+9MiELFhVbIp51H1 WPE2uwMLXcg4mE6oUgA8IpoxKRc4bkYcwOciAagmHPoMqFj/x7kpTBeI2c2viLOj5N3r/eqHc U3k5qkVByBGNZzYZIQ+2k/KTKjv3b5nKzQS9ALY4nM7TAkxk/kpLF2pPecmnT1uU4tRNXfpze r7dEOL/lfyT84phuLh0kWbAlB7lc+Jxo1qnBtZT2S338ej+twpuiP8Em5AYSPzgveogFwoooW vBLbxqfHjvGZ/o55EoP6TSPxenYYWID75qQzOQYUCfTWU6dv6FLozQrMztfkYWYwBmtlVhPuw qVH8RIVJdlMtUkcsa5ok3YQQ5DfgVYWF6vLgCEmdZn2cl3WOr8p8d6GosdpAi3PWJnqAnHS9J EHYC9IKdO2TgyjfL2DlMmCnE4BR+ttf5O/S6UbEtOZvCx27bIOvEbmb4wXAy8Zc4tr65DolrJ rBAObbjkzKKgvwRjnFpNlI9J4WUmGuN+dysA27aI/hU8ET3ytvb2tjsiYrwci3CVG/03Z0yTv CxP4xt+lhRkabMhdEev+uIXCyUSsoc7ulwxYvCKueHpgxYwPrNWxcwXOLW0g66PUCG0I+FSIf j+mCZ37luMK3URH9HLF8p8K+/aPbFZLmK72Tww/YcDBmE988/OK0s+XfMR5c4/iLobmYpLc+3 PjRdtrna3BBuJsu2JlAjPHDPWMjckpp55USlSc0k9EiNU2mecFq+hePij1ML5wgwik0GtTv2N M6V4bJ4
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/48PnA2jQULH89RvNBfcfDORaaVs>
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, 15 May 2017 16:09:41 -0000

On 2017-05-15 16:03, Ken Murchison wrote:
> Hi Julian,
>
> Thanks for the review.  Comments inline.
>
>
> On 05/14/2017 10:23 AM, Julian Reschke wrote:
>> Reviewer: Julian Reschke
>> Review result: Not Ready
>>
>> Document: draft-ietf-calext-caldav-attachments-02
>> IETF LC End Date: 2017-05-14
>> IESG Telechat date: 2017-05-25
>>
>> This document describes attachment handling in CalDAV (WebDAV based
>> calendaring).
>>
>> The mechanism described by this document is essential RPCish, using
>> HTTP POST for tunneling. It will work in practice, but it definitively
>> isn't state of the art in IETF protocols, in particular in an
>> otherwise WebDAV/CalDAV-based ecosystem.
>>
>> Major issues:
>>
>> The main issue with this specification is that it
>>
>> 1) models operations on attachments as POST operations, where the
>> actual type of operation is specified using a query parameter, instead
>> of using the HTTP methods POST, PUT, and DELETE.
>
> The resource being acted upon is an actual calendar resource, which is
> already in place.  The attachments are meta-data associated with one or

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.

> more calendar resources, which is why a POST is used on the calendar
> resource to manipulate an attachment.  Can you explain how you would
> envision different HTTP methods be used to add/update/delete an
> attachment associated with a calendar resource?

For adding, I would define an HTTP resource that can be posted to. It 
could be discovered through a WebDAV property.

>> 2) hardwires specific query strings into the protocol, violating a
>> MUST level requirement in BCP 190 (see
>> https://tools.ietf.org/html/rfc7320#section-2.4):
>>
>>    Applications MUST NOT directly specify the syntax of queries, as this
>>    can cause operational difficulties for deployments that do not
>>    support a particular form of a query.  For example, a site may wish
>>    to support an application using "static" files that do not support
>>    query parameters.
>
> Which part(s) of the query syntax MUST not be specified?  The entire
> thing?  Just the keywords?  Did RFC 7808 get this wrong, or is URI
> templating ok?

I'm not familiar with 7808. URI templates are superior than hardwiring 
everything for sure. We just shouldn't enforce specific URI templates - 
the server should be able to specify them, clients would need to 
discover them.


>> Re 1) this is even called out specifically in Sections 3.8 (update)
>> and 3.9 (remove), but it's not clear at all why that is the case.
>>
>> Re 2) Part of the hard-wiring could be avoided by using different HTTP
>> methods for the different actions. The other parameters could be made
>> discoverable using URIs / URI templates, exposed as WebDAV properties,
>> as is the case in RFC 5995.
>
> As above, can you explain how different HTTP methods would be used where
> the target of the add/update/remove operation is an existing calendar
> resource?
> ...

(see above)

>> 5.1. Cal-Managed-ID Response Header Field
>>
>> This doesn't seem to address the points listed in
>> <https://greenbytes.de/tech/webdav/rfc7231.html#considerations.for.new.header.fields>
>> (and it wouldn't be needed if the attachment would be modeled as an
>> HTTP resource whose values could be reported back in a Location header
>> field upon creation).
>
> Can parameters be added to a Location header field (it doesn't appear
> so), or are you suggesting that the managed-id value be encoded in the
> URI-reference value?

I suggest that the attachment *is* a HTTP resource, thus has it's own URI.

>> Minor issues:
>>
>> 3.12.4.  Processing Time
>>
>>    Clients can expect servers to take a while to respond to POST
>>    requests that include large attachment bodies.  Servers SHOULD use
>>    the "102 (Processing)" interim response defined in Section 10.1 of
>>    [RFC2518] to keep the client connection alive if the POST request
>>    will take significant time to complete.
>>
>> While discussing the new code 103 in the HTTP WG, we considered
>> interop problems with existing code that doesn't handle 1xx status
>> codes at all, or had problems with status codes other than 100. I
>> personally support use of new 1xx status codes, but it would be good
>> to hear whether the WG considered deployment problems when making this
>> a SHOULD-level requirement.
>
> Existing implementations of this CalDAV extension all seem to handle 1xx
> status codes.

I'm more concerned about HTTP libraries and intermediaries. See, for 
instance, <http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8170305>.

Best regards, Julian