element-hq / element-hq/synapse
Shutdown room API should somehow indicate to other homeservers that a content violation has occurred
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
This issue has been migrated from [#2692](https://github.com/matrix-org/synapse/issues/2692).
---
Currently the API successfully blocks the room for anyone on the homeserver, and anyone who attempts to join via the homeserver, however it does not tell other homeservers in the room about the room shutdown.
Where possible, the user creating the notification room could join and send some kind of `m.content.abuse` event before leaving again. Considering it can't really take over the room, this may be the best bet for other homeservers to be aware of what happened for at least public rooms.
Another option is some kind of federation-level API where a homeserver can communicate what it did (ie: "I shut down this room for "). This would leave the homeserver to decide what to do about it, if anything.
This is more of a concern for bots like voyager, where they end up remaining in the room with no knowledge of what is going on in the room. All it sees is an evacuation of the room, but it has no idea why. Some kind of flag to say "hey, this room has some bad content in it" would help voyager make the decision to automatically flag the room for review, ending in the room being purged from the graph.
Other homeservers may wish to make use of this for the purposes of also shutting the room down on their end, in the event that the room is still active for their users.
Contributor guide
Research direction
Start by reviewing the existing shutdown room API and the proposed federation-level API. Compare notifying other homeservers with sending an m.content.abuse event from the notification room. Done means other homeservers can learn that a room was shut down for a content violation and can decide how to respond.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design, distributed-systems, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100