< 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/