@@ -269,8 +269,9 @@ Internet-Draft remoteStorage November 2015
269269 would not be identical byte-for-byte.
270270
271271 Servers MAY support Content-Range headers [RANGE] on GET requests,
272- but whether or not they do SHOULD be announced through the <ranges>
273- variable mentioned below in section 10.
272+ but whether or not they do SHOULD be announced both through the
273+ "http://tools.ietf.org/html/rfc7233" option mentioned below in
274+ section 10 and through the HTTP 'Accept-Ranges' response header.
274275
275276 A successful PUT request to a document MUST result in:
276277
@@ -297,14 +298,14 @@ Internet-Draft remoteStorage November 2015
297298 A successful DELETE request to a document MUST result in:
298299
299300 * the deletion of that document from the storage, and from its
300- parent folder,
301301
302302
303303de Jong [Page 6]
304304
305305Internet-Draft remoteStorage November 2015
306306
307307
308+ parent folder,
308309 * silent deletion of the parent folder if it is left empty by
309310 this, and so on for further ancestor folders,
310311 * the version of its parent folder being updated, as well as that
@@ -347,14 +348,14 @@ Internet-Draft remoteStorage November 2015
347348 * 507 in case the account is over its storage quota,
348349 * 4xx for all malformed requests, e.g. reserved characters in the
349350 path [URI, section 2.2], as well as for all PUT and DELETE
350- requests to folders,
351351
352352
353353de Jong [Page 7]
354354
355355Internet-Draft remoteStorage November 2015
356356
357357
358+ requests to folders,
358359 * 2xx for all successful requests.
359360
360361 Clients SHOULD also handle the case where a response takes too long
@@ -399,12 +400,12 @@ Internet-Draft remoteStorage November 2015
399400 reply to preflight OPTIONS requests as per CORS.
400401
401402
402-
403403de Jong [Page 8]
404404
405405Internet-Draft remoteStorage November 2015
406406
407407
408+
4084098. Session description
409410
410411 The information that a client needs to receive in order to be able
@@ -449,12 +450,12 @@ Internet-Draft remoteStorage November 2015
449450 with each access scope representing the following permissions:
450451
451452
452-
453453de Jong [Page 9]
454454
455455Internet-Draft remoteStorage November 2015
456456
457457
458+
458459 '*:rw') any request,
459460
460461 '*:r') any GET or HEAD request,
@@ -497,14 +498,14 @@ Internet-Draft remoteStorage November 2015
497498 "http://remotestorage.io/spec/version": <storage_api>,
498499 "http://tools.ietf.org/html/rfc6749#section-4.2": <auth-dialog>,
499500 "...": "...",
500- }
501501
502502
503503de Jong [Page 10]
504504
505505Internet-Draft remoteStorage November 2015
506506
507507
508+ }
508509 }
509510
510511 A common way of identifying persons as <user> at <host> is through a
@@ -547,14 +548,14 @@ Internet-Draft remoteStorage November 2015
547548 (e.g. retrieve the protected resource asynchronously in the first
548549 case, or request the entire resource in the second case).
549550
550- A "http://remotestorage.io/spec/web-authoring" property has been
551551
552552
553553de Jong [Page 11]
554554
555555Internet-Draft remoteStorage November 2015
556556
557557
558+ A "http://remotestorage.io/spec/web-authoring" property has been
558559 proposed with a string value of the fully qualified domain name to
559560 which web authoring content is published if the server supports web
560561 authoring as per [AUTHORING]. Note that this extension is a breaking
@@ -599,12 +600,12 @@ Internet-Draft remoteStorage November 2015
599600 information.
600601
601602
602-
603603de Jong [Page 12]
604604
605605Internet-Draft remoteStorage November 2015
606606
607607
608+
608609 If no access_token was given, then the application SHOULD also
609610 extract the <auth_endpoint> information from WebFinger, and continue
610611 as per application-first bearer token issuance.
@@ -647,14 +648,14 @@ g.com HTTP/1.1
647648
648649 HTTP/1.1 200 OK
649650 Access-Control-Allow-Origin: *
650- Content-Type: application/jrd+json
651651
652652
653653de Jong [Page 13]
654654
655655Internet-Draft remoteStorage November 2015
656656
657657
658+ Content-Type: application/jrd+json
658659
659660 {
660661 "links":[{
@@ -697,14 +698,14 @@ unhosted.5apps.com&response_type=token HTTP/1.1
697698 HTTP/1.1 200 OK
698699
699700 <!DOCTYPE html>
700- <html lang="en">
701701
702702
703703de Jong [Page 14]
704704
705705Internet-Draft remoteStorage November 2015
706706
707707
708+ <html lang="en">
708709 <head>
709710 <title>Allow access?</title>
710711 ...
@@ -747,14 +748,14 @@ low
747748 Access-Control-Request-Headers: Authorization
748749 Referer: https://drinks-unhosted.5apps.com/
749750
750- To which the server can for instance respond:
751751
752752
753753de Jong [Page 15]
754754
755755Internet-Draft remoteStorage November 2015
756756
757757
758+ To which the server can for instance respond:
758759
759760 HTTP/1.1 200 OK
760761 Access-Control-Allow-Origin: https://drinks-unhosted.5apps.com
@@ -797,14 +798,14 @@ ntent-Type, Origin, X-Requested-With, If-Match, If-None-Match
797798 Authorization: Bearer j2YnGtXjzzzHNjkd1CJxoQubA1o=
798799 Content-Type: application/json; charset=UTF-8
799800 Referer: https://drinks-unhosted.5apps.com/
800- If-Match: "1382694045000"
801801
802802
803803de Jong [Page 16]
804804
805805Internet-Draft remoteStorage November 2015
806806
807807
808+ If-Match: "1382694045000"
808809
809810 {"name":"test", "updated":true, "@context":"http://remotestorag\
810811e.io/spec/modules/myfavoritedrinks/drink"}
@@ -847,14 +848,14 @@ ge.io/spec/modules/myfavoritedrinks/drink"}
847848
848849 If the GET URL would have been "/storage/michiel/myfavoritedrinks/",
849850 a 200 OK response would have a folder description as the response
850- body:
851851
852852
853853de Jong [Page 17]
854854
855855Internet-Draft remoteStorage November 2015
856856
857857
858+ body:
858859
859860 HTTP/1.1 200 OK
860861 Access-Control-Allow-Origin: https://drinks-unhosted.5apps.com
@@ -897,14 +898,14 @@ charset=UTF-8","Content-Length":106}}}
897898 This section is non-normative, and is intended to explain some of
898899 the design choices concerning ETags and folder listings. At the
899900 same time it will hopefully help readers who intend to develop an
900- application that uses remoteStorage as its per-user data storage.
901901
902902
903903de Jong [Page 18]
904904
905905Internet-Draft remoteStorage November 2015
906906
907907
908+ application that uses remoteStorage as its per-user data storage.
908909 When multiple clients have read/write access to the same document,
909910 versioning conflicts may occur. For instance, client A may make
910911 a PUT request that changes the document from version 1 to version
@@ -949,12 +950,12 @@ Internet-Draft remoteStorage November 2015
949950 caused the root folder's ETag to change.
950951
951952
952-
953953de Jong [Page 19]
954954
955955Internet-Draft remoteStorage November 2015
956956
957957
958+
958959 Note that the remoteStorage server does not get involved in the
959960 conflict resolution. It keeps the canonical current version at all
960961 times, and allows clients to make conditional GET and PUT requests,
@@ -997,14 +998,14 @@ Internet-Draft remoteStorage November 2015
997998 attempt to guess the location of such documents.
998999
9991000 The server SHOULD also detect and stop denial-of-service attacks
1000- that aim to overwhelm its interface with too much traffic.
10011001
10021002
10031003de Jong [Page 20]
10041004
10051005Internet-Draft remoteStorage November 2015
10061006
10071007
1008+ that aim to overwhelm its interface with too much traffic.
10081009
1009101015. IANA Considerations
10101011
@@ -1049,12 +1050,12 @@ Internet-Draft remoteStorage November 2015
10491050 "WebFinger", RFC7033, September 2013.
10501051
10511052
1052-
10531053de Jong [Page 21]
10541054
10551055Internet-Draft remoteStorage November 2015
10561056
10571057
1058+
10581059 [OAUTH]
10591060 "Section 4.2: Implicit Grant", in: Hardt, D. (ed), "The OAuth
10601061 2.0 Authorization Framework", RFC6749, October 2012.
@@ -1097,14 +1098,14 @@ Internet-Draft remoteStorage November 2015
10971098 [MANIFEST]
10981099 Mozilla Developer Network (ed), "App manifest -- Revision
10991100 330541", https://developer.mozilla.org/en-
1100- US/Apps/Build/Manifest$revision/566677, April 2014.
11011101
11021102
11031103de Jong [Page 22]
11041104
11051105Internet-Draft remoteStorage November 2015
11061106
11071107
1108+ US/Apps/Build/Manifest$revision/566677, April 2014.
11081109
11091110 [DATASTORE]
11101111 "WebAPI/DataStore", MozillaWiki, retrieved May 2014.
@@ -1149,5 +1150,4 @@ Internet-Draft remoteStorage November 2015
11491150
11501151
11511152
1152-
11531153de Jong [Page 23]
0 commit comments