-
Notifications
You must be signed in to change notification settings - Fork 0
/
draft-ietf-extra-imap-list-myrights.xml
354 lines (310 loc) · 12.5 KB
/
draft-ietf-extra-imap-list-myrights.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'
[
<!ENTITY rfc2119 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY rfc3501 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3501.xml'>
<!ENTITY rfc4314 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4314.xml'>
<!ENTITY rfc5234 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5234.xml'>
<!ENTITY rfc5258 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5258.xml'>
<!ENTITY rfc5819 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5819.xml'>
<!ENTITY rfc8174 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml'>
]>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc strict="yes"?>
<rfc category="std" ipr='trust200902'
docName='draft-ietf-extra-imap-list-myrights-07'>
<front>
<title abbrev="IMAP LIST-MYRIGHTS">IMAP4 Extension for Returning
MYRIGHTS Information in Extended LIST</title>
<author initials="K." surname="Murchison" fullname="Kenneth Murchison">
<organization abbrev="FastMail">FastMail Pty Ltd</organization>
<address>
<postal>
<street>Level 2, 114 William Street</street>
<city>Melbourne</city> <region>VIC</region>
<code>3000</code> <country>Australia</country>
</postal>
<email>murch@fastmailteam.com</email>
</address>
</author>
<author initials="B." surname="Gondwana" fullname="Bron Gondwana">
<organization abbrev="FastMail">FastMail Pty Ltd</organization>
<address>
<postal>
<street>Level 2, 114 William Street</street>
<city>Melbourne</city> <region>VIC</region>
<code>3000</code> <country>Australia</country>
</postal>
<email>brong@fastmailteam.com</email>
</address>
</author>
<date />
<area>ART</area>
<workgroup>EXTRA</workgroup>
<keyword>IMAP4</keyword>
<keyword>LIST</keyword>
<keyword>MYRIGHTS</keyword>
<abstract>
<t>This document defines an extension to the Internet Message
Access Protocol (IMAP) LIST
command that allows the client to request the set of rights that
the logged-in user has been granted on mailboxes, along with other
information typically returned by the LIST command.</t>
</abstract>
</front>
<middle>
<section title='Introduction'>
<t><xref target='RFC3501'>IMAP</xref> clients typically fetch
the set of rights granted on
mailboxes so they can expose the allowed functionality to 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 MYRIGHTS command for each mailbox
found. This document defines an extension to the to IMAP LIST
command that is identified by the capability string
"LIST-MYRIGHTS". The LIST-MYRIGHTS extension allows the client
to request the set of rights that the logged-in user has been
granted on mailboxes, along with other information typically
returned by the LIST command.</t>
</section>
<section title='Conventions Used in This Document'>
<t>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.</t>
<t>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
<eref target="https://tools.ietf.org/html/bcp14">BCP 14</eref>
<xref target='RFC2119' /> <xref target='RFC8174' />
when, and only when, they appear in all capitals, as shown
here.</t>
</section> <!-- Intro -->
<section title='MYRIGHTS Return Option to LIST Command'
anchor="myrights">
<t><xref target='RFC4314'/> defines the MYRIGHTS command which is
used by an IMAP client to determine the set of rights that the
logged-in user has been granted on a given mailbox. Frequently,
a client will have to look up the rights for some or all of
the mailboxes returned by the LIST command. Doing so in
multiple MYRIGHTS commands wastes bandwidth and can degrade
performance if the client does not pipeline the requests.</t>
<t>This document extends the LIST command with a new "MYRIGHTS"
<xref target='RFC5258'>return option</xref>,
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 and SHOULD also
return an untagged MYRIGHTS response containing the set of
rights granted to the logged-in user. The ordering of the
responses is significant only in that the server MUST NOT send a
MYRIGHTS response for a given mailbox before it sends the LIST
response for that mailbox.</t>
<t>If the server is unable to look up the set of rights for a
given mailbox, it does not send the MYRIGHTS reply for that
mailbox.</t>
<t>Client authors ought to note that generating the MYRIGHTS
responses for a large number of mailboxes may be an expensive
operation for the server. Clients SHOULD use a suitable match
pattern and/or selection option to limit the set of mailboxes
returned to only those whose rights in which they are
interested.</t>
</section> <!-- MYRIGHTS -->
<section title='Examples'>
<figure>
<preamble>
In this example the "bar" mailbox doesn't exist, so it has
no MYRIGHTS reply.
</preamble>
<artwork><![CDATA[
C: A01 LIST "" % RETURN (MYRIGHTS)
S: * LIST () "." "INBOX"
S: * MYRIGHTS "INBOX" lrswipkxtecda
S: * LIST () "." "foo"
S: * MYRIGHTS "foo" lrs
S: * LIST (\NonExistent) "." "bar"
S: A01 OK List completed.
]]></artwork>
</figure>
<figure>
<preamble>
In this example the LIST reply for the "foo" mailbox is
returned because it has matching children, but no MYRIGHTS
reply is returned because "foo" itself doesn't match the
selection criteria.
</preamble>
<artwork><![CDATA[
C: A02 LIST (SUBSCRIBED RECURSIVEMATCH) "" % RETURN (MYRIGHTS)
S: * LIST (\Subscribed) "." "INBOX"
S: * MYRIGHTS "INBOX" lrswipkxtecda
S: * LIST () "." "foo" (CHILDINFO ("SUBSCRIBED"))
S: A02 OK List completed.
]]></artwork>
</figure>
</section>
<section title='Formal Syntax'>
<t>The following syntax specification uses the augmented Backus-Naur
Form (BNF) as described in <xref target='RFC5234' />. Terms not
defined here are taken from <xref target='RFC5258' />. </t>
<figure><artwork><![CDATA[
return-option =/ "MYRIGHTS"
]]></artwork></figure>
</section>
<section title='Security Considerations' anchor='security'>
<t>In addition to the security considerations described in <xref
target="RFC4314" />,
this extension makes it a bit easier for clients to overload
the server by requesting MYRIGHTS information for a large number
of mailboxes. However, as already noted in the introduction,
existing clients already try to do that by generating a large
number of MYRIGHTS commands for each mailbox in which they are
interested. While performing MYRIGHTS information retrieval for
big lists of mailboxes, a server implementation needs to make
sure that it can still serve other IMAP connections and yield
execution to other connections, when necessary.</t>
</section>
<section title='Privacy Considerations' anchor='privacy'>
<t>This specification does not introduce any additional privacy
concerns beyond those described in <xref target="RFC4314" />.</t>
</section>
<section title='IANA Considerations'>
<section title='Registration of IMAP capability LIST-MYRIGHTS'>
<t>This document defines the "LIST-MYRIGHTS" IMAP capability
to be added to the "IMAP Capabilities" registry: <eref
target='https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml#imap-capabilities-1'
/>.</t>
</section>
<section title="Registration of LIST-EXTENDED option MYRIGHTS">
<t>This section registers the "MYRIGHTS" option to be added to the
"LIST-EXTENDED options" registry: <eref
target='https://www.iana.org/assignments/imap-list-extended/imap-list-extended.xhtml#imap-list-extended-1'
/>.
<list style='hanging'>
<t hangText="LIST-EXTENDED option name:">
MYRIGHTS
</t>
<t hangText="LIST-EXTENDED option type:">
RETURN
</t>
<t hangText="LIST-EXTENDED option description:">
Causes the LIST command to return MYRIGHTS responses in
addition to LIST responses.
</t>
<t hangText="Published specification:">
RFC XXXX, <xref target="myrights" />
</t>
<t hangText="Security considerations:">
RFC XXXX, <xref target="security" />
</t>
<t hangText="Intended usage:">
COMMON
</t>
<t hangText="Person and email address to contact for further
information:">
Kenneth Murchison <murch@fastmail.com>
</t>
<t hangText="Owner/Change controller:">
IESG <iesg@ietf.org>
</t>
</list>
</t>
</section>
</section> <!-- IANA -->
<section title='Acknowledgments'>
<t>This document is based largely on <xref target="RFC5819" />.
The authors would like to thank the authors of that document for
providing both inspiration and some borrowed text for this
document.
The authors would also like to thank the following individuals for
contributing their ideas and support for writing this
specification: Barry Leiba.</t>
<!--
<t>The author would also like to thank the following individuals for
contributing their ideas and support for writing this
specification: Cyrus Daboo.</t>
-->
</section>
</middle>
<back>
<references title='Normative References'>
&rfc2119;
&rfc3501;
&rfc4314;
&rfc5234;
&rfc5258;
&rfc8174;
</references>
<references title='Informative References'>
&rfc5819;
</references>
<section title="Change History (To be removed by RFC Editor before
publication)">
<t>Changes from draft-ietf-extra-imap-list-myrights-06:
<list style='symbols'>
<t>Editorial fix.</t>
</list>
</t>
<t>Changes from draft-ietf-extra-imap-list-myrights-05:
<list style='symbols'>
<t>Updated Keywords boilerplate.</t>
<t>Referenced security concerns in RFC 4314.</t>
<t>Reworded first sentence in second paragraph of Section 3.</t>
<t>Added informative reference to RFC5819.</t>
</list>
</t>
<t>Changes from draft-ietf-extra-imap-list-myrights-04:
<list style='symbols'>
<t>Added references for "IMAP" and "return option".</t>
</list>
</t>
<t>Changes from draft-ietf-extra-imap-list-myrights-03:
<list style='symbols'>
<t>Fixed a typo in the Abstract.</t>
</list>
</t>
<t>Changes from draft-ietf-extra-imap-list-myrights-02:
<list style='symbols'>
<t>WGLC editorial changes from Barry Leiba.</t>
</list>
</t>
<t>Changes from draft-ietf-extra-imap-list-myrights-01:
<list style='symbols'>
<t>Removed 'n' right from example.</t>
<t>Added advice to client authors regarding expense of
calculating MYRIGHTS.</t>
<t>Replicated Security Considerations section from RFC 5819.</t>
</list>
</t>
<t>Changes from draft-ietf-extra-imap-list-myrights-00:
<list style='symbols'>
<t>Corrected contact email address in IANA registration.</t>
<t>Fixed typos (extra SP) in examples.</t>
</list>
</t>
<t>Changes from draft-murchison-imap-list-myrights-01:
<list style='symbols'>
<t>Renamed document to be a work product of the EXTRA WG.</t>
<t>Updated authors' addresses.</t>
</list>
</t>
<t>Changes from draft-murchison-imap-list-myrights-00:
<list style='symbols'>
<t>Augmented Introduction with mention of "LIST-MYRIGHTS"
capability string.</t>
<t>Minor editorial changes.</t>
</list>
</t>
</section>
</back>
</rfc>