Add join_rules to room chunks returned on a public room dir query

pull/977/head
Andrew Morgan 4 years ago
parent 7dcff8f2e1
commit 42e01b8e91

@ -315,6 +315,41 @@ Response:
}
```
### Changes regarding the Public Rooms Directory
A problem arises for discovery of knockable rooms. Ideally one wouldn't have
to send their colleagues a room ID for a room that they need to knock on. One
of these methods for room discovery is the public rooms directory, which
allows us to explore a list of rooms we may be able to join.
The spec does not prevent us from adding rooms with 'knock' join_rules to the
public rooms directory. However, there is a problem in that a user attempting
to join a room in the directory will not know whether to directly attempt a
join, or to knock first. The current content of a `PublicRoomsChunk` does not
contain this information:
```json
{
"aliases": [
"#murrays:cheese.bar"
],
"avatar_url": "mxc://bleeker.street/CHEDDARandBRIE",
"guest_can_join": false,
"name": "CHEESE",
"num_joined_members": 37,
"room_id": "!ol19s:bleecker.street",
"topic": "Tasty tasty cheese",
"world_readable": true
}
```
Therefore this proposal adds `join_rule` as a new, required field to a
`PublicRoomsChunk`. The `join_rule` of knockable rooms will be `knock`, thus
giving clients the information they need to know how to attempt entry of
a room when a client selects it, as well as allowing clients to display
knockable rooms differently than publicly joinable ones.
## Server-Server API
Similarly to join and leave over federation, a ping-pong game with two new
endpoints is introduced: `make_knock` and `send_knock`. Both endpoints must

Loading…
Cancel
Save