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

Generic pubsub over Matrix - room participant privacy? #249

Open
jfrederickson opened this issue Jul 14, 2017 · 12 comments
Open

Generic pubsub over Matrix - room participant privacy? #249

jfrederickson opened this issue Jul 14, 2017 · 12 comments
Labels
A-Client-Server Issues affecting the CS API feature Suggestion for a significant extension which needs considerable consideration

Comments

@jfrederickson
Copy link

I was thinking about using Matrix as a generic pubsub mechanism, and I realized that the only required change would be the ability for rooms to not publish their participants in the room state. After doing so, users could "subscribe" to such a room by simply joining it.

So for example, users of an RSS-like application over Matrix could join a room for each blog, and their reader would receive updates as new posts are made and published to any of those Matrix rooms.

I haven't yet thought about what this would actually look like in the spec in much detail, but what do you guys think?

@t3chguy
Copy link
Member

t3chguy commented Aug 28, 2017

how would it work in regards to federation and access control?

@jfrederickson
Copy link
Author

Yeah, that's tricky - for a server to know who's allowed to change room state, it has to know which users have which power levels... hmm.

In the case of a room with hidden participants, would it make sense to have an "unknown users" option in the room permissions? So for example:

"Unknown users have power level: <dropdown, default=-1>"

-1 seems like a sane default here for spam reasons; you can't proactively ban people if you don't know where they're coming from. But essentially, most users in the room would be hidden, but you'd be able to see users with higher power levels so homeservers can handle permissions properly.

@NotAFile
Copy link

Is this not implemented yet with the "guests" feature? I guess that's pull though, not push.

@jfrederickson
Copy link
Author

Guests are treated as normal users - while it's possible to join a room as a guest, all those users are still visible in the room. This suggestion is sort of the opposite, i.e. you could join the room with your normal user account, just most users in the room wouldn't be visible.

@t3chguy
Copy link
Member

t3chguy commented Sep 18, 2017

So peeking
But it doesn't work over federation
And then there's no access control

@NotAFile
Copy link

Well, I think it's fine to not have access control for many of the use cases. The question is rather how the hs can push updates to other hs if it doesn't know who is subscribing.

@richvdh richvdh added the feature Suggestion for a significant extension which needs considerable consideration label Oct 16, 2017
@non-Jedi
Copy link
Contributor

non-Jedi commented Apr 9, 2018

#119 is related I think. Also https://github.com/matrix-org/matrix-doc/issues/597 when combined with peeking.

@turt2live
Copy link
Member

also related (if implemented at the spec level): https://github.com/vector-im/riot-web/issues/6417

@vibl
Copy link

vibl commented Aug 14, 2022

This feature has been mentioned in several issues and discussions:

It seems to interest quite a few people, according to the "thumbs up" on these threads.

Is there any way it could be included in the roadmap?

FWIW, it's implemented in Rocket.Chat (they call it "broadcast channels"): https://docs.rocket.chat/guides/user-guides/rooms/channels/create-a-new-channel

@shukon
Copy link

shukon commented Aug 24, 2022

Couldn't the federation be handled in a way that all users allowed to write in the channel (e.g. mods / admins / whatever bot is used for pubsub) share the room over federation with a full membership list (to know where to send the messages)?
All other users cannot send events, but simply read them and therefore don't need the membership list. There is no need to send the membership-list to participating servers with only read-only participants and no need to send it to the clients of read-only participants.
The easiest way might be to send a truncated membership-list to read-only participants with only the mods/admins (those with the full room state) and themselves. Whenever a read-only participant is promoted, they can be filled in with the rest of the room state.

@MurzNN
Copy link
Contributor

MurzNN commented Mar 13, 2023

We already have a guest access feature to rooms in Matrix, maybe we can just use this feature to make such rooms? So, we can view the contents of a public room anonymously, like in view.matrix.org - https://view.matrix.org/room/!OGEhHVWSdvArJzumhm:matrix.org/ and even via Element - https://app.element.io/#/room/#matrix:matrix.org

So, all that we need is to "pin" this guest room to the list of rooms on the client side (via storing it in User Data, maybe even encrypted), and periodically "ping" the room for updates. What do you think about this idea?

@t3chguy
Copy link
Member

t3chguy commented Mar 13, 2023

@MurzNN that's matrix-org/matrix-spec-proposals#2753 - though keep in mind peeking (like view.matrix.org does) cannot be used for the pub part of pubsub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Client-Server Issues affecting the CS API feature Suggestion for a significant extension which needs considerable consideration
Projects
None yet
Development

No branches or pull requests

9 participants