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

Ned Freed <ned.freed@mrochek.com> Thu, 19 July 2018 14:10 UTC

Return-Path: <ned.freed@mrochek.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 E0416131091 for <extra@ietfa.amsl.com>; Thu, 19 Jul 2018 07:10:02 -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=mrochek.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 PdOTmNBBuY_L for <extra@ietfa.amsl.com>; Thu, 19 Jul 2018 07:10:00 -0700 (PDT)
Received: from mauve.mrochek.com (mauve.mrochek.com [68.183.62.69]) (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 7DA95130F0D for <extra@ietf.org>; Thu, 19 Jul 2018 07:10:00 -0700 (PDT)
Received: from dkim-sign.mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01QV1PSHGBBK004LSF@mauve.mrochek.com> for extra@ietf.org; Thu, 19 Jul 2018 07:04:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mrochek.com; s=201712; t=1532009096; bh=+wC98VyK9NUAhNujPcIARVr9Ac4jxBC7a/yrlVY+ykk=; h=Cc:Date:From:Subject:In-reply-to:References:To:From; b=bMicz3wLp4kPYL3W5CboxPPLXoT6157cdFpoDni0gPUJh+za298gHLXl8EN8PlxQ0 bY03xWmzCnjp1cVHjQI51Psv2X5K/aS1QC4y9WGDwo3oNSywqS3khYaN0JkoXxnNkg YpnCvLTjZyv0J4kfivhBYrtdM97qd3mBpSW9hzWs=
MIME-version: 1.0
Content-transfer-encoding: 8bit
Content-type: TEXT/PLAIN; charset="utf-8"; format="flowed"
Received: from mauve.mrochek.com by mauve.mrochek.com (PMDF V6.1-1 #35243) id <01QUCIBNY1B4000051@mauve.mrochek.com>; Thu, 19 Jul 2018 07:04:54 -0700 (PDT)
Cc: Ned Freed <ned.freed@mrochek.com>, extra@ietf.org, Bron Gondwana <brong@fastmailteam.com>
Message-id: <01QV1PSEOL14000051@mauve.mrochek.com>
Date: Thu, 19 Jul 2018 06:40:25 -0700
From: Ned Freed <ned.freed@mrochek.com>
In-reply-to: "Your message dated Wed, 18 Jul 2018 22:58:09 +0200" <53350c64-d021-7f17-86b8-f1b118791cf5@dovecot.fi>
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>
To: Stephan Bosch <stephan.bosch@dovecot.fi>
Archived-At: <https://mailarchive.ietf.org/arch/msg/extra/kyRCCH9_reAA37TgK_QgSvj82vk>
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 14:10:12 -0000

> > 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.

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