jcoglan / restore

Simple remoteStorage server written in Node.js
293 stars 27 forks source link

reStore not compatible with draft-05 #35

Open untitaker opened 9 years ago

untitaker commented 9 years ago

The folder listing in draft-05 looks like this:

{
    "@context": "http://remotestorage.io/spec/folder-description",
        "items": {
            "abc": {
                "ETag": "DEADBEEFDEADBEEFDEADBEEF",
                "Content-Type": "image/jpeg",
                "Content-Length": 82352
            }
        }
}

Your server responds with this:

{"abc": "DEADBEEFDEADBEEFDEADBEEF"}
jcoglan commented 9 years ago

Could you clarify what you're identifying as the problem here? reStore as master (which will shortly be released) returns this in its WebFinger response:

$ curl -sk https://local.dev/.well-known/webfinger?resource=acct:jcoglan@local.dev
{
  "links": [
    {
      "href": "https://local.dev/storage/jcoglan",
      "rel": "remotestorage",
      "type": "draft-dejong-remotestorage-01",
      "properties": {
        "auth-method": "http://tools.ietf.org/html/rfc6749#section-4.2",
        "auth-endpoint": "https://local.dev/oauth/jcoglan",
        "http://remotestorage.io/spec/version": "draft-dejong-remotestorage-01",
        "http://tools.ietf.org/html/rfc6750#section-2.3": true,
        "http://tools.ietf.org/html/rfc6749#section-4.2": "https://local.dev/oauth/jcoglan"
      }
    }
  ]
}

(This is not a strict draft-dejong-remotestorage-01 response, it also contains items from other versions for compatibility, but the model implemented by the module as a whole is that of draft-dejong-remotestorage-01.)

The folder listing response is consistent with draft-dejong-remotestorage-01. Changing the folder listing would require migrating to draft-dejong-remotestorage-02 or above, which requires changes to the other protocol endpoints and the storage engine itself, including code to migrate data from existing installations.

So, are you implicitly asking to upgrade beyond draft-dejong-remotestorage-01, or just to change this endpoint?

untitaker commented 9 years ago

Hello James, thank you for your answer.

Sorry for the confusion, yes, basically I'm asking for an upgrade far beyond 02, ideally to 05. I have only begun implementing the latest draft-05 where the spec version isn't exposed by the server as far as I can see. Currently I'm parsing the webfinger rel rather sloppily, out of tolerance for bugs.

I didn't think there would be that many concerns or guarantees regarding backwards compatibility since RS is still being drafted, but I'm also rather new to this standard and wouldn't know any better.

On 23 August 2015 22:47:47 CEST, James Coglan notifications@github.com wrote:

Could you clarify what you're identifying as the problem here? reStore as master (which will shortly be released) returns this in its WebFinger response:

$ curl -sk
https://local.dev/.well-known/webfinger?resource=acct:jcoglan@local.dev
{
 "links": [
   {
     "href": "https://local.dev/storage/jcoglan",
     "rel": "remotestorage",
     "type": "draft-dejong-remotestorage-01",
     "properties": {
      "auth-method": "http://tools.ietf.org/html/rfc6749#section-4.2",
       "auth-endpoint": "https://local.dev/oauth/jcoglan",
"http://remotestorage.io/spec/version":
"draft-dejong-remotestorage-01",
       "http://tools.ietf.org/html/rfc6750#section-2.3": true,
"http://tools.ietf.org/html/rfc6749#section-4.2":
"https://local.dev/oauth/jcoglan"
     }
   }
 ]
}

(This is not a strict draft-dejong-remotestorage-01 response, it also contains items from other versions for compatibility, but the model implemented by the module as a whole is that of draft-dejong-remotestorage-01.)

The folder listing response is consistent with draft-dejong-remotestorage-01. Changing the folder listing would require migrating to draft-dejong-remotestorage-02 or above, which requires changes to the other protocol endpoints and the storage engine itself, including code to migrate data from existing installations.

So, are you implicitly asking to upgrade beyond draft-dejong-remotestorage-01, or just to change this endpoint?


Reply to this email directly or view it on GitHub: https://github.com/jcoglan/restore/issues/35#issuecomment-133930524

Sent from my phone. Please excuse my brevity.

raucao commented 9 years ago

The listing format changed in -02 iirc. In theory, spec versions < -03 are deprecated already, but in the real world server implementations always lagged behind a bit. At @5apps, we're still on -02 for example.

If you're implementing a new client, I don't think it makes sense to support anything below -02 though, because that's where the last breaking changes happened and the following versions just added some features and clarifications which by themselves don't break clients.

Edit: see also this comment, @untitaker: https://github.com/jcoglan/restore/issues/34#issuecomment-133941405 -- maybe if @jcoglan could put some notes about the ideas somewhere, other people could join the effort?

untitaker commented 9 years ago

I'd be interested as well in those ideas, but for now @jcoglan would you accept a minimal patch that updates reStore to draft-05?