Re: [Jmap] WG Review: JSON Mail Access Protocol (jmap)

Alexey Melnikov <alexey.melnikov@isode.com> Wed, 08 February 2017 13:39 UTC

Return-Path: <alexey.melnikov@isode.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2371D129A59; Wed, 8 Feb 2017 05:39:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=isode.com
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 tIhBRsBp4vjX; Wed, 8 Feb 2017 05:39:37 -0800 (PST)
Received: from statler.isode.com (Statler.isode.com [62.232.206.189]) by ietfa.amsl.com (Postfix) with ESMTP id A16AF129A4F; Wed, 8 Feb 2017 05:39:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1486561176; d=isode.com; s=june2016; i=@isode.com; bh=ySc+N2mjFStBNxbV36zhF2B+70IKXZoQLLMuVWIxJ2Q=; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:Cc:MIME-Version: In-Reply-To:References:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description; b=Df4YdHNvtugxgGzrL8MF+PXEi/S3iqJ2iJWFNUVE50q4hgNSUHYEtVw6Y9ExnlwMu88ORi OwKcPLpaG7L3yxV1BoRFpysjeQGEr2yY0LSCwm98P7Fy7BVxyX252t8Q5dG5a5JeixXQIU wjHYUVQ4RpoJe4F1+kD3M/lFm3/WeV8=;
Received: from [172.20.1.215] (dhcp-215.isode.net [172.20.1.215]) by statler.isode.com (submission channel) via TCP with ESMTPSA id <WJsfmAAY1zWv@statler.isode.com>; Wed, 8 Feb 2017 13:39:36 +0000
Subject: Re: [Jmap] WG Review: JSON Mail Access Protocol (jmap)
To: dcrocker@bbiw.net
References: <148616796247.4079.7104562493351135409.idtracker@ietfa.amsl.com> <11e900d0-553e-0635-06f4-8510bd80ecfd@dcrocker.net> <4ff42a3b-1f8e-3e25-14e7-b1d3ed2f69c2@isode.com> <368f2b68-8f10-9517-1edb-d213ff10563b@dcrocker.net>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Message-ID: <03152892-3987-145c-8206-e3ccfe3a7510@isode.com>
Date: Wed, 08 Feb 2017 13:39:19 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0
In-Reply-To: <368f2b68-8f10-9517-1edb-d213ff10563b@dcrocker.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/TiddtUZFnFjZavH9-wGOO1ChLqY>
Cc: jmap@ietf.org, ietf@ietf.org, iesg <iesg@ietf.org>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Feb 2017 13:39:39 -0000

Dave,


On 06/02/2017 20:11, Dave Crocker wrote:
> Alexey, thanks for the quick followup.
>
> inline...
>
> On 2/6/2017 11:41 AM, Alexey Melnikov wrote:
>>>      Working groups need task serialization.  So I'll suggest that
>>> having an effort to standardize an JSON representation of an
>>> RFC5322/MIME object would be the highest-leverage first task.
>> I don't think there is intent to specify full mapping of RFC5322/MIME to
>> JSON. IMAP has BODYSTRUCTURE element that contains parsed representation
>> of message structure and most commonly used header fields for different
>> body parts. The intent is to do the same here.
>> Additionally, it is still possible to retrieve full RFC5322/MIME
>> payloads over JMAP.
>
> This highlights the need to have far more clarity about what specific 
> work is to be done and what is not.  The existing text has some 
> generic out-of-scope text, but nothing as frankly useful as your above 
> comment. Given that comment, I can't text what parts of the resulting 
> jmap service will use 'native' Internet Mail technical details and 
> what parts will be new-for-JSON.
>
>
>> I have tried to reflect your comments in the Charter, but I struggled a
>> bit. If you can suggest how to make the above clearer, that would be
>> much appreciated.
>
> I make a point of offering candidate text when I think I understand 
> the context and needs well enough.  Unfortunately I don't have that 
> here. Hence, questions and general suggestions is the best I can 
> offer.  Sorry.
>
>
>>> Adding to this:
>>>
>>> JSON is a meta-format.  It isn't a 'protocol'.  Something encoded in
>>> JSON is a format, not a protocol.  Hence one of the tasks apparently
>>> being chartered would be to create a new message access protocol,
>>> encoded in JSON.  While that might be worth doing, there needs to be
>>> clarity that this is more than a 'representation'.
>> No, it is a representation. See above.
>
> As soon as one says that the task is client/server interaction, one is 
> declaring the goal of a protocol.  So it is more than just a format 
> (representation.)
>
>
> >> There also needs to be clarity about the relationship between the JSON
> >> encodings and the encodings in 'native' Internet Mail.
>> See drafts (and above).
>
> Drafts?  What drafts?  Perhaps you mean:
>
>    https://tools.ietf.org/html/draft-jenkins-jmap
>
> Except that no draft is cited in the charter.
>
>
>>>> The use of multiple protocols
>>>> to perform actions within a single application creates significant
>>>> support challenges, as users may get a variety of partial failure 
>>>> modes
>>>> (for example, can receive email, but can not send new messages).
>>>> This is further exacerbated if the different protocols are
>>>> authenticated separately.
>>>
>>> From my November comments:
>>>
>>>      There is no justification given for this approach.  For each
>>> activity, there needs to be a clear and solid need documented, based
>>> on actual industry activities or at least industry statements.
>>> Besides clarifying /what/ needs doing, it should serve to indicate
>>> likely industry uptake after the work is done.
>>
>> I am not sure what kind of justification is needed. This is a clear
>> deployment problem.
>
> As I said, there was a year-long, serious and diligent debate about 
> this in the IETF and it came to a different conclusion.  So it's not 
> nearly as 'clear' as you are asserting.
>
>
>>> Adding to this:
>>>
>>> The IETF email technical community looked at the question of making
>>> email submission part of IMAP or keeping it separate.  It took an
>>> entire year to debate this point extensively and (imo) constructively,
>>> and decided to keep them separate.  The current charter draft appears
>>> to have decided otherwise, but offers only the barest of
>>> justifications, which I suspect has not factored in the earlier
>>> evaluation.
>> There was a followup discussion about doing an IMAP extension for
>> submission and how it should look like to remain compatible with SMTP
>> Submission. I don't think this is an attempt to just ignore earlier
>> discussions.
>
> Discussion is different than deployment.  The fact that it isn't used 
> now suggests that the benefit(s) you are asserting aren't as clear-cut 
> as is being implied here.  To the extent that the current proposal 
> does indeed represent a consideration of the prior, extended IETF work 
> in this realm, the charter should indicate the basis for making a 
> different choice here, in terms of the points considered earlier.
>
>
>
>>>> The working group will deliver the following:
>>>>
>>>> - A problem statement detailing the deployment environment and
>>>>   situations that motivate work on a new protocol for client to
>>>>   server email synchronisation.  The working group may choose
>>>>   not to publish this as an RFC.
>>>>
>>>> - A document describing an extensible protocol and data structures, 
>>>> with
>>>>   support for flood control and batched operations, and operating over
>>>>   a stateless connection such as HTTPS.
>>>
>>> 'flood control'?  what does this mean, since I assume the target
>>> protocol won't be using a flooding algorithm.  If it really means
>>> 'congestion control', that's not typically part of an application
>>> protocol, so why would it be an issue here?
>>>
>>> From the November comments
>>>
>>>      Since client/server email access typically benefits from having
>>> the server retain state about the client's activities, I can't tell
>>> whether this actually means stateless lower-level transport or whether
>>> it really does mean a stateless email protocol.
>>
>> Stateless lower level transport. The addition of "such as HTTPS" was
>> trying to make this clearer.
>
> Didn't succeed, given that HTTP runs over TCP.

The protocol is HTTP version agnostic, for the most part.
The original thought was that it is less stateful than IMAP, which 
requires a mailbox to be opened for some operation. But the server still 
needs to maintain state (for example to track flag modifications). So 
saying "stateless" is incorrect, so I deleted it in 2 places in the Charter.

  [...]

>>> Adding to this:
>>>
>>>    HTTP/HTTPS are not stateless, since they are connection-based.
>> Yeah, I struggled with this a bit. Each request/response can be sent on
>> a separate connection and it is stateless in that sense.
>
> In other words, jmap will be stateless.  That's what the charter 
> should say.
>
> ...Except that that seems odd, since it means that every exchange 
> would have to self-identify and self-authorize.
True.
> I suspect that's not what's going to be defined.  So, really, it isn't 
> obvious to me at all what will be stateless.

As you pointed out, saying stateless is not really correct.

Best Regards,
Alexey