Network Working Group L. Greenfield Internet Draft Carnegie Mellon Document: draft-greenfield-acap-mbox-01.txt November 1998 ACAP Mailbox Dataset Class Status of this Memo This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a ``working draft'' or ``work in progress''. To learn the current status of any Internet-Draft, please check the 1id-abstracts.txt listing contained in the Internet-Drafts Shadow Directories on ftp.ietf.org, nic.nordu.net, ftp.isi.edu, or munnari.oz.au. A revised version of this draft document will be submitted to the RFC editor as a Proposed Standard for the Internet Community. Discussion and suggestions for improvement are requested. This document will expire before May 1999. Distribution of this draft is unlimited. Abstract IMAP [IMAP4] allows users to access the mail store in an efficient way, but has insufficient support to export detailed meta-level information about mailboxes, subscriptions, and multiple servers. The mailbox dataset provides a fast, flexible way of exporting this data. L. Greenfield [Page i] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 1. Conventions Used in this Document The key words "MUST", "MUST NOT", "SHOULD" , "SHOULD NOT", and "MAY" in this document are to be interpreted as defined in "Key words for use in RFCs to Indicate Requirement Levels" [KEYWORDS]. The attribute syntax specifications use the Augmented Backus-Naur Form (ABNF) notation as specified in [ABNF]. When UTF-8 [UTF8] is referred to in this document, it refers to Unicode version 2.0, and not Unicode version 1.1. 2. Design Issues IMAP [IMAP4] provides a robust protocol for fetching messages and partial data from a remote server, both for active and detached clients. However, it provides only rudimentary support for determining what mailboxes reside on a server, subscription support, and fast updates. Current proposals for handling mailboxes spread over multiple IMAP servers force clients to make complicated and slow searches. The mailbox dataset is designed to aid IMAP clients in dealing with a large number of mailboxes, possibly spread and replicated over multiple servers. It exports information that cannot be expressed via IMAP. Clients will be able to use the mailbox dataset to * quickly tell what mailboxes have new messages in them * receive overview information about the mailbox (statistics and mailbox flags) * quickly tell what mailboxes have had state changes since they were last examined * enable clients to determine mailboxes that have been created recently * determine how to "post" messages to this mailbox, if possible * present a simple, unified view of a large number of servers L. Greenfield [Page 2] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 3. ACAP Mailbox Dataset Class Datasets whose names begin with "/mailbox" contain mailbox entries as defined in this specification. The hierarchy corresponds to the hierarchy defined by the mail realm by the following transformation: * change all hierarchy delimiters to "/" * change all "\"'s in names to "\\" (if "\" isn't the hierarchy delimiter") * change all "/"'s in names to "\S" (if "/" isn't the hierarchy delimiter) * change the modified UTF-7 encoding to UTF-8 The hierarchy defines the user visible mailboxes in a realm---clients using the mailbox dataset display mailboxes using the names exported though the ACAP server, even though these may be different from the names available on each IMAP server. Most of the attributes are inherited system wide, though some may be overridden on a per-user basis, as defined in [ACAP]. Specifically, attributes such as mailbox.Subscribed and any annotations are meant to be overridden on a per-user basis. Most other attributes are only modifiable in the original message store. Required ACAP Attributes - Basic Attributes entry The "entry" attribute is the last component in the mailbox. subdataset The "subdataset" attribute is used to indicate that there are submailboxes in the hierarchy from this mailbox. It's possible the mailbox has no real existance on an IMAP server (or exists with the \Noselect flag). In such a case, the "mailbox.URL" attribute is NIL. A user MAY still be subscribed to a mailbox with no IMAP server. Such a subscription SHOULD be persistant should this mailbox later be created, and MAY have meaning to certain clients. For example, a graphical hierarchical client may choose to show a subscribed \Noselect mailbox to allow the user quick access to the mailboxes underneath. A mailbox dataset MAY correspond to newsgroups accessed via NNTP. In such a case, any IMAP specific attributes will be undefined. Clients SHOULD ignore any NNTP mailboxes if they do not support NNTP. L. Greenfield [Page 3] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 - Mailbox Attributes mailbox.URL This is a multivalued attribute containing the URL (as defined in [IMAP-URL]) used to access this mailbox. If there are multiple URLs (corresponding to multiple servers) the mailbox MUST have identical content. The list SHOULD be sorted in preferential order of access to allow for load balancing. ("imap://mail2.andrew.cmu.edu/comp.mail.imap" "imap://mail4.andrew.cmu.edu/#news.comp.mail.imap") mailbox-URL = 1*URL ;; as defined in [IMAP-URL] mailbox.Subscribed Non-0 if the user is subscribed to this mailbox. Clients MAY support multiple methods of subscription by the following values: * 0 unsubscribed * 1 normal subscription (show changed messages) * 2 show-all subscription (always show all messages) * 3 ask subscription (the user needs to take some action to show the captions in this mailbox) Clients may write to this attribute to change the subscription state; mail realms may choose to force this attribute to be non-zero, so that users are forced to subscribe to a mailbox containing system announcements. mailbox-subscribed = number mailbox.State.Unseen mailbox.State.Recent mailbox.State.Exists mailbox.State.Deleted mailbox.State.Uidnext mailbox.State.Uidvalidity This is the current state of the mailbox, obtained via some unspecified method from an appropriate IMAP server. The IMAP server MAY act as an ACAP client and store the appropriate information when it changes. mailbox-state = number mailbox.Flags.Noinferiors mailbox.Flags.Marked mailbox.Flags.Unmarked These attributes correspond to the IMAP mailbox flags. The attribute equals 1 if the flag is set; 0 otherwise. mailbox-flags = number L. Greenfield [Page 4] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 remailbox.Post This is a URL describing how to post messages to this mailbox. "mailto:post+comp.mail.imap@andrew.cmu.edu" mailbox-post = url mailbox.Archive If non-zero, this is considered a repository for a mailing list or newsgroup since the time indicated. mailbox-archive = time mailbox.CreateTime This contains an ACAP-format time when this mailbox was created. mailbox-createtime = time mailbox.Quota.Size mailbox.Quota.Size.Deleted mailbox.Quota.Messages mailbox.Quota.Messages.Deleted These attributes are equal to the ones defined in [IMAP-QUOTA]. The .deleted attributes are the resources contained in just the messages marked \Deleted. These attributes are useful even on servers that do not enforce quotas. mailbox-quota = number mailbox.ACL This is a writable format containing the ACL for this mailbox. (The exact layout is still under consideration.) mailbox-acl = *(acl_data) acl_data = identifier SP acl_rights acl_rights = string L. Greenfield [Page 5] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 6. Open Issues The author is unsure the best way to encode IMAP ACLs and IMAP QUOTAs into the mailbox data set. Specifically, there is currently no way to find out the quotaroots or the maximum quota in the mailbox. IMAP4 namespaces [NAMESPACE] can lead to many many issues. Should multiple hierarchy seperators be allowed? How should this be exported? The naming scheme for each mailbox (for an N hierarchical name, the first N-1 components form the dataset and the last component forms the name) feels needlessly complicated. There has been some requests for folder annotations---is this desired? How much structure should be enforced on it? Should a more formal definition for server coherency be made? L. Greenfield [Page 6] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 4. References [ABNF] Crocker, Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, Internet Mail Consortium, Demon Internet Ltd, November 1997. [ACAP] Newman, Myers, "ACAP -- Application Configuration Access Protocol", RFC 2244, Innosoft, Netscape, November 1997. [BASIC-URL] Berners-Lee, Masinter, McCahill, "Uniform Resource Locators (URL)", RFC 1738, CERN, Xerox Corporation, University of Minnesota, December 1994. [IMAP4] Crispin, M., "Internet Message Access Protocol - Version 4rev1", RFC 2060, University of Washington, December 1994. [IMAP-ACL] Myers, J., "IMAP4 ACL extension", RFC 2086, Carnegie- Mellon University, January 1997. [IMAP-QUOTA] Myers, J. "IMAP4 QUOTA extension", RFC 2087, Carnegie- Mellon University, January 1997. [IMAP-URL] Newman, C. "IMAP URL Scheme", RFC 2192, Innosoft, September 1997. [KEYWORDS] Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, Harvard University, March 1997. [NAMESPACE] Gahrns, Newman, "IMAP4 Namespace", RFC 2342, Microsoft, Innosoft, May 1998. [UTF8] Yergeau, "UTF-8, a transformation format of ISO 10646", RFC 2279, Alis Technologies, January 1998. 5. Security Considerations The mailbox dataset should not export information that would be otherwise unavailable to the user. ACAP permissions should be tied with the corresponding IMAP permissions. 6. Author's Address Lawrence Greenfield Cyert Hall 100c Computing Services Carnegie Mellon University Pittsburgh PA, 15213-3890 L. Greenfield [Page 7] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 Email: leg+asg@andrew.cmu.edu L. Greenfield [Page 8] Internet DRAFT ACAP Mailbox Dataset 18 November 1998 TTaabbllee ooff CCoonntteennttss Status of this Memo ............................................... i Abstract .......................................................... i 1. Conventions Used in this Document ............................ 2 2. Design Issues ................................................ 2 3. ACAP Mailbox Dataset Class ................................... 3 6. Open Issues .................................................. 6 4. References ................................................... 7 5. Security Considerations ...................................... 7 6. Author's Address ............................................. 7 L. Greenfield [Page ii]