ssbc / ssb-uri-spec

Specification of SSB URIs
16 stars 1 forks source link

Add links that are clearly pointing at a group? #18

Closed Powersource closed 1 year ago

Powersource commented 2 years ago

Followup discussion from https://github.com/ssbc/ssb-uri-spec/pull/17

There we added support for ssb:message/cloaked/<KEY>. That has a code smell though

The <KEY> thing adds an edge case for message links. With this you won't be able to just go "ah it's a message i'll go to the <MSGID> then"

@staltz suggested we might add ssb:identity/group/<KEY>

Powersource commented 2 years ago

@mixmix @arj03

Powersource commented 2 years ago

@staltz said

I'll merge because BFE is already published and in production with cloaked, but let's keep talking about the alternative URI.

but is cloaked actually in production yet? does anyone use that? The only ones who have used cloaked is tribes which is used by ahau but they don't use bfe right?

staltz commented 2 years ago

Ahau most likely uses the cloaked BFE. I think it's used here https://github.com/ssbc/envelope-js/blob/61c609f8ba76c456c43d8c187cd6998c250853f5/util/cipherlink.js but @mixmix probably knows more details than I do.

Powersource commented 2 years ago

anyone against me adding a URI format that looks like this ssb:identity/group/<KEY> that I then add to the private groups spec (v2 https://github.com/ssbc/private-group-spec/pull/18 ) ? As well as I guess bfe. Essentially sort of deprecating ssb:message/cloaked/asdf uris (not removing support but moving away from using them).

staltz commented 2 years ago

I support it, but I think we need to get consensus on this one, so @mixmix + @arj03.

arj03 commented 2 years ago

I guess so, but could we at least name it ssb:identity/private-group/<KEY>? And to understand, this is when we name a group like in recps? Are there other use cases than recps?

staltz commented 2 years ago

Maybe there are other use cases, like mentioning a group by its ID in a public post. Or referring to the group in some URL-to-SSBURI link (similar to aliases).

Powersource commented 1 year ago

Realizing that feed links will look something like ssb:feed/bendy-butt/asdf... makes me feel like it's a bit futile in making links make sense. But I guess after fusion identity those links might look better too :thinking:

mixmix commented 1 year ago

I think this is a good idea. Ahau does use bfe, but I don't think cloaked ids are current used to calculate anything.

Hmmm, rid isn't something I can check comprehensively at 11pm. Let's assume this is a yes and tmrw i need to check all modules.

Powersource commented 1 year ago

@mixmix the proposal now was

anyone against me adding a URI format that looks like this ssb:identity/group/

but deprecating the weird bfe cloaked thing too is healthy imo

staltz commented 1 year ago

There's also a subdiscussion here, which is:

I personally prefer the 1st option, because we don't have any other concept of a "group" that would compete with the usage of this word. Like assuming that the only pet in the house is the cat, you don't have to say "the pet cat", you can just say "the pet".

But I can be convinced of the 2nd option too.

mixmix commented 1 year ago

My vote it for (1) ssb:identity/group/<KEY>

if we want public group I think making that ssb:identity/public-group/<KEY> is fine. The default of a group is private


@Powersource I wouldn't say we're deprecating cloaked BFE, there are still use cases for that. But not for the use case of groupId. That specific usage is to be deprecated - so a breaking change for the private-group-spec which defines groupId.

mixmix commented 1 year ago

module review

Copying from Signal

have reviewed modules, I think changing groupId > URI is a great idea and looks safe.

Modules on my computer which are effected:

[
  'envelope-js',
  'private-group-spec',
  'private-subgroup-spec',
  'ssb-bfe-spec',
  'ssb-box2',
  'ssb-crut',
  'ssb-keyring'
  'ssb-meta-feed-group-spec',
  'ssb-meta-feeds',
  'ssb-ref',
  'ssb-tribes2'
]

These Ahau modules may need fixing:

{
  'ahau-fixtures',
  'ssb-profile',
  'ssb-tribes-registration',
  'ssb-crut',
  'ahau-db-analysis',
  '@ssb-graphql/story',
  '@ssb-graphql/tribes',
  '@ssb-graphql/main',
  '@ssb-graphql/whakapapa',
  '@ssb-graphql/profile',
  'ssb-keyring',
  'ssb-ahau'
}

for reference, here's the ripgrep command I used:

rg -e '(groupId|cloak)' -g '!**/test/**' -g '!ahau/**' -g '!*.md' -l

ignore tests, ignore the ahau repo, ignore markdown files

staltz commented 1 year ago

@arj03 Can we go with ssb:identity/group/__? Or can you share your thoughts on your preference for ssb:identity/private-group/__?

arj03 commented 1 year ago

Fine by me

Powersource commented 1 year ago

pr in bfe spec https://github.com/ssbc/ssb-bfe-spec/pull/26

Powersource commented 1 year ago

pr in uri spec https://github.com/ssbc/ssb-uri-spec/pull/20

Powersource commented 1 year ago

pr in uri2 https://github.com/ssbc/ssb-uri2/pull/17