Re: [Jmap] Adding the Message::isForwarded property

Neil Jenkins <neilj@fastmail.com> Wed, 19 April 2017 05:57 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 8034E13151E for <jmap@ietfa.amsl.com>; Tue, 18 Apr 2017 22:57:34 -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=lHoniWTX; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=bdUspQht
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 2i_oSFFTMH7G for <jmap@ietfa.amsl.com>; Tue, 18 Apr 2017 22:57:33 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5EA8F13151B for <jmap@ietf.org>; Tue, 18 Apr 2017 22:57:33 -0700 (PDT)
Received: from betaweb1.internal (betaweb1.nyi.internal [10.202.2.10]) by mailout.nyi.internal (Postfix) with ESMTP id C8F2B20D3A for <jmap@ietf.org>; Wed, 19 Apr 2017 01:57:32 -0400 (EDT)
Received: from betaweb1 ([::ffff:10.202.2.10]) by betaweb1.internal (MEProxy); Wed, 19 Apr 2017 01:57:32 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= 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=Caa80RHfatnCqHivP/mltgeHuc8HQ YE9QOTaCFQDdQY=; b=lHoniWTXlIW4+365FzLlyrBeucm7bLc07HjBj1Lh+Kexr hKtseu8sg91J5dVBJ00ZOHNWe3/LdNF+K+/v0AdZGJV7h7fTwMxhBWLjdxdcNuQq l2xEBTeXObkOW4pWl7SbEdtbye8GeBau2JDY/51US8/JKFt564a3M+zlDdVcP0++ k9x77fzx1VR6WQKP1ZfhfyhN7wQ/31r+V6uwM9KljF8S4ujv4tOdJHt0SPlooWOc KzEVz9zugJ1f1XGItwHqH9SjvmdULhsrzRkOD/UUus2BJruWswosM7XiFpNGJtXQ EYjguVXdjK4l7vN+yCcfIDgTd1spA1zAkTA6N28ZQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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=Caa80R HfatnCqHivP/mltgeHuc8HQYE9QOTaCFQDdQY=; b=bdUspQhtAMcZyiZr5kqHIK qfAAeMua8RI9gbYRsaIbmDCqCOC3Hbh5UhX37sbCMiwxkKOVM8GhS1eNoLFtVDey /qVYvSIqQjSho+8hwkKKHUN8p8GxyGZ057qkHJdSZBQa/8lOGoKgB0xim8V15rm4 ioGJbmGcoOFe7C3Eo4k7FDRgscnIM36GrIZILQTjcpyRIeq909GVZPl/oKKKPp+o 0T0d4WiYC4gmYNNQ4oGOlumm+pIwV47qGGlOtxn2rg1bpr8VHO0I0UXxAQhoSW1P b44g/KQxe5iY0xDCVaLV1s2Aff74D0lXXR18bJAhLWU5WmcXK5uJdE/t3soOHakA ==
X-ME-Sender: <xms:TPz2WCgHD7BRydFPRfHzPa8dsBWtVpkiA9FYDT_FC9tDvrmqpCSitA>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 8211CE2597; Wed, 19 Apr 2017 01:57:32 -0400 (EDT)
Message-Id: <1492581452.3025596.948906456.71780673@webmail.messagingengine.com>
From: Neil Jenkins <neilj@fastmail.com>
To: jmap@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_149258145230255960"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-aa3edb73
References: <148716911729.17277.15371202023742081890.idtracker@ietfa.amsl.com> <b7ec34d3-3aaf-82af-3663-5b0966c83ff0@dcrocker.net> <b5753f7f-92f9-50dd-42f0-ce0de7360e08@linagora.com> <A9EDBE7D-4E3D-45C2-BB97-F74AC9DB9486@oracle.com> <9eb1fd3c-8868-9d24-6c30-46d333b69fef@isode.com> <3c1711a2-46dd-db1c-506e-5e1ad89ce56d@linagora.com> <92769755-62c6-7257-ce3d-7d0b5699735d@isode.com> <27c62cc8-68e0-49b5-4900-34c26d7b4c6a@linagora.com> <C88A669A-2143-4FC2-81EF-3C9A2CD5963B@apple.com> <D0072AC9-71DC-4831-A3DA-FEA4A7B85BBA@oracle.com> <AB5279CE-4F9A-4DE8-AEEA-E1425D04FA89@att.com>
In-Reply-To: <AB5279CE-4F9A-4DE8-AEEA-E1425D04FA89@att.com>
Date: Wed, 19 Apr 2017 15:57:32 +1000
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/OlTzaTR1Uir6J5qyJJ--4Mn7P0w>
Subject: Re: [Jmap] Adding the Message::isForwarded property
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: Wed, 19 Apr 2017 05:57:34 -0000

The initial JMAP design was only interested in the system flags, so
having the separate properties made sense. But given we want to add full
support for custom IMAP flags (and reuse the IANA registry), I think
having the system ones in a different format is going to end up causing
pain down the line. We could make properties for the keywords currently
in the IANA registry, but this would clearly cause headaches as more are
standardised down the line. So I agree we should change to just a single
"keywords" property, and reuse the keyword names from IMAP.
This means we would remove the "isUnread", "isFlagged", "isAnswered" and
"isDraft" properties from the Message object and introduce a single
"keywords" property (with respectively "\Seen" (flipped meaning),
"\Flagged", "\Answered" and "\Draft" keywords, as per IMAP).
The main downside is I think  is this is slightly less accessible for
newcomers who haven't been exposed to IMAP, but this is probably
outweighed by the benefits already discussed.
Do we have consensus on this? The last few messages all seem to be in
favour of making this change. If so, I'm happy to update the spec and
call this issue closed.
In terms of representation, do we agree on an Object type, with the
keywords as the keys (and a boolean `true` as the value (as discussed in
a previous email in this thread)?
Neil.