summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc9590.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9590.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9590.txt')
-rw-r--r--doc/rfc/rfc9590.txt274
1 files changed, 274 insertions, 0 deletions
diff --git a/doc/rfc/rfc9590.txt b/doc/rfc/rfc9590.txt
new file mode 100644
index 0000000..9db6c5f
--- /dev/null
+++ b/doc/rfc/rfc9590.txt
@@ -0,0 +1,274 @@
+
+
+
+
+Internet Engineering Task Force (IETF) K. Murchison
+Request for Comments: 9590 B. Gondwana
+Category: Standards Track Fastmail
+ISSN: 2070-1721 May 2024
+
+
+ IMAP Extension for Returning Mailbox METADATA in Extended LIST
+
+Abstract
+
+ This document defines an extension to the Internet Message Access
+ Protocol (IMAP) LIST command that allows the client to request
+ mailbox annotations (metadata), along with other information
+ typically returned by the LIST command.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc9590.
+
+Copyright Notice
+
+ Copyright (c) 2024 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Revised BSD License text as described in Section 4.e of the
+ Trust Legal Provisions and are provided without warranty as described
+ in the Revised BSD License.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Conventions Used in This Document
+ 3. METADATA Return Option to LIST Command
+ 4. Examples
+ 5. Formal Syntax
+ 6. Security Considerations
+ 7. Privacy Considerations
+ 8. IANA Considerations
+ 8.1. Registration of IMAP Capability LIST-METADATA
+ 8.2. Registration of LIST-EXTENDED Option METADATA
+ 9. References
+ 9.1. Normative References
+ 9.2. Informative References
+ Authors' Addresses
+
+1. Introduction
+
+ IMAP clients sometimes fetch mailbox metadata (e.g., color) to
+ augment the display of mailboxes for the logged-in user. In order to
+ do that, the client is forced to issue a LIST or LSUB command to list
+ all available mailboxes, followed by a GETMETADATA command for each
+ mailbox found. This document defines an extension to the IMAP LIST
+ command that is identified by the capability string "LIST-METADATA".
+ The LIST-METADATA extension allows the client to request annotations
+ on available mailboxes, along with other information typically
+ returned by the LIST command.
+
+2. Conventions Used in This Document
+
+ In examples, "C:" indicates lines sent by a client that is connected
+ to a server. "S:" indicates lines sent by the server to the client.
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+ Long lines in examples are wrapped using "The Single Backslash
+ Strategy" described in [RFC8792].
+
+3. METADATA Return Option to LIST Command
+
+ [RFC5464] defines the GETMETADATA command that is used by an IMAP
+ client to retrieve mailbox annotations. Sometimes, a client will
+ have to look up the metadata for some or all of the mailboxes
+ returned by the LIST command. Doing so in multiple GETMETADATA
+ commands wastes bandwidth and can degrade performance if the client
+ does not pipeline the requests.
+
+ This document extends the LIST command with a new return option,
+ "METADATA", which allows the client to request all of the desired
+ information in a single command. For each listable mailbox matching
+ the list pattern and selection options, the server MUST return an
+ untagged LIST response, followed by one or more untagged METADATA
+ responses containing the mailbox annotations requested by the client.
+ The untagged METADATA responses to an extended LIST command have the
+ same syntax and semantics as those that would be returned by
+ GETMETADATA commands on the same set of listable mailboxes (see
+ Section 4.4.1 of [RFC5464]). As per Section 4.4 of [RFC5464], the
+ server may return all requested annotations in a single METADATA
+ response for each mailbox, or it may split the requested annotations
+ into multiple METADATA responses for each mailbox.
+
+ If the server is unable to look up the annotations for given mailbox,
+ it MAY drop the corresponding METADATA response. In such a
+ situation, the LIST command would still return a tagged OK reply.
+
+4. Examples
+
+ The following are examples of fetching metadata from only the top-
+ level hierarchies of the mailbox using different sets of selection
+ criteria (see Section 6.3.9 of [RFC9051]).
+
+ In this example:
+
+ * The "color" annotation for the "foo" mailbox has not been set, so
+ the METADATA response has a value of "NIL" (i.e., has no value).
+
+ * "bar" has children, but isn't an actual mailbox itself, so it has
+ no METADATA response.
+
+ ========== NOTE: '\' line wrapping per RFC 8792 ===========
+
+ C: A00 CAPABILITY
+ S: * CAPABILITY IMAP4rev1 IMAP4rev2 \
+ LIST-EXTENDED LIST-METADATA METADATA
+ S: A00 OK Completed.
+ C: A01 LIST "" % \
+ RETURN (METADATA ("/shared/vendor/cmu/cyrus-imapd/color"))
+ S: * LIST () "." "INBOX"
+ S: * METADATA INBOX ("/shared/vendor/cmu/cyrus-imapd/color" "#b71c1c")
+ S: * LIST () "." "foo"
+ S: * METADATA "foo" ("/shared/vendor/cmu/cyrus-imapd/color" NIL)
+ S: * LIST (\NonExistent) "." "bar"
+ S: A01 OK List completed.
+
+ In this example, the LIST response for the "foo" mailbox is returned
+ because it has matching children, but no METADATA response is
+ returned because "foo" itself doesn't match the selection criteria.
+
+ ========== NOTE: '\' line wrapping per RFC 8792 ===========
+
+ C: A02 LIST (SUBSCRIBED RECURSIVEMATCH) "" % \
+ RETURN (METADATA ("/shared/vendor/cmu/cyrus-imapd/color"))
+ S: * LIST (\Subscribed) "." "INBOX"
+ S: * METADATA INBOX ("/shared/vendor/cmu/cyrus-imapd/color" "#b71c1c")
+ S: * LIST () "." "foo" (CHILDINFO ("SUBSCRIBED"))
+ S: A02 OK List completed.
+
+5. Formal Syntax
+
+ The following syntax specification uses the Augmented Backus-Naur
+ Form (ABNF) as described in [RFC5234]. Note that "return-option" is
+ defined in [RFC5258] and "entry" is defined in [RFC5464].
+
+ return-option =/ "METADATA" SP "(" entry *(SP entry) ")"
+
+6. Security Considerations
+
+ This specification does not introduce any additional security
+ concerns beyond those described in [RFC5258] and [RFC5464].
+
+7. Privacy Considerations
+
+ This specification does not introduce any additional privacy concerns
+ beyond those described in [RFC5464].
+
+8. IANA Considerations
+
+8.1. Registration of IMAP Capability LIST-METADATA
+
+ Per this document, IANA has added the "LIST-METADATA" IMAP capability
+ to the "IMAP Capabilities" registry located at
+ <https://www.iana.org/assignments/imap4-capabilities/>.
+
+8.2. Registration of LIST-EXTENDED Option METADATA
+
+ Per this document, IANA has registered the "METADATA" LIST-EXTENDED
+ option in the "LIST-EXTENDED options" registry located at
+ <https://www.iana.org/assignments/imap-list-extended/>.
+
+ LIST-EXTENDED option name:
+ METADATA
+
+ LIST-EXTENDED option type:
+ RETURN
+
+ LIST-EXTENDED option description:
+ Causes the LIST command to return METADATA responses in addition
+ to LIST responses.
+
+ Published specification:
+ RFC 9590, Section 3
+
+ Security considerations:
+ RFC 9590, Section 6
+
+ Intended usage:
+ COMMON
+
+ Person and email address to contact for further information:
+ Kenneth Murchison <murch@fastmailteam.com> and
+ Bron Gondwana <brong@fastmailteam.com>
+
+ Owner/Change controller:
+ IESG <iesg@ietf.org>
+
+9. References
+
+9.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", STD 68, RFC 5234,
+ DOI 10.17487/RFC5234, January 2008,
+ <https://www.rfc-editor.org/info/rfc5234>.
+
+ [RFC5258] Leiba, B. and A. Melnikov, "Internet Message Access
+ Protocol version 4 - LIST Command Extensions", RFC 5258,
+ DOI 10.17487/RFC5258, June 2008,
+ <https://www.rfc-editor.org/info/rfc5258>.
+
+ [RFC5464] Daboo, C., "The IMAP METADATA Extension", RFC 5464,
+ DOI 10.17487/RFC5464, February 2009,
+ <https://www.rfc-editor.org/info/rfc5464>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC9051] Melnikov, A., Ed. and B. Leiba, Ed., "Internet Message
+ Access Protocol (IMAP) - Version 4rev2", RFC 9051,
+ DOI 10.17487/RFC9051, August 2021,
+ <https://www.rfc-editor.org/info/rfc9051>.
+
+9.2. Informative References
+
+ [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu,
+ "Handling Long Lines in Content of Internet-Drafts and
+ RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
+ <https://www.rfc-editor.org/info/rfc8792>.
+
+Authors' Addresses
+
+ Kenneth Murchison
+ Fastmail US LLC
+ 1429 Walnut Street
+ Suite 1201
+ Philadelphia, PA 19102
+ United States of America
+ Email: murch@fastmailteam.com
+
+
+ Bron Gondwana
+ Fastmail Pty Ltd
+ Level 2, 114 William Street
+ Melbourne VIC 3000
+ Australia
+ Email: brong@fastmailteam.com