idnits 2.17.1 draft-ietf-webdav-quota-01.txt: -(173): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(185): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(186): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(435): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == There are 13 instances of lines with non-ascii characters in the document. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 529 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. == There are 2 instances of lines with non-RFC2606-compliant FQDNs in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (March 2003) is 7706 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC3253' is mentioned on line 341, but not defined ** Obsolete normative reference: RFC 2518 (Obsoleted by RFC 4918) ** Obsolete normative reference: RFC 3010 (Obsoleted by RFC 3530) Summary: 4 errors (**), 0 flaws (~~), 5 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 B. Korver 3 Xythos 4 L. Dusseault 5 Xythos 6 Internet Draft C. Warner 7 Document: draft-ietf-webdav-quota-01.txt Netezza 8 Expires: September 2003 March 2003 10 Quota and Size Properties for DAV Collections 12 Status of this Memo 14 This document is an Internet-Draft and is in full conformance with 15 all provisions of Section 10 of RFC2026. 17 Internet-Drafts are working documents of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that 19 other groups may also distribute working documents as Internet- 20 Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six 23 months and may be updated, replaced, or obsoleted by other documents 24 at any time. It is inappropriate to use Internet-Drafts as 25 reference material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at 28 http://www.ietf.org/ietf/1id-abstracts.txt 30 The list of Internet-Draft Shadow Directories can be accessed at 31 http://www.ietf.org/shadow.html. 33 Abstract 35 WebDAV servers are frequently deployed with quota (size) 36 limitations. This Internet-Draft discusses the properties and minor 37 behaviors needed for clients to interoperate with quota 38 implementations on WebDAV repositories. 40 Table of Contents 42 Introduction.......................................................2 43 DAV:quota-limit-bytes..............................................3 44 DAV:quota-used-bytes...............................................3 45 DAV:quota-assigned-bytes...........................................4 46 Example PROPFIND request and response..............................5 47 Error reporting....................................................6 48 Notes..............................................................6 49 Security Considerations............................................7 50 Internationalization Considerations................................7 51 IANA Considerations................................................7 53 Dusseault Expires March 2003 1 55 DAV Collection Size and Quota January 2003 57 Intellectual Property..............................................7 58 Acknowledgements...................................................8 59 References.........................................................9 60 Author's Addresses.................................................9 62 Introduction 64 Notational Conventions 66 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 67 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 68 document are to be interpreted as described in RFC 2119 [RFC2119]. 70 Requirement for quotas 72 WebDAV servers based on [RFC2518] have been implemented and deployed 73 with quota restrictions on collections and users, so it makes sense 74 to standardize this functionality to improve user experience and 75 client interoperability. This specification requires WebDAV because 76 it requires PROPFIND support and relies on the WebDAV definition of 77 collections and properties, including the definitions for live and 78 protected properties. 80 The reasons why WebDAV servers frequently have quotas enforced are 81 the same reasons why any storage system comes with quotas. 83 - Sometimes the storage service charges according to quota 85 - Sometimes the storage service is provided free, but the storage 86 service provider has limited storage space (e.g. www.sharemation.com 87 and university-provided student accounts) 89 - Even in cases where the storage can be upgraded, the storage 90 managers may choose to limit quota in order to encourage users to 91 limit the files they store on the system and to clean up obsolete 92 files. (e.g. IT departments within corporations). 94 In order to work best with repositories that support quotas, client 95 software should be able to determine and display the quota-limit on 96 collections. Further, client software should have some way of 97 fairly reliably determining how much storage space is already 98 counted towards that quota. 100 In addition to displaying the quota-limit and quota-used on 101 collections, this specification does not forbid these properties on 102 any resource. 104 Solution Overview 106 The approach to meeting the requirements and scenarios outlined 107 above is to define three live properties. This specification can be 109 Korver Expires Jul 2003 2 111 DAV Collection Size and Quota January 2003 113 met on a server by implementing both quota-limit and quota-used on 114 collections only. Implementing both quota-limit and quota-used on 115 all resources is recommended. 117 None of these properties need be returned in a request 118 though the server may include them. However, these property names 119 MUST be returned in a request for a resource that 120 supports the properties, except in the case of infinite limits which 121 are explained below. 123 The definitions below for quota-limit and quota-used borrow heavily 124 from the definition of quota in the NFS [RFC3010] specification. 126 DAV:quota-limit-bytes 128 Name: quota-limit-bytes 129 Namespace: DAV: 130 Purpose: Indicates the total amount of storage potentially 131 allocated. 132 DTD: 134 The DAV:quota-limit-bytes property value is the total amount of 135 storage space potentially allocated to this file or directory, 136 measured in octets. 138 Support for this property is REQUIRED on collections, and OPTIONAL 139 on other resources. A server SHOULD implement this property for 140 each resource that has the DAV:quota-used-bytes property. 142 A value of 0 indicates that storage is limited to 0. Users will 143 probably not be able to perform operations that write additional 144 information (e.g. a PUT inside a collection), but may be able to 145 replace through overwrite an existing resource of equal size. 147 If a resource has no quota enforced or unlimited storage, the server 148 MAY choose not to return this property (404 Not Found response in 149 Multi-Status), although this specification RECOMMENDS that servers 150 return some appropriate value (e.g. the amount of free disc space). 151 A client cannot entirely assume that there is no quota enforced on a 152 resource that does not have this property, but might as well act as 153 if there is no quota. 155 The value of this property is protected. A 403 Forbidden response 156 is RECOMMENDED for attempts to write a protected property. 158 DAV:quota-used-bytes 160 Name: quota-used-bytes 161 Namespace: DAV: 162 Purpose: Contains the amount of storage counted against the quota- 163 limit of a resource. 164 DTD: 166 Korver Expires Jul 2003 3 168 DAV Collection Size and Quota January 2003 170 The DAV:quota-used-bytes value is the value in octets representing 171 the amount of space used by this file or directory and possibly a 172 number of other similar files or directories, where the set of 173 �similar� meets at least the criterion that allocating space to any 174 file or directory in the set will count against the quota-limit. It 175 MUST include the total count including usage derived from sub- 176 resources if appropriate. It SHOULD include metadata storage size 177 if metadata storage is counted against the quota-limit. 179 Clients SHOULD expect that once the quota-used on a file or 180 directory meets or exceeds the quota-limit, further allocations to 181 that file or directory will be refused. A resource may show more 182 quota-used than its quota-limit or quota-assigned appears to allow. 184 Note that there may be a number of distinct but overlapping sets of 185 files or directories for which a quota-used is maintained (e.g. �all 186 files with a given owner�, �all files with a given group owner�, 187 etc.). The server is at liberty to choose any of those sets but 188 SHOULD do so in a repeatable way. The rule may be configured per 189 repository, or may be �choose the set with the smallest quota�. 191 Support for this property is REQUIRED on collections, and OPTIONAL 192 on other resources. A server SHOULD implement this property for 193 each resource that has the DAV:quota-limit-bytes property. 195 Support for this property enhances the client experience, because 196 together with DAV:quota-limit-bytes, the client has a chance of 197 managing its files to avoid running out of allocated storage space. 198 Clients may not be able to calculate the value as accurately on 199 their own, depending on how total space used is calculated by the 200 server. 202 DAV:quota-assigned-bytes 204 Name: quota-assigned-bytes 205 Namespace: DAV: 206 Purpose: Indicates the amount of storage assigned. 207 DTD: 209 The DAV:quota-assigned-bytes property value is the amount of storage 210 space potentially either assigned to or requested for this file or 211 directory, measured in octets. 213 The value of this property will usually be protected, although a 214 user with sufficient privileges may be permitted to change the 215 value. The property is useful even if it is protected. A 403 216 Forbidden response is RECOMMENDED for attempts to write a protected 217 property. 219 Support for this property is OPTIONAL. 221 Note that a resource may show more quota-used than its quota- 222 assigned appears to allow, and that quota-assigned MUST NOT be less 224 Korver Expires Jul 2003 4 226 DAV Collection Size and Quota January 2003 228 than the quota-limit. Servers which receive a request to change 229 quota-assigned to a value less than quota-limit MUST reduce quota- 230 limit to this value at the same time. 232 For many quota systems, quota-assigned is synonymous with quota- 233 limit. However, in any system, quota-limit is a hard limit. For 234 example, imagine a quota system where each collection may have a 235 quota assigned and where a resource contained in a collection is 236 subject to the quota constraints of all parent collections. Assume 237 the administrator creates a collection A and gives it a quota- 238 assigned of 1,000,000 bytes and then creates a sub-collections B 239 which is given quota-assigned of 10,000,000 bytes. In this case, 240 the quota-limit for B is 1,000,000 bytes. 242 Example PROPFIND request and response 244 Request: 246 PROPFIND /~milele/public/ HTTP/1.1 247 Depth: 0 248 Host: www.sharemation.com 249 Content-Type: text/xml 250 Content-Length: xxx 252 253 254 255 257 Response: 259 HTTP/1.1 207 Multi-Status 260 Date: Tue, 16 Oct 2001 22:13:39 GMT 261 Content-Length: xxx 262 Content-Type: text/xml; charset=UTF-8 264 265 266 267 http://www.sharemation.com/~milele/public/ 268 269 270 1000000 271 403350 272 273 HTTP/1.1 200 OK 274 275 276 278 Korver Expires Jul 2003 5 280 DAV Collection Size and Quota January 2003 282 Error reporting 284 WebDAV (RFC2518) defines the status code 507 (Insufficient Storage). 285 This status code SHOULD be used when a client request (e.g. a PUT, 286 PROPFIND, MKCOL, MOVE or COPY) is forbidden because it would exceed 287 their allotted quota. In order to differentiate the response from 288 other storage problems, the server SHOULD include an XML error body 289 as defined by DeltaV [RFC3253] with the 290 precondition tag. 292 Example error response: 294 HTTP/1.1 507 Insufficient Storage 295 Content-Length: 100 296 Content-Type: text/xml 298 299 300 301 303 Notes 305 Server implementations store and account for their data in many 306 different ways. Some of the challenges: 308 - Some server implementations find it prohibitive to count storage 309 used for metadata, others may choose to do so for better accounting. 311 - Older versions of resources may be stored as well. 313 - Variants of one resource may exist with different content lengths 315 - Content may be dynamically generated. 317 - Resource bodies can be compressed 319 - Some resources may be stored for �free�, not counting against 320 quota. 322 Since server storage accounting can vary so much, clients should 323 expect the following: 325 - The size of a file on the client�s file system, or in a PUT 326 message, may not correspond to the amount of storage required by the 327 server to store the resource. Thus, the client cannot predict with 328 100% accuracy whether a given file will be allowed given the storage 329 quota. 331 - Deleting or overwriting a resource may not free up the same 332 amount of storage as indicated by the DAV:getcontentlength property 333 defined in [RFC2518] for the resource. If deleting a resource does 334 not free up any space, the file may have been moved to a �trash� 336 Korver Expires Jul 2003 6 338 DAV Collection Size and Quota January 2003 340 folder or �recycle bin�, or retained as in versioning systems 341 [RFC3253]. 343 - The total size of a collection, DAV:quota-used-bytes, is not 344 necessarily a sum of the DAV:getcontentlength properties for 345 resources stored in the collection. 347 - On some systems where quota is counted by collection and not by 348 user, a quota on a sub-collection may be larger than the quota on 349 its parent collection that contains it. For example, the quota on 350 /~milele/ may be 100 MB, but the quota on /~milele/public/ may be 351 unlimited. This allows the space used by /~milele/public/ to be as 352 large as the quota on /~milele/ allows (depending on the other 353 contents of /~milele/) even if the quota on /~milele/ is changed. 354 Thus, even when the quota on a parent collection is changed, it is 355 not necessarily required to change the quota on every child or 356 descendant collection. 358 Security Considerations 360 A hacker may prefer to store files in collections with a large 361 quota. This isn't strictly a security concern because it doesn't 362 make it any easier to store files. On the other hand, the 363 DAV:quota-used-bytes property may make it easier to detect tampering 364 or misuse. 366 If a server chooses to make the DAV:quota-assigned-bytes writable by 367 clients with sufficient authorization, then it is opening up a 368 certain amount of near-administration functionality to clients. 369 However, it is not required for the DAV:quota-assigned-bytes 370 property to be writeable by any clients, so a server can easily 371 avoid this consideration. 373 Internationalization Considerations 375 Quota is counted in Arabic numerals expressed in strings. There are 376 no internationalization considerations. 378 IANA Considerations 380 There are no IANA considerations. 382 Intellectual Property 384 The following notice is copied from [RFC2026], and describes the 385 position of the IETF concerning intellectual property claims made 386 against this document. 388 The IETF takes no position regarding the validity or scope of any 389 intellectual property or other rights that might be claimed to 390 pertain to the implementation or use of the technology described in 391 this document or the extent to which any license under such rights 392 might or might not be available; neither does it represent that it 394 Korver Expires Jul 2003 7 396 DAV Collection Size and Quota January 2003 398 has made any effort to identify any such rights. Information on the 399 IETF's procedures with respect to rights in standards-track and 400 standards-related documentation can be found in BCP-11. Copies of 401 claims of rights made available for publication and any assurances 402 of licenses to be made available, or the result of an attempt made 403 to obtain a general license or permission for the use of such 404 proprietary rights by implementors or users of this specification 405 can be obtained from the IETF Secretariat. 407 The IETF invites any interested party to bring to its attention any 408 copyrights, patents or patent applications, or other proprietary 409 rights which may cover technology that may be required to practice 410 this standard. Please address the information to the IETF Executive 411 Director. 413 Acknowledgements 415 Jim Whitehead and Jim Luther provided valuable comments on this 416 document. 418 Korver Expires Jul 2003 8 420 DAV Collection Size and Quota January 2003 422 References 424 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 425 Requirement Levels", BCP 14, RFC 2119, March 1997. 427 [RFC2026] Bradner, S., �The Internet Standards Process � Revision 428 3�, BCP 9, RFC2026, October 1996. 430 [RFC2518] Goland, Y., Whitehead, E., Faizi, A., Carter, S., and 431 Jensen, D., "HTTP Extensions for Distributed Authoring -- 432 WebDAV", RFC2518, February 1999. 434 [RFC3010] Shepler S., B. Callaghan, D. Robinson, R. Thurlow, C. 435 Beame, M. Eisler, D. Noveck, �NFS version 4 Protocol�, RFC3010, 436 December 2000. 438 Author's Addresses 440 Brian Korver 441 Xythos Software, Inc. 442 77 Maiden Lane, Suite 200 Phone: 1-415-248-9033 443 San Francisco, CA, USA Email: briank@xythos.com 445 Lisa Dusseault 446 Xythos Software, Inc. 447 77 Maiden Lane, Suite 200 Phone: 1-415-248-9004 448 San Francisco, CA, USA Email: lisa@xythos.com 450 Clark Warner 451 Netezza Corporation 452 200 Crossing Blvd. Phone: 1-508-665-6800 x889 453 Framingham, MA 01702 Email: webdav@thewarners.com 455 Korver Expires Jul 2003 9