Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider IANA registration of URI Scheme for dat? #66

Closed
fred-wang opened this issue Apr 24, 2020 · 14 comments
Closed

Consider IANA registration of URI Scheme for dat? #66

fred-wang opened this issue Apr 24, 2020 · 14 comments

Comments

@fred-wang
Copy link

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 whatwg/html#5482 (comment)

@pfrazee
Copy link
Contributor

pfrazee commented May 12, 2020

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

  • hyper:// for the Hypercore Protocol, which is the new (soon to be current) protocol
  • dat:// for the Dat Protocol, which will soon be legacy but has some existing implementations worth supporting

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
Copy link
Contributor

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
Copy link

cblgh commented May 13, 2020

@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
Copy link
Author

@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
Copy link
Author

@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
Copy link
Contributor

pfrazee commented May 13, 2020

@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 added a commit to fred-wang/iana-uri-schemes-provisional-registration-requests that referenced this issue May 13, 2020
@fred-wang
Copy link
Author

@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
Copy link
Contributor

pfrazee commented May 13, 2020 via email

@cblgh
Copy link

cblgh commented May 13, 2020

@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 added a commit to fred-wang/iana-uri-schemes-provisional-registration-requests that referenced this issue May 14, 2020
@fred-wang
Copy link
Author

@cblgh Thanks, updated!

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

@cblgh
Copy link

cblgh commented May 14, 2020

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

@fred-wang
Copy link
Author

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
Copy link
Contributor

pfrazee commented May 15, 2020 via email

@RangerMauve
Copy link
Contributor

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants