| < draft-ietf-imapext-annotate-07.txt | draft-ietf-imapext-annotate-08.txt > | |||
|---|---|---|---|---|
| IMAP Extensions Working Group R. Gellens | IMAP Extensions Working Group R. Gellens | |||
| Internet Draft: IMAP ANNOTATE Extension C. Daboo | Internet Draft: IMAP ANNOTATE Extension C. Daboo | |||
| Document: draft-ietf-imapext-annotate-07.txt May 2003 | Document: draft-ietf-imapext-annotate-08.txt October 2003 | |||
| IMAP ANNOTATE Extension | IMAP ANNOTATE Extension | |||
| Status of this Memo | Status of this Memo | |||
| This document is an Internet-Draft and is in full conformance with | This document is an Internet-Draft and is in full conformance with | |||
| all provisions of Section 10 of RFC2026. | all provisions of Section 10 of RFC2026. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| skipping to change at page 2, line 11 ¶ | skipping to change at page 2, line 11 ¶ | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (C) The Internet Society 2003. All Rights Reserved. | Copyright (C) The Internet Society 2003. All Rights Reserved. | |||
| Table of Contents | Table of Contents | |||
| 1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 2 | 2 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 3 Conventions Used in This Document . . . . . . . . . . . . . . 2 | 3 Conventions Used in This Document . . . . . . . . . . . . . . 2 | |||
| 4 Change History . . . . . . . . . . . . . . . . . . . . . . . 3 | 4 Change History . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 5 Introduction and Overview . . . . . . . . . . . . . . . . . . 4 | 5 Introduction and Overview . . . . . . . . . . . . . . . . . . 4 | |||
| 6 Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 6 Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 5 | 6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 6.2 Namespace of Entries and Attributes . . . . . . . . . . 6 | 6.2 Namespace of Entries and Attributes . . . . . . . . . . 6 | |||
| 6.2.1 Entry Names . . . . . . . . . . . . . . . . . . . . . 6 | 6.2.1 Entry Names . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 6.2.2 Attribute Names . . . . . . . . . . . . . . . . . . 8 | 6.2.2 Attribute Names . . . . . . . . . . . . . . . . . . 9 | |||
| 7 Private versus Shared and Access Control . . . . . . . . . . 9 | 7 Private versus Shared and Access Control . . . . . . . . . . 9 | |||
| 8 IMAP Protocol Changes . . . . . . . . . . . . . . . . . . . 10 | 8 IMAP Protocol Changes . . . . . . . . . . . . . . . . . . . 10 | |||
| 8.1 General considerations . . . . . . . . . . . . . . . . . 10 | 8.1 General considerations . . . . . . . . . . . . . . . . . 10 | |||
| 8.2 Optional parameters with the SELECT/EXAMINE commands . . 10 | 8.2 Optional parameters with the SELECT/EXAMINE commands . . 11 | |||
| 8.3 ANNOTATION Message Data Item in FETCH Command . . . . . . 11 | 8.3 ANNOTATION Message Data Item in FETCH Command . . . . . . 12 | |||
| 8.4 ANNOTATION Message Data Item in FETCH Response . . . . . 13 | 8.4 ANNOTATION Message Data Item in FETCH Response . . . . . 13 | |||
| 8.5 ANNOTATION Message Data Item in STORE . . . . . . . . . . 14 | 8.5 ANNOTATION Message Data Item in STORE . . . . . . . . . . 14 | |||
| 8.6 ANNOTATION interaction with COPY . . . . . . . . . . . . 15 | 8.6 ANNOTATION interaction with COPY . . . . . . . . . . . . 16 | |||
| 8.7 ANNOTATION Message Data Item in APPEND . . . . . . . . . 16 | 8.7 ANNOTATION Message Data Item in APPEND . . . . . . . . . 16 | |||
| 8.8 ANNOTATION Criterion in SEARCH . . . . . . . . . . . . . 16 | 8.8 ANNOTATION Criterion in SEARCH . . . . . . . . . . . . . 16 | |||
| 8.9 ANNOTATION Key in SORT . . . . . . . . . . . . . . . . . 17 | 8.9 ANNOTATION Key in SORT . . . . . . . . . . . . . . . . . 17 | |||
| 9 Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 17 | 9 Formal Syntax . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 10 IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | 10 IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 10.1 Entry and Attribute Registration Template . . . . . . . 19 | 10.1 Entry and Attribute Registration Template . . . . . . . 19 | |||
| 11 Security Considerations . . . . . . . . . . . . . . . . . . . 20 | 11 Security Considerations . . . . . . . . . . . . . . . . . . . 20 | |||
| 12 Normative References . . . . . . . . . . . . . . . . . . . . 20 | 12 Normative References . . . . . . . . . . . . . . . . . . . . 20 | |||
| 13 Informative References . . . . . . . . . . . . . . . . . . . 21 | 13 Informative References . . . . . . . . . . . . . . . . . . . 21 | |||
| 14 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 21 | 14 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 21 | 15 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 21 | |||
| 16 Full Copyright Statement . . . . . . . . . . . . . . . . . . 21 | 16 Full Copyright Statement . . . . . . . . . . . . . . . . . . 21 | |||
| 1 Abstract | 1 Abstract | |||
| skipping to change at page 3, line 13 ¶ | skipping to change at page 3, line 13 ¶ | |||
| document are to be interpreted as described in RFC 2119 [KEYWORDS]. | document are to be interpreted as described in RFC 2119 [KEYWORDS]. | |||
| Formal syntax is defined using ABNF [ABNF] as modified by [IMAP4]. | Formal syntax is defined using ABNF [ABNF] as modified by [IMAP4]. | |||
| In examples, "C:" and "S:" indicate lines sent by the client and | In examples, "C:" and "S:" indicate lines sent by the client and | |||
| server respectively. Line breaks not preceded by a "C:" or "S:" are | server respectively. Line breaks not preceded by a "C:" or "S:" are | |||
| for editorial clarity only. | for editorial clarity only. | |||
| 4 Change History | 4 Change History | |||
| Changes from -07 to -08: | ||||
| 1. ANNOTATESIZE response changed to use "NIL" for a mailbox that | ||||
| does not support any type of annotations, and "0" for a mailbox | ||||
| that only supports read-only annotations. | ||||
| Changes from -06 to -07: | Changes from -06 to -07: | |||
| 1. Added text to state entry and attribute names are always | 1. Added text to state entry and attribute names are always | |||
| case-insensitive. | case-insensitive. | |||
| 2. Removed top-level entry namespace. | 2. Removed top-level entry namespace. | |||
| 3. Added server accept minima for annotation size and count. | 3. Added server accept minima for annotation size and count. | |||
| 4. Added [ANNOTATE TOOBIG] & [ANNOTATE TOOMANY] response codes. | 4. Added [ANNOTATE TOOBIG] & [ANNOTATE TOOMANY] response codes. | |||
| 5. Added [ANNOTATESIZE <<n>>] response code. | 5. Added [ANNOTATESIZE <<n>>] response code. | |||
| 6. Added comment on suggested CONDSTORE support. | 6. Added comment on suggested CONDSTORE support. | |||
| 7. Modified append behaviour to account for MULTIAPPEND. | 7. Modified append behaviour to account for MULTIAPPEND. | |||
| 8. Tweaked ABNF. | 8. Tweaked ABNF. | |||
| skipping to change at page 10, line 47 ¶ | skipping to change at page 10, line 54 ¶ | |||
| least 1024 bytes, and a minimum annotation count per message of at | least 1024 bytes, and a minimum annotation count per message of at | |||
| least 10. | least 10. | |||
| The server SHOULD indicate the maximum size for an annotation value | The server SHOULD indicate the maximum size for an annotation value | |||
| by sending an untagged "ANNOTATESIZE" response during a SELECT or | by sending an untagged "ANNOTATESIZE" response during a SELECT or | |||
| EXAMINE command. Clients MUST NOT store annotation values of a size | EXAMINE command. Clients MUST NOT store annotation values of a size | |||
| greater than the amount indicated by the server in the | greater than the amount indicated by the server in the | |||
| "ANNOTATESIZE" response. | "ANNOTATESIZE" response. | |||
| In some cases, servers may be able to offer annotations on some | In some cases, servers may be able to offer annotations on some | |||
| mailboxes and not others. For mailboxes that cannot have | mailboxes and not others, or may be able to provide only read-only | |||
| annotations on some mailboxes. For mailboxes that cannot have | ||||
| annotations associated with them, the server MUST return an | annotations associated with them, the server MUST return an | |||
| "ANNOTATESIZE" response with a value of "0" (zero) during the SELECT | "ANNOTATESIZE" response with a value of "NIL" during the SELECT or | |||
| or EXAMINE command for that mailbox. Clients MUST NOT attempt to | EXAMINE command for that mailbox. Clients MUST NOT attempt to fetch | |||
| fetch or store annotations on any messages in a mailbox for which | or store annotations on any messages in a mailbox for which the | |||
| "ANNOTATESIZE" response was "NIL". For mailboxes that can only have | ||||
| read-only annotations associated with them, the server MUST return | ||||
| an "ANNOTATESIZE" response with a value of "0" (zero) during the | ||||
| SELECT or EXAMINE command for that mailbox. Clients MUST NOT | ||||
| attempt to store annotations on any messages in a mailbox for which | ||||
| the "ANNOTATESIZE" response was zero. | the "ANNOTATESIZE" response was zero. | |||
| 8.2 Optional parameters with the SELECT/EXAMINE commands | 8.2 Optional parameters with the SELECT/EXAMINE commands | |||
| This extension adds the ability to include one or more parameters | This extension adds the ability to include one or more parameters | |||
| with the IMAP SELECT or EXAMINE commands, to turn on or off certain | with the IMAP SELECT or EXAMINE commands, to turn on or off certain | |||
| standard behaviour, or to add new optional behaviours required for a | standard behaviour, or to add new optional behaviours required for a | |||
| particular extension. It is anticipated that other extensions may | particular extension. It is anticipated that other extensions may | |||
| want to use this facility, so a generalised approach is given here. | want to use this facility, so a generalised approach is given here. | |||
| This facility is not dependent on the presence of the ANNOTATE | This facility is not dependent on the presence of the ANNOTATE | |||
| skipping to change at page 16, line 4 ¶ | skipping to change at page 16, line 14 ¶ | |||
| ("value.priv" "My new comment" | ("value.priv" "My new comment" | |||
| "vendor.foobar.priv" "foo's bar")) | "vendor.foobar.priv" "foo's bar")) | |||
| S: a OK Store complete | S: a OK Store complete | |||
| In the above example, the entry "/comment" is created (if not | In the above example, the entry "/comment" is created (if not | |||
| already present) and the private attributes "value" and | already present) and the private attributes "value" and | |||
| "vendor.foobar" are created if not already present, or replaced if | "vendor.foobar" are created if not already present, or replaced if | |||
| they exist. | they exist. | |||
| 8.6 ANNOTATION interaction with COPY | 8.6 ANNOTATION interaction with COPY | |||
| The COPY command can be used to move messages from one mailbox to | The COPY command can be used to move messages from one mailbox to | |||
| another on the same server. Servers that support the ANNOTATION | another on the same server. Servers that support the ANNOTATION | |||
| extension MUST copy all the annotation data associated with any | extension MUST copy all the annotation data associated with any | |||
| messages being copied via the COPY command. The only exceptions to | messages being copied via the COPY command. The only exceptions to | |||
| this are if the destination mailbox permissions are such that either | this are if the destination mailbox permissions are such that either | |||
| the '.priv' or '.shared' annotations are not allowed, or if the | the '.priv' or '.shared' annotations are not allowed, or if the | |||
| destination mailbox is of a type that does not support annotations | destination mailbox is of a type that does not support annotations | |||
| (and returns a zero value for its ANNOTATESIZE response code). | or does not support storing of annotations (a mailbox that returns a | |||
| zero or "NIL" value for its ANNOTATESIZE response code). | ||||
| 8.7 ANNOTATION Message Data Item in APPEND | 8.7 ANNOTATION Message Data Item in APPEND | |||
| ANNOTATION <parenthesised entry-attribute-value list> | ANNOTATION <parenthesised entry-attribute-value list> | |||
| Sets the specified list of entries and attributes in the | Sets the specified list of entries and attributes in the | |||
| resulting message. | resulting message. | |||
| The APPEND command can include annotations for the message being | The APPEND command can include annotations for the message being | |||
| appended via the addition of a new append data item. The new data | appended via the addition of a new append data item. The new data | |||
| item can also be used with the multi-append [MULTIAPPEND] extension | item can also be used with the multi-append [MULTIAPPEND] extension | |||
| skipping to change at page 18, line 46 ¶ | skipping to change at page 19, line 4 ¶ | |||
| attribs = att-match / | attribs = att-match / | |||
| "(" att-match *(SP att-match) ")" | "(" att-match *(SP att-match) ")" | |||
| entries = entry-match / | entries = entry-match / | |||
| "(" entry-match *(SP entry-match) ")" | "(" entry-match *(SP entry-match) ")" | |||
| entry = string | entry = string | |||
| ; slash-separated path to entry | ; slash-separated path to entry | |||
| ; MUST NOT contain "*" or "%" | ; MUST NOT contain "*" or "%" | |||
| entry-att = entry SP "(" att-value *(SP att-value) ")" | entry-att = entry SP "(" att-value *(SP att-value) ")" | |||
| entry-match = string | entry-match = string | |||
| ; slash-separated path to entry | ; slash-separated path to entry | |||
| ; MAY contain "*" or "%" for use as wildcards | ; MAY contain "*" or "%" for use as wildcards | |||
| examine =/ *(SP "(" select-param *(SP select-param) ")" | examine =/ *(SP "(" select-param *(SP select-param) ")" | |||
| ; modifies the original IMAP4 examine command to | ; modifies the original IMAP4 examine command to | |||
| ; accept optional parameters | ; accept optional parameters | |||
| fetch-ann-resp = "ANNOTATION" SP "(" entry-att *(SP entry-att) ")" | fetch-ann-resp = "ANNOTATION" SP "(" entry-att *(SP entry-att) ")" | |||
| fetch-att =/ "ANNOTATION" SP "(" entries SP attribs ")" | fetch-att =/ "ANNOTATION" SP "(" entries SP attribs ")" | |||
| ; modifies original IMAP4 fetch-att | ; modifies original IMAP4 fetch-att | |||
| resp-text-code =/ "ANNOTATE" SP "TOOBIG" / | resp-text-code =/ "ANNOTATE" SP "TOOBIG" / | |||
| "ANNOTATE" SP "TOOMANY" / | "ANNOTATE" SP "TOOMANY" / | |||
| "ANNOTATESIZE" SP number | "ANNOTATESIZE" SP (number / "NIL") | |||
| ; new response codes for STORE failures | ; new response codes for STORE failures | |||
| search-key =/ "ANNOTATION" SP entry-match SP att-match | search-key =/ "ANNOTATION" SP entry-match SP att-match | |||
| SP value | SP value | |||
| ; modifies original IMAP4 search-key | ; modifies original IMAP4 search-key | |||
| select =/ *(SP "(" select-param *(SP select-param) ")" | select =/ *(SP "(" select-param *(SP select-param) ")" | |||
| ; modifies the original IMAP4 select command to | ; modifies the original IMAP4 select command to | |||
| ; accept optional parameters | ; accept optional parameters | |||
| End of changes. 14 change blocks. | ||||
| 16 lines changed or deleted | 29 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/ | ||||