Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-core-14: (with DISCUSS and COMMENT)

Alexey Melnikov <aamelnikov@fastmail.fm> Thu, 21 February 2019 09:03 UTC

Return-Path: <aamelnikov@fastmail.fm>
X-Original-To: jmap@ietfa.amsl.com
Delivered-To: jmap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 49B92130ECD; Thu, 21 Feb 2019 01:03:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmail.fm header.b=pvC1tvk5; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=6Ncr2yhS
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 ifeC8wiX_inm; Thu, 21 Feb 2019 01:03:37 -0800 (PST)
Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BCBB7130E69; Thu, 21 Feb 2019 01:03:37 -0800 (PST)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id E736521D3C; Thu, 21 Feb 2019 04:03:36 -0500 (EST)
Received: from mailfrontend1 ([10.202.2.162]) by compute7.internal (MEProxy); Thu, 21 Feb 2019 04:03:36 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm2; bh=d RgczSxecdc3xOLhrGvlFhdAtHvNNjiKv3J+Z83C/Ag=; b=pvC1tvk5fkE5BGf/k 1iLyFlYm64IZ+e3vu+D9Es2qEO64h9Gb19kRIj3otZtAoPwgDTm+zPDLu2WHDUAT /JimwqbxvtWRZLuEkgzoLg3NSrB0T2NL6XquhbYLj0vbqrzOhXTw6u42mHsFE/Ld lWiFfKWyiqgfT1PsC0RULxELRdIZ92/MfBLQcBkJlEP9Qp3Y+d+eOwfKo8Egfnxg rqwspQTqDOGlTqIDv6k7HN3h8wwHWrKCn9h6bpaic2Vuj931yh7arCIIuoAIlFup EG/2E+Gq4NcoN4DGLefCR8FBZusHomnZtPTh1PcmaUnj8UINnXN/ts8msOeHzlN5 MRDpA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=dRgczSxecdc3xOLhrGvlFhdAtHvNNjiKv3J+Z83C/ Ag=; b=6Ncr2yhSCr8VSTY7QLO2TfNbe56fXnlSq8RkY7owI9DrvdCt5IsXbcZPf Sj+68jS704XWLSZVBWmciCulpbYAvKKgbH0RlGz1dJje94DvIWpkBPVMIYSJCLKK QYxv9TeWg3xCxCB80a4dIWnLn2k8gLx2q4LqNnCZjuQm2g3QFTNt4cCLxQnUI+XE k8tk0dIdMvnmGZ6MZt7/jeqFyi9OV+0yW+pOFMCf8Whdf/hoC3B2T5OMTU9G7T4b GtwNraUclaPgg2wi2+bVmMZRzmqLBkioZQnmAtuUHjS2DQT5g3rv43P6mcAIDVO9 I9ER7DbDIAR/VqA/yzVLIZHSwxVPA==
X-ME-Sender: <xms:aGluXHpYcQn4kOcfGXrvXPAn6h8v47oowu0czWFFICES0OMTAL5Yiw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrtdekucdltddurdegtdelrddttddmucetuf doteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfquhhtnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpegtggfuhffojgffgffkfhfvsehtqhhmtdhhtddvnecuhfhrohhmpeetlhgvgigvhicu ofgvlhhnihhkohhvuceorggrmhgvlhhnihhkohhvsehfrghsthhmrghilhdrfhhmqeenuc ffohhmrghinhepuhhnihgtohguvgdrohhrghdphhhtthhpfehovhgvrhhquhhitgdrihht necukfhppeejjedrleejrddugeehrdehheenucfrrghrrghmpehmrghilhhfrhhomheprg grmhgvlhhnihhkohhvsehfrghsthhmrghilhdrfhhmnecuvehluhhsthgvrhfuihiivgep td
X-ME-Proxy: <xmx:aGluXNfPiUs037_fbJnISozZ_oKZHCeCT5Sj2R7FS5bcrt8y6eIj9w> <xmx:aGluXJvmIuaIc8HU-p__hJY_RA0-uVL5WDp-if69GClOCZwMFElABA> <xmx:aGluXNWN686ivBoaxJ5cmdAAedvlW_gXDfE5sdpo33_SGnbpLuFkuQ> <xmx:aGluXOXHFlegnjctHMikQ93-Kk3upQYLDQ44oGICC1qL9oyg63GNcg>
Received: from [192.168.0.9] (cpc121086-nmal24-2-0-cust54.19-2.cable.virginm.net [77.97.145.55]) by mail.messagingengine.com (Postfix) with ESMTPA id B2BB4E4443; Thu, 21 Feb 2019 04:03:35 -0500 (EST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (1.0)
From: Alexey Melnikov <aamelnikov@fastmail.fm>
X-Mailer: iPad Mail (14F89)
In-Reply-To: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com>
Date: Thu, 21 Feb 2019 09:11:40 +0000
Cc: The IESG <iesg@ietf.org>, brong@fastmailteam.com, draft-ietf-jmap-core@ietf.org, jmap-chairs@ietf.org, jmap@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <CEF846E0-DB3C-49DE-8649-B591AEA0B45D@fastmail.fm>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com>
To: Benjamin Kaduk <kaduk@mit.edu>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/OgW0ICtrp-6QOjM9R9_qrwZq0P8>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-core-14: (with DISCUSS and COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: JSON Message Access Protocol <jmap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/jmap>, <mailto:jmap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/jmap/>
List-Post: <mailto:jmap@ietf.org>
List-Help: <mailto:jmap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/jmap>, <mailto:jmap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Feb 2019 09:03:40 -0000

Hi Benjamin,
Thank you for your extensive comments.

In this email I will concentrate on [most of] your DISCUSS points:

> On 21 Feb 2019, at 05:27, Benjamin Kaduk <kaduk@mit.edu> wrote:
> 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> There's a lot here, and I was not reading in the best of environments,
> so it's quite possible that I am just confused or missed something while
> reading.  On the whole, this document is well-written and gives me a
> good picture of how things work.  That said, there are still some places
> where it looks like we may need to have some discussions...
> 
> This document (twice) has a MUST requirement for HTTP over TLS, which
> seems to exclude any future usage of HTTP/3 over QUIC.  (It's also
> probably not needed to repeat the normative requirement in two places; I
> noted both in the COMMENT section.)

I think requiring a specific version of HTTP and underlying transport is right. Future versions of HTTP and different transports like QUIC are different mappings and I think would need a separate document, even if a short one.

Having said that, if you can show some specific wording that would address your concern, the WG should consider.

> Section 1.6.2 asserts that "all data belong to a single account".  And
> yet, we seem to have PushSubscription objects in Sections 7.2.1 and
> 7.2.2 that disclaim any relationship to an account, which seems
> internally inconsistent.  It's also unclear to me from the text in the
> latter sections what mechanism is used to determine whether a given
> request is authorized to see a given PushSubscription object.  Is it
> supposed to be based on the authentication credentials to the API
> service directly, or a user abstraction, or something else?

Editors should reply to this.

> 
> Section 5.3
> 
>   Some records may hold references to other records (foreign keys).
>   That reference may be set (via create or update) in the same request
>   as the referenced record is created.  To do this, the client refers
>   to the new record using its creation id prefixed with a "#".  The
>   order of the method calls in the request by the client MUST be such
>   that the record being referenced is created in the same or an earlier
>   call.  The server thus never has to look ahead.  Instead, while
> 
> I think this means you need to specify what order the server does the
> create, update, and destroy lists in -- that is, that all creates are
> done before all updates, etc..

I think you misunderstood: the order is important and all operations are performed in the order specified (so there is no internal reordering to be done by the server). If the client references something that wasn't yet created, it is a client error and will be reported accordingly.
> 
> Section 5.5
> 
> The Unicode Collation Algorithm (<http://www.unicode.org/reports/tr10/>
> is not listed in the IANA collation registry for internet application
> protocols; since the session object limits the collationAlgorithms to
> those in the registry, at present, it is not permitted to use that
> collation algorithm.  It would seem that this document should stimulate
> the registration of that collation algorithm in some fashion (whether by
> explicitly doing so in its IANA Considerations or otherwise).

I think this is fair. 
> 
> Section 7.1
> 
>   o  *changed*: "Id[TypeState]" A map of _account id_ to an object
>      encoding the state of data types that have changed for that
>      account since the last StateChange object was pushed, for each of
> 
> I don't see how these semantics provide the properties stated in Section
> 7, "[i]t doesn't matter if some push events are dropped before they
> reach the client; it will still get all changes next time it syncs."  In
> particular, if the client misses a state change for the CalendarEvent
> type, and then no other changes that affect CalendarEvents occur, the
> client will remain unaware of the changes to CalendarEvents, even if
> other push notifications for other types come in.  Am I misunderstanding
> one or more of the behavior or stated guarantees?

I think you do. Clients will periodically poll. Once they do, they will be able to recover all missing notifications due to use of sequence numbers.


Best Regards,
Alexey