draft-ietf-extra-quota-06.txt | draft-ietf-extra-quota-07.txt | |||
---|---|---|---|---|
Network Working Group A. Melnikov | Network Working Group A. Melnikov | |||
Internet-Draft Isode | Internet-Draft Isode | |||
Obsoletes: 2087 (if approved) 27 August 2021 | Obsoletes: 2087 (if approved) 24 September 2021 | |||
Intended status: Standards Track | Intended status: Standards Track | |||
Expires: 28 February 2022 | Expires: 28 March 2022 | |||
IMAP QUOTA Extension | IMAP QUOTA Extension | |||
draft-ietf-extra-quota-06 | draft-ietf-extra-quota-07 | |||
Abstract | Abstract | |||
The QUOTA extension of the Internet Message Access Protocol (RFC | The QUOTA extension of the Internet Message Access Protocol (RFC | |||
3501/RFC 9051) permits administrative limits on resource usage | 3501/RFC 9051) permits administrative limits on resource usage | |||
(quotas) to be manipulated through the IMAP protocol. | (quotas) to be manipulated through the IMAP protocol. | |||
This document obsoletes RFC 2087, but attempts to remain backwards | This document obsoletes RFC 2087, but attempts to remain backwards | |||
compatible whenever possible. | compatible whenever possible. | |||
skipping to change at page 1, line 36 ¶ | skipping to change at page 1, line 36 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 28 February 2022. | This Internet-Draft will expire on 28 March 2022. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 2, line 52 ¶ | skipping to change at page 2, line 52 ¶ | |||
4.2.1. QUOTA . . . . . . . . . . . . . . . . . . . . . . . . 9 | 4.2.1. QUOTA . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.2.2. QUOTAROOT . . . . . . . . . . . . . . . . . . . . . . 10 | 4.2.2. QUOTAROOT . . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.3. Response Codes . . . . . . . . . . . . . . . . . . . . . 10 | 4.3. Response Codes . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.3.1. OVERQUOTA . . . . . . . . . . . . . . . . . . . . . . 10 | 4.3.1. OVERQUOTA . . . . . . . . . . . . . . . . . . . . . . 10 | |||
5. Resource Type Definitions . . . . . . . . . . . . . . . . . . 12 | 5. Resource Type Definitions . . . . . . . . . . . . . . . . . . 12 | |||
5.1. STORAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.1. STORAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.2. MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.2. MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
5.3. MAILBOX . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 5.3. MAILBOX . . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
5.4. ANNOTATION-STORAGE . . . . . . . . . . . . . . . . . . . 13 | 5.4. ANNOTATION-STORAGE . . . . . . . . . . . . . . . . . . . 13 | |||
6. Interaction with IMAP ACL extension (RFC 4314) . . . . . . . 13 | 6. Interaction with IMAP ACL extension (RFC 4314) . . . . . . . 13 | |||
7. Formal syntax . . . . . . . . . . . . . . . . . . . . . . . . 13 | 7. Formal syntax . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 16 | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
9.1. Changes/additions to the IMAP4 capabilities registry . . 16 | 9.1. Changes/additions to the IMAP4 capabilities registry . . 16 | |||
9.2. IMAP quota resource type registry . . . . . . . . . . . . 16 | 9.2. IMAP quota resource type registry . . . . . . . . . . . . 17 | |||
9.3. Registrations of IMAP Quota Resource Types . . . . . . . 17 | 9.3. Registrations of IMAP Quota Resource Types . . . . . . . 17 | |||
10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 18 | 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 | 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
12. Changes since RFC 2087 . . . . . . . . . . . . . . . . . . . 19 | 12. Changes since RFC 2087 . . . . . . . . . . . . . . . . . . . 19 | |||
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
13.1. Normative References . . . . . . . . . . . . . . . . . . 19 | 13.1. Normative References . . . . . . . . . . . . . . . . . . 19 | |||
13.2. Informative References . . . . . . . . . . . . . . . . . 20 | 13.2. Informative References . . . . . . . . . . . . . . . . . 20 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
1. Document Conventions | 1. Document Conventions | |||
In protocol examples, this document uses a prefix of "C: " to denote | In protocol examples, this document uses a prefix of "C: " to denote | |||
lines sent by the client to the server, and "S: " for lines sent by | lines sent by the client to the server, and "S: " for lines sent by | |||
skipping to change at page 3, line 42 ¶ | skipping to change at page 3, line 42 ¶ | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
Other capitalised words are IMAP keywords [RFC3501][RFC9051] or | Other capitalised words are IMAP keywords [RFC3501][RFC9051] or | |||
keywords from this document. | keywords from this document. | |||
2. Introduction and Overview | 2. Introduction and Overview | |||
This document defines a couple of extension to the Internet Message | This document defines a couple of extensions to the Internet Message | |||
Access Protocol [RFC3501] for querying and manipulating | Access Protocol [RFC3501] for querying and manipulating | |||
administrative limits on resource usage (quotas). This extension is | administrative limits on resource usage (quotas). This extension is | |||
compatible with both IMAP4rev1 [RFC3501] and IMAP4rev2 [RFC9051]. | compatible with both IMAP4rev1 [RFC3501] and IMAP4rev2 [RFC9051]. | |||
The capability "QUOTA", denotes a RFC2087 [RFC2087] compliant server. | The capability "QUOTA", denotes a RFC2087 [RFC2087] compliant server. | |||
Some responses and response codes defined in this document are not | Some responses and response codes defined in this document are not | |||
present in such servers (see Section 12 for more details), and | present in such servers (see Section 12 for more details), and | |||
clients MUST NOT rely on their presence in the absence of any | clients MUST NOT rely on their presence in the absence of any | |||
capability beginning with "QUOTA=". | capability beginning with "QUOTA=". | |||
skipping to change at page 12, line 10 ¶ | skipping to change at page 12, line 10 ¶ | |||
Example 3: C: A003 COPY 2:4 MEETING | Example 3: C: A003 COPY 2:4 MEETING | |||
S: * NO [OVERQUOTA] Soft quota has been exceeded | S: * NO [OVERQUOTA] Soft quota has been exceeded | |||
S: A003 OK [COPYUID 38505 304,319:320 3956:3958] COPY | S: A003 OK [COPYUID 38505 304,319:320 3956:3958] COPY | |||
command completed | command completed | |||
5. Resource Type Definitions | 5. Resource Type Definitions | |||
The following resource types are defined in this memo. A server | The following resource types are defined in this memo. A server | |||
supporting a resource type MUST advertise this as a CAPABILITY with a | supporting a resource type MUST advertise this as a CAPABILITY with a | |||
name consisting of the resource name prefixed by "QUOTA=RES-". A | name consisting of the resource name prefixed by "QUOTA=RES-". A | |||
server MAY support mupltiple resource types, and MUST advertise all | server MAY support multiple resource types, and MUST advertise all | |||
resource types it supports. | resource types it supports. | |||
5.1. STORAGE | 5.1. STORAGE | |||
The physical space estimate, in units of 1024 octets, of the | The physical space estimate, in units of 1024 octets, of the | |||
mailboxes governed by the quota root. This MAY not be the same as | mailboxes governed by the quota root. This MAY not be the same as | |||
the sum of the RFC822.SIZE of the messages. Some implementations MAY | the sum of the RFC822.SIZE of the messages. Some implementations MAY | |||
include metadata sizes for the messages and mailboxes, other | include metadata sizes for the messages and mailboxes, other | |||
implementations MAY store messages in such a way that the physical | implementations MAY store messages in such a way that the physical | |||
space used is smaller, for example due to use of compression. | space used is smaller, for example due to use of compression. | |||
skipping to change at page 13, line 49 ¶ | skipping to change at page 13, line 49 ¶ | |||
+-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ | +-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ | |||
| GETQUOTAROOT | |*| | | | | | | | | | * | | | GETQUOTAROOT | |*| | | | | | | | | | * | | |||
+-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ | +-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ | |||
| SETQUOTA | | | | | | | | | | + | | | | | SETQUOTA | | | | | | | | | | + | | | | |||
+-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ | +-------------------+-+-+---+---+---+---+---+---+---+---+-----+-----+ | |||
Table 1 | Table 1 | |||
See Section 4 of RFC 4314 for conventions used in this table. | See Section 4 of RFC 4314 for conventions used in this table. | |||
Legend: | ||||
+ - The right is required | ||||
* - Only one of the rights marked with * is required | ||||
"Any" - at least one of the "l", "r", "i", "k", "x", "a" rights is | ||||
required | ||||
"Non" - no rights required to perform the command | ||||
7. Formal syntax | 7. Formal syntax | |||
The following syntax specification uses the Augmented Backus-Naur | The following syntax specification uses the Augmented Backus-Naur | |||
Form (ABNF) notation as specified in [ABNF]. | Form (ABNF) notation as specified in [ABNF]. | |||
Non-terminals referenced but not defined below are as defined by | Non-terminals referenced but not defined below are as defined by | |||
IMAP4 [RFC3501]. | IMAP4 [RFC3501]. | |||
Except as noted otherwise, all alphabetic characters are case- | Except as noted otherwise, all alphabetic characters are case- | |||
insensitive. The use of upper or lower case characters to define | insensitive. The use of upper or lower case characters to define | |||
skipping to change at page 18, line 23 ¶ | skipping to change at page 18, line 34 ¶ | |||
Change Controller: IESG <iesg@ietf.org> | Change Controller: IESG <iesg@ietf.org> | |||
Description: The number of mailboxes governed by the quota root. | Description: The number of mailboxes governed by the quota root. | |||
Extra required IMAP commands/responses: N/A | Extra required IMAP commands/responses: N/A | |||
Extra optional IMAP commands/responses: N/A | Extra optional IMAP commands/responses: N/A | |||
Reference: Section 5.3 of RFCXXXX | Reference: Section 5.3 of RFCXXXX | |||
Name of the quota resource type: | Name of the quota resource type: ANNOTATION-STORAGE | |||
Author: Alexey Melnikov <alexey.melnikov@isode.com> | Author: Alexey Melnikov <alexey.melnikov@isode.com> | |||
Change Controller: IESG <iesg@ietf.org> | Change Controller: IESG <iesg@ietf.org> | |||
Description: The maximum size of all annotations [RFC5257], in units | Description: The maximum size of all annotations [RFC5257], in units | |||
of 1024 octets, associated with all messages in the mailboxes | of 1024 octets, associated with all messages in the mailboxes | |||
governed by the quota root. | governed by the quota root. | |||
Extra required IMAP commands/responses: N/A | Extra required IMAP commands/responses: N/A | |||
skipping to change at page 18, line 46 ¶ | skipping to change at page 19, line 12 ¶ | |||
Reference: Section 5.4 of RFCXXXX | Reference: Section 5.4 of RFCXXXX | |||
10. Contributors | 10. Contributors | |||
Dave Cridland wrote lots of text in an earlier draft that became the | Dave Cridland wrote lots of text in an earlier draft that became the | |||
basis for this document. | basis for this document. | |||
11. Acknowledgments | 11. Acknowledgments | |||
Editors of this document would like to thank the following people who | Editor of this document would like to thank the following people who | |||
provided useful comments or participated in discussions that lead to | provided useful comments or participated in discussions that lead to | |||
this update to RFC 2087: John Myers, Cyrus Daboo, Lyndon Nerenberg | this update to RFC 2087: John Myers, Cyrus Daboo, Lyndon Nerenberg. | |||
This document is a revision of RFC 2087. It borrows a lot of text | This document is a revision of RFC 2087. It borrows a lot of text | |||
from RFC 2087. Thus work of the RFC 2087 author John Myers is | from RFC 2087. Thus work of the RFC 2087 author John Myers is | |||
appreciated. | appreciated. | |||
12. Changes since RFC 2087 | 12. Changes since RFC 2087 | |||
This document is a revision of RFC 2087. It tries to clarify meaning | This document is a revision of RFC 2087. It tries to clarify the | |||
of different terms used by RFC 2087. It also provides more examples, | meaning of different terms used by RFC 2087. It also provides more | |||
gives guidance on allowed server behaviour, defines IANA registry for | examples, gives guidance on allowed server behaviour, defines IANA | |||
quota resource types and provides initial registrations for 3 of | registry for quota resource types and provides initial registrations | |||
them. | for 4 of them. | |||
When compared with RFC 2087, this document defines two more commonly | When compared with RFC 2087, this document defines two more commonly | |||
used resource type, adds optional OVERQUOTA response code and defines | used resource type, adds optional OVERQUOTA response code and defines | |||
two extra STATUS data items ("DELETED" and "DELETED-STORAGE") that | two extra STATUS data items ("DELETED" and "DELETED-STORAGE") that | |||
must be implemented. For extensibility quota usage and quota limits | must be implemented. For extensibility quota usage and quota limits | |||
are now 63 bit unsigned integers. | are now 63 bit unsigned integers. | |||
13. References | 13. References | |||
13.1. Normative References | 13.1. Normative References | |||
End of changes. 14 change blocks. | ||||
18 lines changed or deleted | 28 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |