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

room directory does not make it clear how to find a resident server #1375

Open
richvdh opened this issue Dec 12, 2022 · 6 comments
Open

room directory does not make it clear how to find a resident server #1375

richvdh opened this issue Dec 12, 2022 · 6 comments
Labels
clarification An area where the expected behaviour is understood, but the spec could do with being more explicit

Comments

@richvdh
Copy link
Member

richvdh commented Dec 12, 2022

Link to problem area:

https://spec.matrix.org/v1.5/server-server-api/#get_matrixfederationv1publicrooms
https://spec.matrix.org/v1.5/client-server-api/#get_matrixclientv3publicrooms

Issue

Neither the C-S nor federation /publicRooms APIs make it clear if servers may return rooms that they are no longer resident in (or cannot handle a join request for some other reason).

If servers can return rooms that they are no longer resident in, how is the client supposed to join the room, given there is no server list?

@richvdh richvdh added the clarification An area where the expected behaviour is understood, but the spec could do with being more explicit label Dec 12, 2022
@MTRNord
Copy link
Contributor

MTRNord commented Dec 12, 2022

Related: should servers not able to help with joining still return that room in their roomlist?

@richvdh
Copy link
Member Author

richvdh commented Dec 12, 2022

Related: should servers not able to help with joining still return that room in their roomlist?

I don't really follow how that is different from what I said?

@MTRNord
Copy link
Contributor

MTRNord commented Dec 12, 2022

Related: should servers not able to help with joining still return that room in their roomlist?

I don't really follow how that is different from what I said?

Ah I think I miss understood yours. I read yours as questioning if there should be some way to tell clients that it is published but they need another server to join via. As in not hiding it server side but telling clients that it doesn't work. So I just misread it apparently. Sorry :)

@KitsuneRal
Copy link
Member

Would that (telling the clients how to join) amount to adding via to the fields returned in the public rooms chunk?

@richvdh
Copy link
Member Author

richvdh commented Jan 3, 2023

Would that (telling the clients how to join) amount to adding via to the fields returned in the public rooms chunk?

Probably. Though I'm not entirely sure if a server should be returning rooms it cannot handle in its room directory anyway.

@richvdh
Copy link
Member Author

richvdh commented Jan 31, 2023

To make a concrete proposal: I assert that:

  • Both /_matrix/federation/v1/publicRooms, and /_matrix/client/v3/publicRooms with an empty server, should return only rooms where the server has at least one joined member.
  • When calling /join based on the results of a /_matrix/client/v3/publicRooms call, clients should provide a via parameter matching the server parameter used with /publicRooms, if any.

If anyone would like to write that into a proper MSC, I'd be much obliged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarification An area where the expected behaviour is understood, but the spec could do with being more explicit
Projects
None yet
Development

No branches or pull requests

3 participants