Re: [Jmap] I-D Action: draft-ietf-jmap-quotas-00.txt

Benoît TELLIER <btellier@linagora.com> Tue, 29 October 2019 07:42 UTC

Return-Path: <btellier@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 91CF51200BA for <jmap@ietfa.amsl.com>; Tue, 29 Oct 2019 00:42:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.521
X-Spam-Level:
X-Spam-Status: No, score=-1.521 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, HTML_MIME_NO_HTML_TAG=0.377, MIME_HTML_ONLY=0.1, SPF_HELO_NONE=0.001, 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=linagora.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 KVc6NVTN-645 for <jmap@ietfa.amsl.com>; Tue, 29 Oct 2019 00:42:32 -0700 (PDT)
Received: from outgoing.linagora.com (outgoing.linagora.com [51.75.198.246]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 850D212007C for <jmap@ietf.org>; Tue, 29 Oct 2019 00:42:32 -0700 (PDT)
Received: from linagora.com (unknown [10.233.69.202]) by outgoing.linagora.com (Postfix) with ESMTP id 4903C3B for <jmap@ietf.org>; Tue, 29 Oct 2019 07:42:30 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linagora.com; s=s20181122; t=1572334950; bh=WDglFLM6sZsg4Vhkzp9B0L1+qPUk83+9ljzVWmK5am8=; h=From:Reply-To:To:Subject:Date:References:From; b=qFCbc9C3fq4swgg4yuXTM7+z2B6FXtwEh4bv0AzLSojVL1675V69TmZp5tws5drA2 GZATfsP7jNBdMue+pXZdwwLbNXpVjzLJc5cfbffq05tR6Eeg8U5YyszzzykE0jJiK9 nbGKaYAqcXlQatZXSWyIjS8UMIXU83ejqvjBIV2GEMx4Tq0fjg8JlRRvbIiA+Pivzd zd8QfjgGqtGp+47p0KT8ypbWQWY2TxFrew/rR6Z69mjI4pzCV2JVv66uawwaY4bX4n eKyaLylVaLZeXh4kf20Km9XvmkGdHfVA+N/nybbp9xIl7L/ZlpqdNeSWvcMPhrp7dW aR5OX6LOwS5qA==
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
From: Benoît TELLIER <btellier@linagora.com>
Sender: Benoît TELLIER <btellier@linagora.com>
Reply-To: btellier@linagora.com
To: IETF JMAP Mailing List <jmap@ietf.org>
Message-ID: <Mime4j.bf.32177c9e676deb17.16e16773b2c@linagora.com>
Date: Tue, 29 Oct 2019 07:42:22 +0000
References: <156984226896.429.13366509735221679840@ietfa.amsl.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/jmap/fFS35M8z1Uk5UnZQ6pWQKsADuNU>
Subject: Re: [Jmap] I-D Action: draft-ietf-jmap-quotas-00.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: Tue, 29 Oct 2019 07:42:35 -0000

Hi Neil,

Le 29 octobre 2019 12:20, de neilj@fastmailteam.com

Some feedback on this draft:

  • It's mail-specific at the moment, but could probably be made pretty generic, which I think would be more useful. e.g. Instead of "mesageCount" and "mesageStorageSize" we'd just have "size" or "count" as the types of quota, which could apply to any object type. Then you have another property on the Quota object that lists the data type(s) it applies to.


+1

  • I'm a bit unclear on how "usedScope" and "limitScope" could be different and what this would mean in practice (and if this is actually done in the real world).


For instance imagine that I define that users of my email server will not store more than 2 GB of data

Bobs stores 1 GB of mail in his mailboxes thus have a 50% size quota. The upper bound is the generic limit user on this mailserver has. (limitSope is "global" , usedScope "personal")

Alice asked for a 10 GB quota upper bound, specififc to her. Given that she has 1 GB email, she has 10% size quota (limitSope is "personal" , usedScope "personal")

Imagine now that a mail provider proposes cold storage for achived mailbox.  It could be interesting to expose two quota on an account: (limitSope: personal , usedScope :personal) & (limitSope: personal/archive , usedScope :personal/archive) (JMAP custom vendor extension)
 - The client supporting the extension will be able to correctly contextualize both quota, and display correct explanation in a UI
 - The not aware client will  be able to recognise "the default quota" that applies for the account, and will be able to explein that another quota applies, though the exact definition of it is unknown.

Another example where it could be useful is if I have a cloud provider email subscription for a enterprise. We can imagine offers like "1TB company wide, define user quota as you wish".

As far as I understand it, IMAP quota RFC limit itself to expressing the limitation. There is no explanation of the "why" behind it despite potentially complex combination possibilities. I have no idea if this is a problem, and thus if it should be addressed though.


  • I'm not sure I see the purpose of the "quotaIds" property addition to the Mailbox object. I feel it would be cleaner not to add this (but add a property to the Quota object to indicate a subscope if it only applies to a subset of the objects of that type in the account).


Why would it be cleaner?

From a client perspective, I can back reference the quotaIds after a mailboxes/get call, which is easy to implement.

While if I have a quota that lists entities it applies to I got a quota object change every time a new entity aplies this quota. Is this desirable or useful?


Cheers,
Neil.


Cheers,

Benoit