Re: [Extra] I-D Action: draft-ietf-extra-sieve-special-use-01.txt

"Chris Newman" <chris.newman@oracle.com> Thu, 19 July 2018 22:47 UTC

Return-Path: <chris.newman@oracle.com>
X-Original-To: extra@ietfa.amsl.com
Delivered-To: extra@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3AF5C130E59 for <extra@ietfa.amsl.com>; Thu, 19 Jul 2018 15:47:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.311
X-Spam-Level:
X-Spam-Status: No, score=-4.311 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_MED=-2.3, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 KEqVoBnkuhZ8 for <extra@ietfa.amsl.com>; Thu, 19 Jul 2018 15:47:56 -0700 (PDT)
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 9C0BF130DD2 for <extra@ietf.org>; Thu, 19 Jul 2018 15:47:56 -0700 (PDT)
Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w6JMi8ar039349; Thu, 19 Jul 2018 22:47:49 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=/p4rZKF4TxpEx+ZTQyjUBM+48bnhiLw4Z60nQ1LEw0w=; b=eCzBFIylxvOtxUcUcTfJFHBsl++wThEEN5Kh+CQeRlJkuCpzF3n2TLoF//DOzZjNfnl7 iXLaqdCh56Ic2ba7LG8fgZmJH1gfqfhYUPeCWAN67M4UW0j3uXMKYB5k4+zUuNz26rIB FqzAh77LFyuJ4pIF3AqX0FKLcmBlv2gmFMXpZMvTgmITwQRfdbfjAxpMAxwQKla2DPSc rHyH0WaPamNi6Gth3ozLQbfmXjPVdKLnoVheIG9Ab+zBnFJH3iWanQfdB5yqydCa7CLd U6BXabwlPw1PiZIDTuE48hVZUQBdXJSiGYBPOURBZpPy1LxliNnGvRDgP9IR+Ltl5tAH Vw==
Received: from userv0022.oracle.com (userv0022.oracle.com [156.151.31.74]) by userp2130.oracle.com with ESMTP id 2k9ykc94m2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 19 Jul 2018 22:47:48 +0000
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w6JMlmeO004981 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 19 Jul 2018 22:47:48 GMT
Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w6JMlhZ0009650; Thu, 19 Jul 2018 22:47:44 GMT
Received: from [31.133.140.238] (/31.133.140.238) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 19 Jul 2018 15:47:43 -0700
From: Chris Newman <chris.newman@oracle.com>
To: Ned Freed <ned.freed@mrochek.com>
Cc: Stephan Bosch <stephan.bosch@dovecot.fi>, extra@ietf.org, Bron Gondwana <brong@fastmailteam.com>
Date: Thu, 19 Jul 2018 18:47:41 -0400
X-Mailer: MailMate (1.11.3r5509)
Message-ID: <CF99C6E6-B755-469B-B25A-5929B08338DC@oracle.com>
In-Reply-To: <01QV1PSEOL14000051@mauve.mrochek.com>
References: <151533655607.10858.793231788332492256@ietfa.amsl.com> <ce56fc8f-366a-8e1e-2f00-1ed22da28d15@dovecot.fi> <01QNLYA7BLVQ000051@mauve.mrochek.com> <83ddcadc-b756-91c1-3664-81955cd8f0d8@dovecot.fi> <01QTO3THVZ5I00AI1F@mauve.mrochek.com> <53350c64-d021-7f17-86b8-f1b118791cf5@dovecot.fi> <01QV1PSEOL14000051@mauve.mrochek.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8959 signatures=668706
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1806210000 definitions=main-1807190237
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/M8n2caCwM2wucR0KxnadiRF1aeI>
Subject: Re: [Extra] I-D Action: draft-ietf-extra-sieve-special-use-01.txt
X-BeenThere: extra@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Email mailstore and eXtensions To Revise or Amend <extra.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/extra>, <mailto:extra-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/extra/>
List-Post: <mailto:extra@ietf.org>
List-Help: <mailto:extra-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/extra>, <mailto:extra-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Jul 2018 22:48:00 -0000

On 19 Jul 2018, at 9:40, Ned Freed wrote:

>> > In the next step:
>> >
>> >    Subsequently, when no particular mailbox is of interest (i.e., 
>> the
>> >    "specialuse_exists" test has no mailbox argument), the client 
>> lists
>> >    all mailboxes with special-use flags in the two returned 
>> personal
>> >    namespaces:
>> >
>> >    C: A02 LIST (SPECIAL-USE) "" ("INBOX/*" "Archive/*") RETURN
>> > (SPECIAL-USE)
>> >    S: * LIST (\Drafts) "/" INBOX/Drafts
>> >    S: * LIST (\Trash) "/" INBOX/Trash
>> >    S: * LIST (\Sent) "/" INBOX/Sent
>> >    S: * LIST (\Archive) "/" Archive/Default
>> >
>> > It should be noted that this depends on extended list being 
>> available.
>
>> True. I thought LIST-EXTENDED is pretty much required for 
>> SPECIAL-USE,
>> but the specification doesn't actually mention anything like that. Is
>> there another way to obtain information on which mailboxes have a
>> particular special-use flag assigned?
>
> Yes, according to RFC 6154 section 2 special use attributes MAY appear 
> in
> non-extended LIST responses. There's an example of this in section 
> 5.1.
>
> However, the fact that this is a MAY makes it effectively useless 
> since you
> can't tell the difference between a case where there are no special 
> use
> attributes assigned and one where the server has simply elected not to 
> include
> these attributes in its responses. And it's expected that the 
> overwhelming
> majority of mailboxes won't have any special use assigned.
>
> In fact I'd go so far to say that this is a design error. It's one 
> thing
> to want to support existing implementations of special use attributes, 
> it's
> another to be so permissive that a compliant implementation - one that
> supports SPECIAL-USE but not LIST-EXTENDED - can have no way to 
> determine
> what the special use mailboxes are actually present.

I believe that's an incorrect interpretation of the spec. RFC 6154 
states:

    ...  If the client specifies the "SPECIAL-USE" selection option,
    the LIST command MUST return only those mailboxes that have a
    special-use attribute set.  If the client specifies the 
"SPECIAL-USE"
    return option, the LIST command MUST return the new special-use
    attributes on those mailboxes that have them set. ...

This spec applies to all servers that advertise SPECIAL-USE. Those two 
MUST clauses do not have an exception for servers that do not advertise 
LIST-EXTENDED. The example in section 5.2 supports this interpretation, 
since it does not include LIST-EXTENDED in the capabilities response.

Contrast that with section 4:

    If a server supports this extension and the METADATA extension
    [RFC5464], it SHOULD tie the special-use attributes for a mailbox to
    its metadata entry "/private/specialuse".

where there's an explicit exception to the SHOULD for servers that do 
not implement METADATA due to the "if" clause.

If I recall correctly, the difference in normative language between 
these two sections was deliberate.

		- Chris

> All that said, all I was asking for here was a note saying this 
> depended on
> LIST-EXTENDED. Nothing more. (Personally, I don't intend to even 
> bother to
> check if it's supported.)
>
>> > However, I think use of SELECT for this purpose is problematic: 
>> It's
>> > potentially expensive and worse, may cause undesireable state 
>> changes.
>> > Why
>> > not use the MYRIGHTS command to obtain the access rights (and check
>> > for "p" or
>> > "i") without having to select the mailbox?
>
>> Sure, if the ACL capability is available. I can mention that. If it 
>> is
>> not available, there is really no alternative to using SELECT, right?
>
> Not as far as I know. But again, the problem is that SELECTing a 
> mailbox
> on behalf of a user can change its state, with all that implies. I'd 
> rather
> have my implementation fail if ACL isn't present than have a sieve 
> operation
> cause a state change.
>> > All of which is roundabout way of saying I now think that we may 
>> want a
>> > capability for specialuse_exists that's separate from
>> > "special-use"/:specialuse. Or better still, since we already have 
>> the
>> > "mailbox"
>> > capability for "mailbox access stuff", I think we should require 
>> the
>> > presence
>> > of both "mailbox" and "special-use" capabilities in order to use
>> > specialuse_exists.
>
>> Can you clarify this point? I don't see how this leads to requiring 
>> the
>> mailbox extension.
>
> It doesn't unless we want it to, and I think we want it to. We have 
> this
> collection of stuff collected under the mailbox extension that lets 
> sieve peek
> at the state of the mailbox. And here we have an extension that 
> consists of two
> parts: One extending fileinto and the other adding to things you can 
> peek at.
>
>> From an MTA implementation perspective, these are very distinct 
>> things, and
> the latter shares a ton of code with the mailbox extension. It 
> therefore
> makes sense to me to separate the two and link it to the mailbox 
> extension.
>
> It's really no different than the way SPECIAL-USE and LIST-EXTENDED
> interact on the IMAP side of things: Both have to be present for the
> RETURN (SPECIAL-USE) stuff to work.
>
> 				Ned
>
> _______________________________________________
> Extra mailing list
> Extra@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_extra&d=DwIGaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=K_BObr5Kfkr3rxt1oBPF9KFiEU3xl9LcD2OOJG3TXfI&m=fqjptcmWVzu3waxuhECJKbXvzfSuBPDLN9t7KQMtjW8&s=G51gQpE9MxifdONliqnLO9agM4akhpX0R2j_SbJQvi8&e=