dat-ecosystem-archive / DEPs

Dat Enhancement Proposals. Contains all specs for the Dat protocol, including drafts. [ DEPRECATED - see https://github.com/hypercore-protocol/hypercore-proposals for similar functionality. More info on active projects and modules at https://dat-ecosystem.org/ ]
https://dat-ecosystem.github.io/DEPs
167 stars 17 forks source link

Consider IANA registration of URI Scheme for dat? #66

Closed fred-wang closed 4 years ago

fred-wang commented 4 years ago

See https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml https://tools.ietf.org/html/rfc7595

This was suggested in order to add dat to the safelist of HTML's registerProtocolHandler(). See https://github.com/whatwg/html/pull/5482#issuecomment-618973427

pfrazee commented 4 years ago

@fred-wang After some discussion, here's what we're looking for:

There's also some interest in registering hyper+*:// for custom data-structures if possible, but we recognize that may be out of scope for the moment.

Thanks! Feel free to reach out with any followup

RangerMauve commented 4 years ago

Hey, I'd also like to introduce @cblgh from the @cabal-club group. They're built on some of the same p2p data structures as Dat, but their focus is on peer to peer chat.

They've been using cabal:// URLs for their CLI and electron apps and they've been working towards working on the web.

Would it be possible to include them on the safelist too?

cblgh commented 4 years ago

@fred-wang Hi! Cabal is basically a next-generation IRC replacement, or a peer-to-peer distributed OSS Slack. Its architecture, however, allows for any kind of application to be built ontop of it, i.e. things like a peer-to-peer Trello-equivalent or a HackMD.

In Cabal we've made use of cabal:// URIs, we call it a cabal key, since mid-2018. The cabal key identifies a particular group context; anyone who knows the cabal key is currently regarded as part of the group. (The same cabal key can also be used to view the underlying data in different ways, depending on the application i.e. one app for chat, which is our current focus, another for viewing prioritized lists).

Currently, we have support for automatically opening the Cabal Desktop app when a cabal key is clicked on. Cabal's URI scheme is similar to what dat has historically used, i.e. a 64 character long base16 identifier. See the Basic scheme below.

Basic: cabal://[0-9A-Fa-f]{64}

As part of the work we are doing with adding a subjective moderation system to Cabal, and funded by Mozilla's Fix The Internet Spring Lab, we decided on an extended scheme (inspired by & compatible with HTTP's query string). See the Extended scheme below.

Extended: cabal://[0-9A-Fa-f]{64}?<key1>=<value>&<key2>=<value>, for any amount of key-value pairs (i.e. parity with HTTP)

Let me know if you have any questions, or need any more information!

fred-wang commented 4 years ago

@cblgh Hi, thanks! Can you please take a look and indicate if that looks ok to you:

https://github.com/fred-wang/iana-uri-schemes-provisional-registration-requests/blob/master/cabal.txt

In particular, are you are fine with being listed as a change controller ("Organization or person (often the author), including contact information, authorized to change this.")?

It seems the amount of information required by IANA for provisional registration is relatively small. This section asks a bit more but old requests generally have blank or "unknown" fields. So let's see what they say...

In any case, I think it would be nice to have some kind reference link describing the Cabal URL. Do you have one?

fred-wang commented 4 years ago

@pfrazee Thank you for the feedback. Can you please check this:

https://raw.githubusercontent.com/fred-wang/iana-uri-schemes-provisional-registration-requests/master/dat.txt https://raw.githubusercontent.com/fred-wang/iana-uri-schemes-provisional-registration-requests/master/hyper.txt

I have the same question as above: are you willing to be listed as a change controller ("Organization or person (often the author), including contact information, authorized to change this.")? And for the hyper protocol, I understand this is still developed but do you have some kind of reference for hyper:// URI we can listed in the proposal?

Regarding registering a hyper+ prefix I have no idea if it is something IANA is willing to accept, I didn't see anything like this mentioned in the registration documentation nor in the existing schemes ; but I can ask IANA but it's probably better to keep this request separate for now. Similarly, it would be something new for safelisted protocols in the HTML spec, so again that would require checking with the WHATWG people.

Finally The section about names, say they should not be "general" so I wonder whether "dat" which is used as an extension for data files is going to cause any issue, but let's see...

pfrazee commented 4 years ago

@fred-wang I am willing to be listed. I think my org should be Blue Link Labs as that's the company I'm officially a part of. (Status of the Dat Foundation is in flux.)

We've put together some placeholders for the specs:

fred-wang commented 4 years ago

@pfrazee Thanks for the quick feedback. I've updated the drafts. I think IANA suggests "Organization or person" so if the status of Dat Foundation is still in flux, I guess it makes sense to list you as "person". You'd be able to update this contact later if necessary.

pfrazee commented 4 years ago

That's fine with me

On Wed, May 13, 2020 at 11:11 AM Frédéric Wang notifications@github.com wrote:

@pfrazee https://github.com/pfrazee Thanks for the quick feedback. I've updated the drafts. I think IANA suggests "Organization or person" so if the status of Dat Foundation is still in flux, I guess it makes sense to list you as "person". You'd be able to update this contact later if necessary.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/datprotocol/DEPs/issues/66#issuecomment-628092917, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWCU6UDVCDSRJU6LLRLXTRRLBE5ANCNFSM4MQFD5BA .

cblgh commented 4 years ago

@fred-wang thanks for getting back to us! I put together the URI spec, see below.

I'm fine with being listed as the change controller; you may use cabal@cblgh.org as the mailing address :)

Cabal URI specification: https://github.com/cabal-club/cabal-URI

fred-wang commented 4 years ago

@cblgh Thanks, updated!

I think I have all the info needed to proceed to the application now.

cblgh commented 4 years ago

@fred-wang great! thank you for doing this, i think it's appreciated across the board by all of the projects involved ^_^

fred-wang commented 4 years ago

Requests sent yesterday and accepted. dat, hyper and cabal are now registered at IANA: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml

pfrazee commented 4 years ago

Thanks Fred!

On May 14, 2020, at 11:19 PM, Frédéric Wang notifications@github.com wrote:

 Closed #66.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

RangerMauve commented 4 years ago

Awesome, thank you for getting all this together @fred-wang! 💜