When a user is invited to a room, that user receives some state to help them identify the room while their invite is pending. For example, sending the room's name and avatar will allow that user's client to display an invite with a room's name and avatar in their room list (rather than just the ID of the room they were invited to). Additional state that is recommended to send is a canonical alias, the room's encryption state and the room's join rule.
The room_invites_state_types config option in Synapse allows the sysadmin to control which state events are sent during this process. While it may at first seem unclear as to why this should be configurable, a justification lies in the PR that introduced it, #598, and a JIRA bug that it links to.
TL;DR This was an easy way for users to get arbitrary state from a room when they were invited. Peeking over federation could be used as an alternative solution here - and one that may be viable soon - but wasn't there yet.
Removing options from this list could result in poor UX in clients of users that have been invited to the room. I'm wondering if:
- The ability to specify arbitrary state here is actually useful to anyone. Is anyone actually changing this option?
- If so, is peeking over federation a better alternative when it lands?
This originally came up during a discussion for the knocking implementation, which has a similar feature of sending limited room state to users that knock on a room they are not in.