You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matrix-spec-proposals/proposals/4367-public-rooms-via.md

3.1 KiB

MSC4367: via routes in the published room directory

The published room directory allows clients to discover rooms on their own or other homeservers. Naturally, clients will want to join rooms found in the directory which requires knowledge of a resident server to facilitate the join. The spec doesn't make it clear how to find such a server, however.

To begin with, it is unclear whether the endpoints for listing a server's directory may return rooms that the server is not joined to. Additionally, there is no recommendation on what via parameter clients should use when attempting to join rooms found in the directory. As a result, clients can end up browsing published rooms without being able to join them.1

This proposal addresses the situation by adding via values in the room directory responses.

Proposal

Servers MAY include rooms that they are not joined to in responses returned by the following endpoints:

To help clients join such rooms, a new required property via is added on the PublishedRoomsChunk returned by the above endpoints.

{
  "chunk": [
    {
      "avatar_url": "mxc://bleecker.street/CHEDDARandBRIE",
      "room_id": "!ol19s:bleecker.street",
      "via": [ "bleecker.street" ],
      ...
    }
  ]
}

Servers MUST populate via with at least one resident server of the room or, if they cannot determine any, omit the room from their response.

Clients SHOULD include the values provided in via when subsequently joining rooms with POST /_matrix/client/v3/join/{roomIdOrAlias}.

Together, the changes above increase the chances that clients can actually join rooms found in the directory.

Potential issues

None.

Alternatives

MSC4366 deals with the same problem by forbidding unroutable rooms from the local directory. This is only a partial solution, however.

Security considerations

None.

Unstable prefix

While this MSC is not considered stable, via should be referred to as org.matrix.msc4367.via.

Dependencies

None.


  1. These issues were initially raised in https://github.com/matrix-org/matrix-spec/issues/1375. ↩︎