[imapext] MOVE - A few late comments

Zoltan Ordogh <zordogh@rim.com> Tue, 25 September 2012 19:22 UTC

Return-Path: <prvs=5615cf4909=zordogh@rim.com>
X-Original-To: imapext@ietfa.amsl.com
Delivered-To: imapext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3721B21F8870 for <imapext@ietfa.amsl.com>; Tue, 25 Sep 2012 12:22:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.202
X-Spam-Level:
X-Spam-Status: No, score=-5.202 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=1.396, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 56L0AQuxKF5E for <imapext@ietfa.amsl.com>; Tue, 25 Sep 2012 12:21:47 -0700 (PDT)
Received: from mhs060cnc.rim.net (mhs060cnc.rim.net [208.65.73.34]) by ietfa.amsl.com (Postfix) with ESMTP id B651221F84E6 for <imapext@ietf.org>; Tue, 25 Sep 2012 12:21:46 -0700 (PDT)
X-AuditID: 0a41282f-b7f196d0000008dc-b0-506204490867
Received: from XCT105CNC.rim.net (xct105cnc.rim.net [10.65.161.205]) by mhs060cnc.rim.net (SBG) with SMTP id C4.49.02268.94402605; Tue, 25 Sep 2012 14:21:45 -0500 (CDT)
Received: from XCT109CNC.rim.net (10.65.161.209) by XCT105CNC.rim.net (10.65.161.205) with Microsoft SMTP Server (TLS) id 14.2.298.4; Tue, 25 Sep 2012 15:21:44 -0400
Received: from XMB163CNC.rim.net ([fe80::5805:6acc:b23a:e0a6]) by XCT109CNC.rim.net ([::1]) with mapi id 14.02.0318.001; Tue, 25 Sep 2012 15:21:44 -0400
From: Zoltan Ordogh <zordogh@rim.com>
To: "imapext@ietf.org" <imapext@ietf.org>
Thread-Topic: MOVE - A few late comments
Thread-Index: Ac2bUv89gx2B1v8/TlWM3MMXzdiZvA==
Date: Tue, 25 Sep 2012 19:21:44 +0000
Message-ID: <1DE983233DBBEB4A81F18FABD8208D762312F4F7@XMB163CNC.rim.net>
Accept-Language: en-US, en-CA
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.65.160.245]
Content-Type: multipart/alternative; boundary="_000_1DE983233DBBEB4A81F18FABD8208D762312F4F7XMB163CNCrimnet_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCKsWRmVeSWpSXmKPExsXC5bjwrK4nS1KAwfqp/BaPZ3E5MHosWfKT KYAxqoHRJimxpCw4Mz1P384mMS8vvySxJFUhJbU42VbJJzU9MUchoCizLDG5UsElszg5JzEz N7VISSEzxVbJREmhICcxOTU3Na/EVimxoCA1L0XJjksBA9gAlWXmKaTmJeenZOal2yp5Bvvr WliYWuoaKtnpJnTyZLxa385eMHUtY8XCtZUNjH8mMXYxcnJICJhIfDz8iR3CFpO4cG89Wxcj F4eQwCpGib8TjjNCOCsZJab0nYLKzGGUuPH3MEsXIwcHm4CqxJyrsSDdIgKaEtc232ECsYUF lCW+Xr7CAhHXkHj/fw47hK0n0bSzGyzOAtT67/VTZhCbV8BD4svUyWC9jAKyEmvnrGQFsZkF xCVuPZnPBHGdgMSSPeeZIWxRiZeP/7FC2IoSq1/dYoOoz5f4+fAaC8RMQYmTM5+A2UICMhLP p1xin8AoMgvJ2FlIWmYhaYGI60gs2P2JDcLWlli28DUzjH3mwGMmZPEFjOyrGAVzM4oNzAyS 85L1ijJz9fJSSzYxgpOFhv4OxrfvLQ4xCnAwKvHwunxJDBBiTSwrrsw9xCjBwawkwmv8HCjE m5JYWZValB9fVJqTWnyI0RUYQhOZpbiT84GJLK8k3tjAADdHSZz31zmgIQLpwISVnZpakFoE M4eJgxNkD5eUSDEw7aQWJZaWZMSDkmN8MTA9SjUwprUdqdjRG97wlH+6enbu8aXa51hbNpmv XlkX6PqyYPey7W7h29KPsb1oquPY4RP73PfVBAa5JYnlvdd1vhvdfX/209RP7hEz15hPdtG9 Y6Jx62nGd4adMR9Wq8/8eO2S7Ean7WW1nqn50w1sPFeWaZlvrZs4T0Ts99ILc152+t9ZtCz/ 3D7Ok0osxRmJhlrMRcWJANSf/nNXAwAA
Subject: [imapext] MOVE - A few late comments
X-BeenThere: imapext@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Discussion of IMAP extensions <imapext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/imapext>, <mailto:imapext-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/imapext>
List-Post: <mailto:imapext@ietf.org>
List-Help: <mailto:imapext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/imapext>, <mailto:imapext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Sep 2012 19:22:01 -0000

Hi all,
I might be a little late, I'll send it for your consideration anyway.
Comments are prompt as I have to type it up quickly; let me know if it's not verbose enough.

General:
There are a good deal of abbreviations that are not spelled out on their first use (nor later on in the document).


Section 1: "Formal syntax is defined by [RFC5234<http://tools.ietf.org/html/rfc5234>]."

I guess what you mean to say is that the formal syntax is defined using the ABNF notation defined in RFC5234.


Section 2: "This document defines an IMAP extension to move messages from one mailbox to another."

This document defines new IMAP commands to move messages?


Section 2: "This function (very common in MUA UIs) is not provided by stock IMAP ..."

What is "stock imap"? One particular spec/product?


Section 2: "and cope with partial failures and side effects"
What side effects? If you have a reference that discusses those, add it. If you don't, remove it.


Section 3: "each message SHOULD either be moved or unaffected"

I'd say MUST; there's no third option.



Section 3: "The server SHOULD NOT leave a message in neither or both mailboxes afterwards"

I'd say MUST NOT; leave no room for fuzzy state.



Section 3:

"   UID MOVE is the same as the three-command sequence in all other

   respects, which implies that extensions which affect the three-

   command sequence also affect UID MOVE, and that response codes such

   as COPYUID, TRYCREATE and so on should be sent as appropriate."

Isn't there a less complicated way of saying this? For example:

Since the UID MOVE command consist of three individual commands (COPY, STORE, EXPUGE), it also triggers execution of the extensions (if any) to these commands on the server-side. Consequently, the UID MOVE command returns response codes of each command the their extensions (i.e. COPYUID, TRYCREATE, etc.).



Section 3:

"Implementers will need to read [RFC4315<http://tools.ietf.org/html/rfc4315>] to understand what UID

   EXPUNGE does. Implementing [RFC4315<http://tools.ietf.org/html/rfc4315>] is not necessary."

That sounds very awkward. Does it really make UIDPLUS a normative reference?



Section 3:

"   Note that moving messages to the current mailbox is well-defined, so

   that MOVE is defined for all the cases where the COPY/STORE/EXPUNGE

   sequence is."

This is not good enough, especially when ACLs are in use.

Considering RFC4314 permissions:

-    COPY requires that I have 'r' right at the source and 'i' right at the destination.

-    STORE requires that I have 't' right at the source.

-    EXPUNGE requires that I have 'e' right at the source.

Consequently, I must have 'i' at the destination and 'r'+'t'+'e' at the source.



Section 3:

"   The MOVE command performs the same actions UID MOVE. Notably, the

   server may send EXPUNGE (or VANISHED) messages before the tagged

   response, so the client cannot safely send more commands with MSN

   arguments while the server is processing MOVE."

All right, but does it trigger extensions the same way UID MOVE does?

Some extensions do not operate with UIDs.

Also, a server implementation could translate MSNs to UIDs during execution - which would trigger extensions hooked onto UID, too (even though MSNs were used in the request). I.e. If UIDPLUS were to fire when MSNs were used in the MOVE command, would that break the client?

Any thoughts?



Section 4.

This is a nice idea, but not quite future-proof.

Were all extensions (at least those that are found in RFCs) enumerated to date?



Section 4.2:

"it requires the same ACL rights as the union of those three commands"

The union of three commands is a command-triplet, not access rights.

I think what you want to say is that the UID MOVE requires that all permissions that those three commands require if executed one-by-one.

What about the MSN MOVE command? (this is clearly missing from this section)



Section 5:

"[RFC3501<http://tools.ietf.org/html/rfc3501>] defines the non-terminals "capability", "command", "set" and "mailbox"."

You might want to change "command" to "command-select" (or, add command-select).



Section 5:

"     capability     =/ "MOVE"

      command-select =/ ["UID "] "MOVE" SP set SP mailbox"

RFC3501 does not define "set". Do you mean sequence-set? That's not good for UIDs.

I guess a new non-terminal to represent a message reference is in order?

Any thoughts on this?

   reference           = reference-type SP reference-value

   reference-type      = "UID" / "SEQ" / "URLAUTH" / reference-type-ext

   reference-type-ext  = atom

                         ; It is not required that new reference types

                         ; begin with "X-", see [XDASH]

   reference-value     = uniqueid / \         ; see [IMAP]

                         sequence-set / \     ; see [IMAP]

                         authorized-url / \   ; see [URLAUTH]

                         reference-value-ext

   authorized-url      = authimapurlfull / \  ; see [URLAUTH]

                         authimapurlrump      ; see [URLAUTH]

   reference-value-ext = atom

                         ; New reference values MUST correspond to

                         ; reference-type-ext



Section 6:

"   This document is believed to add no security problems."

Provided that the server does verify that all required permissions are in place.



Section 6:

"Problems with these algorithms can lead to mail loss."

You mean bad implementations of good algorithms, or just badly designed algorithms, right?



Section 9:

I'd think RFC4315 is not a normative reference; after all, one can always go with MSNs.

I guess it depends on how the MSN to UID translation turns out.



Thank you for considering.



---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful.