Re: [Jmap] Draft messages - mutability

Neil Jenkins <neilj@fastmail.com> Tue, 25 April 2017 01:35 UTC

Return-Path: <neilj@fastmail.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 D021D131998 for <jmap@ietfa.amsl.com>; Mon, 24 Apr 2017 18:35:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.719
X-Spam-Level:
X-Spam-Status: No, score=-2.719 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmail.com header.b=DhbOk7uU; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=J0CrDNZt
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 jkhfG50BNTVL for <jmap@ietfa.amsl.com>; Mon, 24 Apr 2017 18:35:35 -0700 (PDT)
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 589BE120726 for <jmap@ietf.org>; Mon, 24 Apr 2017 18:35:35 -0700 (PDT)
Received: from betaweb1.internal (betaweb1.nyi.internal [10.202.2.10]) by mailout.nyi.internal (Postfix) with ESMTP id B0D5520F41; Mon, 24 Apr 2017 21:35:34 -0400 (EDT)
Received: from betaweb1 ([::ffff:10.202.2.10]) by betaweb1.internal (MEProxy); Mon, 24 Apr 2017 21:35:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=X+t6Brws9wWymBzwlHiBI0IOLTXfh oYU3og0nZJRY70=; b=DhbOk7uU4hcQyiX8tbY/nk2S0AdCZb68uX+r1zjEI2D1X KLneiS3jkDBdhIBxgs7LrZ8XfD7dQ4P+kwDdKLmKz5fHWXBc59fsspI7+V2jmuf1 J8IUJvFYapH7wQf8K87H0xDa3YouHjCN2W1ME1Hs5PXiv8J81XziZPK2+OnTNFkk vAG0a0MZp+XQgyQXKaL49gSs52ynYNOFPvU74iJ9G1HoJoQm2doarRT5zxjvJwjs UYDgDr9NgB9SEdjEXHfzbUUh/MpUzJSSsDDZ/GnAUwvqUfCqFYSev+DXg1W4r6Jg Qx1binVw4hli9rLIjMruqIiw4JufYym0+Z5epICgw==
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-sender:x-me-sender:x-sasl-enc; s=fm1; bh=X+t6Br ws9wWymBzwlHiBI0IOLTXfhoYU3og0nZJRY70=; b=J0CrDNZt4aV84kCH7axeW0 dB2Lp0FYy5jjwBMQuO3F48V+BMlaDCQZg33ST0vp04NdAauisGHISrxB5nU5xXVU 5PVBJjf1T80afW92F8QgjKQ3nIeUTjB5lsha0dzX34x6+tnr0jwC56EYkuImJd5l 0IbYZk4TJrzgwoP/kiuO93dJ2iHwa5iRWBZysa8Sqilt7DnWc6frpXBKlfiEZXbL 9gJOgjclkAFBmviN1LjAvzQ0dzbPk8puuswm9JnH7IkUlygxCkXZrXTZLpw19muT GnY1TbL2Iq8+pEbEFs5E2oj30Dc8OPf0ZKs47w+0Ke06L7bV7gc2C5dOhh5OOP3g ==
X-ME-Sender: <xms:5qf-WOFuo7BqxmB3xE2oh0na7W2Y0JlMk2lcwcVtanxlKE3QNgE-RQ>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 6BC3AE2342; Mon, 24 Apr 2017 21:35:34 -0400 (EDT)
Message-Id: <1493084134.2830550.955039432.5403CAFB@webmail.messagingengine.com>
From: Neil Jenkins <neilj@fastmail.com>
To: Chris Newman <chris.newman@oracle.com>, Bron Gondwana <brong@fastmail.fm>
Cc: jmap@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_149308413428305501"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-77cb7ee4
References: <1492998899.3316920.953769616.254C9CBD@webmail.messagingengine.com> <EDDD6045-ECAD-4EAB-AC11-842A9CB2E1CA@oracle.com>
In-Reply-To: <EDDD6045-ECAD-4EAB-AC11-842A9CB2E1CA@oracle.com>
Date: Tue, 25 Apr 2017 11:35:34 +1000
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/v5240QU14ag8Y7Nx2HRKqbDVX6A>
Subject: Re: [Jmap] Draft messages - mutability
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 25 Apr 2017 01:35:37 -0000

On Tue, 25 Apr 2017, at 11:02 AM, Chris Newman wrote:
> I see a lot of cost and no benefit to making a draft a different
> datatype from a message.

I don't see any benefit to making it a different data type. However,
what we currently have is that, like IMAP, a message is immutable except
for flags/mailboxes. This is a pain for client authors trying to keep
track of a single draft as it is saved through multiple revisions
(especially when the user has multiple clients). One possible solution
to this is to simply say any message with the \Draft flag set is fully
mutable (while keeping the same id). I think we would also want the
server to enforce that a message cannot be changed from/to draft state
after creation. If it starts a draft it stays a draft, or vice versa.
>From a protocol perspective, since most messages won't be drafts (with a
normal user) you still get the efficiency of immutable messages (you
only have to refetch flags/mailboxes, not the whole message) for most of
the messages in the mail store. But it will be easier for MUAs to handle
drafts, and particularly allow for a much better experience when editing
the same draft message across multiple devices.
Neil.