Re: [Jmap] draft-murchison-jmap-websocket as a JMAP working product

Ken Murchison <murch@fastmailteam.com> Fri, 23 November 2018 12:38 UTC

Return-Path: <murch@fastmailteam.com>
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 A3D3012E043 for <jmap@ietfa.amsl.com>; Fri, 23 Nov 2018 04:38:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=n8ljxRrd; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=HYil1dP3
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 qovKmgMephwv for <jmap@ietfa.amsl.com>; Fri, 23 Nov 2018 04:38:45 -0800 (PST)
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com [66.111.4.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6715712958B for <jmap@ietf.org>; Fri, 23 Nov 2018 04:38:45 -0800 (PST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 538EE21D2A; Fri, 23 Nov 2018 07:38:44 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Fri, 23 Nov 2018 07:38:44 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=subject:to:cc:references:from:message-id :date:mime-version:in-reply-to:content-type; s=fm1; bh=iKZqElqxL Mdkn6uQaFGFjsqaMRCLVOyj+EZdaD+WNd4=; b=n8ljxRrdW1PVW3/IEava9LvBx w56rxktKx4/XJLzJmSC1t75+n44ea82kshaRog5KmUfm00AkYfTd3+yBpDtCD1qr Ypnc8z0CzvU28NRrcAj7uRPkNzKqRuOGMWW44J855q8dYEz/yaY5rKxUBOuWI7bg EtrQIDU7QWhu4CK2T0OKW5ZLCE17itXMNm/sGkNjsl9AkUmgTo9Q615q7hOmJmpc D6FvhFHu9ODaJwmQxx4RlHSIzw/eU1n20Dxsjaqvsf7JhaxIGfcm1h0e6+FGDdLH VMvql9xePisdQZZ2y0mj6hKnFkVWFUmJrXAa9AtrC0W+S8iRmATErVW77/zBg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc: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=fm1; bh=iKZqEl qxLMdkn6uQaFGFjsqaMRCLVOyj+EZdaD+WNd4=; b=HYil1dP38TPaHuDeLINIx7 xMmYyypjyHTxkWTe7NzRtXWIYQ4iMIP3z4RWU2qnpIcRYW81E/7YdTbt6CzEcHaw NKlaQQLNwGn6hrDL/ddfewydEnMEajHYf+E4zyZXUH7H9PD8aR5nwVraM00CP+Cj zQvN2bOxwqQeSPcHQyoorz6yOdY74QgjYcltwZWrkEKbxS34hczji5c8XgJi+31F wtN9cFlTkWfdCb0rYJ7L0EItlMMQfN9JadxMbk1728f5S3OHW1EGBmdvOO7WR89O Z822JuSXBpTMK9cqRtPMBaJ0h7G/f+Lv8f33o2c0I7oWmEsQU6loCk8CbOPmTwWQ ==
X-ME-Sender: <xms:0_T3WyTvv-7GM8IjBiT2xqnQFrJEE60rCH4SAD5hirz0qhJNeS76ew>
X-ME-Proxy: <xmx:0_T3W6xZLtwjOkR7mVmPu3ImRMKyavhS5z1QybTQIRYT3yp3BrjyPw> <xmx:0_T3W0g8VZnNresu22UExFdlGox1n8Rg3jkPrdqzI_utoPGnCzEiiQ> <xmx:0_T3W1qeIdduR4VT0DOxclrYM6mcS_8wwzV3LmVWl3EPhQLrNCgyyQ> <xmx:0_T3WzgbcsvKISa0gFd-wP8uuvMYqEkZAu-Fp9IKKDNHdQiM23FLCw> <xmx:0_T3W_MBdZux-ccDAaal-oTq7n_Gw96g2vANboikBh4CavC_ja_NOw> <xmx:1PT3W7UtJ56aya-2M7ZMSZXFJb-GbF_Kj-vrxRT0S033ejO7BiAXlQ>
Received: from localhost.localdomain (cpe-74-77-85-250.buffalo.res.rr.com [74.77.85.250]) by mail.messagingengine.com (Postfix) with ESMTPA id 6D256102E4; Fri, 23 Nov 2018 07:38:43 -0500 (EST)
To: Neil Jenkins <neilj@fastmailteam.com>
Cc: IETF JMAP Mailing List <jmap@ietf.org>
References: <CALaySJLQV8U4P7nk97nVtRz7boArQ0F-dU0B7XYpN8wrfPsMpg@mail.gmail.com> <265ec3f1-75b8-43e3-8c52-276b6f6077c6@sloti7d1t02>
From: Ken Murchison <murch@fastmailteam.com>
Organization: FastMail US LLC
Message-ID: <262a4f53-9f8c-b07d-eeb1-df1f77712f7c@fastmailteam.com>
Date: Fri, 23 Nov 2018 07:38:42 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0
MIME-Version: 1.0
In-Reply-To: <265ec3f1-75b8-43e3-8c52-276b6f6077c6@sloti7d1t02>
Content-Type: multipart/alternative; boundary="------------5FAE2FB341BD4D1336C460EB"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/cc4aoRNc9YuVIT9BUh2JOpQZEiM>
Subject: Re: [Jmap] draft-murchison-jmap-websocket as a JMAP working product
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: Fri, 23 Nov 2018 12:38:48 -0000

On 11/23/18 12:56 AM, Neil Jenkins wrote:
> We also discussed the open issues at the JMAP session in IETF 103:
>
>>    o  Should we allow push notifications over the WS connection?
>
> The consensus in the room was "yes", we should use the connection we 
> already have. We would therefore need to:
>
>   * Add a tag to each JSON object sent through the socket so we know
>     what it is. I would suggest an |@type| property with values of
>     |"Request"| (sent by the client to the server), |"Response"| and
>     |"StateChange"| (sent by the server for API responses and pushes
>     respectively). (These are the names of the objects in the JMAP spec.)
>

Se already have @type in the problem details object returned for a 
request level error.  Can't the client simply check the response object 
for "methodResponses" , or "changed", or "type"? Otherwise, perhaps 
"responseType".


>
>>    o  Should we allow out of order processing of requests?
>
> Again the consensus was "yes"; you can use a single WebSocket 
> connection as the equivalent to parallel HTTP API requests. This means 
> we also need an |id| property on Request and Response objects so they 
> can be correlated by the client.


Should we make this "requestId" to be a little more descriptive? Or 
perhaps steal "tag" from IMAP?



>
> We probably also need to clarify that the core |maxConcurrentRequests| 
> limit is applies to inflight requests over the WebSocket. We may need 
> a new limit (exposed in the capability object) for establishing 
> concurrent WebSocket connections (although a client shouldn't really 
> need more than 1; that's the point)?
>
> Ken, are you able to update the spec and we can publish a new version 
> as a JMAP working group product? Thanks.


Sure.


-- 
Ken Murchison
Cyrus Development Team
FastMail US LLC