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

Ability for server admins to write-to-all (aka WALL, broadcast) to users on their server #216

Open
ara4n opened this issue Dec 6, 2016 · 17 comments
Labels
A-Client-Server Issues affecting the CS API feature Suggestion for a significant extension which needs considerable consideration

Comments

@ara4n
Copy link
Member

ara4n commented Dec 6, 2016

We have some bugs which touch on this: #67 and possibly matrix-org/synapse#1286.

Filing as a spec bug as we should probably recommend the best way to do this. Options are:

  • Force-join users to a read-only broadcast room on the server (on demand?) - possibly using Groups? or just as special cased behaviour on the server or an AS?
  • Maintain a tonne of 1:1s between server admins & users, with some kind of way to help the server admins manage the resulting mess. Gives option for 2-way discussion though.
  • Use to_device messages?
  • ...?
@Ezwen
Copy link

Ezwen commented Feb 23, 2018

Option 2 seems better than Option 1, as it would avoid disclosing the list of all users of the server, to each user of the server.

Anyway, would love to see this feature to be able to broadcast planned downtimes to users :)

@KitsuneRal
Copy link
Member

Regarding specifically planned downtimes - I'd rather recommend using a separate room for that (with force-joining but otherwise a usual room). Then people who don't care so much would be able to unsubscribe from the room.
As for completely out-of-band WALL-style cases - I'd say that to_device is a waste for that. Probably a special kind of a room would be good, one that doesn't share its m.room.member and probably some other types of events (addressing @gwend4l's concern above and also maaassively reducing /sync payloads for such room). 2-way discussion is a completely separate thing from WALL and should be established separately (a @support: or @admin: user account immediately comes to mind). Very few people actually have something to say to admins, even fewer have something useful.

@ghost
Copy link

ghost commented Feb 24, 2018

I'd say go with a special room. The room can be "fake" i.e. not actually backed by a DAG but supporting all the necessary client-side endpoints. This also opens the way to all kinds of special semantics, including hiding the user list and directing any talkback to the server admin (only), if so desired.

@vsund
Copy link

vsund commented Feb 24, 2018

Regarding specifically planned downtimes - I'd rather recommend using a separate room for that (with force-joining but otherwise a usual room). Then people who don't care so much would be able to unsubscribe from the room.

@KitsuneRal Would this result in a public list with all members? At least for my usecase I'd like to avoid this :)

@KitsuneRal
Copy link
Member

@vsund - you're right, and this probably makes a case for a special kind of room, one tailored for broadcasting from a small group of authors ("publishers" or "administrators") to many readers ("subscribers" or "audience"). If I don't mistake, this format is quite popular in Telegram, by the way. Such room would notably hide users from each other, while still providing proof of identity of those who publish in it.

As an afterthought - "official accounts" for brands could also be established using this kind of rooms, with potentially millions of subscribers reading the messages without having to cope with room states of tremendous size at least on the client side.

@Half-Shot
Copy link
Contributor

Honestly I'd prefer to keep it short and simple and have a broadcast room, and then just have a discussion room for those that want to discuss anything. The vast majority will ignore your message anyway, and even less will want to reply. Those that do can use a dedicated announcement-discussion channel.

@turt2live turt2live added the feature Suggestion for a significant extension which needs considerable consideration label Jul 19, 2018
@Half-Shot
Copy link
Contributor

This is vastly easier now we have System Alert rooms?

@turt2live
Copy link
Member

The proposal is here, and not yet merged or approved: matrix-org/matrix-spec-proposals#1452

@turt2live turt2live added the A-Client-Server Issues affecting the CS API label Feb 6, 2019
@uhoreg
Copy link
Member

uhoreg commented Aug 21, 2019

Is this fixed by system alerts now?

@turt2live
Copy link
Member

System alerts are not in the spec to the capability this requires.

@wioxjk
Copy link

wioxjk commented Jul 2, 2020

What is the status of this?

@KeenMaron
Copy link

Hi!
Any updates? :)

@vzool

This comment was marked as spam.

@richvdh richvdh transferred this issue from matrix-org/matrix-spec-proposals Mar 1, 2022
@Saiv46
Copy link

Saiv46 commented Mar 16, 2022

I think there's more clean solution to that... How about RSS?

Server can expose GET /_matrix/client/v3/feed API, which responses with:

{
  "chat": "<discussion-room-id>",
  "url": "https://<server-name>/path/to/feed.xml",
  "creator": "<admin-id>",
  "name": "<channel-name>"
}

(All parameters are optional)

@Saiv46
Copy link

Saiv46 commented Mar 16, 2022

Unfortunately, full-pledge channels are not implemented yet in Matrix, so there's easier-to-implement solution which:

+ Respects privacy (RSS can't track whatever post you're reading)
+ Easily cachable (both the API response and RSS feed)
- Don't have subscriber/view count
- There's no built-in tools to maintain RSS feed

@wioxjk
Copy link

wioxjk commented Mar 17, 2022

I may be stupid, but does'nt that require users to follow the RSS-feed manually instead of admins being able to "push out" the notification?
@Saiv46

@Saiv46
Copy link

Saiv46 commented Aug 4, 2022

Sorry for absence, here I answer the question

I may be stupid, but does'nt that require users to follow the RSS-feed manually instead of admins being able to "push out" the notification?

@wioxjk I think Matrix protocol should handle messages only, while channels (basically RSS-feeds) should be implemented by Matrix clients as something distinguishable (other we get a mess just like in Telegram/Whatsapp/etc).

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