
From nobody Fri Mar  1 11:53:52 2019
Return-Path: <adam@nostrum.com>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id CF8F01200ED; Fri,  1 Mar 2019 11:53:44 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Adam Roach <adam@nostrum.com>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-core@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.92.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155147002484.6228.9924350944326876840.idtracker@ietfa.amsl.com>
Date: Fri, 01 Mar 2019 11:53:44 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/M738rIULhmBewX_IqfS9nBQacS8>
Subject: [Jmap] Adam Roach's No Objection on draft-ietf-jmap-core-15: (with COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 01 Mar 2019 19:53:45 -0000

Adam Roach has entered the following ballot position for
draft-ietf-jmap-core-15: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thanks for addressing my discuss and comment points.



From nobody Fri Mar  1 12:10:11 2019
Return-Path: <kaduk@mit.edu>
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 85445130EBE; Fri,  1 Mar 2019 12:10:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 hMU-CRRI6jnW; Fri,  1 Mar 2019 12:10:05 -0800 (PST)
Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-eopbgr780112.outbound.protection.outlook.com [40.107.78.112]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8D5CF130EBC; Fri,  1 Mar 2019 12:10:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L/xSqztzZeuPXzmXypzMNbS9WFF8UYC4boiWGXPF9eg=; b=n54Gxsr2PIf/SczJlHlEP8dmN6f3Oo7flMRJKRu8klHQODjiKNoWqyOeMySmwTXz7SLZ32LhmLZL1SAWyxZtTWAzomv7gpzge1zfHBrueB07xHWm715PCIhSQ2vj/DVT8Uh22JbRFDWWWXyj8tXnnB8erQXuCtTD+PGQor7r+CU=
Received: from DM5PR0101CA0005.prod.exchangelabs.com (2603:10b6:4:28::18) by BN8PR01MB5602.prod.exchangelabs.com (2603:10b6:408:be::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.15; Fri, 1 Mar 2019 20:10:02 +0000
Received: from BY2NAM03FT041.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::209) by DM5PR0101CA0005.outlook.office365.com (2603:10b6:4:28::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1665.16 via Frontend Transport; Fri, 1 Mar 2019 20:10:01 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT041.mail.protection.outlook.com (10.152.85.246) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Fri, 1 Mar 2019 20:10:01 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x21K9ulq029041 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 1 Mar 2019 15:09:58 -0500
Date: Fri, 1 Mar 2019 14:09:56 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neil Jenkins <neilj@fastmailteam.com>
CC: iesg <iesg@ietf.org>, <draft-ietf-jmap-core@ietf.org>, Bron Gondwana <brong@fastmailteam.com>, <jmap-chairs@ietf.org>, IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <20190301200956.GR53396@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(396003)(136003)(346002)(39860400002)(376002)(2980300002)(51914003)(199004)(189003)(1076003)(66574012)(966005)(426003)(8676002)(6246003)(54906003)(46406003)(4326008)(104016004)(106002)(14444005)(23726003)(75432002)(356004)(5660300002)(6916009)(305945005)(6306002)(16586007)(53416004)(58126008)(229853002)(50466002)(476003)(2906002)(126002)(7696005)(956004)(11346002)(486006)(86362001)(55016002)(47776003)(106466001)(478600001)(446003)(26826003)(76176011)(88552002)(336012)(186003)(26005)(316002)(786003)(8936002)(97756001)(246002)(33656002)(36906005)(18370500001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN8PR01MB5602; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: d8c85915-f8c7-40d8-6517-08d69e81e30e
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BN8PR01MB5602; 
X-MS-TrafficTypeDiagnostic: BN8PR01MB5602:
X-MS-Exchange-PUrlCount: 2
X-Microsoft-Exchange-Diagnostics: 1; BN8PR01MB5602; 20:Fg+T7DXTDbySrZ8Hse8FknAeo96mLJ0Ob52Eiea2JmbrUkoZCEjGznE9S6Q+H/voRHrMfGe2QaeC6TFwQZ5RHnX9GAO7drZQZ5J8vH2xkpzzbXM6AvNhTqliiZPL4Xlrob1gkvDf/fS6MHAx8ZeiSNmv4vApEByNQiveFT5mvbd42QswJ8fuX0bbp3uQuNDurSEhwodzbq+Ml24hP529zizTnLFlYcyVucL82sh1dO77hTHPBbhliaikF93qymZHHFb5j26wd4+BooAauokzyXzQvegCQR3cZJEptH/t5mJJzRDnVFVQbtu/NyfWnQ0z9y3H45fRhURpiSI/jIq/BnIkfsOc85t9WTzRHBf756coeSb47h9JBqFod5hQcVub5tyyTDxIRURvHPqW8BmStQdgVhh1SKVe7FbIjRPzqaSQWGbSI1+b52wJD46qMTKotgxpKnEfgVM8wnecW02Zqg3SoPZFFdVs58OCiob2GtGjOOroffRntjPpsTCEYFErIkm4RjFB5dqL8Vk/Ig9nfO8P1h/Ayt7+FNx9SP+0jmaF4SpTRBSaaIbn0BbsxkQECr+1wCA5+XApV2D2gvljEWAPJgrvV6nzXzv5v5LyboY=
X-Microsoft-Antispam-PRVS: <BN8PR01MB56022D10125E295F16D371C3A0760@BN8PR01MB5602.prod.exchangelabs.com>
X-Forefront-PRVS: 09634B1196
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN8PR01MB5602; 23:I6y1ZNIshASARolSGDIRdVWrbRRCRxL70OFfs7Sw5?= =?us-ascii?Q?HZbUsK2b/T6XomBGCF9lejAWMvbGnxnQ4wdJ0pwBMZd2JYDNmHA0qBlyCB/m?= =?us-ascii?Q?rO1XQ0DSj27hcN+W2zf87KXi54Z7YTGnN1XdHo1b1NyamU/v5RtbJZCyCR6R?= =?us-ascii?Q?PekFMXl5xtFC4DiMbOcTb9mIvnalIifKUSX7PY0PpzDs6oXg+rJzyh5+fsKd?= =?us-ascii?Q?EGyYRiWD7zmdmOZFp31ZTEjnY+lptA3J1aeyxvRLV4iHG0VaaD00p72NXQdK?= =?us-ascii?Q?ssA29PAy5AfFimNHPSz7OvLsIiq8MgSj3Ap2Kr4ao3qA47v1CA/l+whCHkDY?= =?us-ascii?Q?ma0xaG3N1fFtSGCDZsG9LFHZ/Eix9LlgVMB2rIGeQZBpbwEUNLpt4s5S0vPh?= =?us-ascii?Q?MkwWK6ZCeP5NqFQS8e/kl64BMuyMgOjbqqsx4hOJGpxZ69zqOeTbs0z71fnD?= =?us-ascii?Q?oJnz6v9QPM94YZrFJ9sdwyJKgUlFpbSuqmERMBU6oVCSe1Hr96FzuRVAl2Oq?= =?us-ascii?Q?JJPHre+fDoL8TTPg+zlfc5hvmUH289z0qF2tpf15A48fCgLwDEHf6IumMZ6W?= =?us-ascii?Q?BwYLqXwTJNgaWVW+j75Q3/+fC+PkuhM4605wzoeYoXksdIIHdIVDZf0He+OR?= =?us-ascii?Q?aUbES/khZlXUzaoZEDZHs7Ex50ilJFgYpe/v8egx1wZG68qYXVX+uiTg/ZX7?= =?us-ascii?Q?/tjVzSusJdskZ8pTVoy070dZrPfi8q078WLohbk6LClyNsUl3wr2OqvA7gKN?= =?us-ascii?Q?WbpdFLB8X++PrsmlyEO+fKagNx5J5sBhjlVpdH2tKjPwNs67jijZKrPNQErO?= =?us-ascii?Q?w+zTWXPJbTeqw4R2XolOP1t80Xe7DEZ9VpDKbn7Rpo2MTFz6VdNbVGduEgjg?= =?us-ascii?Q?CTTRDe+M4RtiQfJTk4HFEy1wLW1oVVA0yk3Q/pCHBc3kkhq4ZwZhAVSjCZNv?= =?us-ascii?Q?tKSS1JmX4Kfe6eAZoExNPc1K+WDzEfZ9PokyT46w0EPyL6a7NddLVHPKVaC9?= =?us-ascii?Q?6BrXvfmGAH0Pt9eVfzTz7Pd+5lfv+vQcbIHaNikYQgMo5tQi8R1NlR6FS8Kv?= =?us-ascii?Q?TFjw+MGVZSdnmLKgXsRi/BeOedrfxv1fcnUt+Bc8a1U056DSg/dTBFsz8/+0?= =?us-ascii?Q?eioW0lZs8TcWyx6xKZRvNyrl1vwj3BqPnRQsQyjk65PzelWRfueWqA3dJPT1?= =?us-ascii?Q?ykkgpUaiTPETqsIlxbw+KqRvWK8uT7unrSqahQKeWaWR/ehcbov7hfTm3K3z?= =?us-ascii?Q?QAcyxCpsf0DTJghdJfAaO2RtZ4ykjxs7dGXEcJD83nSICdMPpK+HOtPqA2sT?= =?us-ascii?Q?w6P5iPOIur5Nrdif95PPks=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: 6G43pRxbcx0xYe+ADjP9UmKh1iAAuFdpsbe0HgwCN79FQJviSkZedonWv1qD0bTGcD3n1thNdE5fqGYKDXAP2MmhwN8WR0n7POSb9fg8QgE4LBhgdpGQvxPqGWVUcth+H5pzGG/KTGwDE3BbwTgsWxa5u+ugwYzXexoqDcSOF1KfhVkMNYZFMvTbSmo9Ib8roKk83D2eHhjenAFFjTy8REFIsqA0eHl4/KRI730DORQ9KW7s7RzJgyGx8j5D7tydF4DfKQz/FYxJlDDUEswtoUynC1Y1mCPhTpWD2WJg8ohg3DHg+zDgFMu45108R5gdVAS9XYZFN/X0GqH3VCVJmUOoooA7HFrloWv2lZrf16KD17vxrl3fMr/5O5GI8G+HkTo30J2cZEIHzLVYRsh8VehfnBYHemU+2qubSQD6lt4=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2019 20:10:01.1941 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: d8c85915-f8c7-40d8-6517-08d69e81e30e
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR01MB5602
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/3zSBr9IN0Ju1HFYRG66nmJ6iQVc>
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: Fri, 01 Mar 2019 20:10:10 -0000

Just replying on the discussion points for now, as I want to also be
reviewing the jmap-mail document today...

Most of these look good, and thank you for the updates!

On Thu, Feb 28, 2019 at 01:14:44AM -0500, Neil Jenkins wrote:
> Thanks for the detailed feedback Benjamin.
> 
> *Discussion points*
> 
> > 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.)
> 
> OK, I'm happy to change this to say https:// scheme instead. I've changed the text to just say:
> 
> *JMAP uses HTTP [@!RFC7230] to expose API, Push, Upload and Download resources. All HTTP requests MUST use the https:// scheme ([@!RFC2818] HTTP over TLS).*
> 
> I have moved the minimum TLS requirements to the security considerations, and removed the HTTP reference there, so the normative requirements are no longer duplicated.
> 
> > 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. 
> 
> Yes, this was inconsistent; PushSubscription objects are special as they are tied to authentication credentials rather than an account. I have removed just this sentence, since I think the document is clear enough without it.
> 
> > 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?
> 
> The authentication credentials. You're right this was not clear; I have added explicit statement of this to the document.
> 
> > 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..
> 
> This is only true for objects with references to the same type (e.g. Mailbox). I have added this sentence to the end of that paragraph:
> 
> *In the case of records with references to the same type, the server MUST order the creates and updates within a single method call so that creates happen before their creation ids are referenced by another create/update in the same call.*
> 
> There is no need to specify more constraints than this for ordering as it would not be externally visible; servers should have the flexibility to optimise as they see fit.

I agree that this sort of ordering is the relevant part and we don't
actually need to specify an absolute order of operations.  Though I guess
if some client was silly enough to both create and delete the same item in
a single request, the delete would need to be referred to by the creation
ID, which would provide the needed dependency to force the ordering.  So
this adversarial scenario just would need to change "create/update" to
"create/update/delete" to be covered.

> > 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).
> 
> There is no requirement in the spec for the default algorithm to be one of those listed in the collationAlgorithms capability; the server can do whatever it wants in the default case. We will certainly look at registering UCA, but such a registration doesn't belong in this document and will not materially change this document so should not block publication.

Rereading, I see that the example of Unicode Collation is just as one that
meets the requirements needed for a (server-dependent) default algorithm,
as you note.  So, sorry for misreading that (and I would have cleared
anyway with just a declaration of intent to register).

> > 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?
> 
> It's stating that on the next resync, whether that be due to a future push for the same type, or the client making any /get or /set for that type and seeing the different state string returned, will result in the client coming fully up to date. Losing the push does not mean there is data the client will now no longer see.

Perhaps there is room for a little more clarity on what "it syncs" means
(i.e., full sync or just scoped to a specific data type).  To be clear,
this is a fine design; I just want to be sure that we have clarity of
language in describing it.

> > Section 7.2
> > 
> >  As a push subscription causes the JMAP server to make a number of
> >  requests to a previously unknown endpoint, it can be used as a vector
> >  for launching a denial of service attack. To prevent this, when a
> >  subscription is created the JMAP server immediately sends a
> >  PushVerification object to that URL (see section 7.2.2). The JMAP
> >  server MUST NOT make any further requests to the URL until the client
> >  receives the push and updates the subscription with the correct
> >  verification code.
> > 
> > I think the JMAP server also needs to rate-limit even the initial
> > PushVerification generation, per-user(?), in order to close the DoS
> > and annoyance-vector risks.
> 
> Yes, for annoyance mitigation there should be some rate limits here. I don't think we need to be specific on how it is rate-limited; that's up to the server. I'll add a mention of this to the security considerations.
> 
> > 
> >  o *keys*: "Object|null" (immutable) Client-generated encryption
> >  keys. If supplied the server MUST use them as specified in
> >  [RFC8291] to encrypt all data sent to the push subscription. The
> >  object MUST have the following properties:
> > 
> >  * *p256dh*: the P-256 ECDH Diffie-Hellman public key as described
> >  in [RFC8291], encoded in URL-safe Base64 representation as
> > 
> > What's the crypto agility story for these web push encryption keys?
> > (See BCP 201.)
> 
> There isn't one, because as far as I can see RFC8291 <https://tools.ietf.org/html/rfc8291> doesn't have one and that's what this is supporting. What do you suggest?

The pragmatic thing to do would be to note in the security considerations
that there is no algorithm agility for Web Push Encryption, and if agility
becomes needed in the future a spec update would likely be needed to
provide it.

> > Also, when these expirations fire (e.g., for Basic Authentication
> > credentials), we need a normative requirement to actually destroy the
> > private credentials; there's a lot going on here so maybe I missed it,
> > but I don't think I saw one.
> 
> I think we already have this. The spec says:
> 
> *The push subscription is tied to the credentials used to authenticate the API request that created it. Should these credentials expire or be revoked, the push subscription MUST be destroyed by the JMAP server.*
> 
> Or were you referring to something else?

I was thinking that you need to clear out the memory/disk storage that hold
the credentials (e.g., password), as well as destroying the subscription
object.  We don't want plaintext credentials floating around longer than
needed.

-Benjamin


From nobody Fri Mar  1 13:12:54 2019
Return-Path: <agenda@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 55FB4130F78; Fri,  1 Mar 2019 13:10:01 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: "\"IETF Secretariat\"" <agenda@ietf.org>
To: <brong@fastmailteam.com>, <jmap-chairs@ietf.org>
Cc: jmap@ietf.org, aamelnikov@fastmail.fm
X-Test-IDTracker: no
X-IETF-IDTracker: 6.92.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155147460134.6101.1372967153106349313.idtracker@ietfa.amsl.com>
Date: Fri, 01 Mar 2019 13:10:01 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Ao3jPGaQkcBKWL3QkJKXZSSVW60>
Subject: [Jmap] jmap - Requested session has been scheduled for IETF 104
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 01 Mar 2019 21:10:11 -0000

Dear Bron Gondwana,

The session(s) that you have requested have been scheduled.
Below is the scheduled session information followed by
the original request. 


    jmap Session 1 (1:00 requested)
    Tuesday, 26 March 2019, Morning Session I 0900-1100
    Room Name: Karlin 3 size: 60
    ---------------------------------------------

Special Note: 0900 - 1000

iCalendar: https://datatracker.ietf.org/meeting/104/sessions/jmap.ics

Request Information:


---------------------------------------------------------
Working Group Name: JSON Mail Access Protocol
Area Name: Applications and Real-Time Area
Session Requester: Bron Gondwana

Number of Sessions: 1
Length of Session(s):  1 Hour
Number of Attendees: 20
Conflicts to Avoid: 
 First Priority: doh oauth saag iasa2 dmarc artarea uta dispatch extra
 Second Priority: tls httpbis ace lamps core t2trg



People who must be present:
  Barry Leiba
  Alexey Melnikov
  Neil Jenkins
  Bron Gondwana

Resources Requested:
  Experimental Room Setup (U-Shape and classroom, subject to availability)
  Flipcharts: please specify number in Special Requests field

Special Requests:
  Many of the same people attend both JMAP and EXTRA, so if they can be placed consecutively, it would be useful, ideally in the afternoon.  Two sessions consecutively in the same room would be ideal.
---------------------------------------------------------


From nobody Sun Mar  3 18:53:16 2019
Return-Path: <neilj@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 86617130EFC; Sun,  3 Mar 2019 18:53:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.982
X-Spam-Level: 
X-Spam-Status: No, score=-1.982 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=VVpCCjur; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=6V5QeKii
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 Zq0wMLRU2Wx5; Sun,  3 Mar 2019 18:53:05 -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 6A08D130ED4; Sun,  3 Mar 2019 18:53:05 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 67B32220F9; Sun,  3 Mar 2019 21:53:04 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Sun, 03 Mar 2019 21:53:04 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:cc:subject:content-type; s=fm2; bh=A4u19kGlTADQlB5hKRN4Zz3Ci vvHrok+IVZG2Jj4lmo=; b=VVpCCjurKvogXEu95wzCiwDj3ySgvpEaSwoAdBBnR /lBICdSuz7/qAwvOdBgf0X89CgZuhMDIkAzXSjpvb8WHGPnVh1oSRhCJ57oNBTWg X4yzsotGeB77DQD1o1yAORp0PAf15xjw2185MKH1nBVZWT5moU6VwbwD4kNv2fMP G1wNn1ZzYsUsfA+L66qeGNBoBrejc1eQlMTcWfiYXbd7xe/AYIaSAFvdExAnIANh knhXUxhN99tutNFyYh4y5UKxZaM5n6xzvB54Qh40m7lKkyf4qRx8BopoOjXCq5D/ HiOivNstydtonBqWN+rzHYL1XAjCe+kGhAm30lI6K6Xxg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=A4u19kGlTADQlB5hK RN4Zz3CivvHrok+IVZG2Jj4lmo=; b=6V5QeKiisb7ggUZnq/Pc1HcijEy87diyP LdzppRmNkaW1yIKYbuXH/NXCup+v1qPcMPEbdSWsRGlPJpBEgLAugupGRDv99us2 qiajvf9JhCRCmJOaGjLgp3lRkXYDL3oeKNxxBXuTTe4/FtZLxE/E8vOg1J5A3+HF Pa5aE1mjgsLzp5JKxrMU91f6iB1llHvwr76gt9uq6hRx+5ISx1l4OJlFjr/JzFMv feVru+WF+w5T8C6JO5iXME2UfFzC82HiRQakxbELfueK1p8E+tjAekP/yTF0GNA2 ys2gygWxKQOtZmkT7SFGwzSTQT9I6OgUtJ6tIfwpOBGV4boalp7oA==
X-ME-Sender: <xms:D5N8XNh1SmenxLeCk3UDgT-nhKFRxCd4emg7Juffzhle0AMcne74SQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrfedtgdehtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgfkjghffffhvffutgesrgdtreerreerjeenucfhrhhomhepfdfpvghilhcu lfgvnhhkihhnshdfuceonhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmqeenuc ffohhmrghinhepihgvthhfrdhorhhgnecurfgrrhgrmhepmhgrihhlfhhrohhmpehnvghi lhhjsehfrghsthhmrghilhhtvggrmhdrtghomhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:D5N8XDWW_G8JXrlbVLdyk7B4FHs5JsMGEueOEqLN9mafz8-Pm-CPpQ> <xmx:D5N8XPjZhdrOXxMhe0LlubBfKQr9V3Y65FjvvC-DhuCul_1XdOUlWQ> <xmx:D5N8XH7eL5b0C4hWrJfbU4k4ZKEsvU-uEExvvwzQREIRzqxLMU3-Ug> <xmx:EJN8XIAz8qGUdUpHOTz2sbtFk1mpk6mrxnFQIR1pz0hAVmA26R-DMQ>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id C2D692032A; Sun,  3 Mar 2019 21:53:03 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-925-g644bf8c-fmstable-20190228v5
X-Me-Personality: 64588216
Message-Id: <65cb60cd-073b-401a-b2bb-8c1024833400@beta.fastmail.com>
In-Reply-To: <20190301200956.GR53396@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com> <20190301200956.GR53396@kduck.mit.edu>
Date: Sun, 03 Mar 2019 21:52:33 -0500
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>
Cc: iesg <iesg@ietf.org>, draft-ietf-jmap-core@ietf.org, "Bron Gondwana" <brong@fastmailteam.com>, jmap-chairs@ietf.org, "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=b6894366fe314111b1f41ce52aa0557f
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/RnDmYr1jr08haSUhFH0VsxTiR7Q>
Subject: Re: [Jmap]  =?utf-8?q?Benjamin_Kaduk=27s_Discuss_on_draft-ietf-jmap-c?= =?utf-8?q?ore-14=3A_=28with_DISCUSS_and_COMMENT=29?=
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: Mon, 04 Mar 2019 02:53:07 -0000

--b6894366fe314111b1f41ce52aa0557f
Content-Type: text/plain

On Sat, 2 Mar 2019, at 07:10, Benjamin Kaduk wrote
> So this adversarial scenario just would need to change "create/update" to
> "create/update/delete" to be covered.

Agreed, I'll make this change.

> > It's stating that on the next resync, whether that be due to a future push for the same type, or the client making any /get or /set for that type and seeing the different state string returned, will result in the client coming fully up to date. Losing the push does not mean there is data the client will now no longer see.
> 
> Perhaps there is room for a little more clarity on what "it syncs" means
> (i.e., full sync or just scoped to a specific data type). To be clear,
> this is a fine design; I just want to be sure that we have clarity of
> language in describing it.

OK, how about this:

*It doesn't matter if some push events are dropped before they reach the client; next time it gets/sets any records of a changed type it will discover the data has changed and still sync all changes.*

> > There isn't one, because as far as I can see RFC8291 <https://tools.ietf.org/html/rfc8291> doesn't have one and that's what this is supporting. What do you suggest?
> 
> The pragmatic thing to do would be to note in the security considerations
> that there is no algorithm agility for Web Push Encryption, and if agility
> becomes needed in the future a spec update would likely be needed to
> provide it.

Sure, happy to do that.

> > > Also, when these expirations fire (e.g., for Basic Authentication
> > > credentials), we need a normative requirement to actually destroy the
> > > private credentials; there's a lot going on here so maybe I missed it,
> > > but I don't think I saw one.
> > 
> > I think we already have this. The spec says:
> > 
> > *The push subscription is tied to the credentials used to authenticate the API request that created it. Should these credentials expire or be revoked, the push subscription MUST be destroyed by the JMAP server.*
> > 
> > Or were you referring to something else?
> 
> I was thinking that you need to clear out the memory/disk storage that hold
> the credentials (e.g., password), as well as destroying the subscription
> object. We don't want plaintext credentials floating around longer than
> needed.

Which credentials are you referring to here? The push subscription doesn't contain any except I guess for the URL itself; I can note that this and the encryption keys MUST be securely erased from memory/storage immediately when the subscription is destroyed? If you're referring to the client's credentials, we're explicitly talking about when they've been expired or revoked, so are already useless.

Neil.
--b6894366fe314111b1f41ce52aa0557f
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>On Sat, 2 =
Mar 2019, at 07:10, Benjamin Kaduk wrote<br></div><blockquote type=3D"ci=
te"><div>So this adversarial scenario just would need to change "create/=
update" to<br></div><div>"create/update/delete" to be covered.<br></div>=
</blockquote><div><br></div><div>Agreed, I'll make this change.<br></div=
><div><br></div><blockquote type=3D"cite"><div>&gt; It's stating that on=
 the next resync, whether that be due to a future push for the same type=
, or the client making any /get or /set for that type and seeing the dif=
ferent state string returned, will result in the client coming fully up =
to date. Losing the push does not mean there is data the client will now=
 no longer see.<br></div><div><br></div><div>Perhaps there is room for a=
 little more clarity on what "it syncs" means<br></div><div>(i.e., full =
sync or just scoped to a specific data type).&nbsp; To be clear,<br></di=
v><div>this is a fine design; I just want to be sure that we have clarit=
y of<br></div><div>language in describing it.<br></div></blockquote><div=
><br></div><div>OK, how about this:<br></div><div><br></div><div><i>It d=
oesn't matter if some push events are dropped before they reach the clie=
nt; next time it gets/sets any records of a changed type it will discove=
r the data has changed and still sync all changes.</i><br></div><div><br=
></div><blockquote type=3D"cite"><div>&gt; There isn't one, because as f=
ar as I can see RFC8291 &lt;https://tools.ietf.org/html/rfc8291&gt; does=
n't have one and that's what this is supporting. What do you suggest?<br=
></div><div><br></div><div>The pragmatic thing to do would be to note in=
 the security considerations<br></div><div>that there is no algorithm ag=
ility for Web Push Encryption, and if agility<br></div><div>becomes need=
ed in the future a spec update would likely be needed to<br></div><div>p=
rovide it.<br></div></blockquote><div><br></div><div>Sure, happy to do t=
hat.<br></div><div><br></div><blockquote type=3D"cite"><div>&gt; &gt; Al=
so, when these expirations fire (e.g., for Basic Authentication<br></div=
><div>&gt; &gt; credentials), we need a normative requirement to actuall=
y destroy the<br></div><div>&gt; &gt; private credentials; there's a lot=
 going on here so maybe I missed it,<br></div><div>&gt; &gt; but I don't=
 think I saw one.<br></div><div>&gt;&nbsp;<br></div><div>&gt; I think we=
 already have this. The spec says:<br></div><div>&gt;&nbsp;<br></div><di=
v>&gt; *The push subscription is tied to the credentials used to authent=
icate the API request that created it. Should these credentials expire o=
r be revoked, the push subscription MUST be destroyed by the JMAP server=
.*<br></div><div>&gt;&nbsp;<br></div><div>&gt; Or were you referring to =
something else?<br></div><div><br></div><div>I was thinking that you nee=
d to clear out the memory/disk storage that hold<br></div><div>the crede=
ntials (e.g., password), as well as destroying the subscription<br></div=
><div>object.&nbsp; We don't want plaintext credentials floating around =
longer than<br></div><div>needed.<br></div></blockquote><div><br></div><=
div>Which credentials are you referring to here? The push subscription d=
oesn't contain any except I guess for the URL itself; I can note that th=
is and the encryption keys MUST be securely erased from memory/storage i=
mmediately when the subscription is destroyed? If you're referring to th=
e client's credentials, we're explicitly talking about when they've been=
 expired or revoked, so are already useless.<br></div><div><br></div><di=
v>Neil.</div></body></html>
--b6894366fe314111b1f41ce52aa0557f--


From nobody Sun Mar  3 19:02:29 2019
Return-Path: <kaduk@mit.edu>
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 7E2A6130F09; Sun,  3 Mar 2019 19:02:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 KtgnIactMNOf; Sun,  3 Mar 2019 19:02:25 -0800 (PST)
Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-eopbgr680129.outbound.protection.outlook.com [40.107.68.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D765A130ED4; Sun,  3 Mar 2019 19:02:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gL/Lc8Nkwk99EM8GIiGabaa8zbeIcvPckbQCn2LEi3g=; b=RAJa8iF3Evnkn6uZL+yUt0Y9889aw10yFwpEsy1j+xMPiXbyGU2zAxrF5MjChVsOdGZOx8GB3N1iNkIVSAWYonEJJY8emi7MioFVXjCX3d2QinWF6GNrozj1KyDZxNkhpbv289UrhMx6rmFi+iUSHgtK7PkNe0J01ycyRJ0bWgQ=
Received: from BN6PR0101CA0030.prod.exchangelabs.com (2603:10b6:405:2a::43) by BN8PR01MB5602.prod.exchangelabs.com (2603:10b6:408:be::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.15; Mon, 4 Mar 2019 03:02:22 +0000
Received: from DM3NAM03FT020.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::207) by BN6PR0101CA0030.outlook.office365.com (2603:10b6:405:2a::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1665.15 via Frontend Transport; Mon, 4 Mar 2019 03:02:22 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by DM3NAM03FT020.mail.protection.outlook.com (10.152.82.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Mon, 4 Mar 2019 03:02:21 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x2432HS5008620 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 3 Mar 2019 22:02:19 -0500
Date: Sun, 3 Mar 2019 21:02:17 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neil Jenkins <neilj@fastmailteam.com>
CC: iesg <iesg@ietf.org>, <draft-ietf-jmap-core@ietf.org>, Bron Gondwana <brong@fastmailteam.com>, <jmap-chairs@ietf.org>, IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <20190304030216.GL53396@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com> <20190301200956.GR53396@kduck.mit.edu> <65cb60cd-073b-401a-b2bb-8c1024833400@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <65cb60cd-073b-401a-b2bb-8c1024833400@beta.fastmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(396003)(136003)(346002)(376002)(39860400002)(2980300002)(55674003)(189003)(199004)(956004)(486006)(33656002)(11346002)(7696005)(126002)(26005)(86362001)(786003)(6916009)(305945005)(2906002)(229853002)(6306002)(50466002)(106466001)(316002)(8936002)(478600001)(186003)(36906005)(93886005)(55016002)(47776003)(97756001)(246002)(336012)(88552002)(53416004)(16586007)(58126008)(476003)(446003)(76176011)(26826003)(426003)(6246003)(1076003)(46406003)(23726003)(75432002)(5660300002)(356004)(54906003)(14444005)(106002)(104016004)(4326008)(8676002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN8PR01MB5602; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4e5268d1-588d-4e41-eac4-08d6a04dd25c
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BN8PR01MB5602; 
X-MS-TrafficTypeDiagnostic: BN8PR01MB5602:
X-MS-Exchange-PUrlCount: 1
X-Microsoft-Exchange-Diagnostics: 1; BN8PR01MB5602; 20:fayowmEQRqxytVb3GA6YODby1ClgN8rJjWOXxYaE0o8bMSnCR6fmL3SCahlb9pU5ycHG8z+04swemC9Kqarz+mEBPUPhLg5AkzmBY6btwSO28oZsP/+0FCkRriqL8eIWF++JC1ZHYnsaA4hqd2KnbrxMxBUFlmnS54mROpLtidmfJ+r6DxssICS+985cq/Wfht/N7iB3ipeq/J1aD3XLJcFBlgu1eBrKaDcq08iBlR7zFO398uE8JX8ZHG4D5zmEVF9TI8YmRcq7udh3NyFjSAwu8seaHt8PLBqy/tuAmar7kdSDRoTQwcLxVR9elLxK4v0VvZFvTbWIgxmnONzQM6h4D3rMvar5kXdvzVicDJ+JuyTy8tgNo7ZU9SJFrtJnDaYkMr91fDSNuAF8/uMJu9KWQkUhl8Nm8yPX1o+MLrMTj+O4qJgi0WMLj98nLnA1+fiaWnu8yKA8p3mDE/qkUEzOB+Imk4yPpHczcXbXF1sBkP+zwPg3BsM1YrZ3Jdi9IYhmWXm823ZUydL5jbpv50pnbIbO3zjdeHhgQlWbSTLq6U7AoOEh+aQBEy/jl7bN0CO/yzzF3ksZVy8kxb5KTQFEfpE73+YyXoV1AFT6Y6I=
X-Microsoft-Antispam-PRVS: <BN8PR01MB56029E2062498E487C8AECE3A0710@BN8PR01MB5602.prod.exchangelabs.com>
X-Forefront-PRVS: 09669DB681
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN8PR01MB5602; 23:wOXSalHt0e42yn6fuTW7jPPXJBLC7zjTWx0LyjOAZ?= =?us-ascii?Q?+6/C3nyoRryw34GG/3xI8yVBH70c2iyHmDFYYVyqBMPZQsTO4M0n5sdILiUu?= =?us-ascii?Q?YMlExVNLYOpuIUiKWOEhTradGyroVPnoETT8vAIedyNLbuqNIPrRo+cHoBGm?= =?us-ascii?Q?CLWJhRqgYzaVOr5A3FNmTatVRi5jxPLtdlYjl6FgxWX8QSVBAVYiC4E2u31k?= =?us-ascii?Q?B9/12Ys5CWLZjxv79fHSzfb6oVp29ffyBFBSTBMOm67EsPYL/hyN4PCM+Q/s?= =?us-ascii?Q?4/7ut6rQYQVO2CMAXThGCIFKTJjdRA7ZI4VKEXugpJn9VuTCwycsysudi2lC?= =?us-ascii?Q?HYYN+cfhaKZctcQYucD7GpKFJ5FTj/1/r1UDPr3vDDhUeQveJ383F7HE99uP?= =?us-ascii?Q?nPEmV0TFd6+dA54SFmmH8poJxV/xNtDLfDZm/tb0JBE8PA9x1O+Yezmc42xP?= =?us-ascii?Q?OR4MMO+nSbpxEU5pW83JYwy7A6WbFAsuCOJ3HTFVkKIsjGt2q1SidoQXzLP2?= =?us-ascii?Q?lI1CFqsx2Mf2k+zqTNLFdAY6w38FWaABUzDwyWEDRrolqYaUcCDtynJ82osJ?= =?us-ascii?Q?RMf5JjMFlZY57d5S10Af/ak0TlYg8kewHGcGwyfO2Lv6c1XcVJkabimG2v/x?= =?us-ascii?Q?9mfUzYWZhKxpfoIxIcDk1vjrzHR2jP2RaEkQJwLRF/UWKNGvTU+uSiIo588m?= =?us-ascii?Q?VCoP8EM9o4VPVrZPRgZDG2lTMAraa/5SLSeQyIr+bL01jV/NKW9hsYSLLh5q?= =?us-ascii?Q?rbkNE5x7RvfRrk+2/lK2gnHltwmRFd81MaF7yorZyyS9tUdi47appr15h5HZ?= =?us-ascii?Q?wIdQ7/ZPEyn+sv4ye3THtSPgZvrOeOjAN2TnjYk9vxiYlMaLJx0LaG/xa8xu?= =?us-ascii?Q?WjKVCnRH3AsL7EOaNQoNnrCbjRhJ7TKebApvdBzS4yWSjL1aEwfEd8yF2Kzs?= =?us-ascii?Q?6/XAU7vupzGpqUKP/RBahkk5+LsPn6rtpRJYKWDw0OK5lgh0SpkyGvY091tB?= =?us-ascii?Q?ciIOtTIfjsPpkrUbhjtiUV2He31bPQg9KpHCaqYBE+8fQoiD3m677QfCyxMV?= =?us-ascii?Q?fKIWTuG4S5eZ9ALNEF9tl0zIRkPU0Llm+GQ63h7oFZzMCM+0nRE6rMq4Z94i?= =?us-ascii?Q?QKVQxg0VZOcylscpAlg5GVaFqHG7N4YJO3MNuzfjPUplcjNZ+IyrI1sTjI9Q?= =?us-ascii?Q?xO464+vv8UXVhAEf+2FwdGKhTjTtW/Uyg2c2WQOYdWq9vRpsDM33OJvFRlUL?= =?us-ascii?Q?3Kbf6g8UXE+w523Dj6AQQDQImipPxXohNiL9XC6?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: +QWJBcczZrADWLhtpwkRUiwHRm4PEIYchw2cy8IrS5qpA2fPTIZWBhkod+CyEplQD/DsJ4z5esmjnz2otzkbUYzMB8xIz/WdqOTBhjq6mvry3Xk2Dswc+QiPNJNlT+setPot4uTUZd7DWngy5aCNcynWYaBW4TXAPxv+SYmODjc6tBX16xF5pntM8UZYCnmkiKUeQ2zi8KNOS27G5asJAWaiAQbRk0/AIrAsqX5CBuKYM8xcdDPFW3KugPdVk/wfsEItWnpUPHYEUsM0G8/n+YMkJkZDY5Mz2AhN1YZSlLwbOdEWuOiGd9ApTSGjQ3wD37c1tY/NS7vSzWQlN9fxtsfKj63Mop8uDWBbH+EwgNag4RT13h7y3m1f4QeKqwo4gnEdtUlKnMn1J1CS33F2f1RvmLYoWRegTY0Zspjv1tg=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2019 03:02:21.6880 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 4e5268d1-588d-4e41-eac4-08d6a04dd25c
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR01MB5602
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Fg-QBxWJ4UCjTXvruqpNZayPYtc>
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: Mon, 04 Mar 2019 03:02:28 -0000

On Sun, Mar 03, 2019 at 09:52:33PM -0500, Neil Jenkins wrote:
> On Sat, 2 Mar 2019, at 07:10, Benjamin Kaduk wrote
> > So this adversarial scenario just would need to change "create/update" to
> > "create/update/delete" to be covered.
> 
> Agreed, I'll make this change.
> 
> > > It's stating that on the next resync, whether that be due to a future push for the same type, or the client making any /get or /set for that type and seeing the different state string returned, will result in the client coming fully up to date. Losing the push does not mean there is data the client will now no longer see.
> > 
> > Perhaps there is room for a little more clarity on what "it syncs" means
> > (i.e., full sync or just scoped to a specific data type). To be clear,
> > this is a fine design; I just want to be sure that we have clarity of
> > language in describing it.
> 
> OK, how about this:
> 
> *It doesn't matter if some push events are dropped before they reach the client; next time it gets/sets any records of a changed type it will discover the data has changed and still sync all changes.*

That works (modulo the nit of "the next time").

> > > There isn't one, because as far as I can see RFC8291 <https://tools.ietf.org/html/rfc8291> doesn't have one and that's what this is supporting. What do you suggest?
> > 
> > The pragmatic thing to do would be to note in the security considerations
> > that there is no algorithm agility for Web Push Encryption, and if agility
> > becomes needed in the future a spec update would likely be needed to
> > provide it.
> 
> Sure, happy to do that.

I've been informed in the meantime that the idea of the HTTP Encryption
coding folks, as specified in Section 2 of RFC 8188, is that you define a
new content-coding scheme (i.e., other than "aes128gcm") if you need a new
cipher.  So it probably wouldn't be too painful if we did need to slot a
new one of these in.

> > > > Also, when these expirations fire (e.g., for Basic Authentication
> > > > credentials), we need a normative requirement to actually destroy the
> > > > private credentials; there's a lot going on here so maybe I missed it,
> > > > but I don't think I saw one.
> > > 
> > > I think we already have this. The spec says:
> > > 
> > > *The push subscription is tied to the credentials used to authenticate the API request that created it. Should these credentials expire or be revoked, the push subscription MUST be destroyed by the JMAP server.*
> > > 
> > > Or were you referring to something else?
> > 
> > I was thinking that you need to clear out the memory/disk storage that hold
> > the credentials (e.g., password), as well as destroying the subscription
> > object. We don't want plaintext credentials floating around longer than
> > needed.
> 
> Which credentials are you referring to here? The push subscription doesn't contain any except I guess for the URL itself; I can note that this and the encryption keys MUST be securely erased from memory/storage immediately when the subscription is destroyed? If you're referring to the client's credentials, we're explicitly talking about when they've been expired or revoked, so are already useless.

I may have been confused about whether this was JMAP Client/JMAP Server or
JMAP Server/push server interactions.  That is, I was thinking about the
JMAP server clearing out any keys or credentials it had for the second sort
of interaction.  So I guess that translates to "when the subscription
expires, wipe your copy of the client-generated encryption keys", right?

Thanks,

Benjamin


From nobody Sun Mar  3 19:11:48 2019
Return-Path: <neilj@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 9D4A4130F03; Sun,  3 Mar 2019 19:11:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.983
X-Spam-Level: 
X-Spam-Status: No, score=-1.983 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=jQCuDoRq; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=loniO532
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 7L11WyEHQpdh; Sun,  3 Mar 2019 19:11:39 -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 56376130EFC; Sun,  3 Mar 2019 19:11:39 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 7758A2089D; Sun,  3 Mar 2019 22:11:38 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Sun, 03 Mar 2019 22:11:38 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:cc:subject:content-type; s=fm2; bh=3AURE20AnYHKIE/tJF0jaNpr1 mmLmKEfIfTqHzqZZ2Q=; b=jQCuDoRqcmEI6ecZH7WD7cplYJ88Sy8vt+iXIAQnr 4J2spJQU8vH3B71rjHEt7Fv1CaJho6Ffj9u546CF/M23i7ivEci0/BuVCRo/s8f3 /pyLxUv/q9vniqoP4V9KFXc/0xILfp9pHekk1GrmSMjSlkAYLDi+4I4l5IDY4+MB /2C5jL+be8kibkZQBJ4Ucpfc3O2wpL7q1wejSnaCGTxmUc7Zxj0UFG71KdWpga3l 6jAY5gygqChhB1mJw/o9H44V/K6TjPS4MoGWy/5eCu+xfPy72qvJt37OAci69/yC 2fsnKYZUlq6PILUGC1kQEl1fizez7jroCB2UbBotzI6Iw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=3AURE20AnYHKIE/tJ F0jaNpr1mmLmKEfIfTqHzqZZ2Q=; b=loniO532QRTscvTgwYFKc77SnvvqIrqb6 ypGLzOdJxTcIQOx6L1qZXVNTY/LB0Qu657Q+hb8QpFctBmNvjcTYnc4kFxEa3p/M /qJRhTMMSGB2Bi2qZlo+15K1CVhLGJkvwn+MA4DiIes8pqXuXavZ/CqvaXow/BZG zCjza42snkZS2RUXPkzwasS6hZZ+z09b0eO1CT8/P5urA+Q0wQ6LY4OG5div1Y6J j0kRQWILg2HOGuPh59YczcfG29KqBbbIA8FWybgaRrlNHj1HeyfFY1912pPLpZAb z4KUC99VrkiKbJkhuSyTaVi03WHc3WzV8MqYP6gkBsTFRN3ZKdjqA==
X-ME-Sender: <xms:aZd8XDT0PgJ-6eGME-94Doij9HcZ0q4bemUDijW_-ftskhDwjsduFg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrfedtgdehfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgfkjghffffhvffutgesrgdtreerreerjeenucfhrhhomhepfdfpvghilhcu lfgvnhhkihhnshdfuceonhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmqeenuc frrghrrghmpehmrghilhhfrhhomhepnhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgt ohhmnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:aZd8XIv5Top9zDFMASvDlHxlqNC57G9POYBGiTomB9zjNxTTyB5Mtg> <xmx:aZd8XBVitLaOR4ySIjuWQPrpBbnRxL_fRYMS4P0C_BG6J9JXSai7Yw> <xmx:aZd8XMmxJO58W4z1V3c6Nbobv0LkgNWeVZq5ZBBvqZPXBJvvl4QYSg> <xmx:apd8XFR4rE_PP50cS7G4ZCsBssri5nYPQRiL6914awRSspzG7jr1-A>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 598C42032A; Sun,  3 Mar 2019 22:11:37 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-925-g644bf8c-fmstable-20190228v5
X-Me-Personality: 64588216
Message-Id: <448ded6f-463e-49fc-ba15-60463812182f@beta.fastmail.com>
In-Reply-To: <20190304030216.GL53396@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com> <20190301200956.GR53396@kduck.mit.edu> <65cb60cd-073b-401a-b2bb-8c1024833400@beta.fastmail.com> <20190304030216.GL53396@kduck.mit.edu>
Date: Sun, 03 Mar 2019 22:11:07 -0500
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>
Cc: iesg <iesg@ietf.org>, draft-ietf-jmap-core@ietf.org, "Bron Gondwana" <brong@fastmailteam.com>, jmap-chairs@ietf.org, "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=3993d4ef51424be6ae78dbeef212d605
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/ioANSc26i84u75mStI7Pg3aiJrQ>
Subject: Re: [Jmap]  =?utf-8?q?Benjamin_Kaduk=27s_Discuss_on_draft-ietf-jmap-c?= =?utf-8?q?ore-14=3A_=28with_DISCUSS_and_COMMENT=29?=
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: Mon, 04 Mar 2019 03:11:41 -0000

--3993d4ef51424be6ae78dbeef212d605
Content-Type: text/plain

On Mon, 4 Mar 2019, at 14:02, Benjamin Kaduk wrote:
> > > > > Also, when these expirations fire (e.g., for Basic Authentication
> > > > > credentials), we need a normative requirement to actually destroy the
> > > > > private credentials; there's a lot going on here so maybe I missed it,
> > > > > but I don't think I saw one.
> > > > 
> > > > I think we already have this. The spec says:
> > > > 
> > > > *The push subscription is tied to the credentials used to authenticate the API request that created it. Should these credentials expire or be revoked, the push subscription MUST be destroyed by the JMAP server.*
> > > > 
> > > > Or were you referring to something else?
> > > 
> > > I was thinking that you need to clear out the memory/disk storage that hold
> > > the credentials (e.g., password), as well as destroying the subscription
> > > object. We don't want plaintext credentials floating around longer than
> > > needed.
> > 
> > Which credentials are you referring to here? The push subscription doesn't contain any except I guess for the URL itself; I can note that this and the encryption keys MUST be securely erased from memory/storage immediately when the subscription is destroyed? If you're referring to the client's credentials, we're explicitly talking about when they've been expired or revoked, so are already useless.
> 
> I may have been confused about whether this was JMAP Client/JMAP Server or
> JMAP Server/push server interactions. That is, I was thinking about the
> JMAP server clearing out any keys or credentials it had for the second sort
> of interaction.

OK, so yes this translates to clearing out the URL and any client-generated encryption keys. I have added:

*When a push subscription is destroyed, the server MUST securely erase the URL and encryption keys from memory and storage as soon as possible.*

Cheers,
Neil.
--3993d4ef51424be6ae78dbeef212d605
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>On Mon, 4 Mar 2=
019, at 14:02, Benjamin Kaduk wrote:<br></div><blockquote type=3D"cite" =
id=3D"fastmail-quoted"><div>&gt; &gt; &gt; &gt; Also, when these expirat=
ions fire (e.g., for Basic Authentication<br></div><div>&gt; &gt; &gt; &=
gt; credentials), we need a normative requirement to actually destroy th=
e<br></div><div>&gt; &gt; &gt; &gt; private credentials; there's a lot g=
oing on here so maybe I missed it,<br></div><div>&gt; &gt; &gt; &gt; but=
 I don't think I saw one.<br></div><div>&gt; &gt; &gt;&nbsp;<br></div><d=
iv>&gt; &gt; &gt; I think we already have this. The spec says:<br></div>=
<div>&gt; &gt; &gt;&nbsp;<br></div><div>&gt; &gt; &gt; *The push subscri=
ption is tied to the credentials used to authenticate the API request th=
at created it. Should these credentials expire or be revoked, the push s=
ubscription MUST be destroyed by the JMAP server.*<br></div><div>&gt; &g=
t; &gt;&nbsp;<br></div><div>&gt; &gt; &gt; Or were you referring to some=
thing else?<br></div><div>&gt; &gt;&nbsp;<br></div><div>&gt; &gt; I was =
thinking that you need to clear out the memory/disk storage that hold<br=
></div><div>&gt; &gt; the credentials (e.g., password), as well as destr=
oying the subscription<br></div><div>&gt; &gt; object. We don't want pla=
intext credentials floating around longer than<br></div><div>&gt; &gt; n=
eeded.<br></div><div>&gt;&nbsp;<br></div><div>&gt; Which credentials are=
 you referring to here? The push subscription doesn't contain any except=
 I guess for the URL itself; I can note that this and the encryption key=
s MUST be securely erased from memory/storage immediately when the subsc=
ription is destroyed? If you're referring to the client's credentials, w=
e're explicitly talking about when they've been expired or revoked, so a=
re already useless.<br></div><div><br></div><div>I may have been confuse=
d about whether this was JMAP Client/JMAP Server or<br></div><div>JMAP S=
erver/push server interactions.&nbsp; That is, I was thinking about the<=
br></div><div>JMAP server clearing out any keys or credentials it had fo=
r the second sort<br></div><div>of interaction.<br></div></blockquote><d=
iv><br></div><div>OK, so yes this translates to clearing out the URL and=
 any client-generated encryption keys. I have added:<br></div><div><br><=
/div><div><i>When a push subscription is destroyed, the server MUST secu=
rely erase the URL and encryption keys from memory and storage as soon a=
s possible.</i><br></div><div><br></div><div>Cheers,<br></div><div>Neil.=
</div></body></html>
--3993d4ef51424be6ae78dbeef212d605--


From nobody Sun Mar  3 19:42:16 2019
Return-Path: <kaduk@mit.edu>
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 CE77B130F40; Sun,  3 Mar 2019 19:42:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 R6JgeEOkS5-m; Sun,  3 Mar 2019 19:42:11 -0800 (PST)
Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-eopbgr780094.outbound.protection.outlook.com [40.107.78.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A6F43130F46; Sun,  3 Mar 2019 19:42:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xy37N7bsRiAN0WZyoG6cikFRwJ0fJKLP4Sm0mgiqmO4=; b=ir8Nd+3tCm5k5hY2gce0L2wT+b9aIiB+ArvG/JSeHVV2PWju4YzkXZkPTUE47BQdvVk8qkOL1HEpbXE5ySWDodQ++RCG2cwuQkkBEedvfhJNhQ1iv13DDx/LvS/71Y/wWXMNk41d/Keb2KIJ+8D8msWRC9ckrmG9GRVrkfQadbI=
Received: from DM5PR0101CA0026.prod.exchangelabs.com (2603:10b6:4:28::39) by BN8PR01MB5604.prod.exchangelabs.com (2603:10b6:408:be::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.15; Mon, 4 Mar 2019 03:42:09 +0000
Received: from BY2NAM03FT031.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::205) by DM5PR0101CA0026.outlook.office365.com (2603:10b6:4:28::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1665.15 via Frontend Transport; Mon, 4 Mar 2019 03:42:09 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT031.mail.protection.outlook.com (10.152.84.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Mon, 4 Mar 2019 03:42:08 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x243g4BV018494 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 3 Mar 2019 22:42:06 -0500
Date: Sun, 3 Mar 2019 21:42:04 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neil Jenkins <neilj@fastmailteam.com>
CC: iesg <iesg@ietf.org>, <draft-ietf-jmap-core@ietf.org>, Bron Gondwana <brong@fastmailteam.com>, <jmap-chairs@ietf.org>, IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <20190304034204.GO53396@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com> <20190301200956.GR53396@kduck.mit.edu> <65cb60cd-073b-401a-b2bb-8c1024833400@beta.fastmail.com> <20190304030216.GL53396@kduck.mit.edu> <448ded6f-463e-49fc-ba15-60463812182f@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <448ded6f-463e-49fc-ba15-60463812182f@beta.fastmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(136003)(396003)(376002)(346002)(39860400002)(2980300002)(189003)(199004)(47776003)(4326008)(229853002)(2906002)(7696005)(97756001)(50466002)(26826003)(8936002)(93886005)(8676002)(106466001)(246002)(305945005)(75432002)(1076003)(53416004)(55016002)(33656002)(14444005)(5660300002)(106002)(23726003)(356004)(6246003)(16586007)(88552002)(316002)(786003)(36906005)(76176011)(46406003)(186003)(6916009)(26005)(426003)(486006)(476003)(126002)(956004)(86362001)(11346002)(446003)(54906003)(336012)(104016004)(58126008)(478600001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN8PR01MB5604; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e8f817f0-894d-4fec-942b-08d6a053610a
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BN8PR01MB5604; 
X-MS-TrafficTypeDiagnostic: BN8PR01MB5604:
X-Microsoft-Exchange-Diagnostics: 1; BN8PR01MB5604; 20:K0V1PDfPigb8nD5kCqhQKx1xZLzhUy9G3pZ3Za9wmGAMmryRKqOevM2t/UuluNwNImA+mhjkbnlTEB4xeAajU3pyyiRF8yE7itwoBMHEQOn08rz9kLtJjpPij2SbrO2PxOmrZokbKhhzLQZFrHARRJ+7GZqGaS1zUedzauzKEtLS3GfVymx17jHoDpTtwotNZ8v8QvZDK6me1ZwkxY/3gDkA9Z0yUXOaYin3zgV/rdGKB+sHUsRQW6BcR7oz0maCIELV7S9dKlL8vkSy+Z6xLm5jIJBJvxOyszkUtErf5JS6qrT520D47O9GOP7DD+KK2msjFM77GGnLiM0iiTVwV3O7xzJURtLuvmRIZpoSucRjsr3Rozyk9YuK914ccnT4xd04FDp6IoNP6NXT7RATcxldjcUY7vYEGNh2lCFeOFzadduWJaK9HVM51ifG8WFTMf3/4K8k3GMU/aT+nwDLemgbVSgzKP1fd9CjW62dFYRpeiywHhxXZXROo1irnYS7VXLCsyzwackRu9Uyezu+p2DIKm9hIAqrtJvAb+GKLiPEFqBWDaQedTUw7Gz6gaEM+MXPs4ev2/QvYpuFn/2Qm4RsMIHCCbHG4axVRJ8/WxM=
X-Microsoft-Antispam-PRVS: <BN8PR01MB5604818439F79BDFF3F414E8A0710@BN8PR01MB5604.prod.exchangelabs.com>
X-Forefront-PRVS: 09669DB681
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN8PR01MB5604; 23:uLoBnlexXJuthL4tGAhljbaw5VW3WpwVxylbkaxjk?= =?us-ascii?Q?6iWg4nMD45JDOpr7UnFMxTG9RMlT46Zwl0xzmwY5F61cD5XGgCi9YJlpj9TQ?= =?us-ascii?Q?f6698Me2OzAY/zJMB7CDXQYBMmys4EZxz36kfwVPHYZd0lIt5sFiDAa2uIem?= =?us-ascii?Q?2jFmQ3Pe4zwflP9lVBmO/nhum7qaM0xFIKeqIKuLywrdg2y9cMmNwyvIMUI+?= =?us-ascii?Q?SfTOti+JU2tZB6rCJ7mHchi+fQ0qfy3jw7OPXHN4YlqAgo9M66xk73+fd9JI?= =?us-ascii?Q?DT8UuGi+wwkTbkd/NJ5grdNVDsBb/QOsEDsqf3Kjyn1VXABhAHGr5DYtHTyM?= =?us-ascii?Q?Eu4LSHpeH2NnxIh+5qBkRaqKtz62ATaf0qReSmMPGMqfNVcB+tR4l78snMgc?= =?us-ascii?Q?ccpB+eRwXZY7rh2uBzXEhFBJKtOQINyCNXO2BiQXxZg9iOLiyNpwFFq/EVi+?= =?us-ascii?Q?FyjSnS4zWCyejaZBNq13z/SPn8N7tSCZgxzavSMGJ1cXuInYTPAKtrhT+eGE?= =?us-ascii?Q?H6YvXznXrw5Ytkf1k9bZ6PqV1B6p0mJWBHGCgCcVXjWvbnmJi6xvjR+GJEMU?= =?us-ascii?Q?ulkg0ulRXOwIXk3fVhge849n2fJBnvwVQdcbO/8oCruD8JC9+pYIQ6SNsjzW?= =?us-ascii?Q?+QBJg7vFv8pMFp1Pd12jfKXvP7VXBTFLzzAHaugvvYrEt+fPCC2bH3BaqMSg?= =?us-ascii?Q?4qvV9P+heVl/53pa/G+8d0k5FDs9DnINRXt5JzLIVw5cLlib8hLePCbM5tV1?= =?us-ascii?Q?r8rJv65HY51+Nw9SRZg0pZzHIuEGnTFXeIg6+GhUR2iCZvla2SyMNUh21hpn?= =?us-ascii?Q?PZmEuOBWMnuIokcepElihjLY5lGCm6whCvbRioJber5/gY5IYyM7Xd7XUsMm?= =?us-ascii?Q?M91XTBbzccUzZIOwjAs46a/D2S04BKIrNo7SDqHF2KiIP3IpKfyLg+M4BzPG?= =?us-ascii?Q?6pYY5lNHp2hHjrnZbi6vIXiSnqkmk7MFfoO0bVtZwQl+oXDgYPUNPK+WjVEc?= =?us-ascii?Q?eGUzPNlN4d2+JTBgqe9ZPFPGNxv4CYq7QlVqL1naz9lxIxqzIGdpl47ytCQF?= =?us-ascii?Q?dM50LlmTOj2ICuJ8cjufrEBlzD6IXeViYXXrGxwus4MyAoALLPcJtBN0u0uv?= =?us-ascii?Q?jsuq2TdDfYxVthoXVxYuxoDGL8bHbbQVusI6fbjo6g7B6XnbT0WndVX2jUyg?= =?us-ascii?Q?7Lf5dc4CV3du4vZgTfvn1czv23DUWbrt7wOeGa6iD79QTIjfUvu8AiCCw=3D?= =?us-ascii?Q?=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: oemPM4Jyr6jelxu8N1qBa0Wxh8r0/t/kHWgmll0PCaDBmP8ev5Lh0s8sBq4oghkwbH7kQATSCJnkN/XtltBe9/wiaVgulFQKJjdc+oWJobqgvHSDZQMeWsz1cKZr03X37imzYoN86p/511uKWA/sWBPfl6cNAxj5DXb0WxZOqXGDVQRbGC0nMfDGTe24ZJFYek+7zmo33GgYIk2oZDPerAjhXTeDcflkVpo7bek5isut20ug8rMiGlVziQCtwJzhbFEZyHPmehHL0x3ZIxEpSmRMVGnx5YawXIGOWCqg7HIczTigVMTe41XVhZ40/R8btn3WjXN2WRDuQrbO71n3bXG3I6VvRPBHMmK55REDm8eP3XWhbzWBt+CjY3sxAwj23tmCeQ1UPHmGevup9LYQvfgTjI749bH64T9zlQSE80Q=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Mar 2019 03:42:08.6403 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: e8f817f0-894d-4fec-942b-08d6a053610a
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR01MB5604
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Wxcki40FcKfe2xKUdJ1LmST2Bgw>
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: Mon, 04 Mar 2019 03:42:14 -0000

On Sun, Mar 03, 2019 at 10:11:07PM -0500, Neil Jenkins wrote:
> On Mon, 4 Mar 2019, at 14:02, Benjamin Kaduk wrote:
> > > > > > Also, when these expirations fire (e.g., for Basic Authentication
> > > > > > credentials), we need a normative requirement to actually destroy the
> > > > > > private credentials; there's a lot going on here so maybe I missed it,
> > > > > > but I don't think I saw one.
> > > > > 
> > > > > I think we already have this. The spec says:
> > > > > 
> > > > > *The push subscription is tied to the credentials used to authenticate the API request that created it. Should these credentials expire or be revoked, the push subscription MUST be destroyed by the JMAP server.*
> > > > > 
> > > > > Or were you referring to something else?
> > > > 
> > > > I was thinking that you need to clear out the memory/disk storage that hold
> > > > the credentials (e.g., password), as well as destroying the subscription
> > > > object. We don't want plaintext credentials floating around longer than
> > > > needed.
> > > 
> > > Which credentials are you referring to here? The push subscription doesn't contain any except I guess for the URL itself; I can note that this and the encryption keys MUST be securely erased from memory/storage immediately when the subscription is destroyed? If you're referring to the client's credentials, we're explicitly talking about when they've been expired or revoked, so are already useless.
> > 
> > I may have been confused about whether this was JMAP Client/JMAP Server or
> > JMAP Server/push server interactions. That is, I was thinking about the
> > JMAP server clearing out any keys or credentials it had for the second sort
> > of interaction.
> 
> OK, so yes this translates to clearing out the URL and any client-generated encryption keys. I have added:
> 
> *When a push subscription is destroyed, the server MUST securely erase the URL and encryption keys from memory and storage as soon as possible.*

Cool; thanks!


From nobody Mon Mar  4 12:24:04 2019
Return-Path: <alissa@cooperw.in>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 03A3E130E62; Mon,  4 Mar 2019 12:23:57 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Alissa Cooper <alissa@cooperw.in>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-core@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.92.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155173103700.5285.5648940538738913051.idtracker@ietfa.amsl.com>
Date: Mon, 04 Mar 2019 12:23:57 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/164_pVCQSUiyMu3Lkr_Q0jDLEOI>
Subject: [Jmap] Alissa Cooper's No Objection on draft-ietf-jmap-core-15: (with COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 04 Mar 2019 20:23:57 -0000

Alissa Cooper has entered the following ballot position for
draft-ietf-jmap-core-15: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for addressing my DISCUSS questions. Original COMMENT is below.

= Section 1.1 =

Please use the RFC 8174 boilerplate instead of the RFC 2119 boilerplate.

= Section 2=

s/To avoid conflict, the identifiers for these MUST be a URL with a domain
owned by the vendor./To avoid conflict, an identifier for a vendor-specific
extension MUST be a URL with a domain owned by the vendor./

= Section 8 =

Depending on the outcome of the discussion related to the DISCUSS point above,
I think it would be appropriate to describe or even normatively require client
ID construction such that client IDs are opaque and can change over time at the
client's choosing.



From nobody Mon Mar  4 18:40:47 2019
Return-Path: <kaduk@mit.edu>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id A88A0130EBA; Mon,  4 Mar 2019 18:40:37 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Benjamin Kaduk <kaduk@mit.edu>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-mail@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.92.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
Date: Mon, 04 Mar 2019 18:40:37 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/0sOX753lzQjbP_Q8oV4accFkAb0>
Subject: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (with DISCUSS and COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 05 Mar 2019 02:40:45 -0000

Benjamin Kaduk has entered the following ballot position for
draft-ietf-jmap-mail-15: Discuss

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mail/



----------------------------------------------------------------------
DISCUSS:
----------------------------------------------------------------------

Length of review comments aside, this is actually a quite nice document
-- thank you to the authors for making it so clear and well-organized.
The only readability complaint I have is that I don't get a great
picture of how all the bits of the Email object fit together, but it's
complicated enough that maybe a generic schema wouldn't actually be
helpful.

Section 2

I think we need more precise language than "corresponds to" for the
relationship between JMAP MailboxRights and IMAP ACLs, specifically
because JMAP distinguishes mayRename and mayDelete but IMAP just has the
single 'x' ACL.  (More in the COMMENT section, but the non-isomporphic
mapping of 'x' is the only DISCUSS-worthy part.)

Section 4.1.1

We only describe the "\" to "$" translation for the four supported
system keywords, but it seems that it should be more generic (not that
we expect more IMAP system keywords to appear anytime soon)?

Section 4.1.2.1

                                       A server SHOULD replace any octet
   or octet run with the high bit set that violates UTF-8 syntax with
   the unicode replacement character (U+FFFD).  [...]

This seems problematic, given that this is supposed to be the "Raw"
format.  I guess the justification for the replacement is that we use
JSON and JSON requires UTF-8, but if that's the case then shouldn't this
be a MUST and not a SHOULD?  In particular, a client can't rely on the
server providing the SHOULD, so it doesn't seem to provide much value.

Section 4.7

   The server MAY forbid two email objects with the same exact [RFC5322]
   content, or even just with the same [RFC5322] Message-ID, to coexist
   within an account; if the target account already has the email the
   copy will be rejected with a standard "alreadyExists" error.

This has some security considerations that should probably be mentioned
in Section 9.4: when a user only has read privileges to a
subset of the folders in an account, this behavior can be abused as an
oracle to determine whether a given message exists in the inaccessible
portions of that account.  (Similarly for /import.)

Section 4.9

   The following metadata properties on the Email objects will be "null"
   if requested:
   [...]
   o  mailboxIds

This seems in conflict with the Section 4.1.1 text that every Email "MUST
belong to one or more mailboxes at all times (until it is deleted)."
Presumably we want a broader disclaimer in 4.1.1 rather than any changes
here...

There may also be a related condition wherein an EmailSubmission object
refers to an Email after the Email is deleted -- I didn't (yet) see text
to indicate whether the emailId in the EmailSubmission is expected to
still be resolvable, in which case there would potentially not be an
associated Mailbox.

Section 9.3

It's 2019.  Why are we still recommending SASL PLAIN?
We have better options even if we are resigned to passwords, like SCRAM.


----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Section 1.3.1

   o  *maxMailboxesPerEmail*: "UnsignedInt|null" The maximum number of
      mailboxes that can be can assigned to a single email.  [...]

nit: My understanding (shaped solely by experience and inference) is that
"email" is generally used to refer to a message, whereas "email account"
or "email address" would be used to refer to or associate with a thing
that can be a container for folders.

   o  *maxSizeMailboxName*: "UnsignedInt" The maximum length, in (UTF-8)
      octets, allowed for the name of a mailbox.  This MUST be at least
      100, although it is recommended servers allow more.

The Unicode normalization form used by client/server could cause
disagreement about whether a given name is permitted, though for the
type of use this will get it's not clear that we need to be more
rigorous.

Section 1.3.2

   o  *submissionExtensions*: "String[String[]]" A JMAP implementation
      that talks to a Submission [RFC6409] server SHOULD have a
      configuration setting that allows an administrator to expose a new
      submission EHLO capability in this field.  This allows a JMAP

I think I'm confused by the workflow here.  Suppose we have a JMAP
client A talking to a JMAP server B, and B is also an SMTP client that
talks to MTA C.  This capability is supposed to be about letting B
expose a new EHLO capability to A, but only when C supports it?
We probably need some more text here to explain the scenario, even if my
guess is correct.

      server to gain access to a new submission extension without code
      changes.  By default, the JMAP server should hide EHLO
      capabilities that are to do with the transport mechanism and thus
      are only relevant to the JMAP server (for example PIPELINING,
      CHUNKING, or STARTTLS).  Each key in the object is the _ehlo-
      name_, and the value is a list of _ehlo-args_.  Examples of
      Submission extensions to include:

The description here could probably be reworded/reorderd for clarity,
since we don't start talking about what the actual map keys/values are
until the penultimate sentence, at present.

Section 1.5

   In addition, servers MUST support pushing state changes for a type
   called "EmailDelivery".  [...]

Er, is this only servers that are implementing
urn:ietf:params:jmap:mail?  Or is the bit about "Servers MUST support
all properties specified for the new data types defined in this
document"  supposed to imply that I have to implement all three as a
unit, even if not all of them are going to be available for every
account/credentials?

Section 2

   o  *id*: "Id" (immutable; server-set) The id of the mailbox.

Since jmap-core now has all Ids as immutable and server-set, is this
sort of notation considered redundant in jmap-mail?  (Throughout; this
is just the first instance.)

   o  *role*: "String|null" (default: null) Identifies mailboxes that
      [...]
      same role.  Servers providing IMAP access to the same data are
      encouraged to enforce these extra restrictions in IMAP as well.
      Otherwise, it is implementation dependent how to modify the IMAP
      attributes to ensure compliance when exposing the data over JMAP.

If we had a "see also" document relation, this might justify one from IMAP
to here.  It probably doesn't qualify for Updates: though.
Nonetheless, I'd consider having a top-level "Updates Affecting IMAP"
section like RFC 8446 did for TLS 1.2, to collect all the bits that
someone deploying IMAP and JMAP together might need to think about for
their IMAP implementation.

   o  *sortOrder*: "UnsignedInt" (default: 0) Defines the sort order of
      [...]
      equal order SHOULD be sorted in alphabetical order by name.  The
      sorting SHOULD take into account locale-specific character order
      convention.

I think this last SHOULD is probably not a 2119 SHOULD, and therefore
should just be "should".

   o  *unreadThreads*: "UnsignedInt" (server-set) An indication of the
      number of "unread" threads in the mailbox.  For compatibility with
      existing implementations, the way "unread threads" is determined
      is not mandated in this document.  The simplest solution to

Do we really have competing *J*MAP implementations that disagree on
this?  Or is the idea to preserve compatibility with IMAP
clients or other current implementations that attempt to determine
threading relationships (in which case, that should probably be mentioned)?

   o  *myRights*: "MailboxRights" (server-set) The set of rights (ACLs)
      the user has in relation to this mailbox.  These are backwards
      compatible with IMAP ACLs, as defined in [RFC4314].  A
      _MailboxRights_ object has the following properties:

I read this as saying that all of the properties must be present in the
object, such that omitting a property is not a permitted synonym for it
having a value of false.  Is this reading correct?
If so, what should a client do if the server misbehaves?

      *  *mayReadItems*: "Boolean" If true, the user may use this
         [...]
         but not the parent mailbox, this may be "false".  Corresponds
         to IMAP ACLs "lr".

"Corresponds to" is perhaps imprecise, if one is thinking about the IMAP
ACL as being the authoritative source of information (which not all
readers will!).  The point being that just 'l' or just 'r' would not be
enough to get this, and since JMAP is specifying a slightly more
abstract mapping than standard IMAP rights, we should be precise about
the mapping, and arguably in both directions.  (Not just here, but for
all the compound ACLs, of course.  Also for IMAP ACL 'x', which has two
corresponding JMAP permissions.)

      *  *maySetSeen*: "Boolean" The user may add or remove the "$seen"
         keyword to/from an email.  If an email belongs to multiple
         mailboxes, the user may only modify "$seen" if *all* of the
         mailboxes have this permission.  Corresponds to IMAP ACL "s".

nit: in the intro, we talk of "rights the user has in relation to this
mailbox", so it's a bit disjoint to talk of mailboxes having permissons.
(Here and below.)

   o  *isSubscribed*: "Boolean" Has the user indicated they wish to see
      [...]
      choose to ignore this property, either entirely for ease of
      implementation, or just for the primary account (which is normally

nit: We don't really provide a formal definition of "primary account"
either here or in jmap-core.

Section 2.1

   Standard "/get" method.  The _ids_ argument may be "null" to fetch

I thought I had said something on jmap-core but maybe I only thought
about it: my personal preference would be for section references into
jmap-core to provide a foundation for what the "standard method" is,
though I will not insist upon it.

   all at once.

(Also, this behavior is part of the standard method now.)

Section 2.2

I might say explicitly that "a non-null updatedProperties response
argument indicates that the mailbox contents are unchanged from the old
state, with only the counts having changed", since these semantics are
potentially unexpected.

Section 2.3

   Standard "/query" method, but with the following additional argument:

(Generic comment, not scoped to just this section): are we going to need
to draw a distinction between input and ouput arguments for any of the
additions we make to standard methods?

   o  *role*: "String|null" The Mailbox _role_ property must match the
      given value exactly.

So the client is responsible for lower-casing values from the IMAP
Mailbox Name Attributes registry and the server must not do a
case-insensitive comparison?

   The following properties MUST be supported for sorting:

Just to be pedantic, we're talking about the values of the "property"
property within the Comparator object, right?  (This is one of those
annoying things at the intersection of technical specifications and
natural English language.)

Section 4

   Due to the number of properties involved, the set of _Email_
   properties is specified over the following three sub-sections.

It's probably worth a note that the subsections are for purposes of
document organization and are not reflected in the wire protocol
structure -- the properties involved are all top-level peers, across the
three subsections.  (Assuming that's correct, of course.)

Section 4.1

I assume it was a conscious WG decision to not present a full
consolidated schema for Email.  But I want to check, since I think (not
having one) that it would have helped my understanding, and I try to be
open to discovering the errors of my ways...

   o  _textBody_/_htmlBody_: These provide a list of parts that should
      be rendered sequentially as the "body" of the message.  This is a
      list rather than a single part as messages may have headers and/or
      footers appended/prepended as separate parts as they are
      transmitted, and some clients send text and images intended to be
      displayed inline in the body (or even videos and sound clips) as
      multiple parts rather than a single HTML part with referenced
      images.

Some guidance related to interpreting these lists and avoiding the eFail
(efail.de) class of attacks is probably in order -- the HTML parts
should get some different containers around their processing.  This
could potentially go here, or in Section 9.2.

   Because MIME allows for multiple representations of the same data
   (using "multipart/alternative"), there is a textBody property (which
   prefers a plain text representation) and an htmlBody property (which
   prefers an HTML representation) to accommodate the two most common
   client requirements.  The same part may appear in both lists where
   there is no alternative between the two.

(soapbox) It's annoying when I get mime/multipart with HTML in the
text/plain section.  Is this clause going to allow for that same sort of
misclassification?

   Due to the number of properties involved, the set of _Email_
   properties is specified over the following three sub-sections.

nit: are we at four sub-sections now?

Section 4.1.1

      The IMAP "\Recent" keyword is not exposed via JMAP.  The IMAP
      "\Deleted" keyword is also not present: IMAP uses a delete+expunge
      model, which JMAP does not.  Any message with the "\Deleted"
      keyword MUST NOT be visible via JMAP (including as part of any
      mailbox counts).  Users may add arbitrary keywords to an email.

IIRC, Trash gets special handling with respect to deletion in JMAP
commands; does it also get special treatment w.r.t \Deleted translation
from IMAP to JMAP?

Section 4.1.2.2

This escape valve for "Any header not defined in [RFC5322] or [RFC2369]"
(here, et seq) seems like it might benefit from some general guidance
about implementations applying common sense, i.e., allowing servers the
ability to deny requests for a given form for such new headers in order
to prevent nonsense behavior.

Section 4.1.4

   o  *partId*: "String|null" Identifies this part uniquely within the
      Email.  This is scoped to the _emailId_ and has no meaning outside
      of the JMAP Email object representation.  This is "null" if, and
      only if, the part is of type "multipart/*".

The prose isn't the super-best indicator that the asterisk is
intended to have wildcarding behavior.

Section 4.4.1

Just to double-check: the different fencepost behavior for
minSize/maxSize is intentional?

   o  *text*: "String" Looks for the text in emails.  The server SHOULD
      look up text in the _from_, _to_, _cc_, _bcc_, _subject_ header
      fields of the message, and inside any "text/*" or other body parts
      that may be converted to text by the server.  The server MAY
      extend the search to any additional textual property.

side note: as a mail user, I like to be able to use text search to
conclusively determine that a given message/topic is *not* in a given
mailbox.  This weak "SHOULD" language does not provide me that
guarantee, though I can see how it makes sense in the protocol design to
leave the flexibility for implementors, here.

   o  When searching inside a "text/html" body part, any text considered
      markup rather than content SHOULD be ignored, including HTML tags
      and most attributes, anything inside the "<head>" tag, CSS and
      JavaScript.  Attribute content intended for presentation to the
      user such as "alt" and "title" SHOULD be considered in the search.

This would seem to leave no reliable way for a security researcher to
(e.g.) search for snippets of attack javascript in received mails
without downloading all of them.

   o  Text SHOULD be matched in a case-insensitive manner.

Is the server going to have a sense of the user's locale as needed for
fully generic case-insensitive comparison?

   o  Tokens MAY be matched on a whole-word basis using stemming (so for
      example a text search for "bus" would match "buses" but not
      "business").

I think this is supposed to not apply to the "phrase search" two bullets
above, but greater clarity would be appreciated.

   o  *hasKeyword* - This value MUST be considered "true" if the email
      has the keyword given as an additional _keyword_ property on the
      _Comparator_ object, or "false" otherwise.

I strongly suggest an explicit listing of the "additional properties as
reuqired for specific sort operations" of the _Comparator_ type when
used for Emails.

Section 4.6

   When emptying the trash, clients SHOULD NOT destroy emails which are
   also in a mailbox other than trash.  For those emails, they SHOULD
   just remove the Trash mailbox from the email.

This last SHOULD seems to be duplicated in Section 2.

   For successfully created Email objects, the _created_ response
   contains the _id_, _blobId_, _threadId_ and _size_ properties of the
   object.

For partial drafts, the behavior where a threadId always gets assigned
on first touch is perhaps interesting, as subsequent edits might cause
the effective threading to change, which would necessitate a new Id as
well (IIUC).  I'm not sure if there's anything weird there that a client
would need to be prepared for, though.  (Maybe not, given that it always
is going to get back an _id_ from /set, and should be using that.)

Section 4.8

   If the blob referenced is not a valid [RFC5322] message, the server
   MAY modify the message to fix errors (such as removing NUL octets or
   fixing invalid headers).  If it does this, the _blobId_ on the
   response MUST represent the new representation and therefore be
   different to the _blobId_ on the EmailImport object.  Alternatively,
   the server MAY reject the import with an "invalidEmail" SetError.

In general, having more options like this can increase the fragility of
the ecosystem, as a client might be written to assume one behvaior and
then be not as portable to a different server.  I'm not sure that
there's a clear way to mandate a single type of behavior here, but want
to be sure that the topic was discussed.

Section 6

   o  *email*: "String" (immutable) The "From" email address the client
      MUST use when creating a new message from this identity.  The
      value MAY alternatively be of the form "*@example.com", in which
      case the client may use any valid email address ending in
      "@example.com".

I mostly assume this is supposed to be for a generic domain and not
special-casing example.com literally.  Some extra text/formatting would
help with that.

Section 7.3

The associated identityId is not a queriable property?

Section 7.5

   o  *onSuccessUpdateEmail*: "Id[Email]|null" A map of _EmailSubmission
      id_ to an object containing properties to update on the Email
      object referenced by the EmailSubmission if the create/update/
      destroy succeeds.  (For references to EmailSubmission creations,
      this is equivalent to a back-reference so the id will be the
      creation id prefixed with a "#".)

I'm confused by the "Id[Email]" part -- we describe it as a map to "an
object containing properties to update", but that's not exactly what an
Email object is.  Is this more of a PatchObject than an Email per se?
nit: I'd also tweak the wording of the parenthetical a bit (here and
below), to something like "when applying to EmailSubmissions created in
the same "/set" invocation, ..."

Section 8

By a literal reading, fromDate and toDate are in conflict with each
other (when non-null).  That is, the fromDate text does not admit the
possibility of an end to the vacation response period, and vice versa.

Section 9

I'd consider adding another sentence like "Additional considerations
specific to the data types and functionality introduced by this document
are described in the following subsections."

Section 9.3

I know we don't want this to devolve into a generic discussion of the
flaws of email, but perhaps the envelope-from/body-from distinction is
worth repeating, with a note that JMAP has provisions for ACLs on
submission that check both.



From nobody Tue Mar  5 15:51:35 2019
Return-Path: <agenda@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 794171200D8; Tue,  5 Mar 2019 15:51:33 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: "\"IETF Secretariat\"" <agenda@ietf.org>
To: <brong@fastmailteam.com>, <jmap-chairs@ietf.org>
Cc: jmap@ietf.org, aamelnikov@fastmail.fm
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155182989343.27720.5751310910658247736.idtracker@ietfa.amsl.com>
Date: Tue, 05 Mar 2019 15:51:33 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/IteGMfULsUqg2hqZck0mjregLrc>
Subject: [Jmap] jmap - Requested session has been scheduled for IETF 104
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 05 Mar 2019 23:51:33 -0000

Dear Bron Gondwana,

The session(s) that you have requested have been scheduled.
Below is the scheduled session information followed by
the original request. 


    jmap Session 1 (1:00 requested)
    Monday, 25 March 2019, Afternoon Session I 1350-1550
    Room Name: Athens/Barcelona size: 100
    ---------------------------------------------

Special Note: 14:50 - 15:50

iCalendar: https://datatracker.ietf.org/meeting/104/sessions/jmap.ics

Request Information:


---------------------------------------------------------
Working Group Name: JSON Mail Access Protocol
Area Name: Applications and Real-Time Area
Session Requester: Bron Gondwana

Number of Sessions: 1
Length of Session(s):  1 Hour
Number of Attendees: 20
Conflicts to Avoid: 
 First Priority: doh oauth saag iasa2 dmarc artarea uta dispatch extra
 Second Priority: tls httpbis ace lamps core t2trg



People who must be present:
  Barry Leiba
  Alexey Melnikov
  Neil Jenkins
  Bron Gondwana

Resources Requested:
  Experimental Room Setup (U-Shape and classroom, subject to availability)
  Flipcharts: please specify number in Special Requests field

Special Requests:
  Many of the same people attend both JMAP and EXTRA, so if they can be placed consecutively, it would be useful, ideally in the afternoon.  Two sessions consecutively in the same room would be ideal.
---------------------------------------------------------


From nobody Tue Mar  5 19:08:02 2019
Return-Path: <ietf-secretariat-reply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 4A03D129441; Tue,  5 Mar 2019 19:08:01 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Datatracker on behalf of Ben Campbell <ietf-secretariat-reply@ietf.org>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-core@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155184168129.27922.1074005100549702574.idtracker@ietfa.amsl.com>
Date: Tue, 05 Mar 2019 19:08:01 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/dI1pERYAykpyB0qvhwRtHLU4bFo>
Subject: [Jmap] Ben Campbell's No Objection on draft-ietf-jmap-core-15: (with COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 06 Mar 2019 03:08:01 -0000

Ben Campbell has entered the following ballot position for
draft-ietf-jmap-core-15: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for addressing my comments on version 14.



From nobody Tue Mar  5 19:16:19 2019
Return-Path: <ietf-secretariat-reply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A1871271FF; Tue,  5 Mar 2019 19:16:18 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Datatracker on behalf of Ben Campbell <ietf-secretariat-reply@ietf.org>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-mail@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155184217836.27676.12089020172540519954.idtracker@ietfa.amsl.com>
Date: Tue, 05 Mar 2019 19:16:18 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/IaV8HSxk3Rkrs3-Qg-biCji4NLk>
Subject: [Jmap] Ben Campbell's No Objection on draft-ietf-jmap-mail-15: (with COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 06 Mar 2019 03:16:19 -0000

Ben Campbell has entered the following ballot position for
draft-ietf-jmap-mail-15: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mail/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thanks for addressing most of my comments. I have one remaining:

Please expand JMAP in the title and in the abstract.



From nobody Wed Mar  6 14:41:42 2019
Return-Path: <chris.newman@oracle.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 971FB130F70; Wed,  6 Mar 2019 14:41:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level: 
X-Spam-Status: No, score=-4.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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=oracle.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 o-un3uvtd9wI; Wed,  6 Mar 2019 14:41:38 -0800 (PST)
Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E4534130E82; Wed,  6 Mar 2019 14:41:37 -0800 (PST)
Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x26MYTWK057816; Wed, 6 Mar 2019 22:41:34 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=ttaWh99Q35nfdO7PM45zlueM+DzXz+S73AJalo9zMos=; b=lJjxXsbhSg1K9BTjBNOU4r4a8VwPWhyp9dCcx8bfenxsV2Y8MFXwd1IBtAU8Oj4p0g3/ zlPy5+Y6VmQ1vUjGX1piiPAlWpE7E1Fwy5CwgKrXEvqCUTwYpzcW9d/sYeg6JZNik8+v KnVeAOI7oKVZizzls4Op85ssJmBCX4XdVmxrJqC7mu8ThWL+dD1c5UA3h8L1fL3jbzMq gHqFeXsQEWUDDOYPRLD8zdVL3Nl02PzD9J69GdaBC/UBRfyBbTkQBOYOXS3xemY8Q5RR DEYYZ8476N2asl60LnGYvQlpv1WOeEVVP0vOHfFhGuUDZQdKrpqG8JbYjmxgGK6fnV9z KA== 
Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp2130.oracle.com with ESMTP id 2qyh8uesj6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 06 Mar 2019 22:41:34 +0000
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x26MfSZk012531 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 6 Mar 2019 22:41:28 GMT
Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x26MfRuI006955; Wed, 6 Mar 2019 22:41:27 GMT
Received: from [10.159.134.251] (/10.159.134.251) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 06 Mar 2019 14:41:26 -0800
From: "Chris Newman" <chris.newman@oracle.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>
Cc: "The IESG" <iesg@ietf.org>, brong@fastmailteam.com, draft-ietf-jmap-mail@ietf.org, jmap-chairs@ietf.org, jmap@ietf.org
Date: Wed, 06 Mar 2019 14:41:04 -0800
X-Mailer: MailMate (1.12.4r5594)
Message-ID: <AE59AF90-D19E-4B7F-A9AD-2F9A6C9989B8@oracle.com>
In-Reply-To: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9187 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1903060153
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/zVFReZqpKZPwhNo1-34pXqz8OBw>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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: Wed, 06 Mar 2019 22:41:41 -0000

On 4 Mar 2019, at 18:40, Benjamin Kaduk wrote:
> Section 9.3
>
> It's 2019.  Why are we still recommending SASL PLAIN?
> We have better options even if we are resigned to passwords, like =

> SCRAM.

We're recommending _implementation_ (as opposed to use) of SASL PLAIN =

for interoperability. This text should align with the =

mandatory-to-implement mechanism for SMTP submission as documented in =

RFC 4954 section 4. Changing the interoperability requirements and =

recommendations for SMTP Submission authentication mechanisms (and email =

protocols in general) would need to be done in a separate document that =

updates RFC 4954, RFC 3501, and RFC 5034. That's out-of-scope for this =

document and WG.

As a co-editor of both SCRAM and JMAP, I'd love to see more deployment =

of SCRAM, but this is the wrong context to promote it, IMHO.

		- Chris

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Section 1.3.1
>
>    o  *maxMailboxesPerEmail*: "UnsignedInt|null" The maximum number of
>       mailboxes that can be can assigned to a single email.  [...]
>
> nit: My understanding (shaped solely by experience and inference) is =

> that
> "email" is generally used to refer to a message, whereas "email =

> account"
> or "email address" would be used to refer to or associate with a thing
> that can be a container for folders.
>
>    o  *maxSizeMailboxName*: "UnsignedInt" The maximum length, in =

> (UTF-8)
>       octets, allowed for the name of a mailbox.  This MUST be at =

> least
>       100, although it is recommended servers allow more.
>
> The Unicode normalization form used by client/server could cause
> disagreement about whether a given name is permitted, though for the
> type of use this will get it's not clear that we need to be more
> rigorous.
>
> Section 1.3.2
>
>    o  *submissionExtensions*: "String[String[]]" A JMAP implementation
>       that talks to a Submission [RFC6409] server SHOULD have a
>       configuration setting that allows an administrator to expose a =

> new
>       submission EHLO capability in this field.  This allows a JMAP
>
> I think I'm confused by the workflow here.  Suppose we have a JMAP
> client A talking to a JMAP server B, and B is also an SMTP client that
> talks to MTA C.  This capability is supposed to be about letting B
> expose a new EHLO capability to A, but only when C supports it?
> We probably need some more text here to explain the scenario, even if =

> my
> guess is correct.
>
>       server to gain access to a new submission extension without code
>       changes.  By default, the JMAP server should hide EHLO
>       capabilities that are to do with the transport mechanism and =

> thus
>       are only relevant to the JMAP server (for example PIPELINING,
>       CHUNKING, or STARTTLS).  Each key in the object is the _ehlo-
>       name_, and the value is a list of _ehlo-args_.  Examples of
>       Submission extensions to include:
>
> The description here could probably be reworded/reorderd for clarity,
> since we don't start talking about what the actual map keys/values are
> until the penultimate sentence, at present.
>
> Section 1.5
>
>    In addition, servers MUST support pushing state changes for a type
>    called "EmailDelivery".  [...]
>
> Er, is this only servers that are implementing
> urn:ietf:params:jmap:mail?  Or is the bit about "Servers MUST support
> all properties specified for the new data types defined in this
> document"  supposed to imply that I have to implement all three as a
> unit, even if not all of them are going to be available for every
> account/credentials?
>
> Section 2
>
>    o  *id*: "Id" (immutable; server-set) The id of the mailbox.
>
> Since jmap-core now has all Ids as immutable and server-set, is this
> sort of notation considered redundant in jmap-mail?  (Throughout; this
> is just the first instance.)
>
>    o  *role*: "String|null" (default: null) Identifies mailboxes that
>       [...]
>       same role.  Servers providing IMAP access to the same data are
>       encouraged to enforce these extra restrictions in IMAP as well.
>       Otherwise, it is implementation dependent how to modify the IMAP
>       attributes to ensure compliance when exposing the data over =

> JMAP.
>
> If we had a "see also" document relation, this might justify one from =

> IMAP
> to here.  It probably doesn't qualify for Updates: though.
> Nonetheless, I'd consider having a top-level "Updates Affecting IMAP"
> section like RFC 8446 did for TLS 1.2, to collect all the bits that
> someone deploying IMAP and JMAP together might need to think about for
> their IMAP implementation.
>
>    o  *sortOrder*: "UnsignedInt" (default: 0) Defines the sort order =

> of
>       [...]
>       equal order SHOULD be sorted in alphabetical order by name.  The
>       sorting SHOULD take into account locale-specific character order
>       convention.
>
> I think this last SHOULD is probably not a 2119 SHOULD, and therefore
> should just be "should".
>
>    o  *unreadThreads*: "UnsignedInt" (server-set) An indication of the
>       number of "unread" threads in the mailbox.  For compatibility =

> with
>       existing implementations, the way "unread threads" is determined
>       is not mandated in this document.  The simplest solution to
>
> Do we really have competing *J*MAP implementations that disagree on
> this?  Or is the idea to preserve compatibility with IMAP
> clients or other current implementations that attempt to determine
> threading relationships (in which case, that should probably be =

> mentioned)?
>
>    o  *myRights*: "MailboxRights" (server-set) The set of rights =

> (ACLs)
>       the user has in relation to this mailbox.  These are backwards
>       compatible with IMAP ACLs, as defined in [RFC4314].  A
>       _MailboxRights_ object has the following properties:
>
> I read this as saying that all of the properties must be present in =

> the
> object, such that omitting a property is not a permitted synonym for =

> it
> having a value of false.  Is this reading correct?
> If so, what should a client do if the server misbehaves?
>
>       *  *mayReadItems*: "Boolean" If true, the user may use this
>          [...]
>          but not the parent mailbox, this may be "false".  Corresponds
>          to IMAP ACLs "lr".
>
> "Corresponds to" is perhaps imprecise, if one is thinking about the =

> IMAP
> ACL as being the authoritative source of information (which not all
> readers will!).  The point being that just 'l' or just 'r' would not =

> be
> enough to get this, and since JMAP is specifying a slightly more
> abstract mapping than standard IMAP rights, we should be precise about
> the mapping, and arguably in both directions.  (Not just here, but for
> all the compound ACLs, of course.  Also for IMAP ACL 'x', which has =

> two
> corresponding JMAP permissions.)
>
>       *  *maySetSeen*: "Boolean" The user may add or remove the =

> "$seen"
>          keyword to/from an email.  If an email belongs to multiple
>          mailboxes, the user may only modify "$seen" if *all* of the
>          mailboxes have this permission.  Corresponds to IMAP ACL "s".
>
> nit: in the intro, we talk of "rights the user has in relation to this
> mailbox", so it's a bit disjoint to talk of mailboxes having =

> permissons.
> (Here and below.)
>
>    o  *isSubscribed*: "Boolean" Has the user indicated they wish to =

> see
>       [...]
>       choose to ignore this property, either entirely for ease of
>       implementation, or just for the primary account (which is =

> normally
>
> nit: We don't really provide a formal definition of "primary account"
> either here or in jmap-core.
>
> Section 2.1
>
>    Standard "/get" method.  The _ids_ argument may be "null" to fetch
>
> I thought I had said something on jmap-core but maybe I only thought
> about it: my personal preference would be for section references into
> jmap-core to provide a foundation for what the "standard method" is,
> though I will not insist upon it.
>
>    all at once.
>
> (Also, this behavior is part of the standard method now.)
>
> Section 2.2
>
> I might say explicitly that "a non-null updatedProperties response
> argument indicates that the mailbox contents are unchanged from the =

> old
> state, with only the counts having changed", since these semantics are
> potentially unexpected.
>
> Section 2.3
>
>    Standard "/query" method, but with the following additional =

> argument:
>
> (Generic comment, not scoped to just this section): are we going to =

> need
> to draw a distinction between input and ouput arguments for any of the
> additions we make to standard methods?
>
>    o  *role*: "String|null" The Mailbox _role_ property must match the
>       given value exactly.
>
> So the client is responsible for lower-casing values from the IMAP
> Mailbox Name Attributes registry and the server must not do a
> case-insensitive comparison?
>
>    The following properties MUST be supported for sorting:
>
> Just to be pedantic, we're talking about the values of the "property"
> property within the Comparator object, right?  (This is one of those
> annoying things at the intersection of technical specifications and
> natural English language.)
>
> Section 4
>
>    Due to the number of properties involved, the set of _Email_
>    properties is specified over the following three sub-sections.
>
> It's probably worth a note that the subsections are for purposes of
> document organization and are not reflected in the wire protocol
> structure -- the properties involved are all top-level peers, across =

> the
> three subsections.  (Assuming that's correct, of course.)
>
> Section 4.1
>
> I assume it was a conscious WG decision to not present a full
> consolidated schema for Email.  But I want to check, since I think =

> (not
> having one) that it would have helped my understanding, and I try to =

> be
> open to discovering the errors of my ways...
>
>    o  _textBody_/_htmlBody_: These provide a list of parts that should
>       be rendered sequentially as the "body" of the message.  This is =

> a
>       list rather than a single part as messages may have headers =

> and/or
>       footers appended/prepended as separate parts as they are
>       transmitted, and some clients send text and images intended to =

> be
>       displayed inline in the body (or even videos and sound clips) as
>       multiple parts rather than a single HTML part with referenced
>       images.
>
> Some guidance related to interpreting these lists and avoiding the =

> eFail
> (efail.de) class of attacks is probably in order -- the HTML parts
> should get some different containers around their processing.  This
> could potentially go here, or in Section 9.2.
>
>    Because MIME allows for multiple representations of the same data
>    (using "multipart/alternative"), there is a textBody property =

> (which
>    prefers a plain text representation) and an htmlBody property =

> (which
>    prefers an HTML representation) to accommodate the two most common
>    client requirements.  The same part may appear in both lists where
>    there is no alternative between the two.
>
> (soapbox) It's annoying when I get mime/multipart with HTML in the
> text/plain section.  Is this clause going to allow for that same sort =

> of
> misclassification?
>
>    Due to the number of properties involved, the set of _Email_
>    properties is specified over the following three sub-sections.
>
> nit: are we at four sub-sections now?
>
> Section 4.1.1
>
>       The IMAP "\Recent" keyword is not exposed via JMAP.  The IMAP
>       "\Deleted" keyword is also not present: IMAP uses a =

> delete+expunge
>       model, which JMAP does not.  Any message with the "\Deleted"
>       keyword MUST NOT be visible via JMAP (including as part of any
>       mailbox counts).  Users may add arbitrary keywords to an email.
>
> IIRC, Trash gets special handling with respect to deletion in JMAP
> commands; does it also get special treatment w.r.t \Deleted =

> translation
> from IMAP to JMAP?
>
> Section 4.1.2.2
>
> This escape valve for "Any header not defined in [RFC5322] or =

> [RFC2369]"
> (here, et seq) seems like it might benefit from some general guidance
> about implementations applying common sense, i.e., allowing servers =

> the
> ability to deny requests for a given form for such new headers in =

> order
> to prevent nonsense behavior.
>
> Section 4.1.4
>
>    o  *partId*: "String|null" Identifies this part uniquely within the
>       Email.  This is scoped to the _emailId_ and has no meaning =

> outside
>       of the JMAP Email object representation.  This is "null" if, and
>       only if, the part is of type "multipart/*".
>
> The prose isn't the super-best indicator that the asterisk is
> intended to have wildcarding behavior.
>
> Section 4.4.1
>
> Just to double-check: the different fencepost behavior for
> minSize/maxSize is intentional?
>
>    o  *text*: "String" Looks for the text in emails.  The server =

> SHOULD
>       look up text in the _from_, _to_, _cc_, _bcc_, _subject_ header
>       fields of the message, and inside any "text/*" or other body =

> parts
>       that may be converted to text by the server.  The server MAY
>       extend the search to any additional textual property.
>
> side note: as a mail user, I like to be able to use text search to
> conclusively determine that a given message/topic is *not* in a given
> mailbox.  This weak "SHOULD" language does not provide me that
> guarantee, though I can see how it makes sense in the protocol design =

> to
> leave the flexibility for implementors, here.
>
>    o  When searching inside a "text/html" body part, any text =

> considered
>       markup rather than content SHOULD be ignored, including HTML =

> tags
>       and most attributes, anything inside the "<head>" tag, CSS and
>       JavaScript.  Attribute content intended for presentation to the
>       user such as "alt" and "title" SHOULD be considered in the =

> search.
>
> This would seem to leave no reliable way for a security researcher to
> (e.g.) search for snippets of attack javascript in received mails
> without downloading all of them.
>
>    o  Text SHOULD be matched in a case-insensitive manner.
>
> Is the server going to have a sense of the user's locale as needed for
> fully generic case-insensitive comparison?
>
>    o  Tokens MAY be matched on a whole-word basis using stemming (so =

> for
>       example a text search for "bus" would match "buses" but not
>       "business").
>
> I think this is supposed to not apply to the "phrase search" two =

> bullets
> above, but greater clarity would be appreciated.
>
>    o  *hasKeyword* - This value MUST be considered "true" if the email
>       has the keyword given as an additional _keyword_ property on the
>       _Comparator_ object, or "false" otherwise.
>
> I strongly suggest an explicit listing of the "additional properties =

> as
> reuqired for specific sort operations" of the _Comparator_ type when
> used for Emails.
>
> Section 4.6
>
>    When emptying the trash, clients SHOULD NOT destroy emails which =

> are
>    also in a mailbox other than trash.  For those emails, they SHOULD
>    just remove the Trash mailbox from the email.
>
> This last SHOULD seems to be duplicated in Section 2.
>
>    For successfully created Email objects, the _created_ response
>    contains the _id_, _blobId_, _threadId_ and _size_ properties of =

> the
>    object.
>
> For partial drafts, the behavior where a threadId always gets assigned
> on first touch is perhaps interesting, as subsequent edits might cause
> the effective threading to change, which would necessitate a new Id as
> well (IIUC).  I'm not sure if there's anything weird there that a =

> client
> would need to be prepared for, though.  (Maybe not, given that it =

> always
> is going to get back an _id_ from /set, and should be using that.)
>
> Section 4.8
>
>    If the blob referenced is not a valid [RFC5322] message, the server
>    MAY modify the message to fix errors (such as removing NUL octets =

> or
>    fixing invalid headers).  If it does this, the _blobId_ on the
>    response MUST represent the new representation and therefore be
>    different to the _blobId_ on the EmailImport object.  =

> Alternatively,
>    the server MAY reject the import with an "invalidEmail" SetError.
>
> In general, having more options like this can increase the fragility =

> of
> the ecosystem, as a client might be written to assume one behvaior and
> then be not as portable to a different server.  I'm not sure that
> there's a clear way to mandate a single type of behavior here, but =

> want
> to be sure that the topic was discussed.
>
> Section 6
>
>    o  *email*: "String" (immutable) The "From" email address the =

> client
>       MUST use when creating a new message from this identity.  The
>       value MAY alternatively be of the form "*@example.com", in which
>       case the client may use any valid email address ending in
>       "@example.com".
>
> I mostly assume this is supposed to be for a generic domain and not
> special-casing example.com literally.  Some extra text/formatting =

> would
> help with that.
>
> Section 7.3
>
> The associated identityId is not a queriable property?
>
> Section 7.5
>
>    o  *onSuccessUpdateEmail*: "Id[Email]|null" A map of =

> _EmailSubmission
>       id_ to an object containing properties to update on the Email
>       object referenced by the EmailSubmission if the create/update/
>       destroy succeeds.  (For references to EmailSubmission creations,
>       this is equivalent to a back-reference so the id will be the
>       creation id prefixed with a "#".)
>
> I'm confused by the "Id[Email]" part -- we describe it as a map to "an
> object containing properties to update", but that's not exactly what =

> an
> Email object is.  Is this more of a PatchObject than an Email per se?
> nit: I'd also tweak the wording of the parenthetical a bit (here and
> below), to something like "when applying to EmailSubmissions created =

> in
> the same "/set" invocation, ..."
>
> Section 8
>
> By a literal reading, fromDate and toDate are in conflict with each
> other (when non-null).  That is, the fromDate text does not admit the
> possibility of an end to the vacation response period, and vice versa.
>
> Section 9
>
> I'd consider adding another sentence like "Additional considerations
> specific to the data types and functionality introduced by this =

> document
> are described in the following subsections."
>
> Section 9.3
>
> I know we don't want this to devolve into a generic discussion of the
> flaws of email, but perhaps the envelope-from/body-from distinction is
> worth repeating, with a note that JMAP has provisions for ACLs on
> submission that check both.
>
>
> _______________________________________________
> Jmap mailing list
> Jmap@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__www.ietf.org_mai=
lman_listinfo_jmap&d=3DDwICAg&c=3DRoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI=
_JnE&r=3DK_BObr5Kfkr3rxt1oBPF9KFiEU3xl9LcD2OOJG3TXfI&m=3DKd4khyWKu1OdyQCD=
kytHP56BfjUiYrtqcTi99Nnq9Og&s=3D0q4Ry-Xka_xREe6pZmV1qritx4bxQmiUMONF99Vle=
jo&e=3D


From nobody Wed Mar  6 14:46:33 2019
Return-Path: <chris.newman@oracle.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 B3E43131064; Wed,  6 Mar 2019 14:46:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level: 
X-Spam-Status: No, score=-4.301 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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=oracle.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 3Pvzi3cRmwRt; Wed,  6 Mar 2019 14:46:20 -0800 (PST)
Received: from aserp2130.oracle.com (aserp2130.oracle.com [141.146.126.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0BAB130E82; Wed,  6 Mar 2019 14:46:20 -0800 (PST)
Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x26MiGfB061912; Wed, 6 Mar 2019 22:46:16 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=corp-2018-07-02; bh=iGqGYiDnq//Wy3DhUg95pivk7zR/3SBthvkdbe5zVBY=; b=Lu9ASAHH5g/O4UaW6keac1HzQ2Fbaok8jxojyRJZdMvgjo2AULysjQQJOhorSto1dZ9d 8hnPKFeg36mcD+vEdBQLNoPdk1TfxRT7E+S5Uqa6ijyjn63iBJst3i6wdRtvJ6An4yhk xpnnwDTCJUlO4wQUe1uqCJDt1wfLn0/Wudrq/eoOlu1VzPnQN/QAvkeFEudb+6AXyMdG YQnAfsv79IX8wO/hW8ecHSYkB7p7gxw3R5WgkJCNffVFKmmD/elb5OLP9LgVel9ABLJd nz8CxnEbWARPwzBE+DipLlRQMTtyaqBTuqbqsxVUAqIEBnGN4rLFMD5npLmTtXk5AmAw 4A== 
Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp2130.oracle.com with ESMTP id 2qyfbef1ga-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 06 Mar 2019 22:46:15 +0000
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x26Mk94f032020 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 6 Mar 2019 22:46:10 GMT
Received: from abhmp0004.oracle.com (abhmp0004.oracle.com [141.146.116.10]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x26Mk7I2022198; Wed, 6 Mar 2019 22:46:07 GMT
Received: from [10.159.134.251] (/10.159.134.251) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 06 Mar 2019 14:46:07 -0800
From: "Chris Newman" <chris.newman@oracle.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>
Cc: "The IESG" <iesg@ietf.org>, brong@fastmailteam.com, draft-ietf-jmap-mail@ietf.org, jmap-chairs@ietf.org, jmap@ietf.org
Date: Wed, 06 Mar 2019 14:46:04 -0800
X-Mailer: MailMate (1.12.4r5594)
Message-ID: <E0ACD102-4856-44E1-92D3-CD3801836148@oracle.com>
In-Reply-To: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9187 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1903060154
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/78afLYg0tQSIQ3ZkcBvqs7Co5gI>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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: Wed, 06 Mar 2019 22:46:24 -0000

On 4 Mar 2019, at 18:40, Benjamin Kaduk wrote:
> Section 4.1.2.1
>
>                                        A server SHOULD replace any =

> octet
>    or octet run with the high bit set that violates UTF-8 syntax with
>    the unicode replacement character (U+FFFD).  [...]
>
> This seems problematic, given that this is supposed to be the "Raw"
> format.  I guess the justification for the replacement is that we use
> JSON and JSON requires UTF-8, but if that's the case then shouldn't =

> this
> be a MUST and not a SHOULD?  In particular, a client can't rely on the
> server providing the SHOULD, so it doesn't seem to provide much value.

There's a MUST in the core document section 1.5 that requires the server =

to always send valid JSON/UTF-8. Use of the Unicode replacement =

character (URC) is one way to meet that requirement, but there are other =

ways to turn invalid data into JSON-compliant data and there may be good =

reasons to use mechanisms other than URC so I think SHOULD is =

appropriate here.

		- Chris

> Section 4.7
>
>    The server MAY forbid two email objects with the same exact =

> [RFC5322]
>    content, or even just with the same [RFC5322] Message-ID, to =

> coexist
>    within an account; if the target account already has the email the
>    copy will be rejected with a standard "alreadyExists" error.
>
> This has some security considerations that should probably be =

> mentioned
> in Section 9.4: when a user only has read privileges to a
> subset of the folders in an account, this behavior can be abused as an
> oracle to determine whether a given message exists in the inaccessible
> portions of that account.  (Similarly for /import.)
>
> Section 4.9
>
>    The following metadata properties on the Email objects will be =

> "null"
>    if requested:
>    [...]
>    o  mailboxIds
>
> This seems in conflict with the Section 4.1.1 text that every Email =

> "MUST
> belong to one or more mailboxes at all times (until it is deleted)."
> Presumably we want a broader disclaimer in 4.1.1 rather than any =

> changes
> here...
>
> There may also be a related condition wherein an EmailSubmission =

> object
> refers to an Email after the Email is deleted -- I didn't (yet) see =

> text
> to indicate whether the emailId in the EmailSubmission is expected to
> still be resolvable, in which case there would potentially not be an
> associated Mailbox.
>
> Section 9.3
>
> It's 2019.  Why are we still recommending SASL PLAIN?
> We have better options even if we are resigned to passwords, like =

> SCRAM.
>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Section 1.3.1
>
>    o  *maxMailboxesPerEmail*: "UnsignedInt|null" The maximum number of
>       mailboxes that can be can assigned to a single email.  [...]
>
> nit: My understanding (shaped solely by experience and inference) is =

> that
> "email" is generally used to refer to a message, whereas "email =

> account"
> or "email address" would be used to refer to or associate with a thing
> that can be a container for folders.
>
>    o  *maxSizeMailboxName*: "UnsignedInt" The maximum length, in =

> (UTF-8)
>       octets, allowed for the name of a mailbox.  This MUST be at =

> least
>       100, although it is recommended servers allow more.
>
> The Unicode normalization form used by client/server could cause
> disagreement about whether a given name is permitted, though for the
> type of use this will get it's not clear that we need to be more
> rigorous.
>
> Section 1.3.2
>
>    o  *submissionExtensions*: "String[String[]]" A JMAP implementation
>       that talks to a Submission [RFC6409] server SHOULD have a
>       configuration setting that allows an administrator to expose a =

> new
>       submission EHLO capability in this field.  This allows a JMAP
>
> I think I'm confused by the workflow here.  Suppose we have a JMAP
> client A talking to a JMAP server B, and B is also an SMTP client that
> talks to MTA C.  This capability is supposed to be about letting B
> expose a new EHLO capability to A, but only when C supports it?
> We probably need some more text here to explain the scenario, even if =

> my
> guess is correct.
>
>       server to gain access to a new submission extension without code
>       changes.  By default, the JMAP server should hide EHLO
>       capabilities that are to do with the transport mechanism and =

> thus
>       are only relevant to the JMAP server (for example PIPELINING,
>       CHUNKING, or STARTTLS).  Each key in the object is the _ehlo-
>       name_, and the value is a list of _ehlo-args_.  Examples of
>       Submission extensions to include:
>
> The description here could probably be reworded/reorderd for clarity,
> since we don't start talking about what the actual map keys/values are
> until the penultimate sentence, at present.
>
> Section 1.5
>
>    In addition, servers MUST support pushing state changes for a type
>    called "EmailDelivery".  [...]
>
> Er, is this only servers that are implementing
> urn:ietf:params:jmap:mail?  Or is the bit about "Servers MUST support
> all properties specified for the new data types defined in this
> document"  supposed to imply that I have to implement all three as a
> unit, even if not all of them are going to be available for every
> account/credentials?
>
> Section 2
>
>    o  *id*: "Id" (immutable; server-set) The id of the mailbox.
>
> Since jmap-core now has all Ids as immutable and server-set, is this
> sort of notation considered redundant in jmap-mail?  (Throughout; this
> is just the first instance.)
>
>    o  *role*: "String|null" (default: null) Identifies mailboxes that
>       [...]
>       same role.  Servers providing IMAP access to the same data are
>       encouraged to enforce these extra restrictions in IMAP as well.
>       Otherwise, it is implementation dependent how to modify the IMAP
>       attributes to ensure compliance when exposing the data over =

> JMAP.
>
> If we had a "see also" document relation, this might justify one from =

> IMAP
> to here.  It probably doesn't qualify for Updates: though.
> Nonetheless, I'd consider having a top-level "Updates Affecting IMAP"
> section like RFC 8446 did for TLS 1.2, to collect all the bits that
> someone deploying IMAP and JMAP together might need to think about for
> their IMAP implementation.
>
>    o  *sortOrder*: "UnsignedInt" (default: 0) Defines the sort order =

> of
>       [...]
>       equal order SHOULD be sorted in alphabetical order by name.  The
>       sorting SHOULD take into account locale-specific character order
>       convention.
>
> I think this last SHOULD is probably not a 2119 SHOULD, and therefore
> should just be "should".
>
>    o  *unreadThreads*: "UnsignedInt" (server-set) An indication of the
>       number of "unread" threads in the mailbox.  For compatibility =

> with
>       existing implementations, the way "unread threads" is determined
>       is not mandated in this document.  The simplest solution to
>
> Do we really have competing *J*MAP implementations that disagree on
> this?  Or is the idea to preserve compatibility with IMAP
> clients or other current implementations that attempt to determine
> threading relationships (in which case, that should probably be =

> mentioned)?
>
>    o  *myRights*: "MailboxRights" (server-set) The set of rights =

> (ACLs)
>       the user has in relation to this mailbox.  These are backwards
>       compatible with IMAP ACLs, as defined in [RFC4314].  A
>       _MailboxRights_ object has the following properties:
>
> I read this as saying that all of the properties must be present in =

> the
> object, such that omitting a property is not a permitted synonym for =

> it
> having a value of false.  Is this reading correct?
> If so, what should a client do if the server misbehaves?
>
>       *  *mayReadItems*: "Boolean" If true, the user may use this
>          [...]
>          but not the parent mailbox, this may be "false".  Corresponds
>          to IMAP ACLs "lr".
>
> "Corresponds to" is perhaps imprecise, if one is thinking about the =

> IMAP
> ACL as being the authoritative source of information (which not all
> readers will!).  The point being that just 'l' or just 'r' would not =

> be
> enough to get this, and since JMAP is specifying a slightly more
> abstract mapping than standard IMAP rights, we should be precise about
> the mapping, and arguably in both directions.  (Not just here, but for
> all the compound ACLs, of course.  Also for IMAP ACL 'x', which has =

> two
> corresponding JMAP permissions.)
>
>       *  *maySetSeen*: "Boolean" The user may add or remove the =

> "$seen"
>          keyword to/from an email.  If an email belongs to multiple
>          mailboxes, the user may only modify "$seen" if *all* of the
>          mailboxes have this permission.  Corresponds to IMAP ACL "s".
>
> nit: in the intro, we talk of "rights the user has in relation to this
> mailbox", so it's a bit disjoint to talk of mailboxes having =

> permissons.
> (Here and below.)
>
>    o  *isSubscribed*: "Boolean" Has the user indicated they wish to =

> see
>       [...]
>       choose to ignore this property, either entirely for ease of
>       implementation, or just for the primary account (which is =

> normally
>
> nit: We don't really provide a formal definition of "primary account"
> either here or in jmap-core.
>
> Section 2.1
>
>    Standard "/get" method.  The _ids_ argument may be "null" to fetch
>
> I thought I had said something on jmap-core but maybe I only thought
> about it: my personal preference would be for section references into
> jmap-core to provide a foundation for what the "standard method" is,
> though I will not insist upon it.
>
>    all at once.
>
> (Also, this behavior is part of the standard method now.)
>
> Section 2.2
>
> I might say explicitly that "a non-null updatedProperties response
> argument indicates that the mailbox contents are unchanged from the =

> old
> state, with only the counts having changed", since these semantics are
> potentially unexpected.
>
> Section 2.3
>
>    Standard "/query" method, but with the following additional =

> argument:
>
> (Generic comment, not scoped to just this section): are we going to =

> need
> to draw a distinction between input and ouput arguments for any of the
> additions we make to standard methods?
>
>    o  *role*: "String|null" The Mailbox _role_ property must match the
>       given value exactly.
>
> So the client is responsible for lower-casing values from the IMAP
> Mailbox Name Attributes registry and the server must not do a
> case-insensitive comparison?
>
>    The following properties MUST be supported for sorting:
>
> Just to be pedantic, we're talking about the values of the "property"
> property within the Comparator object, right?  (This is one of those
> annoying things at the intersection of technical specifications and
> natural English language.)
>
> Section 4
>
>    Due to the number of properties involved, the set of _Email_
>    properties is specified over the following three sub-sections.
>
> It's probably worth a note that the subsections are for purposes of
> document organization and are not reflected in the wire protocol
> structure -- the properties involved are all top-level peers, across =

> the
> three subsections.  (Assuming that's correct, of course.)
>
> Section 4.1
>
> I assume it was a conscious WG decision to not present a full
> consolidated schema for Email.  But I want to check, since I think =

> (not
> having one) that it would have helped my understanding, and I try to =

> be
> open to discovering the errors of my ways...
>
>    o  _textBody_/_htmlBody_: These provide a list of parts that should
>       be rendered sequentially as the "body" of the message.  This is =

> a
>       list rather than a single part as messages may have headers =

> and/or
>       footers appended/prepended as separate parts as they are
>       transmitted, and some clients send text and images intended to =

> be
>       displayed inline in the body (or even videos and sound clips) as
>       multiple parts rather than a single HTML part with referenced
>       images.
>
> Some guidance related to interpreting these lists and avoiding the =

> eFail
> (efail.de) class of attacks is probably in order -- the HTML parts
> should get some different containers around their processing.  This
> could potentially go here, or in Section 9.2.
>
>    Because MIME allows for multiple representations of the same data
>    (using "multipart/alternative"), there is a textBody property =

> (which
>    prefers a plain text representation) and an htmlBody property =

> (which
>    prefers an HTML representation) to accommodate the two most common
>    client requirements.  The same part may appear in both lists where
>    there is no alternative between the two.
>
> (soapbox) It's annoying when I get mime/multipart with HTML in the
> text/plain section.  Is this clause going to allow for that same sort =

> of
> misclassification?
>
>    Due to the number of properties involved, the set of _Email_
>    properties is specified over the following three sub-sections.
>
> nit: are we at four sub-sections now?
>
> Section 4.1.1
>
>       The IMAP "\Recent" keyword is not exposed via JMAP.  The IMAP
>       "\Deleted" keyword is also not present: IMAP uses a =

> delete+expunge
>       model, which JMAP does not.  Any message with the "\Deleted"
>       keyword MUST NOT be visible via JMAP (including as part of any
>       mailbox counts).  Users may add arbitrary keywords to an email.
>
> IIRC, Trash gets special handling with respect to deletion in JMAP
> commands; does it also get special treatment w.r.t \Deleted =

> translation
> from IMAP to JMAP?
>
> Section 4.1.2.2
>
> This escape valve for "Any header not defined in [RFC5322] or =

> [RFC2369]"
> (here, et seq) seems like it might benefit from some general guidance
> about implementations applying common sense, i.e., allowing servers =

> the
> ability to deny requests for a given form for such new headers in =

> order
> to prevent nonsense behavior.
>
> Section 4.1.4
>
>    o  *partId*: "String|null" Identifies this part uniquely within the
>       Email.  This is scoped to the _emailId_ and has no meaning =

> outside
>       of the JMAP Email object representation.  This is "null" if, and
>       only if, the part is of type "multipart/*".
>
> The prose isn't the super-best indicator that the asterisk is
> intended to have wildcarding behavior.
>
> Section 4.4.1
>
> Just to double-check: the different fencepost behavior for
> minSize/maxSize is intentional?
>
>    o  *text*: "String" Looks for the text in emails.  The server =

> SHOULD
>       look up text in the _from_, _to_, _cc_, _bcc_, _subject_ header
>       fields of the message, and inside any "text/*" or other body =

> parts
>       that may be converted to text by the server.  The server MAY
>       extend the search to any additional textual property.
>
> side note: as a mail user, I like to be able to use text search to
> conclusively determine that a given message/topic is *not* in a given
> mailbox.  This weak "SHOULD" language does not provide me that
> guarantee, though I can see how it makes sense in the protocol design =

> to
> leave the flexibility for implementors, here.
>
>    o  When searching inside a "text/html" body part, any text =

> considered
>       markup rather than content SHOULD be ignored, including HTML =

> tags
>       and most attributes, anything inside the "<head>" tag, CSS and
>       JavaScript.  Attribute content intended for presentation to the
>       user such as "alt" and "title" SHOULD be considered in the =

> search.
>
> This would seem to leave no reliable way for a security researcher to
> (e.g.) search for snippets of attack javascript in received mails
> without downloading all of them.
>
>    o  Text SHOULD be matched in a case-insensitive manner.
>
> Is the server going to have a sense of the user's locale as needed for
> fully generic case-insensitive comparison?
>
>    o  Tokens MAY be matched on a whole-word basis using stemming (so =

> for
>       example a text search for "bus" would match "buses" but not
>       "business").
>
> I think this is supposed to not apply to the "phrase search" two =

> bullets
> above, but greater clarity would be appreciated.
>
>    o  *hasKeyword* - This value MUST be considered "true" if the email
>       has the keyword given as an additional _keyword_ property on the
>       _Comparator_ object, or "false" otherwise.
>
> I strongly suggest an explicit listing of the "additional properties =

> as
> reuqired for specific sort operations" of the _Comparator_ type when
> used for Emails.
>
> Section 4.6
>
>    When emptying the trash, clients SHOULD NOT destroy emails which =

> are
>    also in a mailbox other than trash.  For those emails, they SHOULD
>    just remove the Trash mailbox from the email.
>
> This last SHOULD seems to be duplicated in Section 2.
>
>    For successfully created Email objects, the _created_ response
>    contains the _id_, _blobId_, _threadId_ and _size_ properties of =

> the
>    object.
>
> For partial drafts, the behavior where a threadId always gets assigned
> on first touch is perhaps interesting, as subsequent edits might cause
> the effective threading to change, which would necessitate a new Id as
> well (IIUC).  I'm not sure if there's anything weird there that a =

> client
> would need to be prepared for, though.  (Maybe not, given that it =

> always
> is going to get back an _id_ from /set, and should be using that.)
>
> Section 4.8
>
>    If the blob referenced is not a valid [RFC5322] message, the server
>    MAY modify the message to fix errors (such as removing NUL octets =

> or
>    fixing invalid headers).  If it does this, the _blobId_ on the
>    response MUST represent the new representation and therefore be
>    different to the _blobId_ on the EmailImport object.  =

> Alternatively,
>    the server MAY reject the import with an "invalidEmail" SetError.
>
> In general, having more options like this can increase the fragility =

> of
> the ecosystem, as a client might be written to assume one behvaior and
> then be not as portable to a different server.  I'm not sure that
> there's a clear way to mandate a single type of behavior here, but =

> want
> to be sure that the topic was discussed.
>
> Section 6
>
>    o  *email*: "String" (immutable) The "From" email address the =

> client
>       MUST use when creating a new message from this identity.  The
>       value MAY alternatively be of the form "*@example.com", in which
>       case the client may use any valid email address ending in
>       "@example.com".
>
> I mostly assume this is supposed to be for a generic domain and not
> special-casing example.com literally.  Some extra text/formatting =

> would
> help with that.
>
> Section 7.3
>
> The associated identityId is not a queriable property?
>
> Section 7.5
>
>    o  *onSuccessUpdateEmail*: "Id[Email]|null" A map of =

> _EmailSubmission
>       id_ to an object containing properties to update on the Email
>       object referenced by the EmailSubmission if the create/update/
>       destroy succeeds.  (For references to EmailSubmission creations,
>       this is equivalent to a back-reference so the id will be the
>       creation id prefixed with a "#".)
>
> I'm confused by the "Id[Email]" part -- we describe it as a map to "an
> object containing properties to update", but that's not exactly what =

> an
> Email object is.  Is this more of a PatchObject than an Email per se?
> nit: I'd also tweak the wording of the parenthetical a bit (here and
> below), to something like "when applying to EmailSubmissions created =

> in
> the same "/set" invocation, ..."
>
> Section 8
>
> By a literal reading, fromDate and toDate are in conflict with each
> other (when non-null).  That is, the fromDate text does not admit the
> possibility of an end to the vacation response period, and vice versa.
>
> Section 9
>
> I'd consider adding another sentence like "Additional considerations
> specific to the data types and functionality introduced by this =

> document
> are described in the following subsections."
>
> Section 9.3
>
> I know we don't want this to devolve into a generic discussion of the
> flaws of email, but perhaps the envelope-from/body-from distinction is
> worth repeating, with a note that JMAP has provisions for ACLs on
> submission that check both.
>
>
> _______________________________________________
> Jmap mailing list
> Jmap@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=3Dhttps-3A__www.ietf.org_mai=
lman_listinfo_jmap&d=3DDwICAg&c=3DRoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI=
_JnE&r=3DK_BObr5Kfkr3rxt1oBPF9KFiEU3xl9LcD2OOJG3TXfI&m=3DKd4khyWKu1OdyQCD=
kytHP56BfjUiYrtqcTi99Nnq9Og&s=3D0q4Ry-Xka_xREe6pZmV1qritx4bxQmiUMONF99Vle=
jo&e=3D


From nobody Wed Mar  6 16:08:20 2019
Return-Path: <kaduk@mit.edu>
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 6F61012F1A2; Wed,  6 Mar 2019 16:08:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 5m7YpJrDcDAB; Wed,  6 Mar 2019 16:08:16 -0800 (PST)
Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-eopbgr820114.outbound.protection.outlook.com [40.107.82.114]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0EAC41274D0; Wed,  6 Mar 2019 16:08:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uZFO/eae8OZObbFEt3iyhRpnCJztVvLUiCmvesTz/BE=; b=inItLDydysMpun9EKvWQn56kOJ/2RhfGrGNld2IXtn8QQO/aP/AizWBIJMRCvY8CMzgQCu/5Frg77JpwTiYsKVhwDZe1S6iiO+XgQXvTuFZ4/XuWur5wHwxZW9HMEdR8i9sN9HX52I9FFqfkckjdT1WB1Lig5LeEMShhHqsC8zw=
Received: from BN6PR0101CA0033.prod.exchangelabs.com (2603:10b6:405:2a::46) by BYAPR01MB5605.prod.exchangelabs.com (2603:10b6:a03:127::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.18; Thu, 7 Mar 2019 00:08:13 +0000
Received: from BY2NAM03FT025.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::207) by BN6PR0101CA0033.outlook.office365.com (2603:10b6:405:2a::46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1686.17 via Frontend Transport; Thu, 7 Mar 2019 00:08:13 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT025.mail.protection.outlook.com (10.152.84.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Thu, 7 Mar 2019 00:08:12 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x27089jl031177 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 6 Mar 2019 19:08:11 -0500
Date: Wed, 6 Mar 2019 18:08:08 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Chris Newman <chris.newman@oracle.com>
CC: The IESG <iesg@ietf.org>, <brong@fastmailteam.com>, <draft-ietf-jmap-mail@ietf.org>, <jmap-chairs@ietf.org>, <jmap@ietf.org>
Message-ID: <20190307000808.GQ9824@kduck.mit.edu>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com> <AE59AF90-D19E-4B7F-A9AD-2F9A6C9989B8@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <AE59AF90-D19E-4B7F-A9AD-2F9A6C9989B8@oracle.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(346002)(376002)(396003)(136003)(2980300002)(199004)(189003)(88552002)(76176011)(7696005)(26826003)(446003)(16586007)(46406003)(6246003)(246002)(305945005)(126002)(1076003)(106002)(86362001)(186003)(786003)(54906003)(229853002)(6916009)(8676002)(47776003)(4326008)(104016004)(426003)(55016002)(8936002)(316002)(5660300002)(6666004)(53546011)(476003)(336012)(11346002)(2906002)(486006)(75432002)(356004)(97756001)(956004)(58126008)(50466002)(106466001)(26005)(478600001)(23726003)(53416004)(36906005)(33656002)(14444005); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR01MB5605; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 02db5d0f-82ba-4c59-d09a-08d6a290fd87
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BYAPR01MB5605; 
X-MS-TrafficTypeDiagnostic: BYAPR01MB5605:
X-Microsoft-Exchange-Diagnostics: 1; BYAPR01MB5605; 20:wydwVvwIsTAUJHcUxtdqJ0YSC5Y+fIhoFyCLWB3c+c42z+TI3mr1FH4DB2uU62eWnbxJR3to/hN3AUKVLGrKqUBiLoYXEnH+XwETPuT9Q0mZV2F5p6xNFSgb3ZGCfr3iyZtvdjOgDNXMGV85+BNSDIJHtyM1ZgXu4ydHkaSUe9fPUKuXNZQhTYdZDMmFfVeqPvADbkKdj952yAyLtZNbh0sKy/S2CNJOde+Kg6hFaUCUBT7qW9FP1qPwm8pUjE5OOE1RZOB9rbTv+XKV0ygbaFw0xmOpkRS1PuVYEbvDhgGyGY0n4EN8BZjpRhxuc/j1S9xbniDyZTfjebAXQc4m0kLQHhPsV/9fGGLfIZsMq637VfsbaZB/W2UqyYv714m3TXny/UkA8+PzLMLuAxeGqAJBobpDo5utEBpwj5Df4WSuOOc03wtPD15Z+waiKLRz4AcOhwCGsi5mEYIlZ41hXbGIJWGDgp4/fmMrSy44d03Y8qjlsgN39Df0xkCqua+Iw/nriJXn99l1k9Sn1ADv+LFpNXduZ8MmJ0sDSRAuxZYurmC9uMjI4Se1udpEDoZAicEnndneW0j69oXaA04HEiw3pfBswmvZgRPtIqqEQhU=
X-Microsoft-Antispam-PRVS: <BYAPR01MB560502B06E06493878D16FECA04C0@BYAPR01MB5605.prod.exchangelabs.com>
X-Forefront-PRVS: 096943F07A
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BYAPR01MB5605; 23:LBrCvEpYJDDhoKUN7tki9D333s8em38DfeOdsYVI4?= =?us-ascii?Q?hQJbR49qex6u1oS9DjWVNJVY07RTHFCBZMnLnqORkf6e/s3pM1lVic3ljRT6?= =?us-ascii?Q?RQT2zbFepjZ0/l5aKuu/zbiO43yimCgu4Q6lYuSeeqOMak8vgWOmYmFAP6kg?= =?us-ascii?Q?dHAMAAb4mjA79BxvXGw1cDCKPsweGW47weVktiFcNMreq0pbb/nG9pkuKEyr?= =?us-ascii?Q?ZhxAvIY3IlmZNsAsH1HImmfO/p+AsVWkzJIxVKAMIwi29qAdp0th8Q+oJMKO?= =?us-ascii?Q?T3kNonS0+XM6ltNPb7f6B7fsobiknSuS6Q6wzq8KRs5jac3bei9ktYkwEOHm?= =?us-ascii?Q?621acCclAfB2uOSbhKcSwIcZeOwM5aiMKT73HZCrJb8hKRwRD9oJjqqr1Knb?= =?us-ascii?Q?zg2kcxNq/DZk+GCnH4JFm5P/4dTbm5zv175VygZWPR0Vb47hdL93kDBz1Lg5?= =?us-ascii?Q?ZSEabGLLAfbjMrGBMD4tcnlTyuBqsd6ECaVIMcIAKPWUVN63sPxG9Jls7CjP?= =?us-ascii?Q?q1T6ECAIX1qFfXUCPBWwLZBYHW2F4zEeUwvOnQmoCCRj7Yeyvod5OeLb6w2u?= =?us-ascii?Q?hy1a3dCFT9mPxF7Ru8TbEU8SLDThj7Ye/6J4SeWwuj+3b8ngzmWvSX8/BPYF?= =?us-ascii?Q?5GHCabAX4SGY+RK0KRIbwbZv/tEJJz+I/ZvxnbDSzcwgVWpZlD5B/cn++iZN?= =?us-ascii?Q?QJ7CkgudEfn9tzlgRMqDxc2L5+/iqrsxxy//J6+Ixpv35Q1xzHiuk/3PbMlY?= =?us-ascii?Q?hfOtbqY503ygLfWG+yv5pdtM3mOBR2INgtpdoBChDnf44vgXzjIVYAQ+Gl7R?= =?us-ascii?Q?7PgrIMKO5s8uO8GFNMsusfKnNolXPUuw+pMSZ3mXEHX8UXKpV4qRXwnVM9k1?= =?us-ascii?Q?14AUv7JwqUrDcCW5GPbAmXF3MGaaD/krx7H22STWcWp3wGfTgqCdFk4Aj4bZ?= =?us-ascii?Q?CBef3+wkZePN6RSJnhhvRWH7HBw/8KM9/mDaNtdfyUop1tYtwpCUh0i/mNXr?= =?us-ascii?Q?hY3Ph378cN4DTi65ZbOYA+E3AIdepHFUdxHV99tg0W4GWAQF31Rdi4Br4zEg?= =?us-ascii?Q?iRFn7Hltl/+YMD9tQFFN/UffanPw/xOD1z+rPHQTFO5JS3ElY/8+Qh+6mFHH?= =?us-ascii?Q?xOFXAdU2UXgfMWihe6qPE8Mzmr0R04Tf6A2rPD3B0Yt+RQ8iC5wxyIAeLcIi?= =?us-ascii?Q?lAWgQ1/BKCszVHJTwlaCyjat5IYlXnrZn27bb6bIIz8rOrBMrAVGppmBkToT?= =?us-ascii?Q?RMX15+Gt1i7Pwwm2EA=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: lVM26KRF1F+zO+ppuMbXjcHfV777nQ1d8v+sHTZKROjRBS5btXBAj5yRZ40KL8a5ut8WrrzfDj7KxrUDIiZL2pdF46Zzcp5xcL1xNPY+fIZzFglBsYhrFbFcH50x5tdeoxlCd4HuC9qMgyWHkxFlIbMWWn9ARQ8OeX7nXjFx7IYP7ggUbko11gyqCZIh7UcPQXRcjnFhnmDEdL1dS2BSD7YVCV+xRkOriS2lnak8eP+EPn5ZhbqCDm99LqCyqsMYOnky9pMAAkqkGHXlo2ut10WybVST5RknA2kT6OHmMb7JVhoJG/ZIlot5djOs438lj67nttQLf2+ikD4PpVATEOFbjO97nWrtnFU4waiadUEp2tpNpTiTmLBNR78sIEXXbRo8ZF9V2Qs49s8WSznP4ET24tAlPksRkBh+yGB6mx4=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2019 00:08:12.8117 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 02db5d0f-82ba-4c59-d09a-08d6a290fd87
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR01MB5605
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/uJUyyf2oWPNHQDCrwX-LdGNOCFQ>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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, 07 Mar 2019 00:08:18 -0000

On Wed, Mar 06, 2019 at 02:41:04PM -0800, Chris Newman wrote:
> On 4 Mar 2019, at 18:40, Benjamin Kaduk wrote:
> > Section 9.3
> >
> > It's 2019.  Why are we still recommending SASL PLAIN?
> > We have better options even if we are resigned to passwords, like 
> > SCRAM.
> 
> We're recommending _implementation_ (as opposed to use) of SASL PLAIN 
> for interoperability. This text should align with the 
> mandatory-to-implement mechanism for SMTP submission as documented in 
> RFC 4954 section 4. Changing the interoperability requirements and 
> recommendations for SMTP Submission authentication mechanisms (and email 
> protocols in general) would need to be done in a separate document that 
> updates RFC 4954, RFC 3501, and RFC 5034. That's out-of-scope for this 
> document and WG.

There's a difference between recommending implementing something for a
specific targeted interoperability goal with caveats against other use, and
blanket recommending implementing something.  Even without needing to
update SMTP submission, we can still do the former and acknowledge the
flaws of SASL PLAIN.

> As a co-editor of both SCRAM and JMAP, I'd love to see more deployment 
> of SCRAM, but this is the wrong context to promote it, IMHO.

The above is the crux of the DISCUSS; SCRAM was just a convenient example
of a non-terrible SASL mechanism that doesn't require any third-party
mediator between the authenticating peers.

-Benjamin


From nobody Wed Mar  6 16:09:07 2019
Return-Path: <kaduk@mit.edu>
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 836E71274D0; Wed,  6 Mar 2019 16:09:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 yg9pm-BbvFMb; Wed,  6 Mar 2019 16:09:00 -0800 (PST)
Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-eopbgr800107.outbound.protection.outlook.com [40.107.80.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CBD5D126F72; Wed,  6 Mar 2019 16:08:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qQvkGSxwsksHYprH+z6TJt80xkSG9GRETw54n7I6Elc=; b=tngrCSNc/sGSZkHcc6fplW0wFeaxTVR8T+Rwz/44HQoDWchLryLQ0M1CDxOyxbsIUpVpj2TcbLpM3+k9rYntZZyuKI3rrES07jUAgxZ0Dr4lWmCQip0uKhT+W1IM7I0e4GjzIapB/OU1Z1e9Gplqir/cFkl/c1kA23PC5iXTrQM=
Received: from MWHPR01CA0031.prod.exchangelabs.com (2603:10b6:300:101::17) by BYAPR01MB5606.prod.exchangelabs.com (2603:10b6:a03:127::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.20; Thu, 7 Mar 2019 00:08:58 +0000
Received: from BY2NAM03FT043.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::203) by MWHPR01CA0031.outlook.office365.com (2603:10b6:300:101::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1686.17 via Frontend Transport; Thu, 7 Mar 2019 00:08:57 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT043.mail.protection.outlook.com (10.152.85.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Thu, 7 Mar 2019 00:08:56 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x2708rIf031440 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 6 Mar 2019 19:08:55 -0500
Date: Wed, 6 Mar 2019 18:08:53 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Chris Newman <chris.newman@oracle.com>
CC: The IESG <iesg@ietf.org>, <brong@fastmailteam.com>, <draft-ietf-jmap-mail@ietf.org>, <jmap-chairs@ietf.org>, <jmap@ietf.org>
Message-ID: <20190307000852.GR9824@kduck.mit.edu>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com> <E0ACD102-4856-44E1-92D3-CD3801836148@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <E0ACD102-4856-44E1-92D3-CD3801836148@oracle.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(376002)(396003)(136003)(346002)(2980300002)(199004)(189003)(51914003)(16586007)(75432002)(26826003)(186003)(356004)(97756001)(26005)(33656002)(50466002)(55016002)(229853002)(106002)(478600001)(46406003)(53416004)(47776003)(6246003)(54906003)(76176011)(446003)(7696005)(106466001)(426003)(5660300002)(246002)(476003)(956004)(126002)(336012)(486006)(8676002)(2906002)(53546011)(8936002)(4326008)(11346002)(23726003)(88552002)(86362001)(58126008)(1076003)(305945005)(104016004)(786003)(6916009)(316002)(36906005); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR01MB5606; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f808cb1b-d969-4b3e-3a26-08d6a29117e0
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BYAPR01MB5606; 
X-MS-TrafficTypeDiagnostic: BYAPR01MB5606:
X-Microsoft-Exchange-Diagnostics: 1; BYAPR01MB5606; 20:C/sYvckxwIV2T7ZT8n6EMN/jw7OkyMuEM7d+P1TjYIdwLAgu7vozdJypISMZAByfiZ4RoiaRaChPUjXuKXmQhf0q5b/opLsIslKJmvQqsHWXn9OFHXs9bZsEWLsyke9eCcpFm5TJvO+rpDYYdaXMGYjnl4aeB7YV8rngpKGdoJYVySuzWODEJRslP3UvkP1x/46WtaHHduVon7wE0b5/oAWFUJySbA+3rtg2ON1wwDghaFkj5pOP3AAA0ur0CZTz6yj2LFzooO2DjSKqRpmPYQzr/hO4kMOLDSi78G/fwhv8WCl2MIcA0itRtvwsteO50aUig4Mg6evujU90KcfKwasImZrO8ZcnjDj+5SZci3Am+6RU/WPFAF6QENmiVwo+ot2ieY3TybelwP4LterEmjWf1UMb8B6w4r+S0AXTxH7kWcQ95cQjTtVRBz9Kc/ezahdfbWScosNYl54uNOj2CKIOW0bD63Vn5HYmRgCPphYEia/e6DMKFdLLIOaj9/+lN2ShTV6zQfnUCSBZc6GRGCK7OOmZKDqwWLM2FxcSRli9gYcax6CPwsc3JmyN5Cw39zsVraBbWMbHQZYe0SZ7vbrMPIlCZNXlLe2KDYbLVD8=
X-Microsoft-Antispam-PRVS: <BYAPR01MB56068DE99286450788EB6760A04C0@BYAPR01MB5606.prod.exchangelabs.com>
X-Forefront-PRVS: 096943F07A
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BYAPR01MB5606; 23:DkI44c7JuJSXqlpBuFlAMbtBYoK4y/XqPHuC145PP?= =?us-ascii?Q?cq58D8HvgwK/XXk6aw0srnrXpa4/vcuHhM7OTOYqZlXshd3CVESdlTtCE+5m?= =?us-ascii?Q?DhUzipkGb5cgVSYxNcb5RE5zJNXiYfIgU6KV53WOo5qd2z03mbwccGd1zTeL?= =?us-ascii?Q?niRDMz4ru/TjW3QAk5KOPLIu1DCPXAFDzHNSvHEObKNzJkWrCDgcF6DIJjU3?= =?us-ascii?Q?KU/96lHDTX7G8ODMaJklEBcnII9xEPP8+N3J/wo/8wsTLljnt7oGq1dupRDH?= =?us-ascii?Q?E8UXvQWA95KYjGSb63Le62TaRQmlgOirwNNqNG0aHGTy7ZwyzbA2zMjOGgQu?= =?us-ascii?Q?mHXNDjtFJQKtSkyzC1Xaq+iNmRetWnpT1NqmRSRL27ERAyoEDwbiCoyaUBY3?= =?us-ascii?Q?3E6Hp+MK4xAq+Z41Vx4yr7DN6Ct0OCvztWrDuekEEbyqQhylKTWBKPjexz8n?= =?us-ascii?Q?Byl3whWV8OWUoLxxhxBxseMBRA8futBj0HyOSgzzxBU7rRlzRLhw5wniYayA?= =?us-ascii?Q?GcpCVnFbiX5B7i/tBYJk2o77YFDiERSVZtMfjRnmiGr1cKsk/sXXY38jk3Vs?= =?us-ascii?Q?H+3Q2qo8i1yinnbtyteQ69XIvbcvr7l9XmNrX7IAYBE6h2o6Br+C6BPmBv4X?= =?us-ascii?Q?pB/3RAejRsiWrdOO/S+Juxag8D6VMTnlvyL5NrLRpA37URSRcYciZxyzExtQ?= =?us-ascii?Q?apNswaBGwX0e6bfa7IXLtG822FtSLujDwOYDVrIMMKkCkQDKCiKIJFfnPf5J?= =?us-ascii?Q?s17fkjo4HKHFmolaiFTHswG/brfb3PLtXuQw71yyRqVFNDn4NyeOhUhBubHP?= =?us-ascii?Q?nco/PmiV1dw8YDRGdAtTsSLYLROchF1Obce353E90RC2kpJwBpteEYP13lyK?= =?us-ascii?Q?oHVS2reGWAR6Swed7Y8BfwgUc97YUjIoJqHp8wRwiBAt8OI1fDDCCmvKJzHm?= =?us-ascii?Q?0TGbTr6NLjaxHpl2RGVCs9mNcbORURWdLoY0rq33qyg3dilnsQro+5ULESBd?= =?us-ascii?Q?RtYUI/c0WRRLNetS5QbI8DGLpV+Qoyz7FYNEH0oC6KtEkTY5cyGwj+WzL00o?= =?us-ascii?Q?STNYq9GbKBqUnc5kCP8ElpHJeZs6XCL+XHUwC3oEFgEcYu90Y4XXpe6MoPcC?= =?us-ascii?Q?apeflQwA2xKrhoHUcy2LKs2eMNqO5j5hbhjgS785o3SfYhnjywKSNBHfghWg?= =?us-ascii?Q?/KxuLc8jqQIZFhSyP1O4HN6gnqeG0t+huoLpwIDA3love6yXv/021tRpg=3D?= =?us-ascii?Q?=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: 98wrJ5DGiNzKvJWs/tJkdNbYBx35woiQlG1H48MfsyWYnk/ZdKElVh3DoWtgfnzdtwdJevcaQ54forK0HoQLWJml2r3jDawWgEQiFH4n/2CPN6bB5iaSuWiGIz+SaefCq06xBkK1/CPiakloDAjTpW+CrAnJfmi+9rn3g6ZP3St/dqrz6nqGMeu5JCp8MubbSw36kSAWfhMggiqIEy8D/mnyDnSKxIbFh3R2YEI3ap7c3ZGhJstT9qSPaqpp72MCgCwn+8yMytKHVOJPvEhlU8xl9BgHS4G+s6Xp5nfsWJbSxxGa5bXOt+Wy94DFxSDh4EoCGcZu2UwtASx1Qc9i6bMTOkseSFYT2lDKcRGo7Panfmx6EQG64KCKof5MMC1K7JuBuNOG7FM87dRjINHqhr4DUdKbj3/N/Ny4y/GXPNk=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2019 00:08:56.9899 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f808cb1b-d969-4b3e-3a26-08d6a29117e0
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR01MB5606
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Ey9GXxdcLmQ82E1ahdCIdoV4MA0>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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, 07 Mar 2019 00:09:02 -0000

On Wed, Mar 06, 2019 at 02:46:04PM -0800, Chris Newman wrote:
> On 4 Mar 2019, at 18:40, Benjamin Kaduk wrote:
> > Section 4.1.2.1
> >
> >                                        A server SHOULD replace any 
> > octet
> >    or octet run with the high bit set that violates UTF-8 syntax with
> >    the unicode replacement character (U+FFFD).  [...]
> >
> > This seems problematic, given that this is supposed to be the "Raw"
> > format.  I guess the justification for the replacement is that we use
> > JSON and JSON requires UTF-8, but if that's the case then shouldn't 
> > this
> > be a MUST and not a SHOULD?  In particular, a client can't rely on the
> > server providing the SHOULD, so it doesn't seem to provide much value.
> 
> There's a MUST in the core document section 1.5 that requires the server 
> to always send valid JSON/UTF-8. Use of the Unicode replacement 
> character (URC) is one way to meet that requirement, but there are other 
> ways to turn invalid data into JSON-compliant data and there may be good 
> reasons to use mechanisms other than URC so I think SHOULD is 
> appropriate here.

That's fair; thanks for the extra explanation.

-Benjamin


From nobody Wed Mar  6 16:37:31 2019
Return-Path: <chris.newman@oracle.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 24FB813127D; Wed,  6 Mar 2019 16:37:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.302
X-Spam-Level: 
X-Spam-Status: No, score=-4.302 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=oracle.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 XkbhuYGE4hnT; Wed,  6 Mar 2019 16:37:27 -0800 (PST)
Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 53046131146; Wed,  6 Mar 2019 16:37:27 -0800 (PST)
Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x270Ykcv144896; Thu, 7 Mar 2019 00:37:23 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version; s=corp-2018-07-02; bh=3p3cZFzhYmnV6CYHzmj574GFNeZops5agIh04wHjMkM=; b=NQ2XDmYDZCUz+CeSRqSEjCo8kzfRfs3JyXsnkinMU/PBuu+6zvomLlSJy1fYg/FZuSS7 QhZ83P/y0OedJhKB6XY+eM0ha7XOsQTaYGGV5JP/qlnB+fCFBjRkD56yxT/bSROLnnbU p0G/rREnCv+R8uwL2RFHGN6sS4UZiyAcV/x1R93HD7M5BI2yR7DnUTaZ60SYl2Vfc3km fbpi/HzpGP5t88BAFFCpuVMnlMiCSySHI8YDBjNMRmSYUVokuECjQUvLi9+RhWiJaJfg iZId4K8k+o+31Q5171x21u0kbmkRR6leREsyHFSSLKrU2oLKeKrgWuSRaQd8zIXuHBF8 xg== 
Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp2130.oracle.com with ESMTP id 2qyh8uf4uu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 07 Mar 2019 00:37:23 +0000
Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x270bMlR011218 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 7 Mar 2019 00:37:22 GMT
Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x270bLPG016628; Thu, 7 Mar 2019 00:37:22 GMT
Received: from [10.159.134.251] (/10.159.134.251) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 06 Mar 2019 16:37:21 -0800
From: "Chris Newman" <chris.newman@oracle.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>
Cc: "The IESG" <iesg@ietf.org>, brong@fastmailteam.com, draft-ietf-jmap-mail@ietf.org, jmap-chairs@ietf.org, jmap@ietf.org
Date: Wed, 06 Mar 2019 16:37:18 -0800
X-Mailer: MailMate (1.12.4r5594)
Message-ID: <A6DA7FC5-BFF4-4D54-8632-7103281249BF@oracle.com>
In-Reply-To: <20190307000808.GQ9824@kduck.mit.edu>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com> <AE59AF90-D19E-4B7F-A9AD-2F9A6C9989B8@oracle.com> <20190307000808.GQ9824@kduck.mit.edu>
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9187 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1903070001
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/7Yvnk5PlC7sfrtUGJE21F0Z5cPg>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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, 07 Mar 2019 00:37:29 -0000

On 6 Mar 2019, at 16:08, Benjamin Kaduk wrote:
> On Wed, Mar 06, 2019 at 02:41:04PM -0800, Chris Newman wrote:
>> On 4 Mar 2019, at 18:40, Benjamin Kaduk wrote:
>>> Section 9.3
>>>
>>> It's 2019.  Why are we still recommending SASL PLAIN?
>>> We have better options even if we are resigned to passwords, like
>>> SCRAM.
>>
>> We're recommending _implementation_ (as opposed to use) of SASL PLAIN
>> for interoperability. This text should align with the
>> mandatory-to-implement mechanism for SMTP submission as documented in
>> RFC 4954 section 4. Changing the interoperability requirements and
>> recommendations for SMTP Submission authentication mechanisms (and email
>> protocols in general) would need to be done in a separate document that
>> updates RFC 4954, RFC 3501, and RFC 5034. That's out-of-scope for this
>> document and WG.
>
> There's a difference between recommending implementing something for a
> specific targeted interoperability goal with caveats against other use, and
> blanket recommending implementing something.  Even without needing to
> update SMTP submission, we can still do the former and acknowledge the
> flaws of SASL PLAIN.

Ok, I think I understand your concern. How about:

OLD:
   JMAP servers that proxy to an SMTP Submission server SHOULD allow use
   of the _submissions_ port [RFC8314] and SHOULD implement SASL PLAIN
   over TLS [RFC4616] and/or TLS client certificate authentication with
   SASL EXTERNAL [RFC4422] appendix A.  Implementation of a mechanism
   similar to SMTP XCLIENT is strongly encouraged.
NEW:
   JMAP servers that proxy to an SMTP Submission server SHOULD allow use
   of the _submissions_ port [RFC8314]. Implementation of a mechanism
   similar to SMTP XCLIENT is strongly encouraged. While SASL PLAIN over
   TLS [RFC4616] is presently the mandatory-to-implement mechanism for
   interoperability with SMTP submission servers [RFC4954],
   a JMAP submission proxy SHOULD implement and prefer a stronger
   mechanism for this use case such as TLS client certificate
   authentication with SASL EXTERNAL ([RFC4422] appendix A)
   or SCRAM [RFC7677].

		- Chris


From nobody Wed Mar  6 17:12:54 2019
Return-Path: <kaduk@mit.edu>
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 41FB1126D00; Wed,  6 Mar 2019 17:12:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 bcx_QyGFGZRo; Wed,  6 Mar 2019 17:12:45 -0800 (PST)
Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700131.outbound.protection.outlook.com [40.107.70.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29C841310F9; Wed,  6 Mar 2019 17:12:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2fPjrIqiw27Xu7WsLRsXYagwWB/1AH3Rzrvh9wSt5U0=; b=TuCBqwJhsSURVooSeD6L//4R/VFUw3HVKzNBSqLP55Psr1FhOHS+RqUVaMsEcZpRAwdUNgAv7AHV5jDH2gLH0fIJg+WcD6d0L6CE99YYi3gaOoS0QEtcjd+NU8iiE7psnFRQQFmW4PsjsSabQ5rlJBjZTkh7Sl4kHbl2Fy7sayM=
Received: from BL0PR01CA0016.prod.exchangelabs.com (2603:10b6:208:71::29) by BN8PR01MB5601.prod.exchangelabs.com (2603:10b6:408:be::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.17; Thu, 7 Mar 2019 01:12:43 +0000
Received: from DM3NAM03FT012.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::207) by BL0PR01CA0016.outlook.office365.com (2603:10b6:208:71::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1686.18 via Frontend Transport; Thu, 7 Mar 2019 01:12:42 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by DM3NAM03FT012.mail.protection.outlook.com (10.152.82.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Thu, 7 Mar 2019 01:12:42 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x271CcBU016998 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 6 Mar 2019 20:12:40 -0500
Date: Wed, 6 Mar 2019 19:12:38 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Chris Newman <chris.newman@oracle.com>
CC: The IESG <iesg@ietf.org>, <brong@fastmailteam.com>, <draft-ietf-jmap-mail@ietf.org>, <jmap-chairs@ietf.org>, <jmap@ietf.org>
Message-ID: <20190307011238.GS9824@kduck.mit.edu>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com> <AE59AF90-D19E-4B7F-A9AD-2F9A6C9989B8@oracle.com> <20190307000808.GQ9824@kduck.mit.edu> <A6DA7FC5-BFF4-4D54-8632-7103281249BF@oracle.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <A6DA7FC5-BFF4-4D54-8632-7103281249BF@oracle.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(396003)(376002)(346002)(136003)(2980300002)(199004)(189003)(476003)(486006)(956004)(8936002)(126002)(426003)(478600001)(7696005)(14444005)(46406003)(8676002)(106002)(336012)(246002)(26826003)(23726003)(446003)(11346002)(356004)(2906002)(36906005)(88552002)(76176011)(786003)(58126008)(54906003)(16586007)(53546011)(316002)(50466002)(86362001)(1076003)(6916009)(186003)(4326008)(26005)(93886005)(47776003)(53416004)(6246003)(5660300002)(229853002)(33656002)(104016004)(305945005)(97756001)(106466001)(55016002)(75432002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN8PR01MB5601; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f9b71740-137d-454e-e082-08d6a299fff8
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BN8PR01MB5601; 
X-MS-TrafficTypeDiagnostic: BN8PR01MB5601:
X-Microsoft-Exchange-Diagnostics: 1; BN8PR01MB5601; 20:rBpCBW/Aq8PEKlkMhdk+2VVtnLfwNuhFq71K/FLDbUKdKx5p5jezDlLkmQXNYwPKlN3/AUYnJzrZgfFykSaZS6/00uLjmbtGhQBPvSnu/z/W/eU3xfE/6IzCyZOJhrUOUrPPnkVRo40zrUy5beRRaUpc4qPSZd+Dz2rPZ5sm7BFUiPGOOmggc7QMGVltjKBGiNCx0+qZza1Ljl5gWt9eYusvXaXeEWB9IiGBvA5iJtQ41eKXPiScWbA4r+JpLSclQWvsGdczIIv2u6THXhR7EvAE1urivaibEbsrhofxfuMyxXm/i1BVZ0cy2jiA4KesNLUsktAciYhM09qRJ+rIyqfWZIxszOHobQceIRJ7DcjI7kVY+WEhxnXR0ko92bYCdiPpKumXFRjsOGBuFLLwyOsfdo1qbAqEbGPNJX7G+GRGnHopbFx7Btbcy+LkySXsMF1qh2mc8jfjuqfLJsRIdIvIOzMBDt+jjE/SWwm1ZBwB3M0x2R6AC9DrRaxYDeuk7KEzdAjx74QgoJUBd+U89JpnQH35IIAsIi6+cplavUa4UjtoAhQ/BRO/ApB71Ok064tEkOAWlC5rCI7ZyzHjYpRpEjgkEuHmkwikMpOk+BU=
X-Microsoft-Antispam-PRVS: <BN8PR01MB5601283FE354BB507F074704A04C0@BN8PR01MB5601.prod.exchangelabs.com>
X-Forefront-PRVS: 096943F07A
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN8PR01MB5601; 23:yVgcE8xb/ruhTND4Oq6BhRgvp5JIEyilVdE/SCq6K?= =?us-ascii?Q?MaKGe/IlKoQ29BMc6Ni4R/MU67Z1M06Y5sKcxnLm2HNh3mFZcfgxQ51Dd9kv?= =?us-ascii?Q?oLvwDF26JIk40qe167OdcjBg5hB7DJYPqPdOZhV1UrK7HrpJFFxCjBJV45qL?= =?us-ascii?Q?kMVTj3nzOIiSEvQunNdOOUpSJINVpcqEUUFw+zYoLIMt5mALZu5+vJAFinAz?= =?us-ascii?Q?9xbaG0Z2ylE8YGe4eoQ8tFuZnsDQQy/XIH0A7bqkum6BWVBoYSJLS5fCWZNE?= =?us-ascii?Q?bAtE7ZiMeFFjS2cLzZwX2NFJq9kHCH9Q7FMMgtw/h/Z1EzEIjB+Y6BYkxKlr?= =?us-ascii?Q?IRpNuqOxtO1VoN2ENDRmxiuX3J38dwZah85s59qCBboiZ9BWOHHHuMWKVLc1?= =?us-ascii?Q?GuGX3xwDwaUzYCvYOm17o0Lojzu6QrHoKsgMwEI1yix8Pb1F65KdFPU08Z4I?= =?us-ascii?Q?IEGcSLn7QEKuL5dbi3t+IVVjh/k7753SQZh8fpr/mFlGrgb1tCQ5Qo/HTaKX?= =?us-ascii?Q?1upStTOSB+pw4VxG3A+b48Y0B7ntd0G0GjERP4iw0hk2ZOA/1e04sRNNTPPN?= =?us-ascii?Q?Lt3FppMuvkpR1G2ol/iyCmZIpvCQy24uDA2yJ6RCyZBSldZ563+WUZ/RDw5K?= =?us-ascii?Q?8o/kzIE3jQ70gee71THfB37cTaBV68VC3VFsSno706LEL6rKqNa9vtNsHTzI?= =?us-ascii?Q?eRPW4fSi2Pq6S1C+1lqCd6JpeGbxfE58V1XEf/3R1gBkddXk8gGawWiQnLok?= =?us-ascii?Q?U3DsxKXs1JQkYlSYkx2uSFT/LEbRVbVlEaDJ8diFotz4YhEmdxUHzedF15CQ?= =?us-ascii?Q?3t7VxOpIyw3PqykKrsU6mMNrr8XjgMHThG6XUC1lpRlzkm+u5ZuVXoUzzNE2?= =?us-ascii?Q?3h3UHht6rRYcmk4m3VZ7L/VcLboygAMUFumzsp7DREZLOVpB8qeoBOaB1VOC?= =?us-ascii?Q?6nOmiX52QPtca/11Y0IMTo3UAO2ZkM0RjJ6S9OFU/kN2/zWDkiuw7lOvs5Yn?= =?us-ascii?Q?JW5fCVdDm3+afCqU5s10Tl0NjyFVLeTwtrWEe4wvjH/nePoby57sru/NtrR1?= =?us-ascii?Q?W4YWEO68QzALthnJcMQb8X+2GniOQjsNo3rJaiYCkJzWlH+U6MfLskbZ/jhO?= =?us-ascii?Q?ztc4vhLYiPJUoMp4cWcCITCIPuo9iVYzIM42Bnmphejtjn/CIVRpTahh4wjB?= =?us-ascii?Q?zuI4YWG07y3IRb4a62nTZoUoAb5HmgTjeBGWOWMhDccwCtqRgQ/Z3BFmOiSI?= =?us-ascii?Q?E6ToVyTyCxbzKqHEZA=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: ElMJLe6SyA9T48iSVhZHyz3MKxGHHhLpOHaLMlv72MW8MMcA42MzIrTIozUaSm/bi2LACsYbh2kpj4tDlfJaOoww/894JrfXC80X2aPwoOIsZXKaz61BKLOZy1amfIXBKCATnllIL1lcrfAk/jVVCrVrIgwNUnabtHW6LDDc/Fvskd0xCAEvM8RU3PHhqLM5JkC6Enfr3fLLdpLDlp/HlRnWBBG+6Dj3MMDiD4ru0S+Lb3EiuW6L1mbVryn6dB52vc9gujQqigLyYx8vZqSy8u64xmDlx+uAkom98B/yiOocgP5fP85CRJTOdb8WYviMo7D4vXSO2bzdsgdJ0kh8i4P3LY50PMu0dUew5CTsj29uumvBxiJ3qkFBLtdyM442xApobTr/tCwVU5NAi72WqEOc7feq3RRPKgTXESBuZG8=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2019 01:12:42.2839 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f9b71740-137d-454e-e082-08d6a299fff8
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8PR01MB5601
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/_GfpxAP6m82UKEIy6r9rt5FD1Tg>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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, 07 Mar 2019 01:12:47 -0000

On Wed, Mar 06, 2019 at 04:37:18PM -0800, Chris Newman wrote:
> On 6 Mar 2019, at 16:08, Benjamin Kaduk wrote:
> > On Wed, Mar 06, 2019 at 02:41:04PM -0800, Chris Newman wrote:
> >> On 4 Mar 2019, at 18:40, Benjamin Kaduk wrote:
> >>> Section 9.3
> >>>
> >>> It's 2019.  Why are we still recommending SASL PLAIN?
> >>> We have better options even if we are resigned to passwords, like
> >>> SCRAM.
> >>
> >> We're recommending _implementation_ (as opposed to use) of SASL PLAIN
> >> for interoperability. This text should align with the
> >> mandatory-to-implement mechanism for SMTP submission as documented in
> >> RFC 4954 section 4. Changing the interoperability requirements and
> >> recommendations for SMTP Submission authentication mechanisms (and email
> >> protocols in general) would need to be done in a separate document that
> >> updates RFC 4954, RFC 3501, and RFC 5034. That's out-of-scope for this
> >> document and WG.
> >
> > There's a difference between recommending implementing something for a
> > specific targeted interoperability goal with caveats against other use, and
> > blanket recommending implementing something.  Even without needing to
> > update SMTP submission, we can still do the former and acknowledge the
> > flaws of SASL PLAIN.
> 
> Ok, I think I understand your concern. How about:
> 
> OLD:
>    JMAP servers that proxy to an SMTP Submission server SHOULD allow use
>    of the _submissions_ port [RFC8314] and SHOULD implement SASL PLAIN
>    over TLS [RFC4616] and/or TLS client certificate authentication with
>    SASL EXTERNAL [RFC4422] appendix A.  Implementation of a mechanism
>    similar to SMTP XCLIENT is strongly encouraged.
> NEW:
>    JMAP servers that proxy to an SMTP Submission server SHOULD allow use
>    of the _submissions_ port [RFC8314]. Implementation of a mechanism
>    similar to SMTP XCLIENT is strongly encouraged. While SASL PLAIN over
>    TLS [RFC4616] is presently the mandatory-to-implement mechanism for
>    interoperability with SMTP submission servers [RFC4954],
>    a JMAP submission proxy SHOULD implement and prefer a stronger
>    mechanism for this use case such as TLS client certificate
>    authentication with SASL EXTERNAL ([RFC4422] appendix A)
>    or SCRAM [RFC7677].

That would be great.

Thank you!

-Benjamin


From nobody Wed Mar  6 21:49:07 2019
Return-Path: <neilj@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 DEE3A130EDA; Wed,  6 Mar 2019 21:48:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.983
X-Spam-Level: 
X-Spam-Status: No, score=-1.983 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=L2DM3jqH; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=VLONd4Rl
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 3pIKL_Edy9bS; Wed,  6 Mar 2019 21:48:56 -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 B7ED3130EBB; Wed,  6 Mar 2019 21:48:55 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id EE21621F5F; Thu,  7 Mar 2019 00:48:54 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Thu, 07 Mar 2019 00:48:54 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:cc:subject:content-type; s=fm2; bh=LOIMtZr3oFga4TufqJplKMeQh 6IRwJHw50Lza6M/Vmw=; b=L2DM3jqH3jAJxPwy/lSEA1W+9z4NtxufZtW9l99oC olHOfRrb2CLLPAAYn1IKvhNuC5YoGQlqameeVo8bUOeSDHtNouPl8h8ZnFDSM4Ab hQSxLXoDSI1es2NpO77S2S74Iirqt41CUAfEQX+AEbcPlfx90S40aFjKASEwkIZt 6K3RZ9UK2fqyuImvXR80srz28U2MskdaJhavvYliGNDqxWnReUoLxmvTdT9bIboW 8FCztOxsQzheBHcDuRZ1PvUt62MzstUFnP7UP15QufLnGFNaaqhMO0u+ScyRodjS xViwgwWzONRyba/HBXgmjxAla6OHrHuyeqy13CqsbbXJA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=LOIMtZr3oFga4Tufq JplKMeQh6IRwJHw50Lza6M/Vmw=; b=VLONd4RljIoN3Xcz0iVO0omdP4mZs3A0E 7usA/0EeoihckJGGkQxNFJAp2MB0DrYZDRDLWUtZ+yHv0IPJK6BmWFch1TAvsrms h4UqZO1qc9ZOlJ4x1KsRTexDNsB4RfRQS9de8CmI707z3hUz1fzsRcoYaPvqM99j HF4X8w29KfwfydVSYSMnuIUsw3lfHwGW0qsP24A4FeY0y6HC7dhREumF2DaS0Oq5 KrzrSCOMPycq0hh9mCeBC8oLHiqdiH8QzFLRmDUNRiKKrFCeomzfjPP4q8jVb+Cg NSWBoYpWKuVGngzwBmR/yy5TmHqW7cHAHhgkTKFUwIbE+saGgh2lQ==
X-ME-Sender: <xms:xrCAXFyYLRPmkfrPRxqp1TifK6jFsTYNhllwzdfWyJdxn0QtiLFBrQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrfeejgdeklecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgfkjghffffhvffutgesrgdtreerreerjeenucfhrhhomhepfdfpvghilhcu lfgvnhhkihhnshdfuceonhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmqeenuc ffohhmrghinhepvgigrghmphhlvgdrtghomhenucfrrghrrghmpehmrghilhhfrhhomhep nhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmnecuvehluhhsthgvrhfuihiivg eptd
X-ME-Proxy: <xmx:xrCAXAfFGy6XEBnuB8krTOSilLWcl5FfVWolw0hxfHeYhyJSzuUuew> <xmx:xrCAXDKsg4U5Po4lLxi9owcbk19PXALvCUeWoEA9XUS2mVuvA_v-8g> <xmx:xrCAXB1Dih6TnDGc4RnQXz3pCrkr7iO7QMjMPZZI6KAWWSvMdL1qVg> <xmx:xrCAXNi1YllysOYsribxg-f_Dj_oKHAMAPEAT3ywmewLF-2WLaKbzQ>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 1264620430; Thu,  7 Mar 2019 00:48:54 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-925-g644bf8c-fmstable-20190228v5
X-Me-Personality: 64588216
Message-Id: <0f888ff8-8228-43db-b57c-e36dcbc5d2fe@beta.fastmail.com>
In-Reply-To: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com>
Date: Thu, 07 Mar 2019 00:48:53 -0500
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>, iesg <iesg@ietf.org>
Cc: draft-ietf-jmap-mail@ietf.org, "Bron Gondwana" <brong@fastmailteam.com>, jmap-chairs@ietf.org, "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=785cf231195e4e3ea399fc6132e63639
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/BE4dI5EXgdwI0S2I4AVcqmvTyJE>
Subject: Re: [Jmap]  =?utf-8?q?Benjamin_Kaduk=27s_Discuss_on_draft-ietf-jmap-m?= =?utf-8?q?ail-15=3A_=28with_DISCUSS_and_COMMENT=29?=
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, 07 Mar 2019 05:49:00 -0000

--785cf231195e4e3ea399fc6132e63639
Content-Type: text/plain;charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Benjamin,

Thanks for the detailed feedback again.

> ----------------------------------------------------------------------=

> DISCUSS:
> ----------------------------------------------------------------------=

>=20
> Section 2
>=20
> I think we need more precise language than "corresponds to" for the
> relationship between JMAP MailboxRights and IMAP ACLs, specifically
> because JMAP distinguishes mayRename and mayDelete but IMAP just has t=
he
> single 'x' ACL. (More in the COMMENT section, but the non-isomporphic
> mapping of 'x' is the only DISCUSS-worthy part.)

I believe "corresponds to" is generally the right way of phrasing this a=
s we do not want to mandate which underlying data model servers should u=
se for their ACLs (e.g. if JMAP is authoritative you may have `mayRename=
: true` but `mayDelete: false`; in such a case you would have to not exp=
ose the `x` ACL over IMAP. If using IMAP as authoritative, then obviousl=
y the `mayRename` and `mayDelete` values would always be the same over J=
MAP.)

However, I've updated the spec to make this a little more obvious, so it=
 now reads:
 * *mayRename*: `Boolean`
The user may rename the mailbox or make it a child of another mailbox. C=
orresponds to IMAP ACL `x` (although this covers both rename and delete =
permissions).
 * *mayDelete*: `Boolean
`The user may delete the mailbox itself. Corresponds to IMAP ACL `x` (al=
though this covers both rename and delete permissions).

> Section 4.1.1
>=20
> We only describe the "\" to "$" translation for the four supported
> system keywords, but it seems that it should be more generic (not that=

> we expect more IMAP system keywords to appear anytime soon)?

We do not expect any more system keywords like this ever. Such a keyword=
 would require an RFC rather than just registering it in the (now shared=
 with JMAP) IANA keywords registry, and at review time would be told to =
just use a normal keyword and put it in the registry. The handling is no=
t generic, in that 2 of the 6 system keywords are obsoleted and not used=
 in JMAP.

> Section 4.7
>=20
>  The server MAY forbid two email objects with the same exact [RFC5322]=

>  content, or even just with the same [RFC5322] Message-ID, to coexist
>  within an account; if the target account already has the email the
>  copy will be rejected with a standard "alreadyExists" error.
>=20
> This has some security considerations that should probably be mentione=
d
> in Section 9.4: when a user only has read privileges to a
> subset of the folders in an account, this behavior can be abused as an=

> oracle to determine whether a given message exists in the inaccessible=

> portions of that account. (Similarly for /import.)

Agreed, this should be documented. I have added to the "Partial account =
access" security consideration:

*If the server forbids a single account from having two identical messag=
es, or two messages with the same `Message-Id` header field, a user with=
 write access can use the error returned trying to create/import such a =
message to detect whether it already exists in an inaccessible portion o=
f the account.*

> Section 4.9
>=20
>  The following metadata properties on the Email objects will be "null"=

>  if requested:
>  [...]
>  o mailboxIds
>=20
> This seems in conflict with the Section 4.1.1 text that every Email "M=
UST
> belong to one or more mailboxes at all times (until it is deleted)."
> Presumably we want a broader disclaimer in 4.1.1 rather than any chang=
es
> here...

Yes. This is one of those things that feels "obvious" but is hard to wor=
d! I've changed:

*An email MUST belong to one or more mailboxes at all times=E2=80=A6*

to:

*An email in the mail store MUST belong to one or more mailboxes at all =
times*

> There may also be a related condition wherein an EmailSubmission objec=
t
> refers to an Email after the Email is deleted -- I didn't (yet) see te=
xt
> to indicate whether the emailId in the EmailSubmission is expected to
> still be resolvable, in which case there would potentially not be an
> associated Mailbox.

The email referenced by the EmailSubmission may be deleted, in which cas=
e the emailId property of the EmailSubmission will not resolve (and retu=
rn a `notFound` error if you try to fetch them). I have clarified this i=
n the EmailSubmission/set description which already talks about this bei=
ng deleted.

> ----------------------------------------------------------------------=

> COMMENT:
> ----------------------------------------------------------------------=

>=20
> Section 1.3.1
>=20
>  o *maxMailboxesPerEmail*: "UnsignedInt|null" The maximum number of
>  mailboxes that can be can assigned to a single email. [...]
>=20
> nit: My understanding (shaped solely by experience and inference) is t=
hat
> "email" is generally used to refer to a message, whereas "email accoun=
t"
> or "email address" would be used to refer to or associate with a thing=

> that can be a container for folders.

This *is* talking about a message. I will clarify it to say "Email objec=
t" and reference section 4.

>  o *maxSizeMailboxName*: "UnsignedInt" The maximum length, in (UTF-8)
>  octets, allowed for the name of a mailbox. This MUST be at least
>  100, although it is recommended servers allow more.
>=20
> The Unicode normalization form used by client/server could cause
> disagreement about whether a given name is permitted, though for the
> type of use this will get it's not clear that we need to be more
> rigorous.

I think this is sufficient for the use case it will get. It's an indicat=
ion the client should not send a name that (in the client's normalisatio=
n) is longer than this length. It does not guarantee the server will acc=
ept the name; as stated in the relevant section, the server may always a=
pply further policy restrictions on naming and reject it.

> Section 1.3.2
>=20
>  o *submissionExtensions*: "String[String[]]" A JMAP implementation
>  that talks to a Submission [RFC6409] server SHOULD have a
>  configuration setting that allows an administrator to expose a new
>  submission EHLO capability in this field. This allows a JMAP
>=20
> I think I'm confused by the workflow here. Suppose we have a JMAP
> client A talking to a JMAP server B, and B is also an SMTP client that=

> talks to MTA C. This capability is supposed to be about letting B
> expose a new EHLO capability to A, but only when C supports it?

Yes you're right, it's about B being able to easily expose new capabilit=
ies that C acquires to A without needing code changes (and without needi=
ng a new JMAP-specific specification document for the SMTP extension).

> We probably need some more text here to explain the scenario, even if =
my
> guess is correct.

OK, I've tried to clarify this:

*A JMAP implementation that talks to a Submission [@!RFC6409] server SHO=
ULD have a configuration setting that allows an administrator to modify =
the set of submission EHLO capabilities it may expose on this property. =
This allows a JMAP server to easily add access to a new submission exten=
sion without code changes. By default, the JMAP server should hide EHLO =
capabilities that are to do with the transport mechanism and thus are on=
ly relevant to the JMAP server (for example PIPELINING, CHUNKING, or STA=
RTTLS).*

>  server to gain access to a new submission extension without code
>  changes. By default, the JMAP server should hide EHLO
>  capabilities that are to do with the transport mechanism and thus
>  are only relevant to the JMAP server (for example PIPELINING,
>  CHUNKING, or STARTTLS). Each key in the object is the _ehlo-
>  name_, and the value is a list of _ehlo-args_. Examples of
>  Submission extensions to include:
>=20
> The description here could probably be reworded/reorderd for clarity,
> since we don't start talking about what the actual map keys/values are=

> until the penultimate sentence, at present.

Agreed. I have added a description of what the property represents and h=
ow it is formed to the top:

*The set of SMTP submission extensions supported by the server, which th=
e client may use when creating an EmailSubmission object (see section 7)=
. Each key in the object is the *ehlo-name*, and the value is a list of =
*ehlo-args*.*

The extra discussion then follows from this.

> Section 1.5
>=20
>  In addition, servers MUST support pushing state changes for a type
>  called "EmailDelivery". [...]
>=20
> Er, is this only servers that are implementing urn:ietf:params:jmap:ma=
il?

Yes, it should be. I've clarified this.

> Section 2
>=20
>  o *id*: "Id" (immutable; server-set) The id of the mailbox.
>=20
> Since jmap-core now has all Ids as immutable and server-set, is this
> sort of notation considered redundant in jmap-mail? (Throughout; this
> is just the first instance.)

I think it is helpful to reiterate these attributes for consistency with=
 the other property definitions.

>  o *sortOrder*: "UnsignedInt" (default: 0) Defines the sort order of
>  [...]
>  equal order SHOULD be sorted in alphabetical order by name. The
>  sorting SHOULD take into account locale-specific character order
>  convention.
>=20
> I think this last SHOULD is probably not a 2119 SHOULD, and therefore
> should just be "should".

Agreed, done.

>  o *unreadThreads*: "UnsignedInt" (server-set) An indication of the
>  number of "unread" threads in the mailbox. For compatibility with
>  existing implementations, the way "unread threads" is determined
>  is not mandated in this document. The simplest solution to
>=20
> Do we really have competing *J*MAP implementations that disagree on
> this? Or is the idea to preserve compatibility with IMAP
> clients or other current implementations that attempt to determine
> threading relationships (in which case, that should probably be mentio=
ned)?

Not JMAP implementations, but the same functionality has already been im=
plemented for proprietary APIs in at least the two documented forms:
 * Gmail currently does the "easy" option of just number of unique threa=
ds with unread messages in that mailbox.
 * FastMail currently does the "right" option of counting the thread as =
unread even if the unread message is in another mailbox (so the number y=
ou see in the sidebar corresponds to the number of unread threads you se=
e if you open it).
It seemed more likely that servers would ignore specific requirements th=
an change to match, hence this text.

>  o *myRights*: "MailboxRights" (server-set) The set of rights (ACLs)
>  the user has in relation to this mailbox. These are backwards
>  compatible with IMAP ACLs, as defined in [RFC4314]. A
>  _MailboxRights_ object has the following properties:
>=20
> I read this as saying that all of the properties must be present in th=
e
> object, such that omitting a property is not a permitted synonym for i=
t
> having a value of false. Is this reading correct?

Yes.

> If so, what should a client do if the server misbehaves?

Well, that's undefined really. The server could misbehave in any number =
of ways, and we can't specify how the client should handle every case. I=
n this particular instance I would probably expect implementations in we=
akly typed languages to treat absence the same as false and strongly typ=
ed implementations to reject the Mailbox object on load from the server =
as invalid. But that's just the emergent behaviour I would consider most=
 likely, not a requirement.

>  * *mayReadItems*: "Boolean" If true, the user may use this
>  [...]
>  but not the parent mailbox, this may be "false". Corresponds
>  to IMAP ACLs "lr".
>=20
> "Corresponds to" is perhaps imprecise, if one is thinking about the IM=
AP
> ACL as being the authoritative source of information (which not all
> readers will!). The point being that just 'l' or just 'r' would not be=

> enough to get this, and since JMAP is specifying a slightly more
> abstract mapping than standard IMAP rights, we should be precise about=

> the mapping, and arguably in both directions. (Not just here, but for
> all the compound ACLs, of course. Also for IMAP ACL 'x', which has two=

> corresponding JMAP permissions.)

For mayReadItems and mayRemoveItems (which map to a combination of IMAP =
ACLs due to difference in API design) I have added a further clarificati=
on, like:

*Corresponds to IMAP ACLs `lr` (if mapping from IMAP, both are required =
for this to be `true`).*

>  * *maySetSeen*: "Boolean" The user may add or remove the "$seen"
>  keyword to/from an email. If an email belongs to multiple
>  mailboxes, the user may only modify "$seen" if *all* of the
>  mailboxes have this permission. Corresponds to IMAP ACL "s".
>=20
> nit: in the intro, we talk of "rights the user has in relation to this=

> mailbox", so it's a bit disjoint to talk of mailboxes having permisson=
s.
> (Here and below.)

Yes, I have rewritten to:

*If an email belongs to multiple mailboxes, the user may only modify *`*=
$seen*`* if they have this permission for ***all*** of the mailboxes.*

>  o *isSubscribed*: "Boolean" Has the user indicated they wish to see
>  [...]
>  choose to ignore this property, either entirely for ease of
>  implementation, or just for the primary account (which is normally
>=20
> nit: We don't really provide a formal definition of "primary account"
> either here or in jmap-core.

Yes, this was a concept in an earlier draft that got removed. I have now=
 updated this to read:

*However, clients MAY choose to ignore this property, either entirely fo=
r ease of implementation, or just for an account where `isPersonal` is `=
true` (indicating it is the user's own, rather than a shared account).*

> Section 2.1
>=20
>  Standard "/get" method. The _ids_ argument may be "null" to fetch
>=20
> I thought I had said something on jmap-core but maybe I only thought
> about it: my personal preference would be for section references into
> jmap-core to provide a foundation for what the "standard method" is,
> though I will not insist upon it.
>  all at once.

I've added section references, so instead of just saying *Standard "/get=
" method* it now says:

*Standard "/get" method as described in [@!I-D.ietf-jmap-core] section 5=
.1.*

(and similar where the same pattern is used elsewhere).

> Section 2.2
>=20
> I might say explicitly that "a non-null updatedProperties response
> argument indicates that the mailbox contents are unchanged from the ol=
d
> state, with only the counts having changed", since these semantics are=

> potentially unexpected.

It's not the mailbox contents, it's the properties on the mailbox object=
. (I would presume mailbox contents refers to the messages in the mailbo=
x, which clearly have changed if the counts have changed). I think the c=
urrent text here is OK.

> Section 2.3
>=20
>  Standard "/query" method, but with the following additional argument:=

>=20
> (Generic comment, not scoped to just this section): are we going to ne=
ed
> to draw a distinction between input and ouput arguments for any of the=

> additions we make to standard methods?

Hmm, I'll reword this to "additional request argument" just to be sure t=
his is clear.

>  o *role*: "String|null" The Mailbox _role_ property must match the
>  given value exactly.
>=20
> So the client is responsible for lower-casing values from the IMAP
> Mailbox Name Attributes registry and the server must not do a
> case-insensitive comparison?

Yes.

>  The following properties MUST be supported for sorting:
>=20
> Just to be pedantic, we're talking about the values of the "property"
> property within the Comparator object, right? (This is one of those
> annoying things at the intersection of technical specifications and
> natural English language.)

Yes, I've tried to clarify this.

> Section 4
>=20
>  Due to the number of properties involved, the set of _Email_
>  properties is specified over the following three sub-sections.
>=20
> It's probably worth a note that the subsections are for purposes of
> document organization and are not reflected in the wire protocol
> structure -- the properties involved are all top-level peers, across t=
he
> three subsections. (Assuming that's correct, of course.)

That is correct, I'll add a note.

> Section 4.1
>=20
> I assume it was a conscious WG decision to not present a full
> consolidated schema for Email. But I want to check, since I think (not=

> having one) that it would have helped my understanding, and I try to b=
e
> open to discovering the errors of my ways...
>=20
>  o _textBody_/_htmlBody_: These provide a list of parts that should
>  be rendered sequentially as the "body" of the message. This is a
>  list rather than a single part as messages may have headers and/or
>  footers appended/prepended as separate parts as they are
>  transmitted, and some clients send text and images intended to be
>  displayed inline in the body (or even videos and sound clips) as
>  multiple parts rather than a single HTML part with referenced
>  images.
>=20
> Some guidance related to interpreting these lists and avoiding the eFa=
il
> (efail.de) class of attacks is probably in order -- the HTML parts
> should get some different containers around their processing. This
> could potentially go here, or in Section 9.2.

Yes, I have added a new subsection to the security considerations:

*Messages may consist of multiple parts to be displayed sequentially as =
a body. Clients MUST render each part in isolation and MUST NOT concaten=
ate the raw text values to render. Doing so may change the overall seman=
tics of the message. If the client or server is decrypting a PGP or S/MI=
ME encrypted part, concatenating with other parts may leak the decrypted=
 text to an attacker, as described in [EFAIL]* (reference to paper added=
).

>  Because MIME allows for multiple representations of the same data
>  (using "multipart/alternative"), there is a textBody property (which
>  prefers a plain text representation) and an htmlBody property (which
>  prefers an HTML representation) to accommodate the two most common
>  client requirements. The same part may appear in both lists where
>  there is no alternative between the two.
>=20
> (soapbox) It's annoying when I get mime/multipart with HTML in the
> text/plain section. Is this clause going to allow for that same sort o=
f
> misclassification?

If the sender puts HTML in a part marked `text/plain` then, well, the se=
nder is broken and there's not much we can do. (Clients can attempt to s=
niff the content and treat as `text/html` if they want but of course the=
re's always the slim chance that someone really did want to send a bunch=
 of HTML code as plain text).

This is an independent issue to the htmlBody/textBody properties though.=
 These are simply a list of part ids, and those parts have a content typ=
e which the client needs to use to determine how to render it. There is =
a possibility that a client doesn't read the spec and presumes it will a=
lways get plain text in the textBody array, but then again the client co=
uld ignore any part of the spec and start doing silly things. Such a mis=
take is likely to become obvious and be fixed at some point.

>  Due to the number of properties involved, the set of _Email_
>  properties is specified over the following three sub-sections.
>=20
> nit: are we at four sub-sections now?

Yes, I'll update that.

> Section 4.1.1
>=20
>  The IMAP "\Recent" keyword is not exposed via JMAP. The IMAP
>  "\Deleted" keyword is also not present: IMAP uses a delete+expunge
>  model, which JMAP does not. Any message with the "\Deleted"
>  keyword MUST NOT be visible via JMAP (including as part of any
>  mailbox counts). Users may add arbitrary keywords to an email.
>=20
> IIRC, Trash gets special handling with respect to deletion in JMAP
> commands; does it also get special treatment w.r.t \Deleted translatio=
n
> from IMAP to JMAP?

I'm not quite sure what you're asking here. As stated in this text, if s=
upporting IMAP and JMAP on the same server, the server MUST treat \Delet=
ed messages the same as if they were expunged when accessing via JMAP.

> Section 4.1.2.2
>=20
> This escape valve for "Any header not defined in [RFC5322] or [RFC2369=
]"
> (here, et seq) seems like it might benefit from some general guidance
> about implementations applying common sense, i.e., allowing servers th=
e
> ability to deny requests for a given form for such new headers in orde=
r
> to prevent nonsense behavior.

A bit torn on this. It's not an interoperable definition but at the same=
 time it is perhaps reasonable to change this to:

*Any header not defined in [@!RFC5322] or [@!RFC2369], except where the =
server has determined this is obviously nonsense.*

I'm not convinced it's worth it overall; I'll leave it for now.

> Section 4.1.4
>=20
>  o *partId*: "String|null" Identifies this part uniquely within the
>  Email. This is scoped to the _emailId_ and has no meaning outside
>  of the JMAP Email object representation. This is "null" if, and
>  only if, the part is of type "multipart/*".
>=20
> The prose isn't the super-best indicator that the asterisk is
> intended to have wildcarding behavior.

I've added to the introduction:

*In the following subsections the common notational convention for wildc=
ards has been adopted for content types, so `foo/*` means any content ty=
pe that starts with `foo/`.*

> Section 4.4.1
>=20
> Just to double-check: the different fencepost behavior for
> minSize/maxSize is intentional?

Yes. Ranges, and properties defining ranges, are intended to match the b=
ehaviour most prevalent in common programming languages today: inclusive=
 start, exclusive end. This is consistently applied across the spec (e.g=
. vacation response from/to).

>  o *text*: "String" Looks for the text in emails. The server SHOULD
>  look up text in the _from_, _to_, _cc_, _bcc_, _subject_ header
>  fields of the message, and inside any "text/*" or other body parts
>  that may be converted to text by the server. The server MAY
>  extend the search to any additional textual property.
>=20
> side note: as a mail user, I like to be able to use text search to
> conclusively determine that a given message/topic is *not* in a given
> mailbox. This weak "SHOULD" language does not provide me that
> guarantee, though I can see how it makes sense in the protocol design =
to
> leave the flexibility for implementors, here.

Hmm, I think it's safe enough to change this to something a little stron=
ger:

*Looks for the text in emails. The server MUST look up text in the *from=
*, *to*, *cc*, *bcc*, *subject* header fields of the message, and SHOULD=
 look inside any `text/*` or other body parts that may be converted to t=
ext by the server. The server MAY extend the search to any additional te=
xtual property.*

>  o When searching inside a "text/html" body part, any text considered
>  markup rather than content SHOULD be ignored, including HTML tags
>  and most attributes, anything inside the "<head>" tag, CSS and
>  JavaScript. Attribute content intended for presentation to the
>  user such as "alt" and "title" SHOULD be considered in the search.
>=20
> This would seem to leave no reliable way for a security researcher to
> (e.g.) search for snippets of attack javascript in received mails
> without downloading all of them.

Perhaps, and maybe this would be a worthy extension. But the default beh=
aviour should absolutely be as described to correspond with general user=
 expectation.

>  o Text SHOULD be matched in a case-insensitive manner.
>=20
> Is the server going to have a sense of the user's locale as needed for=

> fully generic case-insensitive comparison?

This will be vendor dependent, but often yes. (For example at FastMail w=
e try to determine the prevalent language in a message in order to use t=
he appropriate stemming algorithm for indexing it for search; the same i=
nformation could be used for determining what case-sensitivity method to=
 use).

>  o Tokens MAY be matched on a whole-word basis using stemming (so for
>  example a text search for "bus" would match "buses" but not
>  "business").
>=20
> I think this is supposed to not apply to the "phrase search" two bulle=
ts
> above, but greater clarity would be appreciated.

OK, I'll amend to:

*Tokens (not part of a phrase) MAY be =E2=80=A6*

>  o *hasKeyword* - This value MUST be considered "true" if the email
>  has the keyword given as an additional _keyword_ property on the
>  _Comparator_ object, or "false" otherwise.
>=20
> I strongly suggest an explicit listing of the "additional properties a=
s
> reuqired for specific sort operations" of the _Comparator_ type when
> used for Emails.

OK, I've added the following to the introductory paragraph above the lis=
t:

*The following values for the "property" field on the Comparator object =
SHOULD be supported for sorting. When specifying a "hasKeyword", "allInT=
hreadHaveKeyword" or "someInThreadHaveKeyword" sort, the Comparator obje=
ct MUST also have a keyword property.*

> Section 4.6
>=20
>  When emptying the trash, clients SHOULD NOT destroy emails which are
>  also in a mailbox other than trash. For those emails, they SHOULD
>  just remove the Trash mailbox from the email.
>=20
> This last SHOULD seems to be duplicated in Section 2.

Thanks, I've fixed this duplication.

>  For successfully created Email objects, the _created_ response
>  contains the _id_, _blobId_, _threadId_ and _size_ properties of the
>  object.
>=20
> For partial drafts, the behavior where a threadId always gets assigned=

> on first touch is perhaps interesting, as subsequent edits might cause=

> the effective threading to change, which would necessitate a new Id as=

> well (IIUC). I'm not sure if there's anything weird there that a clien=
t
> would need to be prepared for, though. (Maybe not, given that it alway=
s
> is going to get back an _id_ from /set, and should be using that.)

Yes, email content is immutable, so to update a draft you need to create=
 a new email and destroy the old one. This means you will always get a n=
ew id for the message (and possibly a different thread id to before too)=
.

> Section 4.8
>=20
>  If the blob referenced is not a valid [RFC5322] message, the server
>  MAY modify the message to fix errors (such as removing NUL octets or
>  fixing invalid headers). If it does this, the _blobId_ on the
>  response MUST represent the new representation and therefore be
>  different to the _blobId_ on the EmailImport object. Alternatively,
>  the server MAY reject the import with an "invalidEmail" SetError.
>=20
> In general, having more options like this can increase the fragility o=
f
> the ecosystem, as a client might be written to assume one behvaior and=

> then be not as portable to a different server. I'm not sure that
> there's a clear way to mandate a single type of behavior here, but wan=
t
> to be sure that the topic was discussed.

Yes, it was discussed. Both behaviours are reasonable and exist in equiv=
alent IMAP implementations, so this seemed the best solution for the JMA=
P spec.

> Section 6
>=20
>  o *email*: "String" (immutable) The "From" email address the client
>  MUST use when creating a new message from this identity. The
>  value MAY alternatively be of the form "*@example.com", in which
>  case the client may use any valid email address ending in
>  "@example.com".
>=20
> I mostly assume this is supposed to be for a generic domain and not
> special-casing example.com literally. Some extra text/formatting would=

> help with that.

Your interpretation is correct. I've rewritten this to:

*If the mailbox part of the address (the section before the "@") is the =
single character `*` (e.g. `*@example.com`) then the client may use any =
valid address ending in that domain (e.g. **`foo@example.com`**).*

> Section 7.3
>=20
> The associated identityId is not a queriable property?

Yeh, it probably should be for consistency. I'll add this.

> Section 7.5
>=20
>  o *onSuccessUpdateEmail*: "Id[Email]|null" A map of _EmailSubmission
>  id_ to an object containing properties to update on the Email
>  object referenced by the EmailSubmission if the create/update/
>  destroy succeeds. (For references to EmailSubmission creations,
>  this is equivalent to a back-reference so the id will be the
>  creation id prefixed with a "#".)
>=20
> I'm confused by the "Id[Email]" part -- we describe it as a map to "an=

> object containing properties to update", but that's not exactly what a=
n
> Email object is. Is this more of a PatchObject than an Email per se?

Yes, this should be `Id[PatchObject]`; I've updated this. (A patch objec=
t to update an Email of course, but that's clear from the description).

> nit: I'd also tweak the wording of the parenthetical a bit (here and
> below), to something like "when applying to EmailSubmissions created i=
n
> the same "/set" invocation, ..."

Thanks, that's clearer, I'll update.

> Section 8
>=20
> By a literal reading, fromDate and toDate are in conflict with each
> other (when non-null). That is, the fromDate text does not admit the
> possibility of an end to the vacation response period, and vice versa.=


OK, I'll update the definitions to clarify.

> Section 9
>=20
> I'd consider adding another sentence like "Additional considerations
> specific to the data types and functionality introduced by this docume=
nt
> are described in the following subsections."

Sure, done.

> Section 9.3
>=20
> I know we don't want this to devolve into a generic discussion of the
> flaws of email, but perhaps the envelope-from/body-from distinction is=

> worth repeating, with a note that JMAP has provisions for ACLs on
> submission that check both.

I have added the following section to the security considerations

**Permission to send from an address***
*
*
*
*The email ecosystem has in recent years moved towards associating trust=
 with the From address in the [@!RFC5322] message, particularly with sch=
emes such as DMARC ([@?RFC7489]).**
*
*
*
*The set of Identity objects (see section 6) in an account lets the clie=
nt know which email addresses the user has permission to send from. Each=
 email submission is associated with an identity, and servers SHOULD rej=
ect submissions where the `From` header field of the email does not corr=
espond to the associated identity.**
*
*
*
*The server MAY allow an exception to send an exact copy of an existing =
message received into the mail store to another address (otherwise known=
 as "redirecting" or "bouncing"), although it is RECOMMENDED the server =
limit this to destinations the user has verified they also control.**
*
*
*
*If the user attempts to create a new Identity, the server MUST reject i=
t with the appropriate error if the user does not have permission to use=
 that email address to send from.**
*
*
*
*The [@!RFC5321] SMTP MAIL FROM address is often confused with the [@!RF=
C5322] message header. The user generally only ever sees the message hea=
der address, and this is the primary one to enforce. However the server =
MUST also enforce appropriate restrictions on the [@!RFC5321] MAIL FROM =
address to stop the user from flooding a 3rd party address with bounces =
and non-delivery notices.**
*
*
*
*The JMAP submission model provides separate errors for impermissible ad=
dresses in either context.*

Cheers,
Neil.
--785cf231195e4e3ea399fc6132e63639
Content-Type: text/html;charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>Hi Benjami=
n,<br></div><div><br></div><div>Thanks for the detailed feedback again.<=
br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"=
><div>------------------------------------------------------------------=
----<br></div><div>DISCUSS:<br></div><div>------------------------------=
----------------------------------------<br></div><div><br></div><div>Se=
ction 2<br></div><div><br></div><div>I think we need more precise langua=
ge than "corresponds to" for the<br></div><div>relationship between JMAP=
 MailboxRights and IMAP ACLs, specifically<br></div><div>because JMAP di=
stinguishes mayRename and mayDelete but IMAP just has the<br></div><div>=
single 'x' ACL.&nbsp; (More in the COMMENT section, but the non-isomporp=
hic<br></div><div>mapping of 'x' is the only DISCUSS-worthy part.)<br></=
div></blockquote><div><br></div><div>I believe "corresponds to" is gener=
ally the right way of phrasing this as we do not want to mandate which u=
nderlying data model servers should use for their ACLs (e.g. if JMAP is =
authoritative you may have <code style=3D"border-radius:3px;border:1px s=
olid #ccc;padding:1px 3px;background:#f6f6f6;font-family:menlo,consolas,=
monospace;font-size:90%;">mayRename: true</code> but <code style=3D"bord=
er-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6f6;f=
ont-family:menlo,consolas,monospace;font-size:90%;">mayDelete: false</co=
de>; in such a case you would have to not expose the <code style=3D"bord=
er-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6f6;f=
ont-family:menlo,consolas,monospace;font-size:90%;">x</code> ACL over IM=
AP. If using IMAP as authoritative, then obviously the <code style=3D"bo=
rder-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6f6=
;font-family:menlo,consolas,monospace;font-size:90%;">mayRename</code> a=
nd <code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3p=
x;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;=
">mayDelete</code> values would always be the same over JMAP.)<br></div>=
<div><br></div><div>However, I've updated the spec to make this a little=
 more obvious, so it now reads:<br></div><ul><li><b>mayRename</b>: <code=
 style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3px;backgr=
ound:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;">Boolea=
n</code><br>The user may rename the mailbox or make it a child of anothe=
r mailbox. Corresponds to IMAP ACL <code style=3D"border-radius:3px;bord=
er:1px solid #ccc;padding:1px 3px;background:#f6f6f6;font-family:menlo,c=
onsolas,monospace;font-size:90%;">x</code>&nbsp;(although this covers bo=
th rename and delete permissions).<br></li><li><b>mayDelete</b>: <code s=
tyle=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3px;backgrou=
nd:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;">Boolean<=
br></code>The user may delete the mailbox itself. Corresponds to IMAP AC=
L <code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3px=
;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;"=
>x</code> (although this covers both rename and delete permissions).<br>=
</li></ul><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite=
"><div>Section 4.1.1<br></div><div><br></div><div>We only describe the "=
\" to "$" translation for the four supported<br></div><div>system keywor=
ds, but it seems that it should be more generic (not that<br></div><div>=
we expect more IMAP system keywords to appear anytime soon)?<br></div></=
blockquote><div><br></div><div>We do not expect any more system keywords=
 like this ever. Such a keyword would require an RFC rather than just re=
gistering it in the (now shared with JMAP) IANA keywords registry, and a=
t review time would be told to just use a normal keyword and put it in t=
he registry. The handling is not generic, in that 2 of the 6 system keyw=
ords are obsoleted and not used in JMAP.<br></div><div><br></div><blockq=
uote id=3D"fastmail-quoted" type=3D"cite"><div>Section 4.7<br></div><div=
><br></div><div>&nbsp;&nbsp; The server MAY forbid two email objects wit=
h the same exact [RFC5322]<br></div><div>&nbsp;&nbsp; content, or even j=
ust with the same [RFC5322] Message-ID, to coexist<br></div><div>&nbsp;&=
nbsp; within an account; if the target account already has the email the=
<br></div><div>&nbsp;&nbsp; copy will be rejected with a standard "alrea=
dyExists" error.<br></div><div><br></div><div>This has some security con=
siderations that should probably be mentioned<br></div><div>in Section 9=
.4: when a user only has read privileges to a<br></div><div>subset of th=
e folders in an account, this behavior can be abused as an<br></div><div=
>oracle to determine whether a given message exists in the inaccessible<=
br></div><div>portions of that account.&nbsp; (Similarly for /import.)<b=
r></div></blockquote><div><br></div><div>Agreed, this should be document=
ed. I have added to the "Partial account access" security consideration:=
<br></div><div><br></div><div><i>If the server forbids a single account =
from having two identical messages, or two messages with the same `Messa=
ge-Id` header field, a user with write access can use the error returned=
 trying to create/import such a message to detect whether it already exi=
sts in an inaccessible portion of the account.</i><br></div><div><br></d=
iv><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>Section 4.9<br>=
</div><div><br></div><div>&nbsp;&nbsp; The following metadata properties=
 on the Email objects will be "null"<br></div><div>&nbsp;&nbsp; if reque=
sted:<br></div><div>&nbsp;&nbsp; [...]<br></div><div>&nbsp;&nbsp; o&nbsp=
; mailboxIds<br></div><div><br></div><div>This seems in conflict with th=
e Section 4.1.1 text that every Email "MUST<br></div><div>belong to one =
or more mailboxes at all times (until it is deleted)."<br></div><div>Pre=
sumably we want a broader disclaimer in 4.1.1 rather than any changes<br=
></div><div>here...<br></div></blockquote><div><br></div><div>Yes. This =
is one of those things that feels "obvious" but is hard to word! I've ch=
anged:<br></div><div><br></div><div><i>An email MUST belong to one or mo=
re mailboxes at all times=E2=80=A6</i><br></div><div><br></div><div>to:<=
br></div><div><br></div><div><i>An email in the mail store MUST belong t=
o one or more mailboxes at all times</i><br></div><div><br></div><blockq=
uote id=3D"fastmail-quoted" type=3D"cite"><div>There may also be a relat=
ed condition wherein an EmailSubmission object<br></div><div>refers to a=
n Email after the Email is deleted -- I didn't (yet) see text<br></div><=
div>to indicate whether the emailId in the EmailSubmission is expected t=
o<br></div><div>still be resolvable, in which case there would potential=
ly not be an<br></div><div>associated Mailbox.<br></div></blockquote><di=
v><br></div><div>The email referenced by the EmailSubmission may be dele=
ted, in which case the emailId property of the EmailSubmission will not =
resolve (and return a `notFound` error if you try to fetch them). I have=
 clarified this in the EmailSubmission/set description which already tal=
ks about this being deleted.<br></div><div><br></div><blockquote id=3D"f=
astmail-quoted" type=3D"cite"><div>-------------------------------------=
---------------------------------<br></div><div>COMMENT:<br></div><div>-=
---------------------------------------------------------------------<br=
></div><div><br></div><div>Section 1.3.1<br></div><div><br></div><div>&n=
bsp;&nbsp; o&nbsp; *maxMailboxesPerEmail*: "UnsignedInt|null" The maximu=
m number of<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailboxes that =
can be can assigned to a single email.&nbsp; [...]<br></div><div><br></d=
iv><div>nit: My understanding (shaped solely by experience and inference=
) is that<br></div><div>"email" is generally used to refer to a message,=
 whereas "email account"<br></div><div>or "email address" would be used =
to refer to or associate with a thing<br></div><div>that can be a contai=
ner for folders.<br></div></blockquote><div><br></div><div>This <i>is</i=
> talking about a message. I will clarify it to say "Email object" and r=
eference section 4.<br></div><div><br></div><blockquote id=3D"fastmail-q=
uoted" type=3D"cite"><div>&nbsp;&nbsp; o&nbsp; *maxSizeMailboxName*: "Un=
signedInt" The maximum length, in (UTF-8)<br></div><div>&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; octets, allowed for the name of a mailbox.&nbsp; This MUS=
T be at least<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100, although=
 it is recommended servers allow more.<br></div><div><br></div><div>The =
Unicode normalization form used by client/server could cause<br></div><d=
iv>disagreement about whether a given name is permitted, though for the<=
br></div><div>type of use this will get it's not clear that we need to b=
e more<br></div><div>rigorous.<br></div></blockquote><div><br></div><div=
>I think this is sufficient for the use case it will get. It's an indica=
tion the client should not send a name that (in the client's normalisati=
on) is longer than this length. It does not guarantee the server will ac=
cept the name; as stated in the relevant section, the server may always =
apply further policy restrictions on naming and reject it.<br></div><div=
><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>Section=
 1.3.2<br></div><div><br></div><div>&nbsp;&nbsp; o&nbsp; *submissionExte=
nsions*: "String[String[]]" A JMAP implementation<br></div><div>&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; that talks to a Submission [RFC6409] server SHOUL=
D have a<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; configuration sett=
ing that allows an administrator to expose a new<br></div><div>&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; submission EHLO capability in this field.&nbsp; Th=
is allows a JMAP<br></div><div><br></div><div>I think I'm confused by th=
e workflow here.&nbsp; Suppose we have a JMAP<br></div><div>client A tal=
king to a JMAP server B, and B is also an SMTP client that<br></div><div=
>talks to MTA C.&nbsp; This capability is supposed to be about letting B=
<br></div><div>expose a new EHLO capability to A, but only when C suppor=
ts it?<br></div></blockquote><div><br></div><div>Yes you're right, it's =
about B being able to easily expose new capabilities that C acquires to =
A without needing code changes (and without needing a new JMAP-specific =
specification document for the SMTP extension).<br></div><div><br></div>=
<blockquote id=3D"fastmail-quoted" type=3D"cite"><div>We probably need s=
ome more text here to explain the scenario, even if my<br></div><div>gue=
ss is correct.<br></div></blockquote><div><br></div><div>OK, I've tried =
to clarify this:<br></div><div><br></div><div><i>A JMAP implementation t=
hat talks to a Submission [@!RFC6409] server SHOULD have a configuration=
 setting that allows an administrator to modify the set of submission EH=
LO capabilities it may expose on this property. This allows a JMAP serve=
r to easily add access to a new submission extension without code change=
s. By default, the JMAP server should hide EHLO capabilities that are to=
 do with the transport mechanism and thus are only relevant to the JMAP =
server (for example PIPELINING, CHUNKING, or STARTTLS).</i><br></div><di=
v><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; server to gain access to a new submission exten=
sion without code<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; changes.&=
nbsp; By default, the JMAP server should hide EHLO<br></div><div>&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; capabilities that are to do with the transport m=
echanism and thus<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; are only =
relevant to the JMAP server (for example PIPELINING,<br></div><div>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; CHUNKING, or STARTTLS).&nbsp; Each key in the =
object is the _ehlo-<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name_,=
 and the value is a list of _ehlo-args_.&nbsp; Examples of<br></div><div=
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Submission extensions to include:<br></d=
iv><div><br></div><div>The description here could probably be reworded/r=
eorderd for clarity,<br></div><div>since we don't start talking about wh=
at the actual map keys/values are<br></div><div>until the penultimate se=
ntence, at present.<br></div></blockquote><div><br></div><div>Agreed. I =
have added a description of what the property represents and how it is f=
ormed to the top:<br></div><div><br></div><div><i>The set of SMTP submis=
sion extensions supported by the server, which the client may use when c=
reating an EmailSubmission object (see section 7). Each key in the objec=
t is the *ehlo-name*, and the value is a list of *ehlo-args*.</i><br></d=
iv><div><br></div><div>The extra discussion then follows from this.<br><=
/div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><di=
v>Section 1.5<br></div><div><br></div><div>&nbsp;&nbsp; In addition, ser=
vers MUST support pushing state changes for a type<br></div><div>&nbsp;&=
nbsp; called "EmailDelivery".&nbsp; [...]<br></div><div><br></div><div>E=
r, is this only servers that are implementing urn:ietf:params:jmap:mail?=
<br></div></blockquote><div><br></div><div>Yes, it should be. I've clari=
fied this.<br></div><div><br></div><blockquote id=3D"fastmail-quoted" ty=
pe=3D"cite"><div>Section 2<br></div><div><br></div><div>&nbsp;&nbsp; o&n=
bsp; *id*: "Id" (immutable; server-set) The id of the mailbox.<br></div>=
<div><br></div><div>Since jmap-core now has all Ids as immutable and ser=
ver-set, is this<br></div><div>sort of notation considered redundant in =
jmap-mail?&nbsp; (Throughout; this<br></div><div>is just the first insta=
nce.)<br></div></blockquote><div><br></div><div>I think it is helpful to=
 reiterate these attributes for consistency with the other property defi=
nitions.<br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=
=3D"cite"><div>&nbsp;&nbsp; o&nbsp; *sortOrder*: "UnsignedInt" (default:=
 0) Defines the sort order of<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p; [...]<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; equal order SHOULD=
 be sorted in alphabetical order by name.&nbsp; The<br></div><div>&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp; sorting SHOULD take into account locale-specifi=
c character order<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conventio=
n.<br></div><div><br></div><div>I think this last SHOULD is probably not=
 a 2119 SHOULD, and therefore<br></div><div>should just be "should".<br>=
</div></blockquote><div><br></div><div>Agreed, done.<br></div><div><br><=
/div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp; =
o&nbsp; *unreadThreads*: "UnsignedInt" (server-set) An indication of the=
<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; number of "unread" threads=
 in the mailbox.&nbsp; For compatibility with<br></div><div>&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp; existing implementations, the way "unread threads" is=
 determined<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is not mandated=
 in this document.&nbsp; The simplest solution to<br></div><div><br></di=
v><div>Do we really have competing *J*MAP implementations that disagree =
on<br></div><div>this?&nbsp; Or is the idea to preserve compatibility wi=
th IMAP<br></div><div>clients or other current implementations that atte=
mpt to determine<br></div><div>threading relationships (in which case, t=
hat should probably be mentioned)?<br></div></blockquote><div><br></div>=
<div>Not JMAP implementations, but the same functionality has already be=
en implemented for proprietary APIs in at least the two documented forms=
:<br></div><ul><li>Gmail currently does the "easy" option of just number=
 of unique threads with unread messages in that mailbox.<br></li><li>Fas=
tMail currently does the "right" option of counting the thread as unread=
 even if the unread message is in another mailbox (so the number you see=
 in the sidebar corresponds to the number of unread threads you see if y=
ou open it).<br></li></ul><div>It seemed more likely that servers would =
ignore specific requirements than change to match, hence this text.<br><=
/div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><di=
v>&nbsp;&nbsp; o&nbsp; *myRights*: "MailboxRights" (server-set) The set =
of rights (ACLs)<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the user h=
as in relation to this mailbox.&nbsp; These are backwards<br></div><div>=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compatible with IMAP ACLs, as defined in =
[RFC4314].&nbsp; A<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _Mailbox=
Rights_ object has the following properties:<br></div><div><br></div><di=
v>I read this as saying that all of the properties must be present in th=
e<br></div><div>object, such that omitting a property is not a permitted=
 synonym for it<br></div><div>having a value of false.&nbsp; Is this rea=
ding correct?<br></div></blockquote><div><br></div><div>Yes.<br></div><d=
iv><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>If so=
, what should a client do if the server misbehaves?<br></div></blockquot=
e><div><br></div><div>Well, that's undefined really. The server could mi=
sbehave in any number of ways, and we can't specify how the client shoul=
d handle every case. In this particular instance I would probably expect=
 implementations in weakly typed languages to treat absence the same as =
false and strongly typed implementations to reject the Mailbox object on=
 load from the server as invalid. But that's just the emergent behaviour=
 I would consider most likely, not a requirement.<br></div><div><br></di=
v><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; *&nbsp; *mayReadItems*: "Boolean" If true, the user may u=
se this<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [=
...]<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; but =
not the parent mailbox, this may be "false".&nbsp; Corresponds<br></div>=
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to IMAP ACLs "lr".=
<br></div><div><br></div><div>"Corresponds to" is perhaps imprecise, if =
one is thinking about the IMAP<br></div><div>ACL as being the authoritat=
ive source of information (which not all<br></div><div>readers will!).&n=
bsp; The point being that just 'l' or just 'r' would not be<br></div><di=
v>enough to get this, and since JMAP is specifying a slightly more<br></=
div><div>abstract mapping than standard IMAP rights, we should be precis=
e about<br></div><div>the mapping, and arguably in both directions.&nbsp=
; (Not just here, but for<br></div><div>all the compound ACLs, of course=
.&nbsp; Also for IMAP ACL 'x', which has two<br></div><div>corresponding=
 JMAP permissions.)<br></div></blockquote><div><br></div><div>For mayRea=
dItems and mayRemoveItems (which map to a combination of IMAP ACLs due t=
o difference in API design) I have added a further clarification, like:<=
br></div><div><br></div><div><i>Corresponds to IMAP ACLs <code style=3D"=
border-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6=
f6;font-family:menlo,consolas,monospace;font-size:90%;">lr</code>&nbsp;(=
if mapping from IMAP, both are required for this to be <code style=3D"bo=
rder-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6f6=
;font-family:menlo,consolas,monospace;font-size:90%;">true</code>).</i><=
br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"=
><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp; *maySetSeen*: "Boolean" The=
 user may add or remove the "$seen"<br></div><div>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; keyword to/from an email.&nbsp; If an email b=
elongs to multiple<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp; mailboxes, the user may only modify "$seen" if *all* of the<br=
></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailboxes h=
ave this permission.&nbsp; Corresponds to IMAP ACL "s".<br></div><div><b=
r></div><div>nit: in the intro, we talk of "rights the user has in relat=
ion to this<br></div><div>mailbox", so it's a bit disjoint to talk of ma=
ilboxes having permissons.<br></div><div>(Here and below.)<br></div></bl=
ockquote><div><br></div><div>Yes, I have rewritten to:<br></div><div><br=
></div><div><i>If an email belongs to multiple mailboxes, the user may o=
nly modify </i><code style=3D"border-radius:3px;border:1px solid #ccc;pa=
dding:1px 3px;background:#f6f6f6;font-family:menlo,consolas,monospace;fo=
nt-size:90%;"><i>$seen</i></code><i> if they have this permission for </=
i><b><i>all</i></b><i> of the mailboxes.</i><br></div><div><br></div><bl=
ockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp; o&nbsp; =
*isSubscribed*: "Boolean" Has the user indicated they wish to see<br></d=
iv><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [...]<br></div><div>&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; choose to ignore this property, either entirely for ea=
se of<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; implementation, or ju=
st for the primary account (which is normally<br></div><div><br></div><d=
iv>nit: We don't really provide a formal definition of "primary account"=
<br></div><div>either here or in jmap-core.<br></div></blockquote><div><=
br></div><div>Yes, this was a concept in an earlier draft that got remov=
ed. I have now updated this to read:<br></div><div><br></div><div><i>How=
ever, clients MAY choose to ignore this property, either entirely for ea=
se of implementation, or just for an account where <code style=3D"border=
-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6f6;fon=
t-family:menlo,consolas,monospace;font-size:90%;">isPersonal</code> is <=
code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3px;ba=
ckground:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;">tr=
ue</code> (indicating it is the user's own, rather than a shared account=
).</i><br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D=
"cite"><div>Section 2.1<br></div><div><br></div><div>&nbsp;&nbsp; Standa=
rd "/get" method.&nbsp; The _ids_ argument may be "null" to fetch<br></d=
iv><div><br></div><div>I thought I had said something on jmap-core but m=
aybe I only thought<br></div><div>about it: my personal preference would=
 be for section references into<br></div><div>jmap-core to provide a fou=
ndation for what the "standard method" is,<br></div><div>though I will n=
ot insist upon it.<br></div><div>&nbsp;&nbsp; all at once.<br></div></bl=
ockquote><div><br></div><div>I've added section references, so instead o=
f just saying <i>Standard "/get" method</i>&nbsp;it now says:<br></div><=
div><br></div><div><i>Standard "/get" method as described in [@!I-D.ietf=
-jmap-core] section 5.1.</i><br></div><div><br></div><div>(and similar w=
here the same pattern is used elsewhere).<br></div><div><br></div><block=
quote id=3D"fastmail-quoted" type=3D"cite"><div>Section 2.2<br></div><di=
v><br></div><div>I might say explicitly that "a non-null updatedProperti=
es response<br></div><div>argument indicates that the mailbox contents a=
re unchanged from the old<br></div><div>state, with only the counts havi=
ng changed", since these semantics are<br></div><div>potentially unexpec=
ted.<br></div></blockquote><div><br></div><div>It's not the mailbox cont=
ents, it's the properties on the mailbox object. (I would presume mailbo=
x contents refers to the messages in the mailbox, which clearly have cha=
nged if the counts have changed). I think the current text here is OK.<b=
r></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite">=
<div>Section 2.3<br></div><div><br></div><div>&nbsp;&nbsp; Standard "/qu=
ery" method, but with the following additional argument:<br></div><div><=
br></div><div>(Generic comment, not scoped to just this section): are we=
 going to need<br></div><div>to draw a distinction between input and oup=
ut arguments for any of the<br></div><div>additions we make to standard =
methods?<br></div></blockquote><div><br></div><div>Hmm, I'll reword this=
 to "additional request argument" just to be sure this is clear.<br></di=
v><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&=
nbsp;&nbsp; o&nbsp; *role*: "String|null" The Mailbox _role_ property mu=
st match the<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; given value ex=
actly.<br></div><div><br></div><div>So the client is responsible for low=
er-casing values from the IMAP<br></div><div>Mailbox Name Attributes reg=
istry and the server must not do a<br></div><div>case-insensitive compar=
ison?<br></div></blockquote><div><br></div><div>Yes.<br></div><div><br><=
/div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp; =
The following properties MUST be supported for sorting:<br></div><div><b=
r></div><div>Just to be pedantic, we're talking about the values of the =
"property"<br></div><div>property within the Comparator object, right?&n=
bsp; (This is one of those<br></div><div>annoying things at the intersec=
tion of technical specifications and<br></div><div>natural English langu=
age.)<br></div></blockquote><div><br></div><div>Yes, I've tried to clari=
fy this.<br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=
=3D"cite"><div>Section 4<br></div><div><br></div><div>&nbsp;&nbsp; Due t=
o the number of properties involved, the set of _Email_<br></div><div>&n=
bsp;&nbsp; properties is specified over the following three sub-sections=
.<br></div><div><br></div><div>It's probably worth a note that the subse=
ctions are for purposes of<br></div><div>document organization and are n=
ot reflected in the wire protocol<br></div><div>structure -- the propert=
ies involved are all top-level peers, across the<br></div><div>three sub=
sections.&nbsp; (Assuming that's correct, of course.)<br></div></blockqu=
ote><div><br></div><div>That is correct, I'll add a note.<br></div><div>=
<br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>Section =
4.1<br></div><div><br></div><div>I assume it was a conscious WG decision=
 to not present a full<br></div><div>consolidated schema for Email.&nbsp=
; But I want to check, since I think (not<br></div><div>having one) that=
 it would have helped my understanding, and I try to be<br></div><div>op=
en to discovering the errors of my ways...<br></div><div><br></div><div>=
&nbsp;&nbsp; o&nbsp; _textBody_/_htmlBody_: These provide a list of part=
s that should<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be rendered s=
equentially as the "body" of the message.&nbsp; This is a<br></div><div>=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list rather than a single part as message=
s may have headers and/or<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f=
ooters appended/prepended as separate parts as they are<br></div><div>&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; transmitted, and some clients send text and=
 images intended to be<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; disp=
layed inline in the body (or even videos and sound clips) as<br></div><d=
iv>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; multiple parts rather than a single HT=
ML part with referenced<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ima=
ges.<br></div><div><br></div><div>Some guidance related to interpreting =
these lists and avoiding the eFail<br></div><div>(efail.de) class of att=
acks is probably in order -- the HTML parts<br></div><div>should get som=
e different containers around their processing.&nbsp; This<br></div><div=
>could potentially go here, or in Section 9.2.<br></div></blockquote><di=
v><br></div><div>Yes, I have added a new subsection to the security cons=
iderations:<br></div><div><br></div><div><i>Messages may consist of mult=
iple parts to be displayed sequentially as a body. Clients MUST render e=
ach part in isolation and MUST NOT concatenate the raw text values to re=
nder. Doing so may change the overall semantics of the message. If the c=
lient or server is decrypting a PGP or S/MIME encrypted part, concatenat=
ing with other parts may leak the decrypted text to an attacker, as desc=
ribed in [EFAIL]</i>&nbsp;(reference to paper added).<br></div><div><br>=
</div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp;=
 Because MIME allows for multiple representations of the same data<br></=
div><div>&nbsp;&nbsp; (using "multipart/alternative"), there is a textBo=
dy property (which<br></div><div>&nbsp;&nbsp; prefers a plain text repre=
sentation) and an htmlBody property (which<br></div><div>&nbsp;&nbsp; pr=
efers an HTML representation) to accommodate the two most common<br></di=
v><div>&nbsp;&nbsp; client requirements.&nbsp; The same part may appear =
in both lists where<br></div><div>&nbsp;&nbsp; there is no alternative b=
etween the two.<br></div><div><br></div><div>(soapbox) It's annoying whe=
n I get mime/multipart with HTML in the<br></div><div>text/plain section=
.&nbsp; Is this clause going to allow for that same sort of<br></div><di=
v>misclassification?<br></div></blockquote><div><br></div><div>If the se=
nder puts HTML in a part marked <code style=3D"border-radius:3px;border:=
1px solid #ccc;padding:1px 3px;background:#f6f6f6;font-family:menlo,cons=
olas,monospace;font-size:90%;">text/plain</code> then, well, the sender =
is broken and there's not much we can do. (Clients can attempt to sniff =
the content and treat as <code style=3D"border-radius:3px;border:1px sol=
id #ccc;padding:1px 3px;background:#f6f6f6;font-family:menlo,consolas,mo=
nospace;font-size:90%;">text/html</code> if they want but of course ther=
e's always the slim chance that someone really did want to send a bunch =
of HTML code as plain text).<br></div><div><br></div><div>This is an ind=
ependent issue to the htmlBody/textBody properties though. These are sim=
ply a list of part ids, and those parts have a content type which the cl=
ient needs to use to determine how to render it. There is a possibility =
that a client doesn't read the spec and presumes it will always get plai=
n text in the textBody array, but then again the client could ignore any=
 part of the spec and start doing silly things. Such a mistake is likely=
 to become obvious and be fixed at some point.<br></div><div><br></div><=
blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp; Due to=
 the number of properties involved, the set of _Email_<br></div><div>&nb=
sp;&nbsp; properties is specified over the following three sub-sections.=
<br></div><div><br></div><div>nit: are we at four sub-sections now?<br><=
/div></blockquote><div><br></div><div>Yes, I'll update that.<br></div><d=
iv><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>Secti=
on 4.1.1<br></div><div><br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The=
 IMAP "\Recent" keyword is not exposed via JMAP.&nbsp; The IMAP<br></div=
><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "\Deleted" keyword is also not pres=
ent: IMAP uses a delete+expunge<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp; model, which JMAP does not.&nbsp; Any message with the "\Deleted"<b=
r></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; keyword MUST NOT be visible =
via JMAP (including as part of any<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp; mailbox counts).&nbsp; Users may add arbitrary keywords to an em=
ail.<br></div><div><br></div><div>IIRC, Trash gets special handling with=
 respect to deletion in JMAP<br></div><div>commands; does it also get sp=
ecial treatment w.r.t \Deleted translation<br></div><div>from IMAP to JM=
AP?<br></div></blockquote><div><br></div><div>I'm not quite sure what yo=
u're asking here. As stated in this text, if supporting IMAP and JMAP on=
 the same server, the server MUST treat \Deleted messages the same as if=
 they were expunged when accessing via JMAP.<br></div><div><br></div><bl=
ockquote id=3D"fastmail-quoted" type=3D"cite"><div>Section 4.1.2.2<br></=
div><div><br></div><div>This escape valve for "Any header not defined in=
 [RFC5322] or [RFC2369]"<br></div><div>(here, et seq) seems like it migh=
t benefit from some general guidance<br></div><div>about implementations=
 applying common sense, i.e., allowing servers the<br></div><div>ability=
 to deny requests for a given form for such new headers in order<br></di=
v><div>to prevent nonsense behavior.<br></div></blockquote><div><br></di=
v><div>A bit torn on this. It's not an interoperable definition but at t=
he same time it is perhaps reasonable to change this to:<br></div><div><=
br></div><div><i>Any header not defined in [@!RFC5322] or [@!RFC2369], e=
xcept where the server has determined this is obviously nonsense.</i><br=
></div><div><br></div><div>I'm not convinced it's worth it overall; I'll=
 leave it for now.</div><div><br></div><blockquote id=3D"fastmail-quoted=
" type=3D"cite"><div>Section 4.1.4<br></div><div><br></div><div>&nbsp;&n=
bsp; o&nbsp; *partId*: "String|null" Identifies this part uniquely withi=
n the<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Email.&nbsp; This is =
scoped to the _emailId_ and has no meaning outside<br></div><div>&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; of the JMAP Email object representation.&nbsp; T=
his is "null" if, and<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; only =
if, the part is of type "multipart/*".<br></div><div><br></div><div>The =
prose isn't the super-best indicator that the asterisk is<br></div><div>=
intended to have wildcarding behavior.<br></div></blockquote><div><br></=
div><div>I've added to the introduction:<br></div><div><br></div><div><i=
>In the following subsections the common notational convention for wildc=
ards has been adopted for content types, so <code style=3D"border-radius=
:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f6f6;font-famil=
y:menlo,consolas,monospace;font-size:90%;">foo/*</code> means any conten=
t type that starts with <code style=3D"border-radius:3px;border:1px soli=
d #ccc;padding:1px 3px;background:#f6f6f6;font-family:menlo,consolas,mon=
ospace;font-size:90%;">foo/</code>.</i><br></div><div><br></div><blockqu=
ote id=3D"fastmail-quoted" type=3D"cite"><div>Section 4.4.1<br></div><di=
v><br></div><div>Just to double-check: the different fencepost behavior =
for<br></div><div>minSize/maxSize is intentional?<br></div></blockquote>=
<div><br></div><div>Yes. Ranges, and properties defining ranges, are int=
ended to match the behaviour most prevalent in common programming langua=
ges today: inclusive start, exclusive end. This is consistently applied =
across the spec (e.g. vacation response from/to).<br></div><div><br></di=
v><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp; o&n=
bsp; *text*: "String" Looks for the text in emails.&nbsp; The server SHO=
ULD<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; look up text in the _fr=
om_, _to_, _cc_, _bcc_, _subject_ header<br></div><div>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; fields of the message, and inside any "text/*" or other bo=
dy parts<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; that may be conver=
ted to text by the server.&nbsp; The server MAY<br></div><div>&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; extend the search to any additional textual propert=
y.<br></div><div><br></div><div>side note: as a mail user, I like to be =
able to use text search to<br></div><div>conclusively determine that a g=
iven message/topic is *not* in a given<br></div><div>mailbox.&nbsp; This=
 weak "SHOULD" language does not provide me that<br></div><div>guarantee=
, though I can see how it makes sense in the protocol design to<br></div=
><div>leave the flexibility for implementors, here.<br></div></blockquot=
e><div><br></div><div>Hmm, I think it's safe enough to change this to so=
mething a little stronger:<br></div><div><br></div><div><i>Looks for the=
 text in emails. The server MUST look up text in the </i>from<i>, </i>to=
<i>, </i>cc<i>, </i>bcc<i>, </i>subject<i>&nbsp;header fields of the mes=
sage, and SHOULD look inside any <code style=3D"border-radius:3px;border=
:1px solid #ccc;padding:1px 3px;background:#f6f6f6;font-family:menlo,con=
solas,monospace;font-size:90%;">text/*</code> or other body parts that m=
ay be converted to text by the server. The server MAY extend the search =
to any additional textual property.</i><br></div><div><br></div><blockqu=
ote id=3D"fastmail-quoted" type=3D"cite"><div>&nbsp;&nbsp; o&nbsp; When =
searching inside a "text/html" body part, any text considered<br></div><=
div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; markup rather than content SHOULD be =
ignored, including HTML tags<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; and most attributes, anything inside the "&lt;head&gt;" tag, CSS and<b=
r></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JavaScript.&nbsp; Attribute =
content intended for presentation to the<br></div><div>&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp; user such as "alt" and "title" SHOULD be considered in the=
 search.<br></div><div><br></div><div>This would seem to leave no reliab=
le way for a security researcher to<br></div><div>(e.g.) search for snip=
pets of attack javascript in received mails<br></div><div>without downlo=
ading all of them.<br></div></blockquote><div><br></div><div>Perhaps, an=
d maybe this would be a worthy extension. But the default behaviour shou=
ld absolutely be as described to correspond with general user expectatio=
n.<br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"ci=
te"><div>&nbsp;&nbsp; o&nbsp; Text SHOULD be matched in a case-insensiti=
ve manner.<br></div><div><br></div><div>Is the server going to have a se=
nse of the user's locale as needed for<br></div><div>fully generic case-=
insensitive comparison?<br></div></blockquote><div><br></div><div>This w=
ill be vendor dependent, but often yes. (For example at FastMail we try =
to determine the prevalent language in a message in order to use the app=
ropriate stemming algorithm for indexing it for search; the same informa=
tion could be used for determining what case-sensitivity method to use).=
<br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite=
"><div>&nbsp;&nbsp; o&nbsp; Tokens MAY be matched on a whole-word basis =
using stemming (so for<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exam=
ple a text search for "bus" would match "buses" but not<br></div><div>&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; "business").<br></div><div><br></div><div>I=
 think this is supposed to not apply to the "phrase search" two bullets<=
br></div><div>above, but greater clarity would be appreciated.<br></div>=
</blockquote><div><br></div><div>OK, I'll amend to:<br></div><div><br></=
div><div><i>Tokens (not part of a phrase) MAY be =E2=80=A6</i><br></div>=
<div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&nb=
sp;&nbsp; o&nbsp; *hasKeyword* - This value MUST be considered "true" if=
 the email<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; has the keyword =
given as an additional _keyword_ property on the<br></div><div>&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; _Comparator_ object, or "false" otherwise.<br></di=
v><div><br></div><div>I strongly suggest an explicit listing of the "add=
itional properties as<br></div><div>reuqired for specific sort operation=
s" of the _Comparator_ type when<br></div><div>used for Emails.<br></div=
></blockquote><div><br></div><div>OK, I've added the following to the in=
troductory paragraph above the list:<br></div><div><br></div><div><i>The=
 following values for the "property" field on the Comparator object SHOU=
LD be supported for sorting. When specifying a "hasKeyword", "allInThrea=
dHaveKeyword" or "someInThreadHaveKeyword" sort, the Comparator object M=
UST also have a keyword property.</i><br></div><div><br></div><blockquot=
e id=3D"fastmail-quoted" type=3D"cite"><div>Section 4.6<br></div><div><b=
r></div><div>&nbsp;&nbsp; When emptying the trash, clients SHOULD NOT de=
stroy emails which are<br></div><div>&nbsp;&nbsp; also in a mailbox othe=
r than trash.&nbsp; For those emails, they SHOULD<br></div><div>&nbsp;&n=
bsp; just remove the Trash mailbox from the email.<br></div><div><br></d=
iv><div>This last SHOULD seems to be duplicated in Section 2.<br></div><=
/blockquote><div><br></div><div>Thanks, I've fixed this duplication.<br>=
</div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><d=
iv>&nbsp;&nbsp; For successfully created Email objects, the _created_ re=
sponse<br></div><div>&nbsp;&nbsp; contains the _id_, _blobId_, _threadId=
_ and _size_ properties of the<br></div><div>&nbsp;&nbsp; object.<br></d=
iv><div><br></div><div>For partial drafts, the behavior where a threadId=
 always gets assigned<br></div><div>on first touch is perhaps interestin=
g, as subsequent edits might cause<br></div><div>the effective threading=
 to change, which would necessitate a new Id as<br></div><div>well (IIUC=
).&nbsp; I'm not sure if there's anything weird there that a client<br><=
/div><div>would need to be prepared for, though.&nbsp; (Maybe not, given=
 that it always<br></div><div>is going to get back an _id_ from /set, an=
d should be using that.)<br></div></blockquote><div><br></div><div>Yes, =
email content is immutable, so to update a draft you need to create a ne=
w email and destroy the old one. This means you will always get a new id=
 for the message (and possibly a different thread id to before too).<br>=
</div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><d=
iv>Section 4.8<br></div><div><br></div><div>&nbsp;&nbsp; If the blob ref=
erenced is not a valid [RFC5322] message, the server<br></div><div>&nbsp=
;&nbsp; MAY modify the message to fix errors (such as removing NUL octet=
s or<br></div><div>&nbsp;&nbsp; fixing invalid headers).&nbsp; If it doe=
s this, the _blobId_ on the<br></div><div>&nbsp;&nbsp; response MUST rep=
resent the new representation and therefore be<br></div><div>&nbsp;&nbsp=
; different to the _blobId_ on the EmailImport object.&nbsp; Alternative=
ly,<br></div><div>&nbsp;&nbsp; the server MAY reject the import with an =
"invalidEmail" SetError.<br></div><div><br></div><div>In general, having=
 more options like this can increase the fragility of<br></div><div>the =
ecosystem, as a client might be written to assume one behvaior and<br></=
div><div>then be not as portable to a different server.&nbsp; I'm not su=
re that<br></div><div>there's a clear way to mandate a single type of be=
havior here, but want<br></div><div>to be sure that the topic was discus=
sed.<br></div></blockquote><div><br></div><div>Yes, it was discussed. Bo=
th behaviours are reasonable and exist in equivalent IMAP implementation=
s, so this seemed the best solution for the JMAP spec.<br></div><div><br=
></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>Section 6<b=
r></div><div><br></div><div>&nbsp;&nbsp; o&nbsp; *email*: "String" (immu=
table) The "From" email address the client<br></div><div>&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; MUST use when creating a new message from this identity.=
&nbsp; The<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value MAY altern=
atively be of the form "*@example.com", in which<br></div><div>&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; case the client may use any valid email address en=
ding in<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "@example.com".<br>=
</div><div><br></div><div>I mostly assume this is supposed to be for a g=
eneric domain and not<br></div><div>special-casing example.com literally=
.&nbsp; Some extra text/formatting would<br></div><div>help with that.<b=
r></div></blockquote><div><br></div><div>Your interpretation is correct.=
 I've rewritten this to:<br></div><div><br></div><div><i>If the mailbox =
part of the address (the section before the "@") is the single character=
 <code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3px;=
background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;">=
*</code> (e.g. <code style=3D"border-radius:3px;border:1px solid #ccc;pa=
dding:1px 3px;background:#f6f6f6;font-family:menlo,consolas,monospace;fo=
nt-size:90%;">*@example.com</code>) then the client may use any valid ad=
dress ending in that domain (e.g. </i><a href=3D"mailto:foo@example.com"=
><i><code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3=
px;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%=
;">foo@example.com</code></i></a><i>).</i><br></div><div><br></div><bloc=
kquote id=3D"fastmail-quoted" type=3D"cite"><div>Section 7.3<br></div><d=
iv><br></div><div>The associated identityId is not a queriable property?=
<br></div></blockquote><div><br></div><div>Yeh, it probably should be fo=
r consistency. I'll add this.<br></div><div><br></div><blockquote id=3D"=
fastmail-quoted" type=3D"cite"><div>Section 7.5<br></div><div><br></div>=
<div>&nbsp;&nbsp; o&nbsp; *onSuccessUpdateEmail*: "Id[Email]|null" A map=
 of _EmailSubmission<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id_ to=
 an object containing properties to update on the Email<br></div><div>&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; object referenced by the EmailSubmission if=
 the create/update/<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; destroy=
 succeeds.&nbsp; (For references to EmailSubmission creations,<br></div>=
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this is equivalent to a back-referen=
ce so the id will be the<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cr=
eation id prefixed with a "#".)<br></div><div><br></div><div>I'm confuse=
d by the "Id[Email]" part -- we describe it as a map to "an<br></div><di=
v>object containing properties to update", but that's not exactly what a=
n<br></div><div>Email object is.&nbsp; Is this more of a PatchObject tha=
n an Email per se?<br></div></blockquote><div><br></div><div><div>Yes, t=
his should be <code style=3D"border-top-left-radius:3px;border-top-right=
-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px=
;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;bor=
der-left-width:1px;border-top-style:solid;border-right-style:solid;borde=
r-bottom-style:solid;border-left-style:solid;border-top-color:rgb(204, 2=
04, 204);border-right-color:rgb(204, 204, 204);border-bottom-color:rgb(2=
04, 204, 204);border-left-color:rgb(204, 204, 204);border-image-source:i=
nitial;border-image-slice:initial;border-image-width:initial;border-imag=
e-outset:initial;border-image-repeat:initial;padding-top:1px;padding-rig=
ht:3px;padding-bottom:1px;padding-left:3px;background-image:initial;back=
ground-position-x:initial;background-position-y:initial;background-size:=
initial;background-repeat:initial;background-repeat:initial;background-a=
ttachment:initial;background-origin:initial;background-clip:initial;back=
ground-color:rgb(246, 246, 246);font-family:menlo, consolas, monospace;f=
ont-size:90%;">Id[PatchObject]</code>; I've updated this. (A patch objec=
t to update an Email of course, but that's clear from the description).<=
br></div><div><br></div></div><blockquote id=3D"fastmail-quoted" type=3D=
"cite"><div>nit: I'd also tweak the wording of the parenthetical a bit (=
here and<br></div><div>below), to something like "when applying to Email=
Submissions created in<br></div><div>the same "/set" invocation, ..."<br=
></div></blockquote><div><br></div><div>Thanks, that's clearer, I'll upd=
ate.<br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"=
cite"><div>Section 8<br></div><div><br></div><div>By a literal reading, =
fromDate and toDate are in conflict with each<br></div><div>other (when =
non-null).&nbsp; That is, the fromDate text does not admit the<br></div>=
<div>possibility of an end to the vacation response period, and vice ver=
sa.<br></div></blockquote><div><br></div><div>OK, I'll update the defini=
tions to clarify.<br></div><div><br></div><blockquote id=3D"fastmail-quo=
ted" type=3D"cite"><div>Section 9<br></div><div><br></div><div>I'd consi=
der adding another sentence like "Additional considerations<br></div><di=
v>specific to the data types and functionality introduced by this docume=
nt<br></div><div>are described in the following subsections."<br></div><=
/blockquote><div><br></div><div>Sure, done.<br></div><div><br></div><blo=
ckquote id=3D"fastmail-quoted" type=3D"cite"><div>Section 9.3<br></div><=
div><br></div><div>I know we don't want this to devolve into a generic d=
iscussion of the<br></div><div>flaws of email, but perhaps the envelope-=
from/body-from distinction is<br></div><div>worth repeating, with a note=
 that JMAP has provisions for ACLs on<br></div><div>submission that chec=
k both.<br></div></blockquote><div><br></div><div>I have added the follo=
wing section to the security considerations<br></div><div><br></div><div=
><b><i>Permission to send from an address</i></b><i><br></i></div><div><=
i><br></i></div><div><i>The email ecosystem has in recent years moved to=
wards associating trust with the From address in the [@!RFC5322] message=
, particularly with schemes such as DMARC ([@?RFC7489]).</i><i><br></i><=
/div><div><i><br></i></div><div><i>The set of Identity objects (see sect=
ion 6) in an account lets the client know which email addresses the user=
 has permission to send from. Each email submission is associated with a=
n identity, and servers SHOULD reject submissions where the `From` heade=
r field of the email does not correspond to the associated identity.</i>=
<i><br></i></div><div><i><br></i></div><div><i>The server MAY allow an e=
xception to send an exact copy of an existing message received into the =
mail store to another address (otherwise known as "redirecting" or "boun=
cing"), although it is RECOMMENDED the server limit this to destinations=
 the user has verified they also control.</i><i><br></i></div><div><i><b=
r></i></div><div><i>If the user attempts to create a new Identity, the s=
erver MUST reject it with the appropriate error if the user does not hav=
e permission to use that email address to send from.</i><i><br></i></div=
><div><i><br></i></div><div><i>The [@!RFC5321] SMTP MAIL FROM address is=
 often confused with the [@!RFC5322] message header. The user generally =
only ever sees the message header address, and this is the primary one t=
o enforce. However the server MUST also enforce appropriate restrictions=
 on the [@!RFC5321] MAIL FROM address to stop the user from flooding a 3=
rd party address with bounces and non-delivery notices.</i><i><br></i></=
div><div><i><br></i></div><div><i>The JMAP submission model provides sep=
arate errors for impermissible addresses in either context.</i><br></div=
><div><br></div><div>Cheers,<br></div><div>Neil.</div></body></html>
--785cf231195e4e3ea399fc6132e63639--


From nobody Thu Mar  7 01:50:31 2019
Return-Path: <noreply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 535E813136C for <jmap@ietf.org>; Thu,  7 Mar 2019 01:49:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1551952144; bh=WUW+aanSU7FiVVwLZ5qSUfdbeEdKbIgMPwh8Cnirnls=; h=From:To:Cc:Subject:Date; b=koKbpb+80l4f81WXtl/QLiiW3Qfem1BHRDO9s1DkPXNECoLizJIp5LDcKebRAMbJY GmNhSmCOoKR3ydRSKLHpqPK3IC6gbjRMfvyGQS7ODj8jYEsANjJqZ+WmnVCu/NJrBR d58DA7Yj5hEWvLO6EVGlTT+gQ7dFTyY7wnuzRnP4=
X-Original-To: jmap@ietf.org
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Datatracker on behalf of Eric Rescorla <noreply@ietf.org>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-mail@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155193359346.13802.9062745584769318939.idtracker@ietfa.amsl.com>
Date: Wed, 06 Mar 2019 20:39:53 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/t5i2RfuaG0t4630DPBqqJinsPas>
Subject: [Jmap] Eric Rescorla's No Objection on draft-ietf-jmap-mail-15: (with COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 07 Mar 2019 09:49:08 -0000

Eric Rescorla has entered the following ballot position for
draft-ietf-jmap-mail-15: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mail/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for addressing my DISCUSS



From nobody Thu Mar  7 01:50:49 2019
Return-Path: <noreply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 87CCC13143D for <jmap@ietf.org>; Thu,  7 Mar 2019 01:49:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1551952146; bh=ifEOiNXMMUtxWHKzY3uWLm32NH0p/f/yH68mn9MB1NA=; h=From:To:Cc:Subject:Date; b=NoKET/vqUCBS16ZP7pCxs7iWoztNX9tNlLkQ8logW6Pe9O/Wfme3WP9r9Cww9du3J 9E1VHUK9NUzfYgHTHnequNCotbY4BrpAyRJN37ecP1GvBivVv98YY+bhfL5aocOfWD fPzUcxZDcx9vQ+QDLAwW3i9iKI3iy0FArUmwIKSQ=
X-Original-To: jmap@ietf.org
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Datatracker on behalf of Eric Rescorla <noreply@ietf.org>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-core@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155193380674.13751.538200748649313626.idtracker@ietfa.amsl.com>
Date: Wed, 06 Mar 2019 20:43:26 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/vcO83h7I9ufbJoJr8H0yah_G8Wo>
Subject: [Jmap] Eric Rescorla's No Record on draft-ietf-jmap-core-15: (with COMMENT)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 07 Mar 2019 09:49:11 -0000

Eric Rescorla has entered the following ballot position for
draft-ietf-jmap-core-15: No Record

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thank you for addressing my DISCUSS



From nobody Thu Mar  7 08:35:32 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 35D2C13143B; Thu,  7 Mar 2019 08:35:21 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: jmap@ietf.org
Message-ID: <155197652116.24727.17736633253141543762@ietfa.amsl.com>
Date: Thu, 07 Mar 2019 08:35:21 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/E_K_b-lJE5dYt4Aj1Hr3DcBIpN4>
Subject: [Jmap] I-D Action: draft-ietf-jmap-mdn-01.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 07 Mar 2019 16:35:30 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the JSON Mail Access Protocol WG of the IETF.

        Title           : Handling Message Disposition Notification with JMAP
        Author          : Raphaël Ouazana
	Filename        : draft-ietf-jmap-mdn-01.txt
	Pages           : 10
	Date            : 2019-03-07

Abstract:
   This document specifies a data model for handling [RFC8098] MDN
   messages with a server using JMAP.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mdn/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-jmap-mdn-01
https://datatracker.ietf.org/doc/html/draft-ietf-jmap-mdn-01

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-jmap-mdn-01


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Thu Mar  7 21:25:14 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 694AE1277CC; Thu,  7 Mar 2019 21:25:08 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: jmap@ietf.org
Message-ID: <155202270840.5373.16754700684715315037@ietfa.amsl.com>
Date: Thu, 07 Mar 2019 21:25:08 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/d0p55qF-4I0lbHj93azZWbi3--A>
Subject: [Jmap] I-D Action: draft-ietf-jmap-core-16.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 08 Mar 2019 05:25:08 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the JSON Mail Access Protocol WG of the IETF.

        Title           : JSON Meta Application Protocol
        Authors         : Neil Jenkins
                          Chris Newman
	Filename        : draft-ietf-jmap-core-16.txt
	Pages           : 83
	Date            : 2019-03-07

Abstract:
   This document specifies a protocol for clients to efficiently query,
   fetch and modify JSON-based data objects, with support for push
   notification of changes and fast resynchronisation, and out-of-band
   binary data upload/download.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-jmap-core-16
https://datatracker.ietf.org/doc/html/draft-ietf-jmap-core-16

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-jmap-core-16


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Thu Mar  7 21:26:45 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A89F130E09; Thu,  7 Mar 2019 21:26:38 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: jmap@ietf.org
Message-ID: <155202279834.5451.17075268238771446838@ietfa.amsl.com>
Date: Thu, 07 Mar 2019 21:26:38 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Uva74FAzUKArwW-JGGxOnSJ6GDI>
Subject: [Jmap] I-D Action: draft-ietf-jmap-mail-16.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 08 Mar 2019 05:26:38 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the JSON Mail Access Protocol WG of the IETF.

        Title           : JMAP (JSON Meta Application Protocol) for Mail
        Authors         : Neil Jenkins
                          Chris Newman
	Filename        : draft-ietf-jmap-mail-16.txt
	Pages           : 94
	Date            : 2019-03-07

Abstract:
   This document specifies a data model for synchronising email data
   with a server using JMAP (the JSON Meta Application Protocol).
   Clients can use this to efficiently search, access, organise and send
   messages, and get pushed notifications for fast resynchronisation
   when new messages are delivered or a change is made in another
   client.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mail/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-jmap-mail-16
https://datatracker.ietf.org/doc/html/draft-ietf-jmap-mail-16

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-jmap-mail-16


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Thu Mar  7 21:50:39 2019
Return-Path: <neilj@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 CBD73130E9D for <jmap@ietfa.amsl.com>; Thu,  7 Mar 2019 21:50:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.983
X-Spam-Level: 
X-Spam-Status: No, score=-1.983 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=ejo2E6CT; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=QurgZtyN
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 cu5JURO2GTly for <jmap@ietfa.amsl.com>; Thu,  7 Mar 2019 21:50:36 -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 6E8FD130E9C for <jmap@ietf.org>; Thu,  7 Mar 2019 21:50:36 -0800 (PST)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 772B521614 for <jmap@ietf.org>; Fri,  8 Mar 2019 00:50:35 -0500 (EST)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Fri, 08 Mar 2019 00:50:35 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:date:from:to:subject :content-type; s=fm2; bh=F3YAQxGJ1oYjzeCLB+/3h7/mbTL6AEWhBlzmP3B cdx4=; b=ejo2E6CT5odiuwzQYaSKdW3+rN5Op+IDLOGLqVa3CspkGFi4F0h4zWF DTNsQ2w7AfhjSu7KBl3KHlrynhlOSVAhfnkYfVyb5lG/aVqkR2KZ6B3iClEYitfv dlJMFdyDRAsKCxA973O6RUJ0t7k4qFPCJD86t2FgCBq89GbDwi9NmpdDlnSoAPhw 8n1nc0SfVpM6bh1wGTL7RHTsPJ8yDapzJRNxUE3aUziwZLANhwAcgzaIOHMnDM8o I1gfJgLRv/vA7b7M2REpnrzk2B+N4rYrNwHh+cO1dT7HAt/K2NUN96sp9iwFv/tL vkRDS4SiBfkhRQw78Rlvg5UPJFSWLZw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id:subject :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=F3YAQxGJ1oYjzeCLB+/3h7/mbTL6AEWhBlzmP3Bcdx4=; b=QurgZtyN 4Dw8lqhKyrS0aDzvycI8DSly/Om4GcSrHNkAC/mpZMRwdIdIrsgtGH3nqTMSYHS5 +u+sVABavp/QHypsvnNSCojevrP/WXaHK2VOH4C5wy9lrxPeE3rlYGwUTf4sWhrv yvRIqDqaF7BbPQKt/G2bA8LwguqLD0yqAKJAw4IGeuY+gFJiLUYs2VGvwPPIm7L1 XuQ4iI5w2SvavKbggZ5D9C/ifVS2uSF2xrPRWy7MhwVfgjV0QiuJVZwx7w61i3jS /A8AoS9bd2ISRni0uxQYontONi893gNQodeK+2+EaMKL/EhlxgTv1KTfme5cNWVK 74Djdcry84AXvA==
X-ME-Sender: <xms:qwKCXDfKsNgfDFfz2r0rJif13kwj0smu4M2rhqATL0dyWnX5lmxGIA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrfeelgdekfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgfkfffhvffutgesrgdtreerreertdenucfhrhhomhepfdfpvghilhculfgv nhhkihhnshdfuceonhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmqeenucfrrg hrrghmpehmrghilhhfrhhomhepnhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhm necuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:qwKCXJZ58Gl0JySThN0rSRUNTTbVQHAUgeWRLiC_V6QWCkqe1Rnbgg> <xmx:qwKCXOXRwnrIJ6ogAvohz8hiwWAIS6v86bQcJqDDnZyrD9p7VQokEg> <xmx:qwKCXDiaaUzTjtbLPmXY5tReq-rmaKiF499u7uQQWDv3oLEgT3BvFg> <xmx:qwKCXGokczyG7YqxoqjURIjvB5rTHuVKJdzLFQTxbyuyawIpg0wRPw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 11FC320431; Fri,  8 Mar 2019 00:50:35 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-925-g644bf8c-fmstable-20190228v5
X-Me-Personality: 64588216
Message-Id: <61dcf574-f118-470f-b90b-a8e16c8d99d8@beta.fastmail.com>
Date: Fri, 08 Mar 2019 00:50:34 -0500
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=5000e98903cf4382b10b0c2b4ec08c6f
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/06PBcW502re8stLIjKNmNjuzuBE>
Subject: [Jmap] JMAP Core/Mail v16 drafts
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, 08 Mar 2019 05:50:38 -0000

--5000e98903cf4382b10b0c2b4ec08c6f
Content-Type: text/plain

Hi all,

I have just uploaded new drafts which include all the edits addressing the feedback from the latest IETF last call reviews.

Cheers,
Neil.
--5000e98903cf4382b10b0c2b4ec08c6f
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div style=3D"color:=
rgb(31, 31, 31);font-family:-apple-system, system-ui, &quot;Segoe UI&quo=
t;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Fira Sans&quot;, &quot;Droi=
d Sans&quot;, &quot;Helvetica Neue&quot;, Arial, sans-serif;font-size:13=
px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:nor=
mal;font-weight:400;letter-spacing:-0.1px;orphans:2;text-align:start;tex=
t-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacin=
g:0px;-webkit-text-stroke-width:0px;background-color:rgb(255, 255, 255);=
text-decoration-style:initial;text-decoration-color:initial;">Hi all,<br=
></div><div style=3D"color:rgb(31, 31, 31);font-family:-apple-system, sy=
stem-ui, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;=
Fira Sans&quot;, &quot;Droid Sans&quot;, &quot;Helvetica Neue&quot;, Ari=
al, sans-serif;font-size:13px;font-style:normal;font-variant-ligatures:n=
ormal;font-variant-caps:normal;font-weight:400;letter-spacing:-0.1px;orp=
hans:2;text-align:start;text-indent:0px;text-transform:none;white-space:=
normal;widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;backgroun=
d-color:rgb(255, 255, 255);text-decoration-style:initial;text-decoration=
-color:initial;"><br></div><div style=3D"color:rgb(31, 31, 31);font-fami=
ly:-apple-system, system-ui, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubunt=
u, Cantarell, &quot;Fira Sans&quot;, &quot;Droid Sans&quot;, &quot;Helve=
tica Neue&quot;, Arial, sans-serif;font-size:13px;font-style:normal;font=
-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;lette=
r-spacing:-0.1px;orphans:2;text-align:start;text-indent:0px;text-transfo=
rm:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke=
-width:0px;background-color:rgb(255, 255, 255);text-decoration-style:ini=
tial;text-decoration-color:initial;">I have just uploaded new drafts whi=
ch include all the edits addressing the feedback from the latest IETF la=
st call reviews.<br></div><div style=3D"color:rgb(31, 31, 31);font-famil=
y:-apple-system, system-ui, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu=
, Cantarell, &quot;Fira Sans&quot;, &quot;Droid Sans&quot;, &quot;Helvet=
ica Neue&quot;, Arial, sans-serif;font-size:13px;font-style:normal;font-=
variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter=
-spacing:-0.1px;orphans:2;text-align:start;text-indent:0px;text-transfor=
m:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-=
width:0px;background-color:rgb(255, 255, 255);text-decoration-style:init=
ial;text-decoration-color:initial;"><div style=3D""><br></div></div><div=
 style=3D"color:rgb(31, 31, 31);font-family:-apple-system, system-ui, &q=
uot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, Cantarell, &quot;Fira Sans&q=
uot;, &quot;Droid Sans&quot;, &quot;Helvetica Neue&quot;, Arial, sans-se=
rif;font-size:13px;font-style:normal;font-variant-ligatures:normal;font-=
variant-caps:normal;font-weight:400;letter-spacing:-0.1px;orphans:2;text=
-align:start;text-indent:0px;text-transform:none;white-space:normal;wido=
ws:2;word-spacing:0px;-webkit-text-stroke-width:0px;background-color:rgb=
(255, 255, 255);text-decoration-style:initial;text-decoration-color:init=
ial;">Cheers,<br></div><div style=3D"color:rgb(31, 31, 31);font-family:-=
apple-system, system-ui, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubuntu, C=
antarell, &quot;Fira Sans&quot;, &quot;Droid Sans&quot;, &quot;Helvetica=
 Neue&quot;, Arial, sans-serif;font-size:13px;font-style:normal;font-var=
iant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-sp=
acing:-0.1px;orphans:2;text-align:start;text-indent:0px;text-transform:n=
one;white-space:normal;widows:2;word-spacing:0px;-webkit-text-stroke-wid=
th:0px;background-color:rgb(255, 255, 255);text-decoration-style:initial=
;text-decoration-color:initial;">Neil.<br></div></body></html>
--5000e98903cf4382b10b0c2b4ec08c6f--


From nobody Fri Mar  8 08:37:05 2019
Return-Path: <kaduk@mit.edu>
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 DD7E512799F; Fri,  8 Mar 2019 08:37:03 -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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-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=mit.edu
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 IaTmgCO9i4lh; Fri,  8 Mar 2019 08:36:59 -0800 (PST)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-eopbgr790115.outbound.protection.outlook.com [40.107.79.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73CE7124B91; Fri,  8 Mar 2019 08:36:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DabNOYIbo70itJFi4bfF8CKwW0B53IvSxOyFVAXk+jI=; b=FV5G2eyiomoGjTYrG7FV/TDACnfc3kx2BRY9HdJUwF1/XJEhZ21kBxxQqA8EbUTJ7Z1ThOh3JOXd4t+GUQXkE/QLIyRsdjpNLvoHoTmHrGRtPwgw6TB2kC1yzVKTaNtlhgok9eKoWcoH4iYSby4fHZn0BOuUI1hiaFY0kGbzxmQ=
Received: from BL0PR01CA0030.prod.exchangelabs.com (2603:10b6:208:71::43) by CO2PR01MB2008.prod.exchangelabs.com (2603:10b6:102:6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1686.19; Fri, 8 Mar 2019 16:36:56 +0000
Received: from CO1NAM03FT064.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::203) by BL0PR01CA0030.outlook.office365.com (2603:10b6:208:71::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1686.18 via Frontend Transport; Fri, 8 Mar 2019 16:36:56 +0000
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT064.mail.protection.outlook.com (10.152.81.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Fri, 8 Mar 2019 16:36:55 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x28GapLJ009646 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 8 Mar 2019 11:36:53 -0500
Date: Fri, 8 Mar 2019 10:36:50 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neil Jenkins <neilj@fastmailteam.com>
CC: iesg <iesg@ietf.org>, <draft-ietf-jmap-mail@ietf.org>, Bron Gondwana <brong@fastmailteam.com>, <jmap-chairs@ietf.org>, IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <20190308163650.GT9824@kduck.mit.edu>
References: <155175363767.5305.14440255640742603646.idtracker@ietfa.amsl.com> <0f888ff8-8228-43db-b57c-e36dcbc5d2fe@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <0f888ff8-8228-43db-b57c-e36dcbc5d2fe@beta.fastmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(346002)(39860400002)(396003)(136003)(376002)(2980300002)(51914003)(199004)(189003)(2906002)(6916009)(786003)(106466001)(10750500005)(229853002)(316002)(336012)(5660300002)(6246003)(7696005)(486006)(76176011)(53416004)(14444005)(8676002)(1076003)(106002)(36906005)(50466002)(30864003)(126002)(426003)(246002)(476003)(18074004)(956004)(2486003)(11346002)(446003)(2870700001)(88552002)(26826003)(23676004)(53946003)(58126008)(4326008)(478600001)(6346003)(356004)(186003)(75432002)(305945005)(55016002)(86362001)(47776003)(54906003)(104016004)(8936002)(26005)(33656002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR01MB2008; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; A:1; MX:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 272ab294-36aa-4a9a-7ab4-08d6a3e44720
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:CO2PR01MB2008; 
X-MS-TrafficTypeDiagnostic: CO2PR01MB2008:
X-Microsoft-Exchange-Diagnostics: 1; CO2PR01MB2008; 20:KSzmHNTXMhM1lvh6+kVF/gEah1Pb3Y9vxO+Pc5Rqe4NU3Inz/q6TavwWXR10m0y9zVl+hYnUa6TSRhG2dtcBPyLWaL+3wlyVBV/4ScqbfK3L3bJplqoGs+ZeklbNCwxA7AyNpQd2Os0PmThXHJOjAON/dO2DiB9OzG5we9za20GO0TZGlOkH69EBYMWhuciMamLkDih9pDvcpAqiEtG+aIvT98vtOSKgDSnFuA7teFqC3sWZ06+1Vuyvny59+vU7SnSyhRYsr3FzdjaxhxTdhgjHLxcCw2mrZnVZzMW6mtdtnTDJxcRzD8Q0ILXCIyElXR9BGq03Ov546OeZeioWHJsFLLltwXXAtCgadf422MmA6l7x6UxH576EhEETyQl5AWlAh92IzZunpiu4kdqJDZ9PWfoO2htayVfXIb2tohn8lzlpn6eVrh5lhMREGby2Vb2xLZEx0uvVhdyBYwSLjH3QOex9jWWo6ad5vl4IUOz4hJfnOKtbtYgd77llEYd0ZqZMDSJuqooP4lUGPktGvu8PfdoCF4aUfz9I+iABXDCHNr5OkIxOFU/pgvVwZbdBzU6Dm0zq/PZWaaK9B/Lc0obYhffLj6fVZLlv1Kt7rFI=
X-Microsoft-Antispam-PRVS: <CO2PR01MB20085744EBF66E5B20CC3DD9A04D0@CO2PR01MB2008.prod.exchangelabs.com>
X-Forefront-PRVS: 0970508454
X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDTzJQUjAxTUIyMDA4OzIzOnY0dklJUXp1Wi85ZlNQRnlod2cvRHZhMVBr?= =?utf-8?B?K2F6d0N1SlExVXNldDNEUU9mb1dHUFdpZFR6YkMwVkwxWFgrV2Z3dUlhZzBB?= =?utf-8?B?OTlFMFVoQ2VWVFpUYXVFUDFuUk9OdTlwQVAwMktSSWlZSzFFN2tYTFNZZ1Qz?= =?utf-8?B?UGRuYmdZT2xNc05RbzFidHAwcUNBWFpMU0s1d2FyM0JYT1ZoVm15RXZJanY4?= =?utf-8?B?ZjN2TUk1MWI0SFRFemR4bEx5WWlaZnRmV3oyOEFVQmQwbStsL3NKREJwZThU?= =?utf-8?B?U0xFT29YYkR6dVpRN1lSbDl5b213RkYyVUMyN2k5NGJyRkVpbDl0bmljRHZ4?= =?utf-8?B?ZnBxNWV3SFdDeGd1RElZUkZ5dnZzeXNQc0xsZXkvc3YzY1c5K2VVa3VpcUtB?= =?utf-8?B?VlgwN09TUGpFNk42TnFEcFRDOC9rTU1sem80S0ZxNHY2bURoc3dYYXp3Smhp?= =?utf-8?B?elJHVm1qYkVadEtqR3g3c1RHZkMzM283bkZvZmd5dGtMMmZTZUJlOThoN3lp?= =?utf-8?B?UGVPTytRQWJhTjJnNWsrTFE3NGs0bzZVOVlWYmdSWlA3ZTNtZGVzVEE1ZkJW?= =?utf-8?B?NktNMCtKQUNrUTM3SHZ5RFVYMkx5WGJlT2dtdFhTNmJkYytjU25jaW9uVnIz?= =?utf-8?B?ckZpSEMxRmZPN0s1TkhpVXpLOVJ3QmVkMXE4NFg4cTkzNllKN0ZveDJLNmVy?= =?utf-8?B?a2tEaDJTdllLd1VhSWFEV3FCRy9RUjI2UW9PY2t1VytidzdIY3l5Z2hQdExx?= =?utf-8?B?WThyTkJvQnRINWwza0NsQVQyTUxVbEpFOE80dW1JUnhSTUpNTWM0dWpVYTBp?= =?utf-8?B?SW9CbTlLVTFqcmdLZ2U4ODVkbUxQUzdpVGtzWlRrWVJBVHN5YnptdStqMnRH?= =?utf-8?B?MmVtdHFsYS9XSVA3Z2JGcURiWThtcXpOSjJqMFpVdmgzMG4xZEpEQk1ZRUFP?= =?utf-8?B?QTRBaHFnWmhwN1dvdWVwOE0ySU1zeWdMa2hJcCs2MStOZnJYaTUyL1M0RWFv?= =?utf-8?B?Smk1NlZOcWdlZTh4Qit4a3NMK2RYV1pWOEFUWkY3d2VDQmdiM2xhNXlFOUpk?= =?utf-8?B?MWhGTEh4U2RkckN6ZUtWd01aZHQ5SnRZcXZDTzRyamxvYVZxSDdwOVlwZUxP?= =?utf-8?B?Vm81U2Z6NEZTTTBvWG9zVm04TThqQUVPSnUvbUVacEcyWUpybktKSzRsd3dv?= =?utf-8?B?MCsvdEVsWWVvTkhKMzB6L21rTDBod3RlODdKc0hQV2thL3YzYk0zZ21qcDE1?= =?utf-8?B?b1Nwb2prNEFSeGpKWk42SjRZMzVwNVI2U2RXUW85aTN4d21BY2kxc0pVVTBD?= =?utf-8?B?KzNXMVliS0tabVJBZExmWjBmU2hKVkJYWkovT1I2bnllakthc3ltRGwxQkhM?= =?utf-8?B?TGt1L0FrY2NBcW9BZTQreUNibjc4MWJ2MEQrVU84SzV5RWt3eUhid0l0ODRL?= =?utf-8?B?aEV4TVBtb0p1b2dpTmkrL3RYeUxnbjFrKzBjZTlvRHdiaHZUVVI5NWhxZG5W?= =?utf-8?B?Ui9EcFFSSHdqNmFmVXdEekgrQVRtRER6UHZGRkdJYVphTFA1ZmQyQS9Gbk9T?= =?utf-8?B?SEYrWG1Tdm9IbVlpOTZ6RHNKc2VaM1FvOXpVYld6UUZmQjkvM2Y4dlVXSkFV?= =?utf-8?B?VmN4VXJtTHAyU2hCUkFXcmpMZHFGaXZpMzBEb2ZYQWQwWURYZmRDbVdYRnZv?= =?utf-8?B?QVVNRzRmSU9tcTh0aUpHRUhQT0Y1MG1SMCtkTytqWXNWaTlwY0NJaW9IWmtW?= =?utf-8?Q?vhjnT8+I6g4YhcjUptiIBM6CSGc8a0KqjSHEc=3D?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: RxRnR3mlivTZcZ7MIwfxbD3ny45s+14+nR7Uax/nE8nVpepInAqBWGfRSzap4G2py369bm/A7qhCqm1RYQ5stGjNdPqIe08n1dZc7NXB+y/1M7bOC7GMCq8H6iFlQZf0xzXOSmc9ZNtTDBnHjqSuIvBj5w137K8WamrXqFR+LJ8yjGpLJWv9Z4E7lG/lbPiHcRmg99PD1C7/yovq/EBlW90cL+6lm/epjEelje8nSKvl85VKvbWZnzyaq/5+Lt4qdPHLsVjdHfetL3cuSqbKtyYZbHy0APzL2UWaR6jXUYLSe5UiwRmvD1Hy+N44CgLTzndcpRPwfZmA3fKl494c3Nx78Js5p11Ra/HsVk7XMgDAqj2momgx/94yYJZfLwXlmntFjW/ELg6IxFYBa6bM2Q1TJbMFbYwFREJoDhlETac=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2019 16:36:55.2859 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: 272ab294-36aa-4a9a-7ab4-08d6a3e44720
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR01MB2008
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/3q8ayrJUzy5ituUjjml_N5gE-4Q>
Subject: Re: [Jmap] Benjamin Kaduk's Discuss on draft-ietf-jmap-mail-15: (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: Fri, 08 Mar 2019 16:37:04 -0000

On Thu, Mar 07, 2019 at 12:48:53AM -0500, Neil Jenkins wrote:
> Hi Benjamin,
> 
> Thanks for the detailed feedback again.
> 
> > ----------------------------------------------------------------------
> > DISCUSS:
> > ----------------------------------------------------------------------
> > 
> > Section 2
> > 
> > I think we need more precise language than "corresponds to" for the
> > relationship between JMAP MailboxRights and IMAP ACLs, specifically
> > because JMAP distinguishes mayRename and mayDelete but IMAP just has the
> > single 'x' ACL. (More in the COMMENT section, but the non-isomporphic
> > mapping of 'x' is the only DISCUSS-worthy part.)
> 
> I believe "corresponds to" is generally the right way of phrasing this as we do not want to mandate which underlying data model servers should use for their ACLs (e.g. if JMAP is authoritative you may have `mayRename: true` but `mayDelete: false`; in such a case you would have to not expose the `x` ACL over IMAP. If using IMAP as authoritative, then obviously the `mayRename` and `mayDelete` values would always be the same over JMAP.)
> 
> However, I've updated the spec to make this a little more obvious, so it now reads:
>  * *mayRename*: `Boolean`
> The user may rename the mailbox or make it a child of another mailbox. Corresponds to IMAP ACL `x` (although this covers both rename and delete permissions).
>  * *mayDelete*: `Boolean
> `The user may delete the mailbox itself. Corresponds to IMAP ACL `x` (although this covers both rename and delete permissions).

That's enough to resolve the discuss point (and thanks for the other
changes for going from IMAP to JMAP too)

> > Section 4.1.1
> > 
> > We only describe the "\" to "$" translation for the four supported
> > system keywords, but it seems that it should be more generic (not that
> > we expect more IMAP system keywords to appear anytime soon)?
> 
> We do not expect any more system keywords like this ever. Such a keyword would require an RFC rather than just registering it in the (now shared with JMAP) IANA keywords registry, and at review time would be told to just use a normal keyword and put it in the registry. The handling is not generic, in that 2 of the 6 system keywords are obsoleted and not used in JMAP.

I think the core of my position here is from an abstract process sense, in
that IMAP retains sole change control over the IMAP system keywords, and
JMAP has to respond to them.  So, while such a new keyword would require an
RFC, it would be an IMAP RFC, and there is nothing that formally binds them
to consider JMAP as well.  (I do agree in practice that an attempt to do so
is highly likely to get directed elsewhere, of course.)  So in this formal
sense, IMAP could make a change that would leave JMAP in an inconsistent
state.

That said, since both Alexey and you are fully confident this will not be
an issue in practice, I'm not going to press the point any further.

> > Section 4.7
> > 
> >  The server MAY forbid two email objects with the same exact [RFC5322]
> >  content, or even just with the same [RFC5322] Message-ID, to coexist
> >  within an account; if the target account already has the email the
> >  copy will be rejected with a standard "alreadyExists" error.
> > 
> > This has some security considerations that should probably be mentioned
> > in Section 9.4: when a user only has read privileges to a
> > subset of the folders in an account, this behavior can be abused as an
> > oracle to determine whether a given message exists in the inaccessible
> > portions of that account. (Similarly for /import.)
> 
> Agreed, this should be documented. I have added to the "Partial account access" security consideration:
> 
> *If the server forbids a single account from having two identical messages, or two messages with the same `Message-Id` header field, a user with write access can use the error returned trying to create/import such a message to detect whether it already exists in an inaccessible portion of the account.*

Looks good.  (And I also appreciate the loss of "any" from "any
unauthorized information".)

> > Section 4.9
> > 
> >  The following metadata properties on the Email objects will be "null"
> >  if requested:
> >  [...]
> >  o mailboxIds
> > 
> > This seems in conflict with the Section 4.1.1 text that every Email "MUST
> > belong to one or more mailboxes at all times (until it is deleted)."
> > Presumably we want a broader disclaimer in 4.1.1 rather than any changes
> > here...
> 
> Yes. This is one of those things that feels "obvious" but is hard to word! I've changed:
> 
> *An email MUST belong to one or more mailboxes at all times…*
> 
> to:
> 
> *An email in the mail store MUST belong to one or more mailboxes at all times*

That sounds great, thank you.

> > There may also be a related condition wherein an EmailSubmission object
> > refers to an Email after the Email is deleted -- I didn't (yet) see text
> > to indicate whether the emailId in the EmailSubmission is expected to
> > still be resolvable, in which case there would potentially not be an
> > associated Mailbox.
> 
> The email referenced by the EmailSubmission may be deleted, in which case the emailId property of the EmailSubmission will not resolve (and return a `notFound` error if you try to fetch them). I have clarified this in the EmailSubmission/set description which already talks about this being deleted.

Thanks.

> > ----------------------------------------------------------------------
> > COMMENT:
> > ----------------------------------------------------------------------
> > 
> > Section 1.3.1
> > 
> >  o *maxMailboxesPerEmail*: "UnsignedInt|null" The maximum number of
> >  mailboxes that can be can assigned to a single email. [...]
> > 
> > nit: My understanding (shaped solely by experience and inference) is that
> > "email" is generally used to refer to a message, whereas "email account"
> > or "email address" would be used to refer to or associate with a thing
> > that can be a container for folders.
> 
> This *is* talking about a message. I will clarify it to say "Email object" and reference section 4.

Ah!  That's also a fine thing to have a quota on, but I was misreading it.

> >  o *maxSizeMailboxName*: "UnsignedInt" The maximum length, in (UTF-8)
> >  octets, allowed for the name of a mailbox. This MUST be at least
> >  100, although it is recommended servers allow more.
> > 
> > The Unicode normalization form used by client/server could cause
> > disagreement about whether a given name is permitted, though for the
> > type of use this will get it's not clear that we need to be more
> > rigorous.
> 
> I think this is sufficient for the use case it will get. It's an indication the client should not send a name that (in the client's normalisation) is longer than this length. It does not guarantee the server will accept the name; as stated in the relevant section, the server may always apply further policy restrictions on naming and reject it.
> 
> > Section 1.3.2
> > 
> >  o *submissionExtensions*: "String[String[]]" A JMAP implementation
> >  that talks to a Submission [RFC6409] server SHOULD have a
> >  configuration setting that allows an administrator to expose a new
> >  submission EHLO capability in this field. This allows a JMAP
> > 
> > I think I'm confused by the workflow here. Suppose we have a JMAP
> > client A talking to a JMAP server B, and B is also an SMTP client that
> > talks to MTA C. This capability is supposed to be about letting B
> > expose a new EHLO capability to A, but only when C supports it?
> 
> Yes you're right, it's about B being able to easily expose new capabilities that C acquires to A without needing code changes (and without needing a new JMAP-specific specification document for the SMTP extension).
> 
> > We probably need some more text here to explain the scenario, even if my
> > guess is correct.
> 
> OK, I've tried to clarify this:
> 
> *A JMAP implementation that talks to a Submission [@!RFC6409] server SHOULD have a configuration setting that allows an administrator to modify the set of submission EHLO capabilities it may expose on this property. This allows a JMAP server to easily add access to a new submission extension without code changes. By default, the JMAP server should hide EHLO capabilities that are to do with the transport mechanism and thus are only relevant to the JMAP server (for example PIPELINING, CHUNKING, or STARTTLS).*

That's getting the right point across, I think.  I might want to qualify
the "without code changes" with some note about how that depends on the
capability being something that the JMAP layer can just pass through, but
maybe that's obvious.

> >  server to gain access to a new submission extension without code
> >  changes. By default, the JMAP server should hide EHLO
> >  capabilities that are to do with the transport mechanism and thus
> >  are only relevant to the JMAP server (for example PIPELINING,
> >  CHUNKING, or STARTTLS). Each key in the object is the _ehlo-
> >  name_, and the value is a list of _ehlo-args_. Examples of
> >  Submission extensions to include:
> > 
> > The description here could probably be reworded/reorderd for clarity,
> > since we don't start talking about what the actual map keys/values are
> > until the penultimate sentence, at present.
> 
> Agreed. I have added a description of what the property represents and how it is formed to the top:
> 
> *The set of SMTP submission extensions supported by the server, which the client may use when creating an EmailSubmission object (see section 7). Each key in the object is the *ehlo-name*, and the value is a list of *ehlo-args*.*
> 
> The extra discussion then follows from this.
> 
> > Section 1.5
> > 
> >  In addition, servers MUST support pushing state changes for a type
> >  called "EmailDelivery". [...]
> > 
> > Er, is this only servers that are implementing urn:ietf:params:jmap:mail?
> 
> Yes, it should be. I've clarified this.
> 
> > Section 2
> > 
> >  o *id*: "Id" (immutable; server-set) The id of the mailbox.
> > 
> > Since jmap-core now has all Ids as immutable and server-set, is this
> > sort of notation considered redundant in jmap-mail? (Throughout; this
> > is just the first instance.)
> 
> I think it is helpful to reiterate these attributes for consistency with the other property definitions.

Makes sense.

> >  o *sortOrder*: "UnsignedInt" (default: 0) Defines the sort order of
> >  [...]
> >  equal order SHOULD be sorted in alphabetical order by name. The
> >  sorting SHOULD take into account locale-specific character order
> >  convention.
> > 
> > I think this last SHOULD is probably not a 2119 SHOULD, and therefore
> > should just be "should".
> 
> Agreed, done.
> 
> >  o *unreadThreads*: "UnsignedInt" (server-set) An indication of the
> >  number of "unread" threads in the mailbox. For compatibility with
> >  existing implementations, the way "unread threads" is determined
> >  is not mandated in this document. The simplest solution to
> > 
> > Do we really have competing *J*MAP implementations that disagree on
> > this? Or is the idea to preserve compatibility with IMAP
> > clients or other current implementations that attempt to determine
> > threading relationships (in which case, that should probably be mentioned)?
> 
> Not JMAP implementations, but the same functionality has already been implemented for proprietary APIs in at least the two documented forms:
>  * Gmail currently does the "easy" option of just number of unique threads with unread messages in that mailbox.
>  * FastMail currently does the "right" option of counting the thread as unread even if the unread message is in another mailbox (so the number you see in the sidebar corresponds to the number of unread threads you see if you open it).
> It seemed more likely that servers would ignore specific requirements than change to match, hence this text.

Oh, definitely servers will ignore anything we try to mandate.  I'm just
wondering if the text could be more clear about what exactly we're
preserving compatibility with.  (And "no change is a perfectly acceptable
outcome.)

> >  o *myRights*: "MailboxRights" (server-set) The set of rights (ACLs)
> >  the user has in relation to this mailbox. These are backwards
> >  compatible with IMAP ACLs, as defined in [RFC4314]. A
> >  _MailboxRights_ object has the following properties:
> > 
> > I read this as saying that all of the properties must be present in the
> > object, such that omitting a property is not a permitted synonym for it
> > having a value of false. Is this reading correct?
> 
> Yes.

I've forgotten the general style of the doc at this point, but would
"mandatory properties" make sense as a way to emphasize this?

> > If so, what should a client do if the server misbehaves?
> 
> Well, that's undefined really. The server could misbehave in any number of ways, and we can't specify how the client should handle every case. In this particular instance I would probably expect implementations in weakly typed languages to treat absence the same as false and strongly typed implementations to reject the Mailbox object on load from the server as invalid. But that's just the emergent behaviour I would consider most likely, not a requirement.

Okay.

> >  * *mayReadItems*: "Boolean" If true, the user may use this
> >  [...]
> >  but not the parent mailbox, this may be "false". Corresponds
> >  to IMAP ACLs "lr".
> > 
> > "Corresponds to" is perhaps imprecise, if one is thinking about the IMAP
> > ACL as being the authoritative source of information (which not all
> > readers will!). The point being that just 'l' or just 'r' would not be
> > enough to get this, and since JMAP is specifying a slightly more
> > abstract mapping than standard IMAP rights, we should be precise about
> > the mapping, and arguably in both directions. (Not just here, but for
> > all the compound ACLs, of course. Also for IMAP ACL 'x', which has two
> > corresponding JMAP permissions.)
> 
> For mayReadItems and mayRemoveItems (which map to a combination of IMAP ACLs due to difference in API design) I have added a further clarification, like:
> 
> *Corresponds to IMAP ACLs `lr` (if mapping from IMAP, both are required for this to be `true`).*
> 
> >  * *maySetSeen*: "Boolean" The user may add or remove the "$seen"
> >  keyword to/from an email. If an email belongs to multiple
> >  mailboxes, the user may only modify "$seen" if *all* of the
> >  mailboxes have this permission. Corresponds to IMAP ACL "s".
> > 
> > nit: in the intro, we talk of "rights the user has in relation to this
> > mailbox", so it's a bit disjoint to talk of mailboxes having permissons.
> > (Here and below.)
> 
> Yes, I have rewritten to:
> 
> *If an email belongs to multiple mailboxes, the user may only modify *`*$seen*`* if they have this permission for ***all*** of the mailboxes.*
> 
> >  o *isSubscribed*: "Boolean" Has the user indicated they wish to see
> >  [...]
> >  choose to ignore this property, either entirely for ease of
> >  implementation, or just for the primary account (which is normally
> > 
> > nit: We don't really provide a formal definition of "primary account"
> > either here or in jmap-core.
> 
> Yes, this was a concept in an earlier draft that got removed. I have now updated this to read:

Ah, makes sense.

> *However, clients MAY choose to ignore this property, either entirely for ease of implementation, or just for an account where `isPersonal` is `true` (indicating it is the user's own, rather than a shared account).*
> 
> > Section 2.1
> > 
> >  Standard "/get" method. The _ids_ argument may be "null" to fetch
> > 
> > I thought I had said something on jmap-core but maybe I only thought
> > about it: my personal preference would be for section references into
> > jmap-core to provide a foundation for what the "standard method" is,
> > though I will not insist upon it.
> >  all at once.
> 
> I've added section references, so instead of just saying *Standard "/get" method* it now says:
> 
> *Standard "/get" method as described in [@!I-D.ietf-jmap-core] section 5.1.*
> 
> (and similar where the same pattern is used elsewhere).

Thank you.  I know it feels tedious and repetitive, but it helps out people
who are just looking up a single aspect without wanting to read the whole
document set.

> > Section 2.2
> > 
> > I might say explicitly that "a non-null updatedProperties response
> > argument indicates that the mailbox contents are unchanged from the old
> > state, with only the counts having changed", since these semantics are
> > potentially unexpected.
> 
> It's not the mailbox contents, it's the properties on the mailbox object. (I would presume mailbox contents refers to the messages in the mailbox, which clearly have changed if the counts have changed). I think the current text here is OK.
> 
> > Section 2.3
> > 
> >  Standard "/query" method, but with the following additional argument:
> > 
> > (Generic comment, not scoped to just this section): are we going to need
> > to draw a distinction between input and ouput arguments for any of the
> > additions we make to standard methods?
> 
> Hmm, I'll reword this to "additional request argument" just to be sure this is clear.
> 
> >  o *role*: "String|null" The Mailbox _role_ property must match the
> >  given value exactly.
> > 
> > So the client is responsible for lower-casing values from the IMAP
> > Mailbox Name Attributes registry and the server must not do a
> > case-insensitive comparison?
> 
> Yes.
> 
> >  The following properties MUST be supported for sorting:
> > 
> > Just to be pedantic, we're talking about the values of the "property"
> > property within the Comparator object, right? (This is one of those
> > annoying things at the intersection of technical specifications and
> > natural English language.)
> 
> Yes, I've tried to clarify this.
> 
> > Section 4
> > 
> >  Due to the number of properties involved, the set of _Email_
> >  properties is specified over the following three sub-sections.
> > 
> > It's probably worth a note that the subsections are for purposes of
> > document organization and are not reflected in the wire protocol
> > structure -- the properties involved are all top-level peers, across the
> > three subsections. (Assuming that's correct, of course.)
> 
> That is correct, I'll add a note.
> 
> > Section 4.1
> > 
> > I assume it was a conscious WG decision to not present a full
> > consolidated schema for Email. But I want to check, since I think (not
> > having one) that it would have helped my understanding, and I try to be
> > open to discovering the errors of my ways...
> > 
> >  o _textBody_/_htmlBody_: These provide a list of parts that should
> >  be rendered sequentially as the "body" of the message. This is a
> >  list rather than a single part as messages may have headers and/or
> >  footers appended/prepended as separate parts as they are
> >  transmitted, and some clients send text and images intended to be
> >  displayed inline in the body (or even videos and sound clips) as
> >  multiple parts rather than a single HTML part with referenced
> >  images.
> > 
> > Some guidance related to interpreting these lists and avoiding the eFail
> > (efail.de) class of attacks is probably in order -- the HTML parts
> > should get some different containers around their processing. This
> > could potentially go here, or in Section 9.2.
> 
> Yes, I have added a new subsection to the security considerations:
> 
> *Messages may consist of multiple parts to be displayed sequentially as a body. Clients MUST render each part in isolation and MUST NOT concatenate the raw text values to render. Doing so may change the overall semantics of the message. If the client or server is decrypting a PGP or S/MIME encrypted part, concatenating with other parts may leak the decrypted text to an attacker, as described in [EFAIL]* (reference to paper added).

Thank you, that's a nice summary.

> >  Because MIME allows for multiple representations of the same data
> >  (using "multipart/alternative"), there is a textBody property (which
> >  prefers a plain text representation) and an htmlBody property (which
> >  prefers an HTML representation) to accommodate the two most common
> >  client requirements. The same part may appear in both lists where
> >  there is no alternative between the two.
> > 
> > (soapbox) It's annoying when I get mime/multipart with HTML in the
> > text/plain section. Is this clause going to allow for that same sort of
> > misclassification?
> 
> If the sender puts HTML in a part marked `text/plain` then, well, the sender is broken and there's not much we can do. (Clients can attempt to sniff the content and treat as `text/html` if they want but of course there's always the slim chance that someone really did want to send a bunch of HTML code as plain text).
> 
> This is an independent issue to the htmlBody/textBody properties though. These are simply a list of part ids, and those parts have a content type which the client needs to use to determine how to render it. There is a possibility that a client doesn't read the spec and presumes it will always get plain text in the textBody array, but then again the client could ignore any part of the spec and start doing silly things. Such a mistake is likely to become obvious and be fixed at some point.

Okay, this makes sense now, whether just on a third reading or having you
explain it.

> >  Due to the number of properties involved, the set of _Email_
> >  properties is specified over the following three sub-sections.
> > 
> > nit: are we at four sub-sections now?
> 
> Yes, I'll update that.
> 
> > Section 4.1.1
> > 
> >  The IMAP "\Recent" keyword is not exposed via JMAP. The IMAP
> >  "\Deleted" keyword is also not present: IMAP uses a delete+expunge
> >  model, which JMAP does not. Any message with the "\Deleted"
> >  keyword MUST NOT be visible via JMAP (including as part of any
> >  mailbox counts). Users may add arbitrary keywords to an email.
> > 
> > IIRC, Trash gets special handling with respect to deletion in JMAP
> > commands; does it also get special treatment w.r.t \Deleted translation
> > from IMAP to JMAP?
> 
> I'm not quite sure what you're asking here. As stated in this text, if supporting IMAP and JMAP on the same server, the server MUST treat \Deleted messages the same as if they were expunged when accessing via JMAP.

It looks like I was confused, sorry.  (Maybe something about message counts
in Trash?  But even that doesn't make much sense.)

> > Section 4.1.2.2
> > 
> > This escape valve for "Any header not defined in [RFC5322] or [RFC2369]"
> > (here, et seq) seems like it might benefit from some general guidance
> > about implementations applying common sense, i.e., allowing servers the
> > ability to deny requests for a given form for such new headers in order
> > to prevent nonsense behavior.
> 
> A bit torn on this. It's not an interoperable definition but at the same time it is perhaps reasonable to change this to:
> 
> *Any header not defined in [@!RFC5322] or [@!RFC2369], except where the server has determined this is obviously nonsense.*
> 
> I'm not convinced it's worth it overall; I'll leave it for now.

That's a fine stance to take; thanks for thinking about it.

> > Section 4.1.4
> > 
> >  o *partId*: "String|null" Identifies this part uniquely within the
> >  Email. This is scoped to the _emailId_ and has no meaning outside
> >  of the JMAP Email object representation. This is "null" if, and
> >  only if, the part is of type "multipart/*".
> > 
> > The prose isn't the super-best indicator that the asterisk is
> > intended to have wildcarding behavior.
> 
> I've added to the introduction:
> 
> *In the following subsections the common notational convention for wildcards has been adopted for content types, so `foo/*` means any content type that starts with `foo/`.*
> 
> > Section 4.4.1
> > 
> > Just to double-check: the different fencepost behavior for
> > minSize/maxSize is intentional?
> 
> Yes. Ranges, and properties defining ranges, are intended to match the behaviour most prevalent in common programming languages today: inclusive start, exclusive end. This is consistently applied across the spec (e.g. vacation response from/to).

I noticed it in several places, yes, and happy to hear that it's
intentional.

> >  o *text*: "String" Looks for the text in emails. The server SHOULD
> >  look up text in the _from_, _to_, _cc_, _bcc_, _subject_ header
> >  fields of the message, and inside any "text/*" or other body parts
> >  that may be converted to text by the server. The server MAY
> >  extend the search to any additional textual property.
> > 
> > side note: as a mail user, I like to be able to use text search to
> > conclusively determine that a given message/topic is *not* in a given
> > mailbox. This weak "SHOULD" language does not provide me that
> > guarantee, though I can see how it makes sense in the protocol design to
> > leave the flexibility for implementors, here.
> 
> Hmm, I think it's safe enough to change this to something a little stronger:
> 
> *Looks for the text in emails. The server MUST look up text in the *from*, *to*, *cc*, *bcc*, *subject* header fields of the message, and SHOULD look inside any `text/*` or other body parts that may be converted to text by the server. The server MAY extend the search to any additional textual property.*

Thanks!

> >  o When searching inside a "text/html" body part, any text considered
> >  markup rather than content SHOULD be ignored, including HTML tags
> >  and most attributes, anything inside the "<head>" tag, CSS and
> >  JavaScript. Attribute content intended for presentation to the
> >  user such as "alt" and "title" SHOULD be considered in the search.
> > 
> > This would seem to leave no reliable way for a security researcher to
> > (e.g.) search for snippets of attack javascript in received mails
> > without downloading all of them.
> 
> Perhaps, and maybe this would be a worthy extension. But the default behaviour should absolutely be as described to correspond with general user expectation.
> 
> >  o Text SHOULD be matched in a case-insensitive manner.
> > 
> > Is the server going to have a sense of the user's locale as needed for
> > fully generic case-insensitive comparison?
> 
> This will be vendor dependent, but often yes. (For example at FastMail we try to determine the prevalent language in a message in order to use the appropriate stemming algorithm for indexing it for search; the same information could be used for determining what case-sensitivity method to use).

This is just a SHOULD, so there's not really a strict need to say more, but
I can imagine some people reading this and thinking "strcasecmp()", when
the reality is a lot more complicated.  I guess maybe we could reference
PRECIS stringprep or something like that if we wanted to, but your call.

> >  o Tokens MAY be matched on a whole-word basis using stemming (so for
> >  example a text search for "bus" would match "buses" but not
> >  "business").
> > 
> > I think this is supposed to not apply to the "phrase search" two bullets
> > above, but greater clarity would be appreciated.
> 
> OK, I'll amend to:
> 
> *Tokens (not part of a phrase) MAY be …*

Thanks!

> >  o *hasKeyword* - This value MUST be considered "true" if the email
> >  has the keyword given as an additional _keyword_ property on the
> >  _Comparator_ object, or "false" otherwise.
> > 
> > I strongly suggest an explicit listing of the "additional properties as
> > reuqired for specific sort operations" of the _Comparator_ type when
> > used for Emails.
> 
> OK, I've added the following to the introductory paragraph above the list:
> 
> *The following values for the "property" field on the Comparator object SHOULD be supported for sorting. When specifying a "hasKeyword", "allInThreadHaveKeyword" or "someInThreadHaveKeyword" sort, the Comparator object MUST also have a keyword property.*

Thanks.

> > Section 4.6
> > 
> >  When emptying the trash, clients SHOULD NOT destroy emails which are
> >  also in a mailbox other than trash. For those emails, they SHOULD
> >  just remove the Trash mailbox from the email.
> > 
> > This last SHOULD seems to be duplicated in Section 2.
> 
> Thanks, I've fixed this duplication.
> 
> >  For successfully created Email objects, the _created_ response
> >  contains the _id_, _blobId_, _threadId_ and _size_ properties of the
> >  object.
> > 
> > For partial drafts, the behavior where a threadId always gets assigned
> > on first touch is perhaps interesting, as subsequent edits might cause
> > the effective threading to change, which would necessitate a new Id as
> > well (IIUC). I'm not sure if there's anything weird there that a client
> > would need to be prepared for, though. (Maybe not, given that it always
> > is going to get back an _id_ from /set, and should be using that.)
> 
> Yes, email content is immutable, so to update a draft you need to create a new email and destroy the old one. This means you will always get a new id for the message (and possibly a different thread id to before too).

Thanks for confirming my understanding.

> > Section 4.8
> > 
> >  If the blob referenced is not a valid [RFC5322] message, the server
> >  MAY modify the message to fix errors (such as removing NUL octets or
> >  fixing invalid headers). If it does this, the _blobId_ on the
> >  response MUST represent the new representation and therefore be
> >  different to the _blobId_ on the EmailImport object. Alternatively,
> >  the server MAY reject the import with an "invalidEmail" SetError.
> > 
> > In general, having more options like this can increase the fragility of
> > the ecosystem, as a client might be written to assume one behvaior and
> > then be not as portable to a different server. I'm not sure that
> > there's a clear way to mandate a single type of behavior here, but want
> > to be sure that the topic was discussed.
> 
> Yes, it was discussed. Both behaviours are reasonable and exist in equivalent IMAP implementations, so this seemed the best solution for the JMAP spec.

WFM.

> > Section 6
> > 
> >  o *email*: "String" (immutable) The "From" email address the client
> >  MUST use when creating a new message from this identity. The
> >  value MAY alternatively be of the form "*@example.com", in which
> >  case the client may use any valid email address ending in
> >  "@example.com".
> > 
> > I mostly assume this is supposed to be for a generic domain and not
> > special-casing example.com literally. Some extra text/formatting would
> > help with that.
> 
> Your interpretation is correct. I've rewritten this to:
> 
> *If the mailbox part of the address (the section before the "@") is the single character `*` (e.g. `*@example.com`) then the client may use any valid address ending in that domain (e.g. **`foo@example.com`**).*

Looks good (I had failed to come up with a good way to do this, hence the
lack of suggestion).

> > Section 7.3
> > 
> > The associated identityId is not a queriable property?
> 
> Yeh, it probably should be for consistency. I'll add this.
> 
> > Section 7.5
> > 
> >  o *onSuccessUpdateEmail*: "Id[Email]|null" A map of _EmailSubmission
> >  id_ to an object containing properties to update on the Email
> >  object referenced by the EmailSubmission if the create/update/
> >  destroy succeeds. (For references to EmailSubmission creations,
> >  this is equivalent to a back-reference so the id will be the
> >  creation id prefixed with a "#".)
> > 
> > I'm confused by the "Id[Email]" part -- we describe it as a map to "an
> > object containing properties to update", but that's not exactly what an
> > Email object is. Is this more of a PatchObject than an Email per se?
> 
> Yes, this should be `Id[PatchObject]`; I've updated this. (A patch object to update an Email of course, but that's clear from the description).
> 
> > nit: I'd also tweak the wording of the parenthetical a bit (here and
> > below), to something like "when applying to EmailSubmissions created in
> > the same "/set" invocation, ..."
> 
> Thanks, that's clearer, I'll update.
> 
> > Section 8
> > 
> > By a literal reading, fromDate and toDate are in conflict with each
> > other (when non-null). That is, the fromDate text does not admit the
> > possibility of an end to the vacation response period, and vice versa.
> 
> OK, I'll update the definitions to clarify.
> 
> > Section 9
> > 
> > I'd consider adding another sentence like "Additional considerations
> > specific to the data types and functionality introduced by this document
> > are described in the following subsections."
> 
> Sure, done.
> 
> > Section 9.3
> > 
> > I know we don't want this to devolve into a generic discussion of the
> > flaws of email, but perhaps the envelope-from/body-from distinction is
> > worth repeating, with a note that JMAP has provisions for ACLs on
> > submission that check both.
> 
> I have added the following section to the security considerations
> 
> **Permission to send from an address***
> *
> *
> *
> *The email ecosystem has in recent years moved towards associating trust with the From address in the [@!RFC5322] message, particularly with schemes such as DMARC ([@?RFC7489]).**
> *
> *
> *
> *The set of Identity objects (see section 6) in an account lets the client know which email addresses the user has permission to send from. Each email submission is associated with an identity, and servers SHOULD reject submissions where the `From` header field of the email does not correspond to the associated identity.**
> *
> *
> *
> *The server MAY allow an exception to send an exact copy of an existing message received into the mail store to another address (otherwise known as "redirecting" or "bouncing"), although it is RECOMMENDED the server limit this to destinations the user has verified they also control.**
> *
> *
> *
> *If the user attempts to create a new Identity, the server MUST reject it with the appropriate error if the user does not have permission to use that email address to send from.**
> *
> *
> *
> *The [@!RFC5321] SMTP MAIL FROM address is often confused with the [@!RFC5322] message header. The user generally only ever sees the message header address, and this is the primary one to enforce. However the server MUST also enforce appropriate restrictions on the [@!RFC5321] MAIL FROM address to stop the user from flooding a 3rd party address with bounces and non-delivery notices.**
> *
> *
> *
> *The JMAP submission model provides separate errors for impermissible addresses in either context.*

That's quite good.

Thanks again for all the updates (and I've changed to No Objection in the
dattracker), so this should be ready for Alexey to push the button on.

-Benjamin


From nobody Fri Mar  8 11:44:37 2019
Return-Path: <kaduk@mit.edu>
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 A38EB1310B0; Fri,  8 Mar 2019 11:44:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mit.edu
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 qNEgm8KrT2O5; Fri,  8 Mar 2019 11:44:27 -0800 (PST)
Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-eopbgr810109.outbound.protection.outlook.com [40.107.81.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BA6D31277DB; Fri,  8 Mar 2019 11:44:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1;  h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eGCjnQVi9Wn+Q2dMTeGZ6RZeYJve2z60dUnMVc+0f4o=; b=s7nqLlDCKGnhFWJlgRr/Y9kjTDuDMrbhaoYIsoRR5W8j+sTUNV5IZUbSM0OG40Aby62PYtmO/nUFzda8KZdNW9jmjXTmSi2Wio9Z3mMN8zkz+i7B7R535UxXpeW5egKw1KWbygtceXnAeYChyGR3l0Pk5yxDNr43/3NS9skz6kU=
Received: from SN2PR01CA0015.prod.exchangelabs.com (2603:10b6:804:2::25) by BN6PR0101MB3171.prod.exchangelabs.com (2603:10b6:405:2f::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1665.19; Fri, 8 Mar 2019 19:44:24 +0000
Received: from CO1NAM03FT026.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e48::206) by SN2PR01CA0015.outlook.office365.com (2603:10b6:804:2::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1686.18 via Frontend Transport; Fri, 8 Mar 2019 19:44:24 +0000
Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=bestguesspass action=none header.from=mit.edu;
Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu;
Received: from outgoing.mit.edu (18.9.28.11) by CO1NAM03FT026.mail.protection.outlook.com (10.152.80.162) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1643.13 via Frontend Transport; Fri, 8 Mar 2019 19:44:23 +0000
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x28JiJC4021072 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 8 Mar 2019 14:44:21 -0500
Date: Fri, 8 Mar 2019 13:44:19 -0600
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neil Jenkins <neilj@fastmailteam.com>
CC: iesg <iesg@ietf.org>, <draft-ietf-jmap-core@ietf.org>, Bron Gondwana <brong@fastmailteam.com>, <jmap-chairs@ietf.org>, IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <20190308194418.GU9824@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(396003)(136003)(346002)(39860400002)(376002)(2980300002)(40224003)(189003)(199004)(51444003)(54094003)(51914003)(8676002)(106002)(26005)(1076003)(47776003)(186003)(14444005)(305945005)(50466002)(54906003)(88552002)(58126008)(36906005)(6916009)(316002)(2870700001)(478600001)(76176011)(356004)(246002)(4326008)(104016004)(5660300002)(2906002)(86362001)(75432002)(2486003)(7696005)(8936002)(476003)(11346002)(486006)(126002)(53416004)(53946003)(956004)(33656002)(106466001)(336012)(229853002)(966005)(30864003)(6306002)(55016002)(446003)(26826003)(23676004)(6246003)(426003)(786003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR0101MB3171; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; 
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f765507e-b310-4313-63e0-08d6a3fe7779
X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4608103)(4709054)(2017052603328)(7153060); SRVR:BN6PR0101MB3171; 
X-MS-TrafficTypeDiagnostic: BN6PR0101MB3171:
X-MS-Exchange-PUrlCount: 3
X-Microsoft-Exchange-Diagnostics: 1; BN6PR0101MB3171; 20:Y9f1+g3tv0YjFtWPys7dKzZ29Wswczss+n2oHpuTAX3Av8fMbMPBpqqSbKBcnx0Cwtf7WEJQqSsEm1rVncQLx6MQ4ObkG+96qN6bxK8fKrnWoqdFBdP95Fn4b+lbIr7pkgh5scnzKC5oyoblfhBjYj0uJmfZL4DHxoVCCK7Fy1P1M7DVGzYDRNxAQ4f8718NRUJNTYDalWOL84u2QATOxRO+Sr6yIkE+pGylaI6JYFnKs7dOeilT3etsFqQb8c+9w11zMyE47UgtMzj60sZ5sj5BY3dWyZRnECJXZ+uc6zbar4mEKCfyMNRPQL3bQ4hRRX9yPVObJrmoqqa+gnrCNrQr18c+BoDp5E3l2QQhufIZVPIdUWts2Chg27OmwpVc2XvW7x0ycJwQ3Li3jXTtn0PFSLx1QcXuvN9D/cTzFsNyVxMwdDyHs2Zm48u+o3XPS2pyiudAhu0OuDG8xBPbZFlHGsf96dYVf0b5TnrlhEjpib1g8kSEKaFCDrcjRC3s4g53r5+3c1J7gpR9hlsQT0+5xpSYdY1jV2PVmZ8t93S70WoETjy3/HBvABK8Yx7yFbTFSJE5wBka0O52ZhOHs+Jk+nWYug1ntGd2v1ZQHvM=
X-Microsoft-Antispam-PRVS: <BN6PR0101MB317192E019386774229A1D20A04D0@BN6PR0101MB3171.prod.exchangelabs.com>
X-Forefront-PRVS: 0970508454
X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjAxMDFNQjMxNzE7MjM6WTN0d1grM1ZwVlFJZ08wWWFtVHJxV2JY?= =?utf-8?B?d3I4VC9YeFVzdTR0eUg5bVdNY2ZJVElVT1MvT0JodE8zU2dicjN1TVNYTzY5?= =?utf-8?B?Mk1WZ0hvaExtRis0ZjBNUmRDU1c2M050Uk9PWDFyS29yYTc0WEF3VzduTFlF?= =?utf-8?B?YmVhZE4yUWhNd2xxbFMwYW9DZm5YekZXeFR0RGFHRU1UalQ1R0pUSXg1ZFBF?= =?utf-8?B?a1NRSXg1VWV3Vjk1VGhGYWNmc1kwbUR2Unc0ZVdsSHF4MVd3UkpuVnovekFO?= =?utf-8?B?dXFia0p3UXlnckExbEtkK0RMZnNsVXhKZndwLzl1VzVGcEY1clRlR3dMbkw5?= =?utf-8?B?V3VBeXgyQThla21vL3dXdGtWelU3bmFweUxQWG9rRktsbXpuRU9Hcm1MYzMz?= =?utf-8?B?bW81eWdQbFdHVkRlZllGcFZpb09RTjJHbGFOdU9lTmF2OHZnKzRrNmhvam94?= =?utf-8?B?bGViNEc3VTZWb09aN1h3VGdWYi9oN2liWjltODc3NWVSeVFCOEVCeHlhb1ps?= =?utf-8?B?NXpVRlo3dklhcVkyaDErYmhacXpDMEpmMUZ4TjdPWFpTc3VYZXRzZUhmaGJj?= =?utf-8?B?MEttQWFDcmc2a0c3VWtic1R4d0FrWFZML2pZay9NR3pTWmVNck45UjZ3Rnc3?= =?utf-8?B?RXhYVTRORkxpa1JPazNVQTNxOVFMSEJDdGtEclBLMjFYcHNDVDZPZWZ6RGxn?= =?utf-8?B?a0JQK214K0xnL2JhK2VkTlpUVnlKN00zSU1ZMEdlcE5YLzdDOS9NK3VBdFZW?= =?utf-8?B?UW1GZ2tpQ003SHNLeWNpd3NzS0tZT01XTWFCYzJ6dldVY2xManBZVFM0aitj?= =?utf-8?B?RXI4Rmp0TzNpVFkwNmZaTndDL2hHMi9aMk5Xd0V3N2tSbVMzZUQ5ZnErVE85?= =?utf-8?B?Z1dOMlRUb1BISUhxU2xQNytiODhPdEMxTWRrTUZRdWgzSU1HQlhEVUJBVGZr?= =?utf-8?B?SGlJY3RvSUd5NTVTbk03aXppUVg5ZDYzRzFzWXhnd2FZcEIvMnNncXU2Qnp0?= =?utf-8?B?bTdRV05uUXM2aUovbXFkTTVuakdNcDdqU1QwbWp2VkZJVThyTkh1NmYzTGY4?= =?utf-8?B?dzNPSHh3MTdmRytHc3gwcmR6Zk05dTdIVjlHS2dSL2ZhTmxaODRacWtUcmlK?= =?utf-8?B?cHpwRlRJV3BoWUJLRGRvdFNWSVFwT0pJL2YvNmVjZTVGS21xRFBKRERqaGlX?= =?utf-8?B?UUw3bE9GYTFMV2dZUHM4NlBtS2wwMXpZc25JbE9iZGJzRXQzOFNIa0EwQjZU?= =?utf-8?B?RDBRc3JXb0RjcG9QU25tQmlQS2FvRUNwMFB0b3FqbmtWcmpVMU9FMGZ6VXVn?= =?utf-8?B?SVZVUG0xVFBOS0lOdTVUeHFSVFZoaU04NEZFeHBCOHdLTlhoSXkzVVpLRmxt?= =?utf-8?B?NG9uVFhVMFRRU3RJSU1oSWlaaXlBLy9UcnlnTGlwSzc1NTlJamI2VGJEYTFP?= =?utf-8?B?RElOSkhJekVKSm13WldkSXF1dVdTVjZXQ0dRRnFjVlFLN0hVTG5EcWVTVmF2?= =?utf-8?B?Y3RaRVRIb1pNYjdWL21jbmVWSUtYTmtLcG5hbE53V0E4ajdSM21ybTdwRkxV?= =?utf-8?B?LytGbmF0WUF5UGFyM0pzeDN3SWxxOWlhc1Bhc2trVmZodWVCMmNJNHpNNUJR?= =?utf-8?B?WmJYc3BzZzZLclBiOVJNVlBCQmVGVHV4R1M0akJzVUlickJwaVZLcVRaQWdo?= =?utf-8?B?MURnTGtoWnJaM0VpOVQ0SDhNM3V2WVJ6eG9KOENuNXFZbWR2OEsxRGNudGRH?= =?utf-8?B?eGNnTTNERHdtYW1BSU94ZUc4T2ZiRXRLWE5pT1paYjZnRFBEdDFvQ0VjZ283?= =?utf-8?B?ZEdpN3JJU2JMczJUYUtQY0N0TG1YS2NOWC91eE9lOEtORUJnZz09?=
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam-Message-Info: kyZtxzCHJYS+nAVlsflYmSmSPvgwzyQE41z9WjzzdDSNZl7GPKZHQNPvK0Al/6pM5nlW5MBu1da8BHPRH84Q5bhUi/Gb3y5uHYbJBLHkL7iKLN1BQ2lO9t/MEgJfSQsMD5rQgNNpmBCnVO9jHPTqfs3FQsLN+Zj1cEYlkaqlQwUg/7df/mMyTucT8Ms75o6vvaLi7lSYZxVixSoNBeBmnWYuYeDjew2pnxjsEmNvtUEGXlS6lm7ltd104naHAQivl3n9XA5GRW9tbsa7lusZglxgjjMVm7ncG2MXBkGPJlKJnO03JGO9n9kFNkcDYlFmCyhxGt5S3BWKmIUDJZHGFhNZ7GLxzV+L6LcrFrdghYh7V2c7f1vi+Uef0PARHB+jCd2tWoAGpOG5W7rQhDN9AOF6IhsXbV4N9M938WMFfrQ=
X-OriginatorOrg: mit.edu
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2019 19:44:23.5083 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: f765507e-b310-4313-63e0-08d6a3fe7779
X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11];  Helo=[outgoing.mit.edu]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR0101MB3171
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/metlwpNZE7hz-JiMxaPmB112UQ8>
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: Fri, 08 Mar 2019 19:44:35 -0000

On Thu, Feb 28, 2019 at 01:14:44AM -0500, Neil Jenkins wrote:
> Thanks for the detailed feedback Benjamin.

Forking the thread to get back to the comments; the -16 looks good w.r.t.
the discussion points.

> *Discussion points*
> 
[...]
> 
> *Comments*
> 
> >  o "String[A]" - A JSON object where the keys are all "String"s, and
> >  the values are of type "A".
> > 
> > To avoid confusion about whether String is the only possible map key
> > type (vs., e.g., Id), maybe "A[B]" notation is more appropriate?
> 
> Sure, done.
> 
> > Section 1.2
> > 
> > Do we want to give any guidance about when it is (not) advisable to use
> > very short identifiers (even the 1-2 character case could be
> > noteworthy)? (I don't know what that guidance would be, so "no" is a
> > perfectly fine answer!)
> 
> Hmm, no. I don't think it really matters; the server can use whatever scheme it likes. (For example, might have monotonically increasing integers which you prefix with a letter for the type, leading to ids like "K1", "J6" etc. in the early cases; this is a perfectly reasonable scheme to use).
> 
> > W.r.t "NIL", that is the specifc 3-character identifier, right? Or do
> > we need to worry about having it embedded as part of a larger string?
> 
> Just the exact string "NIL".

Okay.  I guess the list would even be more parallel if the text was "Ids
that are the exact three characters "NIL" [...]", but this is your call.

> > (I don't see how prefixing every ID with an alphabetical character
> > avoids the "NIL" case, unless 'N' is disallowed from being that
> > character.)
> 
> Well, yes true, but this is general advice not a normative requirement, and if you might produce the letters "IL" as a suffix, then don't choose "N" as a prefix. Even then though, it should be fine unless these same ids are shared with another protocol where this string has special significance.
> 
> > Section 1.3
> > 
> > My math degree obliges me to note that, per trichotomy, zero is not a
> > positive integer.
> 
> I've renamed this to `UnsignedInt`.

Thanks.  (To be honest, I wasn't actually expecting this to change, so it
was a pleasant surprise.)

> > Section 1.6.1
> > 
> > nit: perhaps a "user object", or some broader rewrite like "in this
> > document, the keyword 'user' is used to refer to [...]" -- the current
> > text feels like it's dehumanizing, well, humans.
> 
> I have reworded this to:
> 
> *A user is a person accessing data via JMAP. A user has a set of permissions determining the data that they can see.*

Thanks.

> > Section 1.6.2
> > 
> > nit re. "All data belong to a single account": I assume this is "each datum
> > has a map to its respective account", not "the entire set of data in the
> > system is associated with a single privileged account", as that would
> > make the account distinction rather useless.
> 
> Yes. I have removed this sentence as redundant already based on previous feedback.
> 
> > Section 1.7
> > 
> > A "MUST" requirement for TLS would seem likely to disallow HTTP/3
> > (QUIC).
> 
> My understanding is that QUIC will also use TLS <https://datatracker.ietf.org/doc/draft-ietf-quic-tls/>.

The situation there is actually a bit complicated.  My understanding is
that the current plan is to use the TLS handshake messages, but transmit
them over the QUIC record layer, as a key-agreement mechanism.  The TLS
record-protection layer would not be used at all, and so I wouldn't really
characterize that as "using TLS".

> > Does "MUST confirm with the HTTP Authentication framework" preclude
> > other authentication schemes? The RFC 7235 framework has some warts,
> > and in many webapp settings there are plausible reasons to prefer
> > app-layer authentication schemes. I guess that JMAP as being an
> > API-driven model may have a more natural mapping to the 7235 framework,
> > and I do note the remarks in the shepherd writeup that an authentication
> > scheme was removed from a previous version of this document. So mostly
> > I'm just asking if we are intending to force the 7235 framework to be
> > the one and only authentication scheme for JMAP. (Who knows, maybe this
> > will drive adoption of new HTTP Authentication Schemes or prompt renewed
> > interest in their development?)
> 
> This has been raised by other reviewers too, and I think I'm going to just cut the line and the requirement. Implementors that want/need to use something other than 7235 will almost certainly do so regardless of what we write here.

That's fair.

> >  Clients MUST understand and be able to handle standard HTTP status
> >  codes appropriately.
> > 
> > (Is there a precise definition for "standard HTTP status codes"?)
> 
> No, I've cut this line as well. This was recommended text in an early draft of BCP 56bis <https://datatracker.ietf.org/doc/draft-ietf-httpbis-bcp56bis/>, but has since been cut.
> 
> >  An authenticated client can fetch the JMAP Session object with
> >  details about the data and capabilities the server can provide as
> > 
> > nit: maybe this is "a JAMP session object" with the indefinite article?
> 
> I used the definite article here because the client is authenticated, and therefore has access to one specific JMAP session object associated with those credentials.

Would that indicate "their"/"its", then?

> > Section 2
> > 
> >  o *username*: "String" The username associated with the given
> >  credentials.
> > 
> > This seems to implicitly require that all credentialed entities have
> > user accounts, denying the possibility for some shared-credential or
> > machine-credential models. Is this intended?
> 
> Hmm, fair point. I'll change the description to:
> 
> *The username associated with the given credentials, or the empty string if none.*
> 
> >  o *state*: "String" A string representing the state of this object
> >  on the server. If the value of any other property on the session
> >  object changes, this string will change. The current value is
> >  also returned on the API Response object (see section 3.3),
> >  allowing clients to quickly determine if the session information
> >  has changed (e.g. an account has been added or removed) and so
> >  they need to refetch the object.
> > 
> > As written this sounds like a serialized version of the full object
> > (without the 'state' field, of course, to avoid recursion), but I
> > suspect this is intended to be more like a generation number or hash or
> > serialized state, as a short lookup key. Greater clarity would be
> > welcome.
> 
> Yes, the intention is for this to be a short generation/modification number or hash. While this is preferred, it is not required to be a short string for functional operation. I hesitate to put further normative restrictions on it as this may make it harder for existing server implementations of other APIs with a similar concept but longer strings to implement a JMAP interface.
> 
> I'm happy to suggest this however; I'll change "A string representing…" to "A (preferably short) string representing…".

That looks good to me.

> > Section 3.2
> > 
> >  o *using*: "String[]" The set of capabilities the client wishes to
> >  use. The client MAY include capability identifiers even if the
> >  method calls it makes do not utilise those capabilities. The
> >  server advertises the set of specifications it supports in the
> >  JMAP Session object, as keys on the _capabilities_ property.
> > 
> > Are the "capability identifiers" the same as or different from the
> > "specifications [the server] supports"?
> 
> I have updated this to stick to "capability" as the terminology; a specification (document) may define more than one capability that can be supported independently, so the two are not interchangeable.
> 
> > Is the "client id" something that could also be called a "request ID"?
> > (I note that RFC 7252 calls a similar thing a "token" but has some text
> > wishing they called it a "request ID".)
> 
> Based on feedback from another reviewer I have renamed this "method call id". (A request in JMAP is a bundle of method calls so "request id" would not be appropriate.)

Sounds good.

> > The 'prefixed with a "#"' laguage seems like it has some potential for
> > confusion; is it better to write this like "the first character of the
> > creation ID MUST be octothorpe ('#')"?
> 
> The # is not part of the creation id. References to a creation id may be used in a context where an id is expected by prefixing the creation id with a #. Since this is not a valid character in an id, it is easy to determine that this must be a creation reference. I have added a reference at this point to the /set definition where this is explained in more detail.

That will help, though I'm not sure exactly how much.
Looking at this again, I think the biggest thing that confused me on my
first read is that I didn't internalize that creation ids and
ResultReferences are different things (since they both use the magic "#"
prefix), and I was trying to reconcile them into the same bucket.
So maybe when ResultReference is introduced there could be a note about how
"the ResultReference performs a similar role to that of the creation id, in
that it allows a chained method call to refer to information not available when
the request is generated.  However, they are different types and not
interchangable; the only commonality is the octothorpe used to indicate
them".  But, maybe I'm unusual for being confused about this and it's not
worth the extra text.

> > AFAICT having finished reading the doc, these can only be created by
> > explicit client action via a "create" array (or equivalent), where the
> > array keys are the "creation id"s since the client has to use some
> > handle before the server has assigned them. It should be possible to
> > add a very brief note to that effect here.
> 
> I have added cross-references to make this a bit clearer. There is now text here that says:
> 
> *As the server processes API requests, any time it successfully creates a new record it adds to this map the creation id (see the *create* argument to "/set" in section 5.3), with the server-assigned real id as the value.*
> 
> > Given the later usage in Section 3.3, I would consider splitting the
> > *Invocation* definition into a subsection.
> 
> OK
> 
> > Section 3.3
> > 
> > (editorial) If the second element of the Invocation tuple is literally
> > "arguments for the method", do we really have enough rope to make
> > response objects like this (unless we limit ourselves to conceptually
> > "in/out" arguments with no pure-output functionality)?
> 
> I think the document as a whole makes the syntax clear enough, but if you have a suggestion for better wording here I'm happy to consider it.

I don't have any wording suggestions, so this will probably be fine as-is.

> > Section 3.5
> > 
> > I expect that deployment will see differences of opinion as to which
> > checks fall under "syntactically valid", but it's unclear whether we
> > need to attempt to forestall such debate.
> 
> I would consider this to mean something that is valid JSON and when decoded matches the type signature of the Request object. I will clarify this in the spec, although I don't think small deviations in interpretation are likely to result in significant interoperability issues.

(I agree that it's unlikely for any interoperability issues to occur, so
I'm not very worried about this.)

> > Section 3.5.1
> > 
> >  o "urn:ietf:params:jmap:error:notRequest" The request parsed as JSON
> >  but did not match the structure of the Request object.
> > 
> > "the Request object" makes me think of "the thing the client stuck in
> > the field named "Request", which is probably not the intent. Perhaps
> > the key phrase is "type signature"?
> 
> Yes, that's clearer; I have changed this.
> 
> > Section 3.5.1.1
> > 
> > Since there is special handling for "urn:ietf:params:jmap:error:limit",
> > do we want an example to show that?
> 
> I'll add a second example.

Thanks.

> > Section 3.5.2
> > 
> >  With the exception of "serverPartialFail", the externally-visible
> >  state of the server MUST NOT have changed if an error is returned at
> >  the method level.
> > 
> > nit: You don't say where in the type signature "serverPartialFail" is
> > supposed to be in order to trigger the special handling.
> 
> Sorry, I don't understand this comment. serverPartialFail is a method-level error so it would be returned like any other method-level error:
> 
> [ "error", {
>   "type": "serverPartialFail"
> }, "call-id-1" ]

I think I misparsed what this was trying to say, namely that there is a
serverPartialFail element whose state is allowed to change if there is a
method-level error.  That is, of course, nonsense; the fact that the server
returns a serverPartialFail error code indicates that the "entire" server
state is indeterminate and the client must resync.  So any response to my
comment here would be along the lines of changing the text to "with the
exception of when the 'serverPartialFail' error is returned".

> >  Further general errors MAY be defined in future RFCs. Should a
> >  client receive an error type it does not understand, it MUST treat it
> >  the same as the "serverFail" type.
> > 
> > Does this imply that "serverPartialFail" is unique in its ability to
> > partially modify state?
> 
> General errors (that could be returned by any method) are expected to be defined rarely. A partial-fail where the server commits state changes but then fails part way is also expected to be very rare (because the client has to do a full resync to recover). 
> 
> If necessary, it's more likely a future specification could define an error that partially modifies state but is only returned in very specific circumstances and when the client has opted in to that capability, so it knows the client will be able to handle it.

Okay.

> > Section 3.6
> > 
> > (Same comment about '"prefixes with "#"' as above.)
> > 
> >  If an argument object contains the
> >  same argument name in normal and referenced form (e.g. "foo" and
> >  "#foo"), the method MUST return an "invalidArguments" error.
> > 
> > This "same argument name in normal and referenced form" applies even in
> > arbitrarily nested objects, right? It seems like this could potentially
> > be expensive and/or difficult to enforce.
> 
> Arguments are not nested. Only the top-level keys in the object are arguments. The value to an argument may be an object, but the keys in there are not arguments; they are properties of that object.

Thanks for clarifying; that makes sense now.

> > Section 5.1
> > 
> >  o *ids*: "Id[]|null" The ids of the Foo objects to return. If
> >  "null" then *all* records of the data type are returned, if this
> >  is supported for that data type.
> > 
> > Maybe note that the "maxObjectsInGet" capability limit might kick in
> > here for the "null" case?
> 
> OK, done.
> 
> >  o *properties*: "String[]|null" If supplied, only the properties
> >  listed in the array are returned for each Foo object. If "null",
> >  all properties of the object are returned. The id property of the
> >  object is *always* returned, even if not explicitly requested. If
> >  an invalid property is requested, the call MUST be rejected with
> >  an "invalidArguments" error.
> > 
> > Because we're constrained to a single type here, there's no way for only
> > some (but not all) of the objects to have any given property, right?
> 
> Correct.
> 
> > Section 5.3
> > 
> >  o *ifInState*: "String|null" This is a state string as returned by
> >  the _Foo/get_ method. If supplied, the string must match the
> > 
> > So, just to double-check, this applies to the state of all objects of
> > the type in question (for the account)?
> 
> Yes.
> 
> > It might be worth reiterating, since we frequently see this sort of check against the current state at
> > a per-object granularity, in other systems.
> 
> OK, will do.
> 
> > Do the "creation id"s in the "create" array include leading "#"?
> 
> No. A creation id is of type `Id` which does not allow this character. When a creation id is referenced from elsewhere, this is signified by prefixing the id with a #.
> 
> > Section 5.4
> > 
> >  o *destroyFromIfInState*: "String|null" This argument is passed on
> >  as the "ifInState" argument to the implicit _Foo/set_ call, if
> >  made at the end of this request.
> > 
> > This is "the Implicit _Foo/set_ call that effectuates the destruction of
> > the original", right?
> 
> Yes.

I think I was asking for a little more text here, basically to reiterate
that the Foo/set call is a deletion call.

> >  o *created*: "Id[Foo]|null" A map of the creation id to an object
> >  containing any properties of the copied Foo object that are set by
> >  the server (such as the _id_ in most object types). This argument
> >  is "null" if no Foo objects were successfully copied.
> > 
> > Maybe note that the id property will also likely differ from the one
> > that was passed in in the create array, since the ids in question are
> > from different accounts?
> 
> Sure, done.
> 
> > Section 5.6
> > 
> >  o *upToId*: "Id|null" The last (highest-index) id the client
> >  currently has cached from the query results. When there are a
> > 
> > Just to double-check: semantically this is an object identifier, but the
> > ordering we care about for the "up to" part is the ordering in the query
> > results?
> 
> Yes.
> 
> >  o *removed*: "Id[]" The _id_ for every foo that was in the query
> >  results in the old state and is not in the results in the new
> >  state. If the server cannot calculate this exactly, the server
> >  MAY return extra foos in addition that may have been in the old
> >  results but are not in the new results. If the sort and filter
> >  are both only on immutable properties and an _upToId_ is supplied
> >  and exists in the results, any ids that were removed but have a
> >  higher index than _upToId_ SHOULD be omitted. If the _filter_ or
> >  _sort_ includes a mutable property, the server MUST include all
> >  foos in the current results for which this property MAY have
> >  changed.
> > 
> > I'm having a hard time understanding this "MAY have changed" text
> > (which, for one, shouldn't be using 2119 language). Taking note that
> > this is the "removed" list, this text seems to be saying that I include
> > in the "removed" list any object that *is* in the current query results,
> > but which may have had a property change since the previous state. So
> > we end up having to do a "remove + add" for this sort of property
> > change, is that right?
> 
> Yes. If the item may have moved in the list, the client needs to remove and then re-add it at its current index to ensure its query results cache is correct. I will add a sentence to explain this.

Thanks!

> (I have changed the "MAY" to "may"; this was incorrect use of 2119 language, you're right.)
> 
> > We may need more detail on the "splices in" operation, with respect to
> > the indices in the "added" array reflecting the final state, and the
> > local cached indices needing to be updated on the fly during the
> > splicing operation in order to get things inserted in the proper places.
> 
> Right. I have tried to make this a bit clearer; it now reads:
> 
> *The result of this is that if the client has a cached sparse array of foo ids corresponding to the results in the old state:**
> *
> *
> *
> *    fooIds = [ "id1", "id2", null, null, "id3", "id4", null, null, null ]**
> *
> *
> *
> *then if it ***splices out*** all ids in the removed array that it has in its cached results:**
> *
> *
> *
> *    removed = [ "id2", "id31", ... ];
>     fooIds => [ "id1", null, null, "id3", "id4", null, null, null ]**
> *
> *
> *
> *and ***splices in*** (one-by-one in order, starting with the lowest index) all of the ids in the added array:**
> *
> *
> *
> *    added = [{ id: "id5", index: 0, ... }];
>     fooIds => [ "id5", "id1", null, null, "id3", "id4", null, null, null ]**
> *
> *
> *
> *and ***truncates*** or ***extends*** to the new total length, then the results will now be in the new state.**
> *
> *
> *
> *Note: splicing in adds the item at the given index, incrementing the index of all items previously at that or a higher index. Splicing out is the inverse, removing the item and decrementing the index of every item after it in the array.*

Thanks, I think that will help make things clear.

> > Section 5.8
> > 
> >  2. It must resolve back-references to previous method results that
> >  were processed on a different server. This is a relatively
> >  simple syntactic substitution, described in section 3.6.
> > 
> > Relatively simple, yes, but does require properly parsing the JSON
> > (right?).
> 
> Yes.

The security reviewer part of me wants the text to point out that this
puts the proxy's JSON parser squarely in the attack surface, so if it is
poorly implemented that's a risk for the system as a whole.  I want to say
that you could do (1) without a full JSON parser, so to some extent it is
just the backreferences that make this a full-fledged requirement on the
proxy.

> > Section 6.3
> > 
> > Why does Blob/copy use 'blobIds' instead of 'create' like generic /copy?
> 
> Because it's a different format (just an array of ids rather than a map of creation id to object). We considered it clearer if arguments with the same name were of the same type.

Good point; I think I missed that the first time around.

> >  o *fromAccountId*: "Id" The id of the account emails were copied
> >  from.
> > 
> >  o *accountId*: "Id" The id of the account emails were copied to.
> > 
> > I assme the "emails" are copy/paste bugs.
> 
> Yes, good spot. I've fixed this.
> 
> > Section 7.2
> > 
> >  o *deviceClientId*: "String" (immutable) An id that uniquely
> >  identifies the client + device it is running on. The purpose of
> >  this is to allow clients to identify which PushSubscription
> >  objects they created even if they lose their local state, so they
> >  can revoke or update them. This string MUST be different on
> >  different devices, and be different from other vendors. It SHOULD
> > 
> > What's the first vendor that's the basis for comparison?
> 
> Sorry, I'm not quite sure what you're asking here.

I think my fundamental confusion here is about where the device ID is
coming from -- is this supposed to be something like the serial number or
IMEI number from my phone, that is a fixed and permanently bound to a
specific device (and not changeable)?  I think we delved into related
topics for Alissa's Discuss, but not quite into this aspect of things.  If
I start talking about "vendors", is there some implication that the
identity of the current device's vendor is input to the
deviceClientId-generation process (whether explicitly or implicitly via a
manufacturer prefix in some other identifier)?  So the literal answer to my
question here is something like the "first vendor" is the manufacturer of
the device being identified, or the author of the app generating this
specific deviceClientId.

Even in the current text (-16), I wonder if "a device id" is quite enough,
as opposed to "a unique identifier associated with the device where the
JMAP client is running" or similar.

> >  be easy to re-generate, not depend on persisted state. A secure
> >  hash that includes both a device id and vendor id is one way this
> >  could be achieved.
> > 
> > Easy to re-generate by whom?
> 
> The client.
> 
> > How does the client get the deviceClientId value the first time?
> 
> It generates it from its vendor app id and a device id it gets from the OS.

E.g., we don't say "gets from the OS" anywhere in the -16.

> e.g. `sha256( "com.example.mail" . $device-id )`
> 
> (where I own example.com and `$device-id` is from the OS).
> 
> >  The POST request MUST have a content type of "application/json" and
> >  contain the UTF-8 JSON encoded object as the body. The request MUST
> > 
> > (editorial) Are we back to what the JMAP server sends to the notification URL?
> 
> Yes.
> 
> >  The push subscription is tied to the credentials used to authenticate
> >  the API request that created it. Should these credentials expire or
> >  be revoked, the push subscription MUST be destroyed by the JMAP
> >  server.
> > 
> > How is the JMAP server expected to learn about credential expiry or
> > revocation?
> 
> That's implementation dependent.

I think when  I first read this I was confused about whether this was
credentials for [JMAP client to JMAP server] or [JMAP server to push
service].  But the PushSubscription object is a pure JMAP thing, so it's
the first case and the JMAP server does its own credential management, as
you note here.

Which is a long way of saying "I agree, and the current text is fine" :)

> >  When these credentials have their own expiry (i.e. it is a session
> >  with a timeout), the server SHOULD NOT set or bound the expiry time
> > 
> > (editorial) A session where?
> 
> If your authentication has the concept of a session that expires after a set amount of time, or after a set amount of idle time (rather than, say, just a BASIC username/password with no expiry time).

(seems like my same confusion as above, nothing to see here)

> > Section 7.2.1
> > 
> > I would suggest a section reference to "follows the common /get
> > semantics from Section 5.1, with the exceptions that [...]" to more
> > clearly incorporate by reference the existing text.
> 
> OK, I've added a reference.
> 
> > What nature of authorization checking is done for these get requests?
> 
> These are standard method calls that are sent like any other, and so authenticated like any other at the HTTP request level.

(The new text in the -15 addresses what I was getting at; thanks)

> > Section 7.2.3
> > 
> > Given that all of these times are going to be in the past for all
> > readers, do we want to say something about what time the client is
> > performing these operations at?
> 
> Yes, that's reasonable. I have done this (and fixed up the times in the examples to make sense relative to one another).

Thank you!

> > Section 8.1
> > 
> > Again, this (duplicated!) MUST for TLS prevents future HTTP/3 QUIC
> > usage.
> > 
> > Also, please reference RFC 7525.
> 
> I have added a reference to RFC 7525 and removed the duplication.
> 
> > Section 8.2
> > 
> > Please recommend against Basic. Also, the concept of what a "user's regular password" is seems a bit
> > underspecified.
> 
> OK. I've modified this to read:
> 
> *Use of the Basic authentication scheme is NOT RECOMMENDED. Services that choose to use this are strongly recommended to require generation of a unique "app password" via some external mechanism for each client they wish to connect.*
> 
> (I've just cut "user's regular password" since it's redundant.)

Beautiful!  (Maybe s/use this/use it/, but I'm sure the RFC Editor is on
top of it.)

> > Section 8.3
> > 
> > DNS SRV-based autodiscovery seems the only type of autodiscovery
> > available that is susceptible to the attack described here; you should
> > probably just state that explicitly.
> 
> OK, will do.
> 
> > Section 8.4
> > 
> > While true, 8529's security considerations are pretty sparse; we could
> > say more here about not overscanning, limiting string length, being
> > strict about tokenization, etc.
> 
> Do you have any suggested text?

As for any serialization format, parsers need to thoroughly check the
syntax of the supplied data.  JSON uses opening and closing tags for
several types and structures, and it is possible that the end of supplied
data will be reached when scanning for a matching closing tag; this is an
error condition and implementations need to stop scanning at the end of the
supplied data.

JSON also uses a string encoding with some escape sequences to encode
special characters within a string.  Care is needed when processing these
escape sequences to ensure that an escape sequence is fully formed before
the special processing is triggered, with special care taken when the
escape sequences appear adjacent to other (non-escaped) special characters
or the end of data (as in the previous paragraph).

If parsing JSON into a non-textual structured data format, implementations
may need to allocate storage to hold JSON string elements.  Since JSON
does not use explicit string lengths, the risk of denial of service due to
resource exhaustion is small, but implementations may still wish to place
limits on the size of allocations they are willing to make in any given
context, to avoid untrusted data causing excessive memory allocation.

> > Section 8.7
> > 
> >  and JMAP server the client MUST specify encryption keys when
> >  establishing the PushSubscription and ignore any push notification
> >  received that is not encrypted and signed with those keys.
> > 
> > There's no signing in RFC 8291; there is, however, a separate
> > authentication secret.
> 
> Right, I will update this text.
> 
> > Section 8.8
> > 
> > I would be surprised if the propsects for traffic analysis were limited
> > to just push. Even regular accesses may still be susceptible to traffic
> > analysis.
> 
> No doubt something could be gleaned. I will make this slightly more generic, although push notifications still have the clearer information leak.

Sure (the new text looks fine).

> > Section 9.4.3
> > 
> > You probably should document that recourse for non-response after 30
> > days is to request action from the IESG.
> 
> OK.

Thanks for all the updates!

I've changed my position to "No Objection" in the datatracker.

-Benjamin

P.S. I appreciate the separate "description" column for the error registry
in the -16, but the formatting of the current table is basically
unreadable.  I had to go find
https://github.com/jmapio/jmap/commit/3f4b7f83c99596a553bd81324c092516a9babbcf#diff-3004124a0560c91bfc79eb996bd81433
to get something useful to look at.


From nobody Sun Mar 10 16:17:34 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id F141F126C87; Sun, 10 Mar 2019 16:17:20 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: jmap@ietf.org
Message-ID: <155225984096.31139.16575504947097778197@ietfa.amsl.com>
Date: Sun, 10 Mar 2019 16:17:20 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/yQX8mnkHCRYUAuENORl8IKL05K0>
Subject: [Jmap] I-D Action: draft-ietf-jmap-websocket-01.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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: Sun, 10 Mar 2019 23:17:21 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the JSON Mail Access Protocol WG of the IETF.

        Title           : A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket
        Author          : Kenneth Murchison
	Filename        : draft-ietf-jmap-websocket-01.txt
	Pages           : 12
	Date            : 2019-03-10

Abstract:
   This document defines a binding for the JSON Meta Application
   Protocol (JMAP) over a WebSocket transport layer.  The WebSocket
   binding for JMAP provides higher performance than the current HTTP
   binding for JMAP.

Open Issues

   o  Should push over WebSocket make use of the EventSource Last-Event-
      ID request header field (or a similar facility; e.g., as an extra
      query parameter)?  And if so, where would the server state token
      be returned to the user?  As a new property in the StateChange
      object?


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-websocket/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-jmap-websocket-01
https://datatracker.ietf.org/doc/html/draft-ietf-jmap-websocket-01

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-jmap-websocket-01


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Mon Mar 11 08:28:01 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3F32F1310F8; Mon, 11 Mar 2019 08:27:47 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: The IESG <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.93.0
Auto-Submitted: auto-generated
Precedence: bulk
Cc: The IESG <iesg@ietf.org>, brong@fastmailteam.com, draft-ietf-jmap-mail@ietf.org, jmap@ietf.org, alexey.melnikov@isode.com, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, rfc-editor@rfc-editor.org
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Message-ID: <155231806725.23211.15616842348270993405.idtracker@ietfa.amsl.com>
Date: Mon, 11 Mar 2019 08:27:47 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/iljqdnfDM_eLrkiwcgpnG8R4w18>
Subject: [Jmap] Protocol Action: 'JMAP (JSON Meta Application Protocol) for Mail' to Proposed Standard (draft-ietf-jmap-mail-16.txt)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 11 Mar 2019 15:27:48 -0000

The IESG has approved the following document:
- 'JMAP (JSON Meta Application Protocol) for Mail'
  (draft-ietf-jmap-mail-16.txt) as Proposed Standard

This document is the product of the JSON Mail Access Protocol Working Group.

The IESG contact persons are Adam Roach, Alexey Melnikov and Ben Campbell.

A URL of this Internet Draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-mail/




Technical Summary

  JMAP-Mail specifies a data model for synchronising email data
  with a server using the core protocol defined in
  draft-ietf-jmap-core.

  JMAP-Mail is the first user of the generic mechanism described
  in the core protocol.

Working Group Summary

  The initial proposal for JMAP-Mail included a special "Outbox"
  folder for sending mail.  This has been changed to use a new
  object called "EmailSubmission" instead - which has been tested
  and is in use at FastMail.

  The working group also reworked the data model considerably.
  This data model includes a simplified set of views into the full
  MIME data structure to allow easier client development, while
  still giving the full power of the structure where required.

  This work has been done concurrently with the EXTRA working group
  which is extending RFC3501 (IMAP4), with an eye to keeping both
  email access protocols compatible with each other.

Document Quality

  The only known implementations of the latest protocol have been
  done by FastMail staff, but there exist multiple implementations
  of earlier drafts, and their authors have read the current
  drafts - they're just waiting until publication to update to the
  latest version.  Both client and server implementations are
  available as open-source.

  The JMAP working group is small, but there have been multiple
  people who have read the document carefully - Chris Newman who
  is now listed as an author gave particularly detailed reviews.

  The authors of the various parts of the FastMail stack that are
  now implemented on this spec, and of the two test suites covering
  the spec, have also found multiple issues in the last 6 months
  which have fed back into the final document.

  Multiple email server vendors have indicated their intention to
  either add JMAP to their existing servers, or to build new
  services on top of the JMAP data model.

Personnel

  The Document Shepherd is Bron Gondwana and the Responsible
  Area Director is Alexey Melnikov.


From nobody Tue Mar 12 19:15:08 2019
Return-Path: <neilj@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 9329C1311C1; Tue, 12 Mar 2019 19:15:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.982
X-Spam-Level: 
X-Spam-Status: No, score=-1.982 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, MIME_HEADER_CTYPE_ONLY=0.717, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=ffGuPn9x; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Ix1JdX7R
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 UzMv0vDv1o90; Tue, 12 Mar 2019 19:14:58 -0700 (PDT)
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 7B28C13119D; Tue, 12 Mar 2019 19:14:58 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 13D9221D19; Tue, 12 Mar 2019 22:14:55 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Tue, 12 Mar 2019 22:14:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=message-id:in-reply-to:references:date:from :to:cc:subject:content-type; s=fm2; bh=m9idBWjz8z78pims0natO7ueN CDGho8dNtfU3NqB8lk=; b=ffGuPn9xEDgunp8bXPy4X+eMafgITAYkzcwFynZi6 nM4UyJQxfHfXjRVqSxD1BamZosOTd4Evyy6d0pE4XLlUETTACwF8DlKm/4Y9iYdq xqfD3GEFxMnjol8uD3ifk3regY1JqgPGxqz7K+kTemBb1HyUt3MaFGvvrYzdS5jc M1wWaD/fpqJ/PSjvyO2CfQJ5w+ZOA3Ev5pQohN8RCCI/LPF8sTre6RpXjnhFn1gY 24H42iRYNBHZhJ3DWFeHSjuGIcxNGRfRCX8hzf5D7upPfbioARlcDetzdOYDZjJj 2FDNVHev/HSppgOer+VjCAbMcL5ut1Caj/CYsm+1yDmGQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:references:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=m9idBWjz8z78pims0 natO7ueNCDGho8dNtfU3NqB8lk=; b=Ix1JdX7R8w41hZeuuwszTMphY0rlMWbtb qCUxVC8FOC8AYpxuzd7nzecZNJWAwcTRY6XDbRkmfko6vcDxOxpFzp7ysvlDcFh+ rMMYfb80zWta1ErZxToPZsC0NUayNEe6ckRw/his2wvaB0Vn6cYKwh3PIyC4osOu YSpN2Aw1SQEVBgpN8D92/FcQJLbW/TzOTeItGeWGlUX01tUer2WHEwgzObqFlZg5 YUnRIziq7v5bFLEWoqEkNWfmSGjBxD3LvhxIaanPKuAZNYx41vyUJBwSVeJdqKkG Ci4TlKc5uNWZqfhPJPQL4TwxtnQrrlSgo44nWIPwZQ4eASv2UUihA==
X-ME-Sender: <xms:nmeIXNCni1HyB0cRkwqBSWEUwPr71xhrLVKCVezY7PXOOYREsPMpow>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrgeelgdegfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgfkjghffffhvffutgesrgdtreerreerjeenucfhrhhomhepfdfpvghilhcu lfgvnhhkihhnshdfuceonhgvihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmqeenuc ffohhmrghinhepghhithhhuhgsrdgtohhmpdhjmhgrphdrihhonecurfgrrhgrmhepmhgr ihhlfhhrohhmpehnvghilhhjsehfrghsthhmrghilhhtvggrmhdrtghomhenucevlhhush htvghrufhiiigvpedt
X-ME-Proxy: <xmx:nmeIXGn676op07WoFpJ-nsiTjZTZpTcyKh_ri7-maFdyBjHGw4hpqA> <xmx:nmeIXAqEeCPfcBFrqj2SCcFYiVFbuGLp14ih2FK-SBrjB_fPxSsyUQ> <xmx:nmeIXKBtkXJT1frx9SXJdPIlWXgByFvJo1KkBQTbDLbsiMP-sizr4w> <xmx:n2eIXNtomuF9HzVjeQcmc11h1ou6V12yPnhgS5bviSboadLpsI824w>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 4103920431; Tue, 12 Mar 2019 22:14:54 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-925-g644bf8c-fmstable-20190228v5
X-Me-Personality: 64588216
Message-Id: <13279c7a-980a-4cd3-b37f-a9b7b26854c4@beta.fastmail.com>
In-Reply-To: <20190308194418.GU9824@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com> <20190308194418.GU9824@kduck.mit.edu>
Date: Tue, 12 Mar 2019 22:14:53 -0400
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "Benjamin Kaduk" <kaduk@mit.edu>
Cc: iesg <iesg@ietf.org>, draft-ietf-jmap-core@ietf.org, "Bron Gondwana" <brong@fastmailteam.com>, jmap-chairs@ietf.org, "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=8db7089f433a4383999ebd45860b1adb
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Edj_peIdHiTtIt7TRcF4HIxTnwk>
Subject: Re: [Jmap]  =?utf-8?q?Benjamin_Kaduk=27s_Discuss_on_draft-ietf-jmap-c?= =?utf-8?q?ore-14=3A_=28with_DISCUSS_and_COMMENT=29?=
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: Wed, 13 Mar 2019 02:15:06 -0000

--8db7089f433a4383999ebd45860b1adb
Content-Type: text/plain

On Sat, 9 Mar 2019, at 06:44, Benjamin Kaduk wrote:
> > > An authenticated client can fetch the JMAP Session object with
> > > details about the data and capabilities the server can provide as
> > > 
> > > nit: maybe this is "a JAMP session object" with the indefinite article?
> > 
> > I used the definite article here because the client is authenticated, and therefore has access to one specific JMAP session object associated with those credentials.
> 
> Would that indicate "their"/"its", then?

I'll make it *the *user's* JMAP session object.*

> > > The 'prefixed with a "#"' laguage seems like it has some potential for
> > > confusion; is it better to write this like "the first character of the
> > > creation ID MUST be octothorpe ('#')"?
> > 
> > The # is not part of the creation id. References to a creation id may be used in a context where an id is expected by prefixing the creation id with a #. Since this is not a valid character in an id, it is easy to determine that this must be a creation reference. I have added a reference at this point to the /set definition where this is explained in more detail.
> 
> That will help, though I'm not sure exactly how much.
> Looking at this again, I think the biggest thing that confused me on my
> first read is that I didn't internalize that creation ids and
> ResultReferences are different things (since they both use the magic "#"
> prefix), and I was trying to reconcile them into the same bucket.
> So maybe when ResultReference is introduced there could be a note about how
> "the ResultReference performs a similar role to that of the creation id, in
> that it allows a chained method call to refer to information not available when
> the request is generated. However, they are different types and not
> interchangable; the only commonality is the octothorpe used to indicate
> them". But, maybe I'm unusual for being confused about this and it's not
> worth the extra text.

I don't think it hurts to clarify; I'll add this in.

> > > Section 5.4
> > > 
> > > o *destroyFromIfInState*: "String|null" This argument is passed on
> > > as the "ifInState" argument to the implicit _Foo/set_ call, if
> > > made at the end of this request.
> > > 
> > > This is "the Implicit _Foo/set_ call that effectuates the destruction of
> > > the original", right?
> > 
> > Yes.
> 
> I think I was asking for a little more text here, basically to reiterate
> that the Foo/set call is a deletion call.

OK, I'll clarify this.

> > > o *fromAccountId*: "Id" The id of the account emails were copied
> > > from.
> > > 
> > > o *accountId*: "Id" The id of the account emails were copied to.
> > > 
> > > I assme the "emails" are copy/paste bugs.
> > 
> > Yes, good spot. I've fixed this.
> > 
> > > Section 7.2
> > > 
> > > o *deviceClientId*: "String" (immutable) An id that uniquely
> > > identifies the client + device it is running on. The purpose of
> > > this is to allow clients to identify which PushSubscription
> > > objects they created even if they lose their local state, so they
> > > can revoke or update them. This string MUST be different on
> > > different devices, and be different from other vendors. It SHOULD
> > > 
> > > What's the first vendor that's the basis for comparison?
> > 
> > Sorry, I'm not quite sure what you're asking here.
> 
> I think my fundamental confusion here is about where the device ID is
> coming from -- is this supposed to be something like the serial number or
> IMEI number from my phone, that is a fixed and permanently bound to a
> specific device (and not changeable)? I think we delved into related
> topics for Alissa's Discuss, but not quite into this aspect of things. If
> I start talking about "vendors", is there some implication that the
> identity of the current device's vendor is input to the
> deviceClientId-generation process (whether explicitly or implicitly via a
> manufacturer prefix in some other identifier)? So the literal answer to my
> question here is something like the "first vendor" is the manufacturer of
> the device being identified, or the author of the app generating this
> specific deviceClientId.
> 
> Even in the current text (-16), I wonder if "a device id" is quite enough,
> as opposed to "a unique identifier associated with the device where the
> JMAP client is running" or similar.

Yes, this should be clearer. I have rewritten this to be:

*This string MUST be different on different devices, and be different from apps from other vendors. It SHOULD be easy to re-generate, not depend on persisted state. **It is RECOMMENDED to use a secure hash of a string that contains:*
*
*
 1. *A unique identifier associated with the device where the JMAP client is running, normally supplied by the device's operating system.
*
 2. *A custom vendor/app id, including a domain controlled by the vendor of the JMAP client.
*
*
*
*To protect the privacy of the user, the deviceClientId id MUST NOT contain an unobfuscated device id.*

> > > Section 8.3
> > > 
> > > DNS SRV-based autodiscovery seems the only type of autodiscovery
> > > available that is susceptible to the attack described here; you should
> > > probably just state that explicitly.
> > 
> > OK, will do.
> > 
> > > Section 8.4
> > > 
> > > While true, 8529's security considerations are pretty sparse; we could
> > > say more here about not overscanning, limiting string length, being
> > > strict about tokenization, etc.
> > 
> > Do you have any suggested text?
> 
> As for any serialization format, parsers need to thoroughly check the
> syntax of the supplied data. JSON uses opening and closing tags for
> several types and structures, and it is possible that the end of supplied
> data will be reached when scanning for a matching closing tag; this is an
> error condition and implementations need to stop scanning at the end of the
> supplied data.
> 
> JSON also uses a string encoding with some escape sequences to encode
> special characters within a string. Care is needed when processing these
> escape sequences to ensure that an escape sequence is fully formed before
> the special processing is triggered, with special care taken when the
> escape sequences appear adjacent to other (non-escaped) special characters
> or the end of data (as in the previous paragraph).
> 
> If parsing JSON into a non-textual structured data format, implementations
> may need to allocate storage to hold JSON string elements. Since JSON
> does not use explicit string lengths, the risk of denial of service due to
> resource exhaustion is small, but implementations may still wish to place
> limits on the size of allocations they are willing to make in any given
> context, to avoid untrusted data causing excessive memory allocation.

Great, thanks, I'll add that in.

> P.S. I appreciate the separate "description" column for the error registry
> in the -16, but the formatting of the current table is basically
> unreadable. I had to go find
> https://github.com/jmapio/jmap/commit/3f4b7f83c99596a553bd81324c092516a9babbcf#diff-3004124a0560c91bfc79eb996bd81433
> to get something useful to look at.

Yes, I'm hopeful the RFC editors may help with this; I'm not sure what the best approach is. (Just as an FYI, I also publish the latest version of the spec in a more readable HTML format at https://jmap.io/spec-core.html and https://jmap.io/spec-mail.html.)

I'll post a -17 when submissions reopen and hopefully this can progress through to join the mail spec in the final editing stage.

Cheers,
Neil.
--8db7089f433a4383999ebd45860b1adb
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>On Sat, 9 =
Mar 2019, at 06:44, Benjamin Kaduk wrote:<br></div><blockquote id=3D"fas=
tmail-quoted" type=3D"cite"><div>&gt; &gt;&nbsp; An authenticated client=
 can fetch the JMAP Session object with<br></div><div>&gt; &gt;&nbsp; de=
tails about the data and capabilities the server can provide as<br></div=
><div>&gt; &gt;&nbsp;<br></div><div>&gt; &gt; nit: maybe this is "a JAMP=
 session object" with the indefinite article?<br></div><div>&gt;&nbsp;<b=
r></div><div>&gt; I used the definite article here because the client is=
 authenticated, and therefore has access to one specific JMAP session ob=
ject associated with those credentials.<br></div><div><br></div><div>Wou=
ld that indicate "their"/"its", then?<br></div></blockquote><div><br></d=
iv><div>I'll make it <i>the <b>user's</b> JMAP session object.</i><br></=
div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div=
>&gt; &gt; The 'prefixed with a "#"' laguage seems like it has some pote=
ntial for<br></div><div>&gt; &gt; confusion; is it better to write this =
like "the first character of the<br></div><div>&gt; &gt; creation ID MUS=
T be octothorpe ('#')"?<br></div><div>&gt;&nbsp;<br></div><div>&gt; The =
# is not part of the creation id. References to a creation id may be use=
d in a context where an id is expected by prefixing the creation id with=
 a #. Since this is not a valid character in an id, it is easy to determ=
ine that this must be a creation reference. I have added a reference at =
this point to the /set definition where this is explained in more detail=
.<br></div><div><br></div><div>That will help, though I'm not sure exact=
ly how much.<br></div><div>Looking at this again, I think the biggest th=
ing that confused me on my<br></div><div>first read is that I didn't int=
ernalize that creation ids and<br></div><div>ResultReferences are differ=
ent things (since they both use the magic "#"<br></div><div>prefix), and=
 I was trying to reconcile them into the same bucket.<br></div><div>So m=
aybe when ResultReference is introduced there could be a note about how<=
br></div><div>"the ResultReference performs a similar role to that of th=
e creation id, in<br></div><div>that it allows a chained method call to =
refer to information not available when<br></div><div>the request is gen=
erated.&nbsp; However, they are different types and not<br></div><div>in=
terchangable; the only commonality is the octothorpe used to indicate<br=
></div><div>them".&nbsp; But, maybe I'm unusual for being confused about=
 this and it's not<br></div><div>worth the extra text.<br></div></blockq=
uote><div><br></div><div>I don't think it hurts to clarify; I'll add thi=
s in.<br></div><div><br></div><blockquote id=3D"fastmail-quoted" type=3D=
"cite"><div>&gt; &gt; Section 5.4<br></div><div>&gt; &gt;&nbsp;<br></div=
><div>&gt; &gt;&nbsp; o *destroyFromIfInState*: "String|null" This argum=
ent is passed on<br></div><div>&gt; &gt;&nbsp; as the "ifInState" argume=
nt to the implicit _Foo/set_ call, if<br></div><div>&gt; &gt;&nbsp; made=
 at the end of this request.<br></div><div>&gt; &gt;&nbsp;<br></div><div=
>&gt; &gt; This is "the Implicit _Foo/set_ call that effectuates the des=
truction of<br></div><div>&gt; &gt; the original", right?<br></div><div>=
&gt;&nbsp;<br></div><div>&gt; Yes.<br></div><div><br></div><div>I think =
I was asking for a little more text here, basically to reiterate<br></di=
v><div>that the Foo/set call is a deletion call.<br></div></blockquote><=
div><br></div><div>OK, I'll clarify this.<br></div><div><br></div><block=
quote id=3D"fastmail-quoted" type=3D"cite"><div>&gt; &gt;&nbsp; o *fromA=
ccountId*: "Id" The id of the account emails were copied<br></div><div>&=
gt; &gt;&nbsp; from.<br></div><div>&gt; &gt;&nbsp;<br></div><div>&gt; &g=
t;&nbsp; o *accountId*: "Id" The id of the account emails were copied to=
.<br></div><div>&gt; &gt;&nbsp;<br></div><div>&gt; &gt; I assme the "ema=
ils" are copy/paste bugs.<br></div><div>&gt;&nbsp;<br></div><div>&gt; Ye=
s, good spot. I've fixed this.<br></div><div>&gt;&nbsp;<br></div><div>&g=
t; &gt; Section 7.2<br></div><div>&gt; &gt;&nbsp;<br></div><div>&gt; &gt=
;&nbsp; o *deviceClientId*: "String" (immutable) An id that uniquely<br>=
</div><div>&gt; &gt;&nbsp; identifies the client + device it is running =
on. The purpose of<br></div><div>&gt; &gt;&nbsp; this is to allow client=
s to identify which PushSubscription<br></div><div>&gt; &gt;&nbsp; objec=
ts they created even if they lose their local state, so they<br></div><d=
iv>&gt; &gt;&nbsp; can revoke or update them. This string MUST be differ=
ent on<br></div><div>&gt; &gt;&nbsp; different devices, and be different=
 from other vendors. It SHOULD<br></div><div>&gt; &gt;&nbsp;<br></div><d=
iv>&gt; &gt; What's the first vendor that's the basis for comparison?<br=
></div><div>&gt;&nbsp;<br></div><div>&gt; Sorry, I'm not quite sure what=
 you're asking here.<br></div><div><br></div><div>I think my fundamental=
 confusion here is about where the device ID is<br></div><div>coming fro=
m -- is this supposed to be something like the serial number or<br></div=
><div>IMEI number from my phone, that is a fixed and permanently bound t=
o a<br></div><div>specific device (and not changeable)?&nbsp; I think we=
 delved into related<br></div><div>topics for Alissa's Discuss, but not =
quite into this aspect of things.&nbsp; If<br></div><div>I start talking=
 about "vendors", is there some implication that the<br></div><div>ident=
ity of the current device's vendor is input to the<br></div><div>deviceC=
lientId-generation process (whether explicitly or implicitly via a<br></=
div><div>manufacturer prefix in some other identifier)?&nbsp; So the lit=
eral answer to my<br></div><div>question here is something like the "fir=
st vendor" is the manufacturer of<br></div><div>the device being identif=
ied, or the author of the app generating this<br></div><div>specific dev=
iceClientId.<br></div><div><br></div><div>Even in the current text (-16)=
, I wonder if "a device id" is quite enough,<br></div><div>as opposed to=
 "a unique identifier associated with the device where the<br></div><div=
>JMAP client is running" or similar.<br></div></blockquote><div><br></di=
v><div>Yes, this should be clearer. I have rewritten this to be:<br></di=
v><div><br></div><div><i>This string MUST be different on different devi=
ces, and be different from apps from other vendors. It SHOULD be easy to=
 re-generate, not depend on persisted state.&nbsp;</i><i>It is RECOMMEND=
ED to use a secure hash of a string that contains:</i></div><div><i><br>=
</i></div><ol><li><i>A unique identifier associated with the device wher=
e the JMAP client is running, normally supplied by the device's operatin=
g system.<br></i></li><li><i>A custom vendor/app id, including a domain =
controlled by the vendor of the JMAP client.<br></i></li></ol><div><i><b=
r></i></div><div><i>To protect the privacy of the user, the deviceClient=
Id id MUST NOT contain an unobfuscated device id.</i><br></div><div>&nbs=
p;<br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>&gt; &=
gt; Section 8.3<br></div><div>&gt; &gt;&nbsp;<br></div><div>&gt; &gt; DN=
S SRV-based autodiscovery seems the only type of autodiscovery<br></div>=
<div>&gt; &gt; available that is susceptible to the attack described her=
e; you should<br></div><div>&gt; &gt; probably just state that explicitl=
y.<br></div><div>&gt;&nbsp;<br></div><div>&gt; OK, will do.<br></div><di=
v>&gt;&nbsp;<br></div><div>&gt; &gt; Section 8.4<br></div><div>&gt; &gt;=
&nbsp;<br></div><div>&gt; &gt; While true, 8529's security consideration=
s are pretty sparse; we could<br></div><div>&gt; &gt; say more here abou=
t not overscanning, limiting string length, being<br></div><div>&gt; &gt=
; strict about tokenization, etc.<br></div><div>&gt;&nbsp;<br></div><div=
>&gt; Do you have any suggested text?<br></div><div><br></div><div>As fo=
r any serialization format, parsers need to thoroughly check the<br></di=
v><div>syntax of the supplied data.&nbsp; JSON uses opening and closing =
tags for<br></div><div>several types and structures, and it is possible =
that the end of supplied<br></div><div>data will be reached when scannin=
g for a matching closing tag; this is an<br></div><div>error condition a=
nd implementations need to stop scanning at the end of the<br></div><div=
>supplied data.<br></div><div><br></div><div>JSON also uses a string enc=
oding with some escape sequences to encode<br></div><div>special charact=
ers within a string.&nbsp; Care is needed when processing these<br></div=
><div>escape sequences to ensure that an escape sequence is fully formed=
 before<br></div><div>the special processing is triggered, with special =
care taken when the<br></div><div>escape sequences appear adjacent to ot=
her (non-escaped) special characters<br></div><div>or the end of data (a=
s in the previous paragraph).<br></div><div><br></div><div>If parsing JS=
ON into a non-textual structured data format, implementations<br></div><=
div>may need to allocate storage to hold JSON string elements.&nbsp; Sin=
ce JSON<br></div><div>does not use explicit string lengths, the risk of =
denial of service due to<br></div><div>resource exhaustion is small, but=
 implementations may still wish to place<br></div><div>limits on the siz=
e of allocations they are willing to make in any given<br></div><div>con=
text, to avoid untrusted data causing excessive memory allocation.<br></=
div></blockquote><div><br></div><div>Great, thanks, I'll add that in.</d=
iv><div><br></div><blockquote id=3D"fastmail-quoted" type=3D"cite"><div>=
P.S. I appreciate the separate "description" column for the error regist=
ry<br></div><div>in the -16, but the formatting of the current table is =
basically<br></div><div>unreadable.&nbsp; I had to go find<br></div><div=
>https://github.com/jmapio/jmap/commit/3f4b7f83c99596a553bd81324c092516a=
9babbcf#diff-3004124a0560c91bfc79eb996bd81433<br></div><div>to get somet=
hing useful to look at.<br></div></blockquote><div><br></div><div>Yes, I=
'm hopeful the RFC editors may help with this; I'm not sure what the bes=
t approach is. (Just as an FYI, I also publish the latest version of the=
 spec in a more readable HTML format at&nbsp;<a href=3D"https://jmap.io/=
spec-core.html">https://jmap.io/spec-core.html</a>&nbsp;and&nbsp;<a href=
=3D"https://jmap.io/spec-mail.html">https://jmap.io/spec-mail.html</a>.)=
<br></div><div><br></div><div>I'll post a -17 when submissions reopen an=
d hopefully this can progress through to join the mail spec in the final=
 editing stage.</div><div><br></div><div>Cheers,<br></div><div>Neil.</di=
v></body></html>
--8db7089f433a4383999ebd45860b1adb--


From nobody Tue Mar 12 19:26:53 2019
Return-Path: <kaduk@mit.edu>
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 6A65312788C; Tue, 12 Mar 2019 19:26:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 PB5pVZSnb9K0; Tue, 12 Mar 2019 19:26:44 -0700 (PDT)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 07ED912705F; Tue, 12 Mar 2019 19:26:43 -0700 (PDT)
Received: from kduck.mit.edu (24-107-191-124.dhcp.stls.mo.charter.com [24.107.191.124]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id x2D2QajC011103 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 12 Mar 2019 22:26:39 -0400
Date: Tue, 12 Mar 2019 21:26:36 -0500
From: Benjamin Kaduk <kaduk@mit.edu>
To: Neil Jenkins <neilj@fastmailteam.com>
Cc: iesg <iesg@ietf.org>, draft-ietf-jmap-core@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <20190313022636.GD8182@kduck.mit.edu>
References: <155072687005.20308.1288342758446844678.idtracker@ietfa.amsl.com> <ebf89939-bf68-4458-a24f-5a37090385fd@beta.fastmail.com> <20190308194418.GU9824@kduck.mit.edu> <13279c7a-980a-4cd3-b37f-a9b7b26854c4@beta.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <13279c7a-980a-4cd3-b37f-a9b7b26854c4@beta.fastmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/-jd4ceLxMXG6qK-uGgUNkvo_udo>
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: Wed, 13 Mar 2019 02:26:46 -0000

On Tue, Mar 12, 2019 at 10:14:53PM -0400, Neil Jenkins wrote:
> On Sat, 9 Mar 2019, at 06:44, Benjamin Kaduk wrote:
> > > > An authenticated client can fetch the JMAP Session object with
> > > > details about the data and capabilities the server can provide as
> > > > 
> > > > nit: maybe this is "a JAMP session object" with the indefinite article?
> > > 
> > > I used the definite article here because the client is authenticated, and therefore has access to one specific JMAP session object associated with those credentials.
> > 
> > Would that indicate "their"/"its", then?
> 
> I'll make it *the *user's* JMAP session object.*
> 
> > > > The 'prefixed with a "#"' laguage seems like it has some potential for
> > > > confusion; is it better to write this like "the first character of the
> > > > creation ID MUST be octothorpe ('#')"?
> > > 
> > > The # is not part of the creation id. References to a creation id may be used in a context where an id is expected by prefixing the creation id with a #. Since this is not a valid character in an id, it is easy to determine that this must be a creation reference. I have added a reference at this point to the /set definition where this is explained in more detail.
> > 
> > That will help, though I'm not sure exactly how much.
> > Looking at this again, I think the biggest thing that confused me on my
> > first read is that I didn't internalize that creation ids and
> > ResultReferences are different things (since they both use the magic "#"
> > prefix), and I was trying to reconcile them into the same bucket.
> > So maybe when ResultReference is introduced there could be a note about how
> > "the ResultReference performs a similar role to that of the creation id, in
> > that it allows a chained method call to refer to information not available when
> > the request is generated. However, they are different types and not
> > interchangable; the only commonality is the octothorpe used to indicate
> > them". But, maybe I'm unusual for being confused about this and it's not
> > worth the extra text.
> 
> I don't think it hurts to clarify; I'll add this in.
> 
> > > > Section 5.4
> > > > 
> > > > o *destroyFromIfInState*: "String|null" This argument is passed on
> > > > as the "ifInState" argument to the implicit _Foo/set_ call, if
> > > > made at the end of this request.
> > > > 
> > > > This is "the Implicit _Foo/set_ call that effectuates the destruction of
> > > > the original", right?
> > > 
> > > Yes.
> > 
> > I think I was asking for a little more text here, basically to reiterate
> > that the Foo/set call is a deletion call.
> 
> OK, I'll clarify this.
> 
> > > > o *fromAccountId*: "Id" The id of the account emails were copied
> > > > from.
> > > > 
> > > > o *accountId*: "Id" The id of the account emails were copied to.
> > > > 
> > > > I assme the "emails" are copy/paste bugs.
> > > 
> > > Yes, good spot. I've fixed this.
> > > 
> > > > Section 7.2
> > > > 
> > > > o *deviceClientId*: "String" (immutable) An id that uniquely
> > > > identifies the client + device it is running on. The purpose of
> > > > this is to allow clients to identify which PushSubscription
> > > > objects they created even if they lose their local state, so they
> > > > can revoke or update them. This string MUST be different on
> > > > different devices, and be different from other vendors. It SHOULD
> > > > 
> > > > What's the first vendor that's the basis for comparison?
> > > 
> > > Sorry, I'm not quite sure what you're asking here.
> > 
> > I think my fundamental confusion here is about where the device ID is
> > coming from -- is this supposed to be something like the serial number or
> > IMEI number from my phone, that is a fixed and permanently bound to a
> > specific device (and not changeable)? I think we delved into related
> > topics for Alissa's Discuss, but not quite into this aspect of things. If
> > I start talking about "vendors", is there some implication that the
> > identity of the current device's vendor is input to the
> > deviceClientId-generation process (whether explicitly or implicitly via a
> > manufacturer prefix in some other identifier)? So the literal answer to my
> > question here is something like the "first vendor" is the manufacturer of
> > the device being identified, or the author of the app generating this
> > specific deviceClientId.
> > 
> > Even in the current text (-16), I wonder if "a device id" is quite enough,
> > as opposed to "a unique identifier associated with the device where the
> > JMAP client is running" or similar.
> 
> Yes, this should be clearer. I have rewritten this to be:
> 
> *This string MUST be different on different devices, and be different from apps from other vendors. It SHOULD be easy to re-generate, not depend on persisted state. **It is RECOMMENDED to use a secure hash of a string that contains:*
> *
> *
>  1. *A unique identifier associated with the device where the JMAP client is running, normally supplied by the device's operating system.
> *
>  2. *A custom vendor/app id, including a domain controlled by the vendor of the JMAP client.
> *
> *
> *
> *To protect the privacy of the user, the deviceClientId id MUST NOT contain an unobfuscated device id.*

Thanks, this is a big help.

> > > > Section 8.3
> > > > 
> > > > DNS SRV-based autodiscovery seems the only type of autodiscovery
> > > > available that is susceptible to the attack described here; you should
> > > > probably just state that explicitly.
> > > 
> > > OK, will do.
> > > 
> > > > Section 8.4
> > > > 
> > > > While true, 8529's security considerations are pretty sparse; we could
> > > > say more here about not overscanning, limiting string length, being
> > > > strict about tokenization, etc.
> > > 
> > > Do you have any suggested text?
> > 
> > As for any serialization format, parsers need to thoroughly check the
> > syntax of the supplied data. JSON uses opening and closing tags for
> > several types and structures, and it is possible that the end of supplied
> > data will be reached when scanning for a matching closing tag; this is an
> > error condition and implementations need to stop scanning at the end of the
> > supplied data.
> > 
> > JSON also uses a string encoding with some escape sequences to encode
> > special characters within a string. Care is needed when processing these
> > escape sequences to ensure that an escape sequence is fully formed before
> > the special processing is triggered, with special care taken when the
> > escape sequences appear adjacent to other (non-escaped) special characters
> > or the end of data (as in the previous paragraph).
> > 
> > If parsing JSON into a non-textual structured data format, implementations
> > may need to allocate storage to hold JSON string elements. Since JSON
> > does not use explicit string lengths, the risk of denial of service due to
> > resource exhaustion is small, but implementations may still wish to place
> > limits on the size of allocations they are willing to make in any given
> > context, to avoid untrusted data causing excessive memory allocation.
> 
> Great, thanks, I'll add that in.
> 
> > P.S. I appreciate the separate "description" column for the error registry
> > in the -16, but the formatting of the current table is basically
> > unreadable. I had to go find
> > https://github.com/jmapio/jmap/commit/3f4b7f83c99596a553bd81324c092516a9babbcf#diff-3004124a0560c91bfc79eb996bd81433
> > to get something useful to look at.
> 
> Yes, I'm hopeful the RFC editors may help with this; I'm not sure what the best approach is. (Just as an FYI, I also publish the latest version of the spec in a more readable HTML format at https://jmap.io/spec-core.html and https://jmap.io/spec-mail.html.)
> 
> I'll post a -17 when submissions reopen and hopefully this can progress through to join the mail spec in the final editing stage.

Alexey should be able to approve a manual posting by the secretariat during
the blackout; the usual reason for denying draft submission (so that
everyone can read drafts in preparation for meeting sessions) doesn't
really apply for drafts in this stage.

Thanks again for all the updates!

-Benjamin


From nobody Wed Mar 20 08:51:31 2019
Return-Path: <internet-drafts@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D483B12D4EA; Wed, 20 Mar 2019 08:51:15 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
Cc: jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: jmap@ietf.org
Message-ID: <155309707579.14766.524800106244384997@ietfa.amsl.com>
Date: Wed, 20 Mar 2019 08:51:15 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Dl5mDWniSELxHKQj1HCc2ua9RiE>
Subject: [Jmap] I-D Action: draft-ietf-jmap-core-17.txt
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 20 Mar 2019 15:51:16 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the JSON Mail Access Protocol WG of the IETF.

        Title           : JSON Meta Application Protocol
        Authors         : Neil Jenkins
                          Chris Newman
	Filename        : draft-ietf-jmap-core-17.txt
	Pages           : 85
	Date            : 2019-03-20

Abstract:
   This document specifies a protocol for clients to efficiently query,
   fetch and modify JSON-based data objects, with support for push
   notification of changes and fast resynchronisation, and out-of-band
   binary data upload/download.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-ietf-jmap-core-17
https://datatracker.ietf.org/doc/html/draft-ietf-jmap-core-17

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-ietf-jmap-core-17


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From nobody Thu Mar 21 08:05:16 2019
Return-Path: <neilj@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 9580813122A for <jmap@ietfa.amsl.com>; Thu, 21 Mar 2019 08:05:14 -0700 (PDT)
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, HTML_MESSAGE=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=fastmailteam.com header.b=k8v3t/Tu; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=GWv/rczP
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 XEe9DC0QW2aq for <jmap@ietfa.amsl.com>; Thu, 21 Mar 2019 08:05:12 -0700 (PDT)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4BDB013123E for <jmap@ietf.org>; Thu, 21 Mar 2019 08:05:07 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 6219D245D0 for <jmap@ietf.org>; Thu, 21 Mar 2019 11:05:06 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Thu, 21 Mar 2019 11:05:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:subject:content-type; s=fm2; bh=Oa5Sc4C X4RJ8w9MvuLbfpV+HfRpR+KNgJt8VdIzHGK4=; b=k8v3t/Tu6MQSMWq20ipvOWb q/XOc6+Feem9gcX9Ej0nZ0bRufAllk00KqGupg4PVQYxd8DPfQtdWojEAuhQyNBX M57bW0sduFGLLOUQwAhVx+Z9zC5Ou98ggGkEuCoyJLSjnWSpgEZIK/Lw3ewThGzr fXaQyvS4/vRa4eBt04aiz3B/elkGzR6XbmtOPs+MMUjaXK66U7B+V+o71nUZo+do FLuFamcyM5wo2v98Av3ZKb1tFa2U0D49hk0sif1McRGhuWaXIAhUdfWDYl0Eb/yL Nk1hof4Ab76SeHPeNH6S0Bc2Rz3ZbwFFepHb+8rkrFJjRUmjQHe+KQUmhBieXkA= =
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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=Oa5Sc4 CX4RJ8w9MvuLbfpV+HfRpR+KNgJt8VdIzHGK4=; b=GWv/rczPgrlD2ZiyHrwoAe WyXifXk2i1oYIKBkdM3Y4y2DysneZ+EcUd0u3TgdLe45eR/vLjYv1+zO2jnsf9M/ Tu0+15U2+fYL/mhF3KkAa2pIZoZOZwN0c3yMMGlWilxjQClkQWA3+auLsAAhXgEy COWCUi0NdNX8JfvGZXDPSayDo1uuqQmCHfpXyWGtHw3gyIYqsQSd9RVFrPKBO5Xu j3TycgEctZQl0Ik+d8jBKGNn73uP/xqMlY+UD3hnCYq8mG+VtG2wtAwxVGcd0Kfz itvazWVVk8dx5LSGCT5V56ave9YGoBc0DZC4Cp7N9TWI6Rd/XmfMrCUVYDvPqwUg ==
X-ME-Sender: <xms:IaiTXMKC3d5pIsvA-QgUrXbhtf2gItVXkijUGXf1fDQoBIrxffqeMA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrieelgdehjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtsegrtderreerredtnecuhfhrohhmpedfpfgvihhl ucflvghnkhhinhhsfdcuoehnvghilhhjsehfrghsthhmrghilhhtvggrmhdrtghomheqne cuffhomhgrihhnpehivghtfhdrohhrghdpihgrnhgrrdhorhhgpdhjmhgrphdrihhonecu rfgrrhgrmhepmhgrihhlfhhrohhmpehnvghilhhjsehfrghsthhmrghilhhtvggrmhdrtg homhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:IaiTXM5WeanaTwmtfSTi9qeXf67TnCa7NJ6M5WJbw85h_5Xycul4wA> <xmx:IaiTXAhJhGpd4bQ_LZYsdSwvxgGAHpEb3u0F4U62391I4ab59SB1Eg> <xmx:IaiTXK_2adH3CfeZ7P4phGexaEYfqCV5UwqEHNLGIGiSADrgG5nXqQ> <xmx:IqiTXDHq2XrRVw7PVbSj-bjEm7iquPV3jU-J_hDICQpdOtxUQU94uA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id BCF2920618; Thu, 21 Mar 2019 11:05:05 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-976-g376b1f3-fmstable-20190314v3
Mime-Version: 1.0
X-Me-Personality: 64588216
Message-Id: <879444dd-28a7-4661-a057-e2f4d142eda3@beta.fastmail.com>
In-Reply-To: <155197652116.24727.17736633253141543762@ietfa.amsl.com>
References: <155197652116.24727.17736633253141543762@ietfa.amsl.com>
Date: Thu, 21 Mar 2019 11:05:05 -0400
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=790e9b2f930544c2918c9ce7e0fbc40a
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/jdVGSl7z0NQ4eC4KqLelXugfcZA>
Subject: Re: [Jmap] I-D Action: draft-ietf-jmap-mdn-01.txt
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 Mar 2019 15:05:15 -0000

--790e9b2f930544c2918c9ce7e0fbc40a
Content-Type: text/plain

A few comments on the new draft:

>   The client SHOULD NOT issue a sendMDN request if the message has the
   "$MDNSent" keyword set.  In this case, the server MUST reject the
   submission with a standard "forbiddenToSend" SetError.

I don't think this should be a `forbiddenToSend` error; that implies the user does not have permission to send. An `alreadyExists` error might be appropriate, or some kind of new "precondition-failed" type error.

>  o  *created*: "String[EmailSubmission]" A map of creation id (client-
      specified) to an email sent from the referenced properties.

The type says this is a map to EmailSubmission objects, but the description says it is a map to an Email. Which is it?

> *
> EmailSubmission/parseMDN

*

This method is nothing to do with EmailSubmission really. Probably should be called *MDN/parse*.

> *
> 4.2 <https://tools.ietf.org/html/draft-ietf-jmap-mdn-01#section-4.2>.  Asking for MDN when sending an email

*

This example is wrong. You can't set a "headers" property <https://jmap.io/spec-mail.html#email/set> in Email/set. You need to set it as a specific header, e.g.

"header:Disposition-Notification-To": "joe@example.com"

>  The client issues a parse request:

            [[ "EmailSubmission/parseMDN", {
              "accountId": "ue150411c",
              "blobIds: "0f9f65ab-dc7b-4146-850f-6e4881093965"
            }, "0" ]]

This blobIds argument should be an array, but the example is just passing a string.

> *
> 5.2 <https://tools.ietf.org/html/draft-ietf-jmap-mdn-01#section-5.2>.  Registration of JMAP keyword '$MDNSent'

*

This keyword is already registered <https://www.iana.org/assignments/imap-jmap-keywords/imap-jmap-keywords.xhtml>. There is no need to register it again (indeed, this is not allowed).

Cheers,
Neil.
--790e9b2f930544c2918c9ce7e0fbc40a
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>A few comments =
on the new draft:</div><div><br></div><blockquote type=3D"cite"><pre cla=
ss=3D"newpage" style=3D"font-size:13.3333px;margin-top:0px;margin-bottom=
:0px;color:rgb(0, 0, 0);font-style:normal;font-variant-ligatures:normal;=
font-variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2=
;text-align:start;text-indent:0px;text-transform:none;widows:2;word-spac=
ing:0px;-webkit-text-stroke-width:0px;text-decoration-style:initial;text=
-decoration-color:initial;">  The client SHOULD NOT issue a sendMDN requ=
est if the message has the
   "$MDNSent" keyword set.  In this case, the server MUST reject the
   submission with a standard "forbiddenToSend" SetError.<br></pre></blo=
ckquote><div><br></div><div>I don't think this should be a <code style=3D=
"border-radius:3px;border:1px solid #ccc;padding:1px 3px;background:#f6f=
6f6;font-family:menlo,consolas,monospace;font-size:90%;">forbiddenToSend=
</code> error; that implies the user does not have permission to send. A=
n <code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px 3px=
;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;"=
>alreadyExists</code> error might be appropriate, or some kind of new "p=
recondition-failed" type error.<br></div><div><br></div><blockquote type=
=3D"cite"><pre class=3D"newpage" style=3D"font-size:13.3333px;margin-top=
:0px;margin-bottom:0px;color:rgb(0, 0, 0);font-style:normal;font-variant=
-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacin=
g:normal;orphans:2;text-align:start;text-indent:0px;text-transform:none;=
widows:2;word-spacing:0px;-webkit-text-stroke-width:0px;text-decoration-=
style:initial;text-decoration-color:initial;"> o  *created*: "String[Ema=
ilSubmission]" A map of creation id (client-
      specified) to an email sent from the referenced properties.<br></p=
re></blockquote><div><br></div><div>The type says this is a map to Email=
Submission objects, but the description says it is a map to an Email. Wh=
ich is it?<br></div><div><br></div><blockquote type=3D"cite"><pre class=3D=
"newpage" style=3D"font-size:13.3333px;margin-top:0px;margin-bottom:0px;=
color:rgb(0, 0, 0);font-style:normal;font-variant-ligatures:normal;font-=
variant-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text=
-align:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0=
px;-webkit-text-stroke-width:0px;text-decoration-style:initial;text-deco=
ration-color:initial;"><b><span style=3D"font-family:monospace" class=3D=
"font"><span style=3D"font-size:1em" class=3D"size"><h3 style=3D"line-he=
ight:0pt;display:inline;white-space:pre;font-family:monospace;font-size:=
1em;font-weight:bold;">EmailSubmission/parseMDN<br></h3></span></span></=
b></pre></blockquote><div><br></div><div>This method is nothing to do wi=
th EmailSubmission really. Probably should be called <b>MDN/parse</b>.<b=
r></div><div><br></div><blockquote type=3D"cite"><pre class=3D"newpage" =
style=3D"font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:rgb(=
0, 0, 0);font-style:normal;font-variant-ligatures:normal;font-variant-ca=
ps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:sta=
rt;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-webkit=
-text-stroke-width:0px;text-decoration-style:initial;text-decoration-col=
or:initial;"><b><span style=3D"font-family:monospace" class=3D"font"><sp=
an style=3D"font-size:1em" class=3D"size"><h3 style=3D"line-height:0pt;d=
isplay:inline;white-space:pre;font-family:monospace;font-size:1em;font-w=
eight:bold;"><a class=3D"selflink" name=3D"section-4.2" href=3D"https://=
tools.ietf.org/html/draft-ietf-jmap-mdn-01#section-4.2" style=3D"color:b=
lack;text-decoration-line:none;text-decoration-style:initial;text-decora=
tion-color:initial;">4.2</a>.  Asking for MDN when sending an email<br><=
/h3></span></span></b></pre></blockquote><div><br></div><div>This exampl=
e is wrong. You <a href=3D"https://jmap.io/spec-mail.html#email/set">can=
't set a "headers" property</a> in Email/set. You need to set it as a sp=
ecific header, e.g.<br></div><div><br></div><pre style=3D"margin:7px 0;b=
order-radius:3px;border:1px solid #ccc;padding:7px 10px;background:#f6f6=
f6;font-family:menlo,consolas,monospace;font-size:90%;white-space:pre-wr=
ap;word-wrap:break-word;overflow-wrap:break-word;">"header:Disposition-N=
otification-To": "<a href=3D"mailto:joe@example.com">joe@example.com</a>=
"<br></pre><div><br></div><blockquote type=3D"cite"><pre class=3D"newpag=
e" style=3D"font-size:13.3333px;margin-top:0px;margin-bottom:0px;color:r=
gb(0, 0, 0);font-style:normal;font-variant-ligatures:normal;font-variant=
-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-align:=
start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-web=
kit-text-stroke-width:0px;text-decoration-style:initial;text-decoration-=
color:initial;"> The client issues a parse request:

            [[ "EmailSubmission/parseMDN", {
              "accountId": "ue150411c",
              "blobIds: "0f9f65ab-dc7b-4146-850f-6e4881093965"
            }, "0" ]]<br></pre></blockquote><div><br></div><div>This blo=
bIds argument should be an array, but the example is just passing a stri=
ng.<br></div><div><br></div><blockquote type=3D"cite"><pre class=3D"newp=
age" style=3D"font-size:13.3333px;margin-top:0px;margin-bottom:0px;color=
:rgb(0, 0, 0);font-style:normal;font-variant-ligatures:normal;font-varia=
nt-caps:normal;font-weight:400;letter-spacing:normal;orphans:2;text-alig=
n:start;text-indent:0px;text-transform:none;widows:2;word-spacing:0px;-w=
ebkit-text-stroke-width:0px;text-decoration-style:initial;text-decoratio=
n-color:initial;"><b><span style=3D"font-family:monospace" class=3D"font=
"><span style=3D"font-size:1em" class=3D"size"><h3 style=3D"line-height:=
0pt;display:inline;white-space:pre;font-family:monospace;font-size:1em;f=
ont-weight:bold;"><a class=3D"selflink" name=3D"section-5.2" href=3D"htt=
ps://tools.ietf.org/html/draft-ietf-jmap-mdn-01#section-5.2" style=3D"co=
lor:black;text-decoration-line:none;text-decoration-style:initial;text-d=
ecoration-color:initial;">5.2</a>.  Registration of JMAP keyword '$MDNSe=
nt'<br></h3></span></span></b></pre></blockquote><div><br></div><div>Thi=
s keyword is <a href=3D"https://www.iana.org/assignments/imap-jmap-keywo=
rds/imap-jmap-keywords.xhtml">already registered</a>. There is no need t=
o register it again (indeed, this is not allowed).<br></div><div><br></d=
iv><div>Cheers,</div><div>Neil.<br></div></body></html>
--790e9b2f930544c2918c9ce7e0fbc40a--


From nobody Fri Mar 22 10:21:25 2019
Return-Path: <raphael.ouazana@linagora.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 902A8131339 for <jmap@ietfa.amsl.com>; Fri, 22 Mar 2019 10:21:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.302
X-Spam-Level: 
X-Spam-Status: No, score=-4.302 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=smtpcorp.com header.b=KskVCE4U; dkim=pass (2048-bit key) header.d=linagora.com header.b=b8ekY98o
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 JO9qMaj4QftE for <jmap@ietfa.amsl.com>; Fri, 22 Mar 2019 10:21:20 -0700 (PDT)
Received: from e2i64.smtp2go.com (e2i64.smtp2go.com [103.2.140.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7CFB013133B for <jmap@ietf.org>; Fri, 22 Mar 2019 10:21:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpcorp.com; s=a1-4; h=Feedback-ID:X-Smtpcorp-Track:Message-ID:Subject:To: From:Date:Reply-To:Sender:List-Unsubscribe; bh=7KouriENxzSb5s+Bbyq92uAOKhGjdpth1gs1xEPkRx8=; b=KskVCE4UGHvIFGghQylNeyB8MD c4gmEPCtXNz3FjegcdQAPmQAQjuYzwzjJcz6iHhzjrorGkQnDMevBPongMPPd6qzcxHmsE4FuFDDG 6aA5qcGBYd7emqigQxtKxc8DdmU3x0V8HMmIAVb7hwj2gRkv0Gj/S+GdmFjIYsH5utAoZmwUZq/2r 517kPaQs2lkvrmMgdZhUyX5mhbnDpEN34cbEcw6r2FaU0vvB1WB/lplBi8x1Lv2YGrySwDrIgKE1V DfxYCmY7BERdTMzQU68UQoTkRITIrizxDkCbCNnHCrbv15pso+GSKWgS0V/LpE88DabgoH5oO1KCD jPU4yPzw==;
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linagora.com; i=@linagora.com;  q=dns/txt; s=s266739; t=1553275280; h=from : subject : to : message-id  : date; bh=7KouriENxzSb5s+Bbyq92uAOKhGjdpth1gs1xEPkRx8=;  b=b8ekY98oVsdE5ohbMQTqXHxarOc6DKWfBSE9SlxW+ZagMj6lKsWCSVn4N124Bl3zV7FzV3 B5VRzCOugtkhk/tOnAUbz/0NqChVX6imK3j+uzgS5U3gkwYQxkGerLy/vg8O2nA4cZ0XnVIQ N/FQUlNrUqy0EBAAhTKiJ9jv9+mnvHLh/qqbsAyk8yiAgBajl5J3uswNmkiVHzsDOUC0EiXU tZiRUP4+oymPjn1o1de0p9fCz176KGKY/lQ6JfdZtc10pQnbkO7oZQs664teiIcT5/NiN5+m LBbIb8hbAZ/ZkC/w1xhxx03wB/VcQ18q4UI9ltF8ME1Knlx3tI6ILngg==
Received: from [10.45.33.53] (helo=SmtpCorp) by smtpcorp.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.91) (envelope-from <raphael.ouazana@linagora.com>) id 1h7Nqz-cp4TGJ-CC; Fri, 22 Mar 2019 17:21:13 +0000
Received: from [10.54.36.8] (helo=smtp.linagora.com) by smtpcorp.com with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.91) (envelope-from <raphael.ouazana@linagora.com>) id 1h7Nqx-rlZFa9-MG; Fri, 22 Mar 2019 17:21:11 +0000
Received: from extranet.linagora.com (obm3-ui.linagora.dc2 [172.24.128.227]) by smtp.linagora.com (Postfix) with ESMTP id 9CA983F161; Fri, 22 Mar 2019 18:21:09 +0100 (CET)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Date: Fri, 22 Mar 2019 18:21:09 +0100
X-LINAGORA-Copy-Delivery-Done: 1
From: Raphael OUAZANA <raphael.ouazana@linagora.com>
To: Neil Jenkins <neilj@fastmailteam.com>
Cc: IETF JMAP Mailing List <jmap@ietf.org>
In-Reply-To: <879444dd-28a7-4661-a057-e2f4d142eda3@beta.fastmail.com>
References: <155197652116.24727.17736633253141543762@ietfa.amsl.com> <879444dd-28a7-4661-a057-e2f4d142eda3@beta.fastmail.com>
Message-ID: <1ddd3a8f0763f028bae89ace0e33081e@linagora.com>
X-Sender: raphael.ouazana@linagora.com
User-Agent: Roundcube Webmail/1.1.4
X-Smtpcorp-Track: 1h7Nqxr_ZFa9uG._aXFigsqD
Feedback-ID: 266739m:266739aja3LFS:266739sLrdZh-F7H
X-Report-Abuse: Please forward a copy of this message, including all headers,  to <abuse-report@smtp2go.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Xj7GlTvuz-8a8ZWFAhjNhc-C358>
Subject: Re: [Jmap] I-D Action: draft-ietf-jmap-mdn-01.txt
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, 22 Mar 2019 17:21:24 -0000

Hi Neil,

Thanks for your comments.

Le 2019-03-21 16:05, Neil Jenkins a écrit :
> A few comments on the new draft:
> 
>> The client SHOULD NOT issue a sendMDN request if the message has
>> the
>> "$MDNSent" keyword set.  In this case, the server MUST reject the
>> submission with a standard "forbiddenToSend" SetError.
> 
> I don't think this should be a forbiddenToSend error; that implies the
> user does not have permission to send. An alreadyExists error might be
> appropriate, or some kind of new "precondition-failed" type error.

I wrote it in the sense of forbidden by the RFC:
        [...]In any case, in the presence of the $MDNSent keyword,
        the client MUST ignore all other flags or keywords for the
        purpose of generating an MDN and MUST NOT send the MDN.

AlreadyExists seems misleading as the user could just not want to send 
the MDN, and in this case it will never exist. Maybe AlreadyProcessed or 
something like that then?

>> o  *created*: "String[EmailSubmission]" A map of creation id
>> (client-
>> specified) to an email sent from the referenced properties.
> 
> The type says this is a map to EmailSubmission objects, but the
> description says it is a map to an Email. Which is it?

I wrote a map to "an email sent [...]". Maybe my English is not good 
enough, but for me an email sent means an EmailSubmission. How could I 
clarify?

>> EMAILSUBMISSION/PARSEMDN
> 
> This method is nothing to do with EmailSubmission really. Probably
> should be called MDN/PARSE.

Probably, I hesitated because like this all the MDN stuff is related to 
EmailSubmission, but I can write a MDN/parse if you think it's better.

>> 4.2 [1].  ASKING FOR MDN WHEN SENDING AN EMAIL
> 
> This example is wrong. You can't set a "headers" property [3] in
> Email/set. You need to set it as a specific header, e.g.
> 
> "header:Disposition-Notification-To": "joe@example.com"

Oops sorry, I guess I took it from an old specification, I will fix.

>> The client issues a parse request:
>> 
>> [[ "EmailSubmission/parseMDN", {
>> "accountId": "ue150411c",
>> "blobIds: "0f9f65ab-dc7b-4146-850f-6e4881093965"
>> }, "0" ]]
> 
> This blobIds argument should be an array, but the example is just
> passing a string.

Right, will fix.

>> 5.2 [2].  REGISTRATION OF JMAP KEYWORD '$MDNSENT'
> 
> This keyword is already registered [4]. There is no need to register
> it again (indeed, this is not allowed).

Oh nice, I was not aware of it. I will remove this part.

Regards,
Raphaël.


From nobody Sat Mar 23 07:15:13 2019
Return-Path: <brong@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 1236D129532 for <jmap@ietfa.amsl.com>; Sat, 23 Mar 2019 07:15:12 -0700 (PDT)
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=a9uwaRCD; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=CgdmVUm+
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 3zxhhz4e9Ngz for <jmap@ietfa.amsl.com>; Sat, 23 Mar 2019 07:15:10 -0700 (PDT)
Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 98FC8127964 for <jmap@ietf.org>; Sat, 23 Mar 2019 07:15:10 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id C493D3752 for <jmap@ietf.org>; Sat, 23 Mar 2019 10:15:09 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Sat, 23 Mar 2019 10:15:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:date:from:to:subject :content-type; s=fm2; bh=Uv0G+UUdxL/hjSp3rTzhDtAvBSXNJlhZ9km8igq E0Ko=; b=a9uwaRCDm6ysokQTBoZRpdBPwl29DUNhT2cHnWCvJ0cNxo8A/H0AShn AjRVVSynFNTOGblTdeOAEXaX29D6Hq6G2SxDv38p6be7cgvmbhbfXHGuCs6GzJpr FFcTYFZnjBlkBHIGt9SxCCEf9ADnJTRjRXU41Ss/KmxVKqDFEpZWucbs32zHbDd7 d5guwGdBXA1hi+wDM6+03UMkWXLxXNzo08RV4/h47OM6JUBaRnxU+N7fgX+tXuRf V+GSpl07TIoHXtHGGeYk0GqjpbXPErzlZmu22A2Dm/4dHebLtWCZfEIZI/pq+AiI Br2pKQHCBgCUCFnURKUu+l6YfTDDiOA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=Uv0G+UUdxL/hjSp3rTzhDtAvBSXNJ lhZ9km8igqE0Ko=; b=CgdmVUm+GizNTpz0qfH7unLbWIL6quKwh8Hvgz+tLLyy/ PeVr48SbQAUrdV2Cd+F13kQffgdYQNmKh70rGm+9SzPDve6pQ7BF//64ukETAX/G SKAJxGOmIs2pU/6GsD8Pa52Xu8hyleX3rUFlWnOuI80nvb7HbYP3Ih+ALz4ochqP vYT56TU/Ai+zxHbigv55mn6T/Sl00ryZbgcb8ocbMPUfaGLXG6+2539SUXfN2guf KlWd6s5eGUV3hHca1xzqb43VrFiN7dmk1gs/UEbEt8jd4WGUgRgnF6iwpUCxnm3m 7hncn9WDVvR+M9N02CZaH/gx9Ei7ka0hGi8j7jSSw==
X-ME-Sender: <xms:bT-WXFtZ5LW2PXvs0jDb2RlnF3FXYSCcGdNlgftvXwCJS6Y2IqYmoQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrjeefgdeigecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesrgdtreerre ertdenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehfrghs thhmrghilhhtvggrmhdrtghomheqnecuffhomhgrihhnpehgihhthhhusgdrtghomhdpih gvthhfrdhorhhgpdhjmhgrphdrihhonecurfgrrhgrmhepmhgrihhlfhhrohhmpegsrhho nhhgsehfrghsthhmrghilhhtvggrmhdrtghomhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:bT-WXGre16ZQ3T0UXGo3rqWcYM4kXS-zWyOEFDjiR5dtFhJBUZsiWQ> <xmx:bT-WXEWx73qdCGjeumCPUhadKTXxwCS_8597n-Zf_QYhzM-GCvoD5g> <xmx:bT-WXG3-ZlVMIX59IuV6htbSRTf51AShLmrNVZXVBx2l-orkPMlccQ> <xmx:bT-WXNEwXTlnWwrECtdbVvdjdfUruAl8x5n19mICVJpe1DpNzT6phg>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id DE5D420617; Sat, 23 Mar 2019 10:15:08 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-976-g376b1f3-fmstable-20190314v3
Mime-Version: 1.0
X-Me-Personality: 56629417
Message-Id: <f1bdb4b8-6a29-481f-af50-62ec47886dc9@www.fastmail.com>
Date: Sat, 23 Mar 2019 10:15:08 -0400
From: "Bron Gondwana" <brong@fastmailteam.com>
To: jmap@ietf.org
Content-Type: multipart/alternative; boundary=f632e8a94618456d906433b881028ec9
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/CvYsywMouJzMQIUh5Uc1C8HlGjI>
Subject: [Jmap] Prague session agenda uploaded
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: Sat, 23 Mar 2019 14:15:12 -0000

--f632e8a94618456d906433b881028ec9
Content-Type: text/plain

Hi All,

An agenda for our session on Monday has been uploaded to the datatracker:

https://datatracker.ietf.org/meeting/104/materials/agenda-104-jmap-00

Here are some other documents that are worth reading before the session:

https://datatracker.ietf.org/doc/draft-ietf-jmap-websocket/?include_text=1
https://datatracker.ietf.org/doc/draft-ietf-jmap-mdn/?include_text=1
https://github.com/jmapio/jmap/blob/master/ietf-docs/charter.txt

And of course the current state of the calendar and contacts documents:

https://jmap.io/spec-calendars.html
https://jmap.io/spec-contacts.html

See you on Monday!

Regards,

Bron.

--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com


--f632e8a94618456d906433b881028ec9
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div style=3D"font-f=
amily:Arial;">Hi All,<br></div><div style=3D"font-family:Arial;"><br></d=
iv><div style=3D"font-family:Arial;">An agenda for our session on Monday=
 has been uploaded to the datatracker:<br></div><div style=3D"font-famil=
y:Arial;"><br></div><div style=3D"font-family:Arial;"><a href=3D"https:/=
/datatracker.ietf.org/meeting/104/materials/agenda-104-jmap-00">https://=
datatracker.ietf.org/meeting/104/materials/agenda-104-jmap-00</a><br></d=
iv><div style=3D"font-family:Arial;"><br></div><div style=3D"font-family=
:Arial;">Here are some other documents that are worth reading before the=
 session:<br></div><div style=3D"font-family:Arial;"><br></div><div styl=
e=3D"font-family:Arial;"><a href=3D"https://datatracker.ietf.org/doc/dra=
ft-ietf-jmap-websocket/?include_text=3D1">https://datatracker.ietf.org/d=
oc/draft-ietf-jmap-websocket/?include_text=3D1</a><br></div><div style=3D=
"font-family:Arial;"><a href=3D"https://datatracker.ietf.org/doc/draft-i=
etf-jmap-mdn/?include_text=3D1">https://datatracker.ietf.org/doc/draft-i=
etf-jmap-mdn/?include_text=3D1</a><br></div><div style=3D"font-family:Ar=
ial;"><div style=3D"font-family:Arial;"><div style=3D"font-family:Arial;=
"><a href=3D"https://github.com/jmapio/jmap/blob/master/ietf-docs/charte=
r.txt">https://github.com/jmapio/jmap/blob/master/ietf-docs/charter.txt<=
/a></div></div></div><div style=3D"font-family:Arial;"><br></div><div st=
yle=3D"font-family:Arial;">And of course the current state of the calend=
ar and contacts documents:<br></div><div style=3D"font-family:Arial;"><b=
r></div><div style=3D"font-family:Arial;"><a href=3D"https://jmap.io/spe=
c-calendars.html">https://jmap.io/spec-calendars.html</a><br></div><div =
style=3D"font-family:Arial;"><a href=3D"https://jmap.io/spec-contacts.ht=
ml">https://jmap.io/spec-contacts.html</a><br></div><div style=3D"font-f=
amily:Arial;"><br></div><div style=3D"font-family:Arial;">See you on Mon=
day!<br></div><div style=3D"font-family:Arial;"><br></div><div style=3D"=
font-family:Arial;">Regards,<br></div><div style=3D"font-family:Arial;">=
<br></div><div style=3D"font-family:Arial;">Bron.<br></div><div style=3D=
"font-family:Arial;"><br></div><div id=3D"sig56629417"><div class=3D"sig=
nature">--<br></div><div class=3D"signature">&nbsp; Bron Gondwana, CEO, =
FastMail Pty Ltd<br></div><div class=3D"signature">&nbsp; brong@fastmail=
team.com<br></div><div class=3D"signature"><br></div></div><div style=3D=
"font-family:Arial;"><br></div></body></html>
--f632e8a94618456d906433b881028ec9--


From nobody Sat Mar 23 09:08:04 2019
Return-Path: <noreply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3B3261277DE; Sat, 23 Mar 2019 09:08:02 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: =?utf-8?q?Mirja_K=C3=BChlewind_via_Datatracker?= <noreply@ietf.org>
To: "The IESG" <iesg@ietf.org>
Cc: draft-ietf-jmap-core@ietf.org, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, brong@fastmailteam.com, jmap@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: =?utf-8?q?Mirja_K=C3=BChlewind?= <ietf@kuehlewind.net>
Message-ID: <155335728121.15672.10419340902681594473.idtracker@ietfa.amsl.com>
Date: Sat, 23 Mar 2019 09:08:01 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/lB8Hq9Z-iZgtPbTI-0E65AwgRsg>
Subject: [Jmap] =?utf-8?q?Mirja_K=C3=BChlewind=27s_No_Objection_on_draft-?= =?utf-8?q?ietf-jmap-core-17=3A_=28with_COMMENT=29?=
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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: Sat, 23 Mar 2019 16:08:02 -0000

Mirja Kühlewind has entered the following ballot position for
draft-ietf-jmap-core-17: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thanks for considering my discuss!

Thanks for addressing the TSV-ART comments (and thanks to Allison for the review)!

----------------------------
Old comment (for the record):
----------------------------
One question regarding sec 9.4.1.:
How long should IANA wait for comments before the registration is performed?



From nobody Sat Mar 23 09:29:25 2019
Return-Path: <brong@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 27A701277DE; Sat, 23 Mar 2019 09:29:18 -0700 (PDT)
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=ANwcLo4+; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=P535hg7t
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 lr8himiuZ1Y7; Sat, 23 Mar 2019 09:29:16 -0700 (PDT)
Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 83D4D1275E9; Sat, 23 Mar 2019 09:29:16 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 7866336E7; Sat, 23 Mar 2019 12:29:15 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Sat, 23 Mar 2019 12:29:15 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:date:from:to:subject :content-type; s=fm2; bh=PHO9WTUhheJgDvVcXB0GJqEPa2STevlfpA9VKqh W0lY=; b=ANwcLo4+VO3hGfwCoyiKUIPlz2+4fkv97pOS912rUUm7P0jaBsv4ZF1 XMeSvD7mwh67yVT+lRv5kTHtNtZGoUI/TCcC/VmzFf5sYRzgdLitK9leBKG+24V6 kdqtPlgir64yurMlZjwx1HsbGIALL9vC4tECTIxoS5afmnVq+GK0mCMl8D1ulf6v P3qrZzGAE0esK9kqe5Pdx6BpQCmpeGsEsHj3z6VyTSDSKUYlIUgtgJdTZ1nUJao2 67z9mDE4YsmuutzgUi8prvLgnocGaQIWpBW1RvzclFvXQEDFM6BmlBJWrC8gIk5F TKiGWoJjZvkIhAnN0Kn7uuZrB2yvIDQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=PHO9WTUhheJgDvVcXB0GJqEPa2STe vlfpA9VKqhW0lY=; b=P535hg7tfomvpG/q1BCKHGl5ZRExTKbD8LMoPiEM9X7l9 BwmsWm6oiHNAP2lxrgf2Mcp1Xfm+TVx6qt3ueSgQ8503J8WlA55ik0vtWw3m8zsr kwmg5czxt0pt2bf456bjmRr5c2Wy7JkLD22W1glwfdc9v3bLzKXTg2bJji7DNEeH GAj0muaHaU0IN5eh/tciRaOSL6zG7tmKBlusZ3+qULEoQn1/WLNscHnnfZq9BqE/ 56XUl2sT3BVehHtHnsOdBisq1sUZGGEOS3UbRvZ9U/YJkW5AVoAbrWSdOC6AaHz9 d8Z0so3cp7u1gwGNfmlJC2FEwgrYTfLtRs8li2kfQ==
X-ME-Sender: <xms:2l6WXOlzfo-nT4cc_D2y9QWiwDGZG1Iq_2h7Ql86s6aNi1ObPL8ZTQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrjeefgdeludcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesrgdtreerre ertdenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehfrghs thhmrghilhhtvggrmhdrtghomheqnecuffhomhgrihhnpehivghtfhdrohhrghdptghurh hrhihtrghnughoohhrrdgtiienucfrrghrrghmpehmrghilhhfrhhomhepsghrohhnghes fhgrshhtmhgrihhlthgvrghmrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:2l6WXKxlU6uIxnLC5d9rbaoUbgMwdcGUZD2QreHHQNhMSo6dfQPeRg> <xmx:2l6WXA4C60NFDxa5OPP_Rgo5Wo-rjFiNCVipX83jBn89jKa91wMpxg> <xmx:2l6WXCUqcing0nb3Kg71MS4YC8wzAevgg2C6MJNXHRxJ0zJ6mnEWbw> <xmx:216WXIUKKJe6n3Z9by3YXp6LRImN0FXAp9VsmAjjlm9oBzn74roYgA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8F1D920617; Sat, 23 Mar 2019 12:29:14 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.5-976-g376b1f3-fmstable-20190314v3
Mime-Version: 1.0
X-Me-Personality: 56629417
Message-Id: <736e2542-793e-4c7a-9161-a3122892c2f8@www.fastmail.com>
Date: Sat, 23 Mar 2019 12:29:14 -0400
From: "Bron Gondwana" <brong@fastmailteam.com>
To: jmap@ietf.org, extra@ietf.org
Content-Type: multipart/alternative; boundary=2642bfeb04aa464eae2fc77dca90034d
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/96j2DipieDzVIOpz3UdYTZT84bM>
Subject: [Jmap] Friends of IMAP/JMAP/email dinner Tuesday 7pm.
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: Sat, 23 Mar 2019 16:29:18 -0000

--2642bfeb04aa464eae2fc77dca90034d
Content-Type: text/plain

Save the date! Tuesday 26th we're going to do a celebratory dinner and drink some champagne and celebrate that JMAP is basically done and EXTRA has basically finished its initial set of documents (assuming we WGLC imap4rev2 after Tuesday morning's session)

In the interests of tradition, I suggest: www.currytandoor.cz/en/ at 7pm on Tuesday night - we went for dinner there at 7pm on Tuesday night at IETF99 :) We can return to the Hilton bar for cocktails / champagne later if people want.

I'll collect a show of hands at the EXTRA and JMAP sessions and book on Tuesday. Anyone not attending those and wanting to come along, drop me an email :)

Cheers,

Bron.

https://mailarchive.ietf.org/arch/msg/jmap/HJiPOfpofldiWBayIVPkqdnVclM


--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com


--2642bfeb04aa464eae2fc77dca90034d
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div style=3D"font-f=
amily:Arial;">Save the date!&nbsp; Tuesday 26th we're going to do a cele=
bratory dinner and drink some champagne and celebrate that JMAP is basic=
ally done and EXTRA has basically finished its initial set of documents =
(assuming we WGLC imap4rev2 after Tuesday morning's session)<br></div><d=
iv style=3D"font-family:Arial;"><br></div><div style=3D"font-family:Aria=
l;">In the interests of tradition, I suggest: <a href=3D"http://www.curr=
ytandoor.cz/en/">www.currytandoor.cz/en/</a> at 7pm on Tuesday night - w=
e went for dinner there at 7pm on Tuesday night at IETF99 :)&nbsp; We ca=
n return to the Hilton bar for cocktails / champagne later if people wan=
t.<br></div><div style=3D"font-family:Arial;"><br></div><div style=3D"fo=
nt-family:Arial;">I'll collect a show of hands at the EXTRA and JMAP ses=
sions and book on Tuesday.&nbsp; Anyone not attending those and wanting =
to come along, drop me an email :)<br></div><div style=3D"font-family:Ar=
ial;"><br></div><div style=3D"font-family:Arial;">Cheers,<br></div><div =
style=3D"font-family:Arial;"><br></div><div style=3D"font-family:Arial;"=
>Bron.<br></div><div style=3D"font-family:Arial;"><br></div><div style=3D=
"font-family:Arial;"><a href=3D"https://mailarchive.ietf.org/arch/msg/jm=
ap/HJiPOfpofldiWBayIVPkqdnVclM">https://mailarchive.ietf.org/arch/msg/jm=
ap/HJiPOfpofldiWBayIVPkqdnVclM</a><br></div><div style=3D"font-family:Ar=
ial;"><br></div><div style=3D"font-family:Arial;"><br></div><div id=3D"s=
ig56629417"><div class=3D"signature">--<br></div><div class=3D"signature=
">&nbsp; Bron Gondwana, CEO, FastMail Pty Ltd<br></div><div class=3D"sig=
nature">&nbsp; brong@fastmailteam.com<br></div><div class=3D"signature">=
<br></div></div><div style=3D"font-family:Arial;"><br></div></body></htm=
l>
--2642bfeb04aa464eae2fc77dca90034d--


From nobody Sat Mar 23 10:02:32 2019
Return-Path: <iesg-secretary@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 81C57128D2B; Sat, 23 Mar 2019 10:02:31 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: The IESG <iesg-secretary@ietf.org>
To: "IETF-Announce" <ietf-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Cc: The IESG <iesg@ietf.org>, brong@fastmailteam.com, jmap@ietf.org, draft-ietf-jmap-core@ietf.org, alexey.melnikov@isode.com, Bron Gondwana <brong@fastmailteam.com>, jmap-chairs@ietf.org, rfc-editor@rfc-editor.org
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Message-ID: <155336055152.15573.6438867488050326758.idtracker@ietfa.amsl.com>
Date: Sat, 23 Mar 2019 10:02:31 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/ysD6YwKz7RFHuBvBRcC4Mr8yIEQ>
Subject: [Jmap] Protocol Action: 'JSON Meta Application Protocol' to Proposed Standard (draft-ietf-jmap-core-17.txt)
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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: Sat, 23 Mar 2019 17:02:32 -0000

The IESG has approved the following document:
- 'JSON Meta Application Protocol'
  (draft-ietf-jmap-core-17.txt) as Proposed Standard

This document is the product of the JSON Mail Access Protocol Working Group.

The IESG contact persons are Adam Roach, Alexey Melnikov and Ben Campbell.

A URL of this Internet Draft is:
https://datatracker.ietf.org/doc/draft-ietf-jmap-core/




Technical Summary

   JMAP-Core specifies a protocol for clients to access JSON-based
   data objects efficiently, with support for push and out-of-band
   binary data upload/download.

   This document was produced in conjunction with
   draft-ietf-jmap-mail, which is the first specific set of
   objects and access methods built upon the described mechanisms.

Working Group Summary

  The initial proposal included an authentication method which was
  removed based on feedback from the HTTP and security groups that
  it would be controversial, instead JMAP-core just allows for an
  authentication layer to be present and restricts itself to the
  object transport over that layer.

  The object naming and other parts of core underwent significant
  revision based on feedback from the group, and it's been in
  roughly the same shape with consensus for the last 6 months as
  small consistency fixes were made and feedback from real world
  implementation was gathered.

Document Quality

  The only known implementations of the latest protocol have been
  done by FastMail staff, but there exist multiple implementations
  of earlier drafts, and their authors have read the current
  drafts - they're just waiting until publication to update to the
  latest version.  Both client and server implementations are
  available as open-source.

  The JMAP working group is small, but there have been multiple
  people who have read the document carefully - Chris Newman who
  is now listed as an author gave particularly detailed reviews.

  The authors of the various parts of the FastMail stack that are
  now implemented on this spec, and of the two test suites covering
  the spec, have also found multiple issues in the last 6 months
  which have fed back into the final document.

  Multiple email server vendors have indicated their intention to
  either add JMAP to their existing servers, or to build new
  services on top of the JMAP data model.

Personnel

  The Document Shepherd is Bron Gondwana and the Responsible
  Area Director is Alexey Melnikov.


From nobody Tue Mar 26 04:17:18 2019
Return-Path: <ietf-secretariat-reply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 1BC2E1202D1 for <jmap@ietf.org>; Tue, 26 Mar 2019 04:17:17 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: <jmap@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155359903711.20825.4433042709239581820.idtracker@ietfa.amsl.com>
Date: Tue, 26 Mar 2019 04:17:17 -0700
From: IETF Secretariat <ietf-secretariat-reply@ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/Dcl1gyeDZnjMVCtFQc8EzT-MFCI>
Subject: [Jmap] Milestones changed for jmap WG
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 26 Mar 2019 11:17:17 -0000

Changed milestone "Submit document with guidance for implementation of IMAP
servers and proxies (Informational)", set due date to December 2019 from June
2019.

URL: https://datatracker.ietf.org/wg/jmap/about/


From nobody Tue Mar 26 04:22:58 2019
Return-Path: <brong@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 468EB1202BD for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 04:22:56 -0700 (PDT)
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, HTML_MESSAGE=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=fastmailteam.com header.b=kxJfz4eb; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=XphiPIlA
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 1SbIkn0-AKJb for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 04:22:54 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 02E5A120160 for <jmap@ietf.org>; Tue, 26 Mar 2019 04:22:53 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id AAF6822A45 for <jmap@ietf.org>; Tue, 26 Mar 2019 07:22:52 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Tue, 26 Mar 2019 07:22:52 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:date:from:to:subject :content-type; s=fm2; bh=OKBuo5UgelTj3s2qMT6SkdsNyL2ZfE1kgoK4i+L aikc=; b=kxJfz4ebQYXvAo9/4IImHvGBsfwai4wRitmzUBis8Owt093ildJBWYV I3nA904/lmMAR7pZTd3G42wMMArO4BSDk1kRpPXw60UKemPZDGHXJd2vvP3PbTxb qK+piT4eLP02DrCSZwU+ikG+e85/FtYX/s77kTioY7oeDg2LEJ6e2BRFIFEifxOZ e22ZQYGo+xjbJFGHx4ti9DE6WTG8ubvdkQk36LoZ2gsZ4v+Uiu9gKNs/gYKmvz1q JQXWjT9uZw2QGZsXNBoXmGSXGeS73nR4/fL8FP8yH8J4p3wd2/K6XpyHp4t3dJVa McLlxI5ugUxrmTX9ynvH/2tHh1FQFtQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=OKBuo5UgelTj3s2qMT6SkdsNyL2Zf E1kgoK4i+Laikc=; b=XphiPIlA+/KJW6M6XVbXmAIonjMS8zdVAPEhXIPXtANQl 35T4IA5nseesb1zyOhIZIIWmBsOCu62H9MHvWtz9LgnqjfEmS9cF/JYB6TDArMIh tItzCSELbvMBnWJD9ZzG3HfK9YzPjMRchPB1okcqwdtneYMQSUXVIVAtect5qgy5 hIPPojP/Ftj0kjjpslzarG21wHMM3/Y9gE4yUMaxe3p3mBZa+iDb23phJ+0E5kcz ZBZynXfmEAjNGzsRnbB15DnnY1og9fJgjcqNOYJhvtcyNridDJpesSd6JrWmfXs+ FgMoMhmXg45J9E+/adWkR7V316cmwlYG1AXB63JiQ==
X-ME-Sender: <xms:jAuaXGtvEaXCPkcK8oIk7paXHC4rH-rjiyrIEvn-Lk5BSkVYP17FzQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrkedtgddvjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesrgdtreerre ertdenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehfrghs thhmrghilhhtvggrmhdrtghomheqnecuffhomhgrihhnpehivghtfhdrohhrghdpjhhmrg hprdhiohenucfrrghrrghmpehmrghilhhfrhhomhepsghrohhnghesfhgrshhtmhgrihhl thgvrghmrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:jAuaXPNXi1aAyb-Ws5bBE4teBh7V3aJoXmshzjzsJve90OlYqCSHYQ> <xmx:jAuaXKrQpL1PpACnS1Eld-tRqXyXnMZCM7kKCxLQ77fb6xtfd20KUQ> <xmx:jAuaXJX7VMrwO8QSmXdKFT9FR0yhwJmuMpMZhdPobCOpunE6jA-jAA> <xmx:jAuaXDCZXX95Lhhv9OOSLsETbH7i7lIpVs_FwW53EVQFA4LFrAOWAA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 5920720578; Tue, 26 Mar 2019 07:22:52 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-328-g40d9e92-fmstable-20190325v1
Mime-Version: 1.0
X-Me-Personality: 56629417
Message-Id: <ee23f3f2-7be3-475b-9839-7785fe92f985@www.fastmail.com>
Date: Tue, 26 Mar 2019 07:22:41 -0400
From: "Bron Gondwana" <brong@fastmailteam.com>
To: jmap@ietf.org
Content-Type: multipart/alternative; boundary=5072e70fd3d54878b981ad6764ca0121
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/oimvQ7ZF4VX4zLn8fJIPKg2_Uhc>
Subject: [Jmap] Call for adoption of JMAP calendars - reply by April 15
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: Tue, 26 Mar 2019 11:22:56 -0000

--5072e70fd3d54878b981ad6764ca0121
Content-Type: text/plain

Hi All,

As discussed at Prague, we believe we're ready to start work on Calendars. A recharter to bring calendars into scope is planned, and along with that I propose that we adopt as an initial starting point the work here:

https://jmap.io/spec-calendars.html

Using the JSCalendar data format:

https://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar/

Neil Jenkins has volunteered to remain as one of the authors for this document. Is anyone else (ideally from outside FastMail) keen to co-author? Let me know.

If you have any objections, please reply by April 15th with your objections.

Regards,

Bron.


--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com


--5072e70fd3d54878b981ad6764ca0121
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div style=3D"font-f=
amily:Arial;">Hi All,<br></div><div style=3D"font-family:Arial;"><br></d=
iv><div style=3D"font-family:Arial;">As discussed at Prague, we believe =
we're ready to start work on Calendars.&nbsp; A recharter to bring calen=
dars into scope is planned, and along with that I propose that we adopt =
as an initial starting point the work here:<br></div><div style=3D"font-=
family:Arial;"><br></div><div style=3D"font-family:Arial;"><a href=3D"ht=
tps://jmap.io/spec-calendars.html">https://jmap.io/spec-calendars.html</=
a><br></div><div style=3D"font-family:Arial;"><br></div><div style=3D"fo=
nt-family:Arial;">Using the JSCalendar data format:<br></div><div style=3D=
"font-family:Arial;"><br></div><div style=3D"font-family:Arial;"><a href=
=3D"https://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar/">http=
s://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar/</a><br></div>=
<div style=3D"font-family:Arial;"><br></div><div style=3D"font-family:Ar=
ial;">Neil Jenkins has volunteered to remain as one of the authors for t=
his document.&nbsp; Is anyone else (ideally from outside FastMail) keen =
to co-author?&nbsp; Let me know.<br></div><div style=3D"font-family:Aria=
l;"><br></div><div style=3D"font-family:Arial;">If you have any objectio=
ns, please reply by April 15th with your objections.<br></div><div style=
=3D"font-family:Arial;"><br></div><div style=3D"font-family:Arial;">Rega=
rds,<br></div><div style=3D"font-family:Arial;"><br>Bron.<br></div><div =
style=3D"font-family:Arial;"><br></div><div style=3D"font-family:Arial;"=
><br></div><div id=3D"sig56629417"><div class=3D"signature">--<br></div>=
<div class=3D"signature">&nbsp; Bron Gondwana, CEO, FastMail Pty Ltd<br>=
</div><div class=3D"signature">&nbsp; brong@fastmailteam.com<br></div><d=
iv class=3D"signature"><br></div></div><div style=3D"font-family:Arial;"=
><br></div></body></html>
--5072e70fd3d54878b981ad6764ca0121--


From nobody Tue Mar 26 04:27:39 2019
Return-Path: <ietf-secretariat-reply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 7BD121202D0 for <jmap@ietf.org>; Tue, 26 Mar 2019 04:27:37 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: <jmap@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155359965750.20778.18027862566282230780.idtracker@ietfa.amsl.com>
Date: Tue, 26 Mar 2019 04:27:37 -0700
From: IETF Secretariat <ietf-secretariat-reply@ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/2PWh4EKhE8UZaJKrgXMZqppYma4>
Subject: [Jmap] Milestones changed for jmap WG
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 26 Mar 2019 11:27:38 -0000

Changed milestone "Adopt a document for calendar access via JMAP", set state
to active from review, accepting new milestone.

Changed milestone "Adopt a document for SMIME interaction via JMAP", set
state to active from review, accepting new milestone, set description to
"Adopt a document for S/MIME interaction via JMAP".

Changed milestone "Submit Message Delivery Notification document to the
IEST", set state to active from review, accepting new milestone, set
description to "Submit Message Delivery Notification document to the IESG".

URL: https://datatracker.ietf.org/wg/jmap/about/


From nobody Tue Mar 26 05:24:40 2019
Return-Path: <brong@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 6AD2512000F for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:24:39 -0700 (PDT)
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, HTML_MESSAGE=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=fastmailteam.com header.b=OMrLZcx+; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=U3HkqdDH
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 zh4vBTljGezQ for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:24:36 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EE2DD1202D1 for <jmap@ietf.org>; Tue, 26 Mar 2019 05:24:35 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id EF42923B01 for <jmap@ietf.org>; Tue, 26 Mar 2019 08:24:34 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Tue, 26 Mar 2019 08:24:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:date:from:to:subject :content-type; s=fm2; bh=5+JsC2J2N47mzcY3wfoynAM47Gyf1i9l3XA/r0y hJNY=; b=OMrLZcx+PiXc76P0jQ82t833PhfSkii+EShaxJS1N4fWvClVETwidVx B/CpI5Xlechv7Xq1dhJmThBFhcDdw0jqHVxGGFdj82KzeTSeBtdGtY4m5XBjyMdp Go5H82oKR+WW2qJatXKROON4U3MfilmiCP2hx3u3MUIIT1O4dmS8dSjEC2WTf+xQ f7G3hrAXlD7W6vcCEFvQO1Ksogxv3Po8bjLtzeiXu7EvUBLVH/RN12nG3nHgFMrA 4voVnQEkuz/sYDv69d5Te08wX4iD6FiYmKZM3cv6AFAGAGo851vxoVvLdWeUQg+Q MOCzIO+472KgUKT1lVGRi/h6rvIGIIA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=5+JsC2J2N47mzcY3wfoynAM47Gyf1 i9l3XA/r0yhJNY=; b=U3HkqdDHFBrYEVY26RzpQc5lOw46BT4bmHbcNQvuVuBzx ypzbzOZfu6FkNs/YzSnM6zAn7MSAH9kGZUklTRKKGYmOfo4mLnJpWJ0qvLmCxcnB iqtWSFfY+7oqq3nXuHfpOqMeiWWdUQM3jE1CE8XABKmzrCrHBGtrRPSTP+/vZfCa NwV5GHv8Osk0LtLc5QxwQymozENxguC07ZN4qBFiCopcTj6avmKSJ+knHtUOgALc Q1T/OtPo9PFQEB5bgjwJqajx5KgnQuykNMeyUxuU+b2nMxLKMEkaIT9UwILqnP0e guivR/lvHo+Jb3pNS+LUkAbL/iFzDo0wRHwnxyUIw==
X-ME-Sender: <xms:AhqaXMLKOej18KoR-MKyV81Aj1K3W8-G1fagw0hvOlcT5JV78Rt0GQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrkedtgdeflecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesrgdtreerre ertdenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehfrghs thhmrghilhhtvggrmhdrtghomheqnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsrhhonh hgsehfrghsthhmrghilhhtvggrmhdrtghomhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:AhqaXH8Lz7AMrfqy14AVI7T_iAxOZyR6SfwBX--44RCaQAYySY-vag> <xmx:AhqaXIE44c8zkpxzpkr8zgR8lOmFy191RJUPqbLuXFT4s-InwVQ1hg> <xmx:AhqaXC4yQwOj5Lz8B6v5KecGPUHIToSQoik4SwJyKTPeVVb8bUVKqw> <xmx:AhqaXPnLeSu5jy3ZYbLN46agw0NqZbmPbd3KbUFI873tV6ibC5Snug>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 4526F20579; Tue, 26 Mar 2019 08:24:34 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-328-g40d9e92-fmstable-20190325v1
Mime-Version: 1.0
X-Me-Personality: 56629417
Message-Id: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com>
Date: Tue, 26 Mar 2019 08:24:33 -0400
From: "Bron Gondwana" <brong@fastmailteam.com>
To: jmap@ietf.org
Content-Type: multipart/alternative; boundary=da4203c5adef4fd880fb1a20958bdada
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/zj_6-ygVaipjwhVkVvTB6eq2FVI>
Subject: [Jmap] Call for adoption of SMIME for JMAP - reply by April 15
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: Tue, 26 Mar 2019 12:24:39 -0000

--da4203c5adef4fd880fb1a20958bdada
Content-Type: text/plain

Hi All,

I'm pretty sure we already decided to adopt Alexey's S/MIME work, but just in case and to tick all the boxes, please reply here if you have any objections to this working group adopting a draft on how to deal with S/MIME via JMAP, edited by Alexey.

Cheers,

Bron.

--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com


--da4203c5adef4fd880fb1a20958bdada
Content-Type: text/html

<!DOCTYPE html><html><head><title></title><style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div style="font-family:Arial;">Hi All,<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;">I'm pretty sure we already decided to adopt Alexey's S/MIME work, but just in case and to tick all the boxes, please reply here if you have any objections to this working group adopting a draft on how to deal with S/MIME via JMAP, edited by Alexey.<br></div><div style="font-family:Arial;"><br></div><div style="font-family:Arial;">Cheers,<br></div><div style="font-family:Arial;"><br>Bron.<br></div><div style="font-family:Arial;"><br></div><div id="sig56629417"><div class="signature">--<br></div><div class="signature">&nbsp; Bron Gondwana, CEO, FastMail Pty Ltd<br></div><div class="signature">&nbsp; brong@fastmailteam.com<br></div><div class="signature"><br></div></div><div style="font-family:Arial;"><br></div></body></html>
--da4203c5adef4fd880fb1a20958bdada--


From nobody Tue Mar 26 05:33:53 2019
Return-Path: <arnt@gulbrandsen.priv.no>
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 A021A12001E for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:33:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gulbrandsen.priv.no
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 gQ4H5_Vvqhw3 for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:33:49 -0700 (PDT)
Received: from stabil.gulbrandsen.priv.no (stabil.gulbrandsen.priv.no [144.76.73.169]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3C60012000F for <jmap@ietf.org>; Tue, 26 Mar 2019 05:33:49 -0700 (PDT)
Received: from stabil.gulbrandsen.priv.no (stabil.gulbrandsen.priv.no [IPv6:2a01:4f8:191:91a8::3]) by stabil.gulbrandsen.priv.no (Postfix) with ESMTP id 4E125C05E5; Tue, 26 Mar 2019 12:35:50 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gulbrandsen.priv.no; s=mail; t=1553603750; bh=SVasfua2KwB1CZmPONH5adR1mpwSASU0gkbM/zETJ/k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nOwj3Gt6eO9R/O26qEiO0l31LEXWKMNf4oh4lvP7pbNUjzBfVLTX0ljpsyEuoWPUV d46RaofUyXgGydFIDz+Zl+i+LfncBCxv1C+ubtaRzNpJ5T1z0J9qzXBwZoZ/WBohK6 YDJLwvUVjyauXy7xGPJmVxgBCYiUH9efnd+VhdQw=
Received: from arnt@gulbrandsen.priv.no by stabil.gulbrandsen.priv.no (Archiveopteryx 3.2.0) with esmtpsa id 1553603749-26265-2661/9/80; Tue, 26 Mar 2019 12:35:49 +0000
From: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
To: Bron Gondwana <brong@fastmailteam.com>
Cc: jmap@ietf.org
Date: Tue, 26 Mar 2019 13:33:46 +0100
Mime-Version: 1.0
Message-Id: <303176d4-1856-4b03-ab8b-d8bcf3e48ea3@gulbrandsen.priv.no>
In-Reply-To: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com>
References: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com>
User-Agent: Trojita/0.7; Qt/5.7.1; xcb; Linux; Devuan GNU/Linux 2.0 (ascii)
Content-Type: text/plain; charset=utf-8; format=flowed
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/MRbQZW_V-xG73xj8XTc-ddwgkcI>
Subject: Re: [Jmap] Call for adoption of SMIME for JMAP - reply by April 15
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: Tue, 26 Mar 2019 12:33:52 -0000

On Tuesday 26 March 2019 13:24:33 CET, Bron Gondwana wrote:
> I'm pretty sure we already decided to adopt Alexey's S/MIME 
> work, but just in case and to tick all the boxes, please reply 
> here if you have any objections to this working group adopting a 
> draft on how to deal with S/MIME via JMAP, edited by Alexey.

Some wit once quipped that S/MIME had more implementations than users. 
Can't remember who that was. But I do hope this will avoid adding even a 
single SHOULD or MUST to implementers who don't care about S/MIME.

Arnt


From nobody Tue Mar 26 05:40:20 2019
Return-Path: <alexey.melnikov@isode.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 4B90812001E for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:40:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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 DU9jUjAlUsRB for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:40:17 -0700 (PDT)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id 937D312000F for <jmap@ietf.org>; Tue, 26 Mar 2019 05:40:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1553604016; d=isode.com; s=june2016; i=@isode.com; bh=L1EOVapmaohURrmVG0HMql1HXu6U0zkUqE6WwmoFv9c=; 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=qSxy/bg2vbpOLyofxi+C3uI32KEG60dPtPI1I8mgY4ktGGuhYP8LpY+PmDyMK8qNvRMv+/ eO7GT6nRuvwLcSFn5jL043sS5mmP1nSlmmc9eiBvMwjHZsG9flIUp369cL17KAQntQIaFf khs4V2epfg3nK/fi+be5KcF5vIyAK3I=;
Received: from [31.133.128.237] (dhcp-80ed.meeting.ietf.org [31.133.128.237])  by waldorf.isode.com (submission channel) via TCP with ESMTPSA  id <XJodrwB617d6@waldorf.isode.com>; Tue, 26 Mar 2019 12:40:16 +0000
To: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
References: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com> <303176d4-1856-4b03-ab8b-d8bcf3e48ea3@gulbrandsen.priv.no>
Cc: jmap@ietf.org
From: Alexey Melnikov <alexey.melnikov@isode.com>
Openpgp: preference=signencrypt
Message-ID: <fbb2e3bf-4933-8ad1-a07c-1559f5ffc5d7@isode.com>
Date: Tue, 26 Mar 2019 12:40:06 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.0
In-Reply-To: <303176d4-1856-4b03-ab8b-d8bcf3e48ea3@gulbrandsen.priv.no>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/EbJH9hwqe38nNCYfXxMSn0ImBzI>
Subject: Re: [Jmap] Call for adoption of SMIME for JMAP - reply by April 15
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: Tue, 26 Mar 2019 12:40:19 -0000

On 26/03/2019 12:33, Arnt Gulbrandsen wrote:
> On Tuesday 26 March 2019 13:24:33 CET, Bron Gondwana wrote:
>> I'm pretty sure we already decided to adopt Alexey's S/MIME work, but
>> just in case and to tick all the boxes, please reply here if you have
>> any objections to this working group adopting a draft on how to deal
>> with S/MIME via JMAP, edited by Alexey.
> 
> Some wit once quipped that S/MIME had more implementations than users.
> Can't remember who that was. But I do hope this will avoid adding even a
> single SHOULD or MUST to implementers who don't care about S/MIME.

This would be a JMAP extension optional to implement. So I think this is
given.


From nobody Tue Mar 26 05:44:45 2019
Return-Path: <alexey.melnikov@isode.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 40E9A120306 for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:44:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level: 
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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 TiE4ecYJSNSJ for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:44:34 -0700 (PDT)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id 71FEB120303 for <jmap@ietf.org>; Tue, 26 Mar 2019 05:44:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1553604273; d=isode.com; s=june2016; i=@isode.com; bh=WWaQ7JMbfQFRvPSCGHfkZc+jGqpEppDdbtlB70Wtvdo=; 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=Qdjjh6cavc8OfC4hCL0ZXTvTaVQzmkN+DvsFUsNE2gdiGV5RXEeKRUW/2ndsFIcf85Q5g/ 98ZPwpDjAtC62qihrNS8cBt8JnP1zzOmRFau/Br09qeYJ2B/FvhTIHVYyh5nUioqyyhhXI mmGWtwFRVOICIX7BEtCrNPn4l0jKBBw=;
Received: from [31.133.128.237] (dhcp-80ed.meeting.ietf.org [31.133.128.237])  by waldorf.isode.com (submission channel) via TCP with ESMTPSA  id <XJoesQB61zmD@waldorf.isode.com>; Tue, 26 Mar 2019 12:44:33 +0000
To: Bron Gondwana <brong@fastmailteam.com>, jmap@ietf.org
References: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com>
From: Alexey Melnikov <alexey.melnikov@isode.com>
Openpgp: preference=signencrypt
Message-ID: <5e71469f-430b-b696-eaf1-bb6f9a74e9d0@isode.com>
Date: Tue, 26 Mar 2019 12:44:33 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.0
In-Reply-To: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-transfer-encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/dwfHGmxsJOlWxsKG4hepjYQkXO8>
Subject: Re: [Jmap] Call for adoption of SMIME for JMAP - reply by April 15
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: Tue, 26 Mar 2019 12:44:38 -0000

On 26/03/2019 12:24, Bron Gondwana wrote:
> Hi All,
>=20
> I'm pretty sure we already decided to adopt Alexey's S/MIME work, but
> just in case and to tick all the boxes, please reply here if you have
> any objections to this working group adopting a draft on how to deal
> with S/MIME via JMAP, edited by Alexey.

To clarify, there might be 2 possible work items here (in one or two
documents): S/MIME signature verification status indicator (relatively
easy) and S/MIME signing/encryption by JMAP server that manages keys on
user's behalf. I am happy to work on both or just the first one in the WG.


From nobody Tue Mar 26 05:48:16 2019
Return-Path: <arnt@gulbrandsen.priv.no>
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 83ADF120043 for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:48:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gulbrandsen.priv.no
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 G3rqygBb0og4 for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:48:13 -0700 (PDT)
Received: from stabil.gulbrandsen.priv.no (stabil.gulbrandsen.priv.no [IPv6:2a01:4f8:191:91a8::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CAFF112000F for <jmap@ietf.org>; Tue, 26 Mar 2019 05:48:12 -0700 (PDT)
Received: from stabil.gulbrandsen.priv.no (stabil.gulbrandsen.priv.no [IPv6:2a01:4f8:191:91a8::3]) by stabil.gulbrandsen.priv.no (Postfix) with ESMTP id 4BD5CC05E5; Tue, 26 Mar 2019 12:50:14 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gulbrandsen.priv.no; s=mail; t=1553604614; bh=cTilkVIeLDkWbW0/h+NfsVHqBBnj28XBrSB+7t433A8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AG8F2gCAiPv2XwnoyrSKnLCdpdAzgRKb5Wmt3O1BjtHcpd10gCCm6zL3OU8qB5EsC x9bY02mcD40UQrD2NyI1IEghbP+fxwYWuKCqVi/b5tvDp6Cf50j6Lbg8VEBVvp789F MNaxDfQUdJIlndRnOK13J9tDJbd7ToeoTbysOy8g=
Received: from arnt@gulbrandsen.priv.no by stabil.gulbrandsen.priv.no (Archiveopteryx 3.2.0) with esmtpsa id 1553604613-26265-2661/9/81; Tue, 26 Mar 2019 12:50:13 +0000
From: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
To: Alexey Melnikov <alexey.melnikov@isode.com>
Cc: jmap@ietf.org
Date: Tue, 26 Mar 2019 13:48:09 +0100
Mime-Version: 1.0
Message-Id: <b2149b39-3c75-401d-9240-1746aee0714d@gulbrandsen.priv.no>
In-Reply-To: <fbb2e3bf-4933-8ad1-a07c-1559f5ffc5d7@isode.com>
References: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com> <303176d4-1856-4b03-ab8b-d8bcf3e48ea3@gulbrandsen.priv.no> <fbb2e3bf-4933-8ad1-a07c-1559f5ffc5d7@isode.com>
User-Agent: Trojita/0.7; Qt/5.7.1; xcb; Linux; Devuan GNU/Linux 2.0 (ascii)
Content-Type: text/plain; charset=utf-8; format=flowed
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/LqDaoMOyvO3nsJ0l2_4VTYsZM5E>
Subject: Re: [Jmap] Call for adoption of SMIME for JMAP - reply by April 15
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: Tue, 26 Mar 2019 12:48:14 -0000

On Tuesday 26 March 2019 13:40:06 CET, Alexey Melnikov wrote:
> This would be a JMAP extension optional to implement. So I think this is
> given.

As I understand it, you're saying that if an incoming S/MINE message is 
read by an S/MIME-ignorant JMAP client, then no part of the server's output 
for that message depends on whether the server implements this extension. 
Right? Then good.

Arnt


From nobody Tue Mar 26 05:57:35 2019
Return-Path: <alexey.melnikov@isode.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 74911120043 for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:57:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001,  URIBL_BLOCKED=0.001] autolearn=unavailable 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 gq06hJUA9iQy for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 05:57:24 -0700 (PDT)
Received: from waldorf.isode.com (waldorf.isode.com [62.232.206.188]) by ietfa.amsl.com (Postfix) with ESMTP id 63D8D120003 for <jmap@ietf.org>; Tue, 26 Mar 2019 05:57:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1553605043; d=isode.com; s=june2016; i=@isode.com; bh=twjdQmngRLI0B2PlBTkrWQMhpMf1gdC9EXj1PIduucs=; 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=WcFcaYDAjXGPoEdUIvE8mUsLPinJMBAEr327Al9ml+yFx1YAfKZCmgcmVbdltsbS2xPm94 AWY3tBwp4ZcIvw+QbH6lqyU36aXBu5+QkR9CrHwWv2alYbF4HYYRhZU4nkMbQkE10gOgJt ViyWjpIdXWki+0Fw0+A1IVQwL80YVGI=;
Received: from [10.7.122.94] ((unknown) [85.255.235.119])  by waldorf.isode.com (submission channel) via TCP with ESMTPSA  id <XJohswB61z2g@waldorf.isode.com>; Tue, 26 Mar 2019 12:57:23 +0000
X-SMTP-Protocol-Errors: NORDNS
From: Alexey Melnikov <alexey.melnikov@isode.com>
X-Mailer: iPhone Mail (15G77)
In-Reply-To: <b2149b39-3c75-401d-9240-1746aee0714d@gulbrandsen.priv.no>
Date: Tue, 26 Mar 2019 13:57:21 +0100
Cc: jmap@ietf.org
Message-Id: <845A6246-83F8-4870-A461-96EC84520F42@isode.com>
References: <70e1c3ec-12b0-45c0-b029-03cff062eda1@www.fastmail.com> <303176d4-1856-4b03-ab8b-d8bcf3e48ea3@gulbrandsen.priv.no> <fbb2e3bf-4933-8ad1-a07c-1559f5ffc5d7@isode.com> <b2149b39-3c75-401d-9240-1746aee0714d@gulbrandsen.priv.no>
To: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/EgiqtWoKnGqVNoI6Gm4Df-66jv8>
Subject: Re: [Jmap] Call for adoption of SMIME for JMAP - reply by April 15
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: Tue, 26 Mar 2019 12:57:33 -0000

> On 26 Mar 2019, at 13:48, Arnt Gulbrandsen <arnt@gulbrandsen.priv.no> wrot=
e:
>=20
>> On Tuesday 26 March 2019 13:40:06 CET, Alexey Melnikov wrote:
>> This would be a JMAP extension optional to implement. So I think this is
>> given.
>=20
> As I understand it, you're saying that if an incoming S/MINE message is re=
ad by an S/MIME-ignorant JMAP client, then no part of the server's output fo=
r that message depends on whether the server implements this extension. Righ=
t? Then good.

Client will need to indicate that it wants this information.


From nobody Tue Mar 26 07:15:18 2019
Return-Path: <brong@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 38A661202FC; Tue, 26 Mar 2019 07:15:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.607
X-Spam-Level: 
X-Spam-Status: No, score=-1.607 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_16=1.092, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=L33kPHEW; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=ajzzaBM4
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 xYPZouM4yLHS; Tue, 26 Mar 2019 07:15:05 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A7241202F0; Tue, 26 Mar 2019 07:15:03 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 0E4992204C; Tue, 26 Mar 2019 10:15:02 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Tue, 26 Mar 2019 10:15:02 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:date:from:to:subject :content-type; s=fm2; bh=OxV/jpNyW5XCF79fMmXz0cr4gdIQb5/pdFh0wn5 Ytz4=; b=L33kPHEW3dRAvXgqCnUZxTE1pwS3pCe8M8tiBY7FbqknchD4OIj+lWv 8rSCe7CXdj42xzRgDvy7RAA0o5oO76+3NVrx1LtLV6ots5vSFnEZYTx18hQ1NjVE x5kxYUWIiP6N3ovIJuCKX5r6mo8tktNEdFF+sR/CzfYbxx5dOVVBilsi9QbWXeZN WwqVXn9kIFck7SGp86W2HPrfeMj8ri0Dp83Ng2aWbB3oer4GGILxRjXHD/8W8WW/ w7PGpbXtxUmhpU+6n3gtaOs+QfFfUr5QiC1s/uSQinW3XKWNO1zfmvEgxQkHqnwU rHvxjfxLwxgx/Xq8ElF8TbQ872EMCRg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=OxV/jpNyW5XCF79fMmXz0cr4gdIQb 5/pdFh0wn5Ytz4=; b=ajzzaBM4A7g4YNhe7lmHWkdVLxI4gRGLQLOC2ihTQpx5B eSCLQ4wDe+C9xfnuFJsDI3mpaUFVkkbmgqjsCCk7h1s05UQRWrv/L0INVbb/k6M6 PfED3+tAymtjZUGAf4tttl8NaObhpopabrgKx7bfuaf8f8XNSctHIxr5qUwg4w+F oVoLZCPdlVKexYODV4jft//EdsbfGTugoCeEFInTRBjCsfcwy3Czx6I5OODKOKTw hq+x5jyENuQg+Z6dDhDuCByey/aPAtka0OOw1FASdmyF2tNWAF5SJfhP05liM0+V xoA883Z/aH6wMt/w3q9KB1flvvTniEb/4nT1lronw==
X-ME-Sender: <xms:5TOaXJ8GES68VD62tXL1JGJJO8BWn0CXbjS_UJT9znniHyw1GRR1TQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrkedtgdeitdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesrgdtreerre ertdenucfhrhhomhepfdeurhhonhcuifhonhgufigrnhgrfdcuoegsrhhonhhgsehfrghs thhmrghilhhtvggrmhdrtghomheqnecuffhomhgrihhnpegtuhhrrhihthgrnhguohhorh drtgiinecurfgrrhgrmhepmhgrihhlfhhrohhmpegsrhhonhhgsehfrghsthhmrghilhht vggrmhdrtghomhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:5TOaXEutqoNloo_CNUjAfGaffPIND8MB6q9M3ltGmdwSQhH0xHwB4A> <xmx:5TOaXChM5COhco1NPzWWY2Um3cNZAMyIkI1XnMOeUp9luuw1wYKJWg> <xmx:5TOaXHR6RLt128auUEFw9JbZlD1Yut3fJaOdavJyMl0m3gHYt5dlEw> <xmx:5TOaXO5pi2tSqO36IcBistF1Fx3-G_Kwgkqy8ba-KOOwwcqvhfAvmw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 3041B20578; Tue, 26 Mar 2019 10:15:01 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-328-g40d9e92-fmstable-20190325v1
Mime-Version: 1.0
X-Me-Personality: 56629417
Message-Id: <03718811-68f6-4136-8bd9-7a0ff4739f82@www.fastmail.com>
Date: Tue, 26 Mar 2019 10:15:00 -0400
From: "Bron Gondwana" <brong@fastmailteam.com>
To: jmap@ietf.org, extra@ietf.org
Content-Type: multipart/alternative; boundary=839af486de994a6a8d07659d187f7b74
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/uGGN-sHFJKrVaDM81gPIbSltmMI>
Subject: [Jmap] Friends of email dinner TONIGHT
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: Tue, 26 Mar 2019 14:15:07 -0000

--839af486de994a6a8d07659d187f7b74
Content-Type: text/plain

Hi all,

We're going to meet in the Lower Lobby of the Hilton at 6:50pm and then walk over to the venue for 7pm.

I have booked for 14 people. http://www.currytandoor.cz/en/ <http://www.currytandoor.cz/en/#contact>

See you tonight!

Cheers,

Bron.


--
 Bron Gondwana, CEO, FastMail Pty Ltd
 brong@fastmailteam.com


--839af486de994a6a8d07659d187f7b74
Content-Type: multipart/related;
 boundary=89b17303a78f4df6a8e78f49a0afca8a

--89b17303a78f4df6a8e78f49a0afca8a
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div style=3D"font-f=
amily:Arial;">Hi all,<br></div><div style=3D"font-family:Arial;"><br></d=
iv><div style=3D"font-family:Arial;">We're going to meet in the Lower Lo=
bby of the Hilton at 6:50pm and then walk over to the venue for 7pm.<br>=
</div><div style=3D"font-family:Arial;"><br></div><div style=3D"position=
: relative; margin: 1em 0px; text-align: center;" class=3D"align-center"=
><img src=3D"cid:15536095841060.02448674722031674@content.messagingengin=
e.com" style=3D"max-width: 100%; height: auto;"></div><div style=3D"font=
-family:Arial;">I have booked for 14 people.&nbsp; <a href=3D"http://www=
.currytandoor.cz/en/#contact">http://www.currytandoor.cz/en/</a><br></di=
v><div style=3D"font-family:Arial;"><br></div><div style=3D"font-family:=
Arial;">See you tonight!<br><br>Cheers,</div><div style=3D"font-family:A=
rial;"><br>Bron.<br></div><div style=3D"font-family:Arial;"><br></div><d=
iv style=3D"font-family:Arial;"><br></div><div id=3D"sig56629417"><div c=
lass=3D"signature">--<br></div><div class=3D"signature">&nbsp; Bron Gond=
wana, CEO, FastMail Pty Ltd<br></div><div class=3D"signature">&nbsp; bro=
ng@fastmailteam.com<br></div><div class=3D"signature"><br></div></div><d=
iv style=3D"font-family:Arial;"><br></div></body></html>
--89b17303a78f4df6a8e78f49a0afca8a
Content-Id: <15536095841060.02448674722031674@content.messagingengine.com>
Content-Disposition: inline;filename="image.png"
Content-Type: image/png; name="image.png"
Content-Transfer-Encoding: BASE64

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
rkJggg==

--89b17303a78f4df6a8e78f49a0afca8a--

--839af486de994a6a8d07659d187f7b74--


From nobody Tue Mar 26 08:45:42 2019
Return-Path: <neilj@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 C96FD12045B for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 08:45:38 -0700 (PDT)
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, HTML_MESSAGE=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=fastmailteam.com header.b=BfNVA75M; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=TrJIGJ2T
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 6Jt-0IaqkD7f for <jmap@ietfa.amsl.com>; Tue, 26 Mar 2019 08:45:36 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29A2B1204B7 for <jmap@ietf.org>; Tue, 26 Mar 2019 08:45:36 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 542C2221DC for <jmap@ietf.org>; Tue, 26 Mar 2019 11:45:34 -0400 (EDT)
Received: from imap7 ([10.202.2.57]) by compute6.internal (MEProxy); Tue, 26 Mar 2019 11:45:34 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:subject:content-type; s=fm2; bh=Ql7AfTJ tKdcWLQbuKR33dUYRKkjLb24z7ZiP+rsKnsY=; b=BfNVA75MAB0VRGpOBA/M5Us GeYRDKe3xzG2iUCechVnq78Yyijy1l/iU0luEls37w4M7yNjvtxcaXMNkDvBcIL2 SvYWPlnsL2AA28dLI//j7ddN3q54i0rLVyXKhYC5uRdFFE0nHLmPi0cmdzHz2HVe N+AAmLzBora+lrwxDUphFS717gL8rJmYJVs8+6L1tInOV0qVSxrF6yxg7lNI27sD bFX6VDWXA8cBUZq0wAie61Yj1UBc0Q8bPoRGvHLqh8YA+KtwkUbe36Dd2Od9/qnp sD0sH+44V0XewTJvbsw1/Qx8AC0Hvvx8Gtz0nG/4MBXz+5yJsQ7h8XNWSYDWNag= =
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=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=Ql7AfT JtKdcWLQbuKR33dUYRKkjLb24z7ZiP+rsKnsY=; b=TrJIGJ2TTR4AggGIlWDyZZ ERXh0Sq8hhQkLEAhsSw+w4Hz75DPtn48PGipm7Kcw+PX3stytLCFzXJbsuUfBjZa dz+Jfg0Ggy+RTyeyOC4xrBAytRVLEhyJh6R6ZGelA7gCT3BEltm2qvHhIp1GmThk SjrrrCDCUGupZ2xMCWK5/COqc04jCcRfmGf9KgeFVMT+zoWDLEwgehJjpW/Ey5yW +GOW7gzKeLcO+tdi4XZffm4nw6ecOJ4CxiAfNz1Sl2yD8egqnTod9Q7EqJlTr0Yq IXLx4lM3J5nrnKb4sfPZb8ROeefvMBCXOFmg3Cdps1ZOv10SdHquy0+7MZ9gAaLg ==
X-ME-Sender: <xms:HkmaXObNERJ2yVSuQntLRuyil6dGJlccwQSpbNQ7MkynmbD2riC9KA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedutddrkedtgdejkecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtsegrtderreerredtnecuhfhrohhmpedfpfgvihhl ucflvghnkhhinhhsfdcuoehnvghilhhjsehfrghsthhmrghilhhtvggrmhdrtghomheqne cuffhomhgrihhnpehivghtfhdrohhrghenucfrrghrrghmpehmrghilhhfrhhomhepnhgv ihhljhesfhgrshhtmhgrihhlthgvrghmrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd
X-ME-Proxy: <xmx:HkmaXFpEvpXZpImlqgXTc4jBMU1WpECCH3oYBBMBSTSDS6qfCSYhTQ> <xmx:HkmaXD_jDoQztaQ4AJJaz7oz7f4cGe1n0EfVq0hE2ID9hvO04S3-yw> <xmx:HkmaXE9llMl5WSNjwkugX95AGMIBN2tmwER0D0wFXq52zu4oJaR4fg> <xmx:HkmaXLx7TZxK7m0VURs6kR-sEki62mFFQomxkmMRNavnwRr2jGysuA>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id E46C920578; Tue, 26 Mar 2019 11:45:33 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-328-g40d9e92-fmstable-20190325v1
Mime-Version: 1.0
X-Me-Personality: 64588216
Message-Id: <f617025e-07aa-4f7c-84e0-1a371865c13f@beta.fastmail.com>
In-Reply-To: <ee23f3f2-7be3-475b-9839-7785fe92f985@www.fastmail.com>
References: <ee23f3f2-7be3-475b-9839-7785fe92f985@www.fastmail.com>
Date: Tue, 26 Mar 2019 11:45:33 -0400
From: "Neil Jenkins" <neilj@fastmailteam.com>
To: "IETF JMAP Mailing List" <jmap@ietf.org>
Content-Type: multipart/alternative; boundary=6eec3972a00d49bba6e72b07466c97d6
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/IcYJmGcibYx19bGMYOE52iG5YyQ>
Subject: Re: [Jmap] Call for adoption of JMAP calendars - reply by April 15
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: Tue, 26 Mar 2019 15:45:39 -0000

--6eec3972a00d49bba6e72b07466c97d6
Content-Type: text/plain

I have posted an IETF-format draft of the initial spec: https://tools.ietf.org/html/draft-jenkins-jmapcalendars-01.

Work still required includes:
 * Deciding if the client should be able to ask the server to expand recurrences (probably yes), and what this looks like.
 * Defining scheduling (when to send iMIP messages) in more detail, and probably making this an explicit API method rather than implicit reaction to event changes.
 * Deciding whether to allow events to exist in multiple calendars at the same time (like labels vs folders in mail).
 * Moving calendar permissions into a `myRights` property to match JMAP Mail.
Neil.
--6eec3972a00d49bba6e72b07466c97d6
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">#fast=
mail-quoted p.fastmail-quoted-MsoNormal,#fastmail-quoted  p.fastmail-quo=
ted-MsoNoSpacing{margin-top:0px;margin-right:0px;margin-bottom:0px;margi=
n-left:0px;}

p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>I have pos=
ted an IETF-format draft of the initial spec:&nbsp;<a href=3D"https://to=
ols.ietf.org/html/draft-jenkins-jmapcalendars-01">https://tools.ietf.org=
/html/draft-jenkins-jmapcalendars-01</a>.<br></div><div><br></div><div>W=
ork still required includes:<br></div><ul><li>Deciding if the client sho=
uld be able to ask the server to expand recurrences (probably yes), and =
what this looks like.<br></li><li>Defining scheduling (when to send iMIP=
 messages) in more detail, and probably making this an explicit API meth=
od rather than implicit reaction to event changes.<br></li><li>Deciding =
whether to allow events to exist in multiple calendars at the same time =
(like labels vs folders in mail).</li><li>Moving calendar permissions in=
to a <code style=3D"border-radius:3px;border:1px solid #ccc;padding:1px =
3px;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90=
%;">myRights</code> property to match JMAP Mail.<br></li></ul><div>Neil.=
<br></div></body></html>
--6eec3972a00d49bba6e72b07466c97d6--


From nobody Fri Mar 29 08:11:58 2019
Return-Path: <ietf-secretariat-reply@ietf.org>
X-Original-To: jmap@ietf.org
Delivered-To: jmap@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 73595120233 for <jmap@ietf.org>; Fri, 29 Mar 2019 08:11:55 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
To: <jmap@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 6.94.1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <155387231546.25024.6427215760685847265.idtracker@ietfa.amsl.com>
Date: Fri, 29 Mar 2019 08:11:55 -0700
From: IETF Secretariat <ietf-secretariat-reply@ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/XAfdbEEDPO1RSLgFLVp_6c8j204>
Subject: [Jmap] Milestones changed for jmap WG
X-BeenThere: jmap@ietf.org
X-Mailman-Version: 2.1.29
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, 29 Mar 2019 15:11:56 -0000

Changed milestone "Submit JMAP over websockets document to the IESG", set
state to active from review, accepting new milestone.

Changed milestone "Submit Message Delivery Notification document to the
IESG", set description to "Submit Message Disposition Notification document
to the IESG".

URL: https://datatracker.ietf.org/wg/jmap/about/

