MSC4497: Filter state events by type in /state endpoint#4497
Conversation
There was a problem hiding this comment.
Implementation requirements:
- Client (using)
- Server (serving)
There was a problem hiding this comment.
Will a reverse proxy based server implementation suffice for this MSC? I am personally not very familiar with the codebase of any major server implementation, so contributing to them would be difficult.
The limitation proxy would have here is the loss of the database efficiency angle, since a homeserver would need to still load all states.
There was a problem hiding this comment.
Implementations don't need to be done by the MSC author. For an MSC like this we're primarily looking for evidence that a use case exists and that this MSC fulfills that. This ideally means that multiple clients require support for the feature, and at least one adds support for it. A proper server implementation would be best to demonstrate that the solution is desirable to the ecosystem.
turt2live
left a comment
There was a problem hiding this comment.
This review is for early requirements gathering - it's not a review of the MSC itself.
| ### Accept a full StateFilter | ||
|
|
||
| Instead of just `types`, the endpoint could accept a full `StateFilter` object (with `types`, | ||
| `not_types`, `senders`, `not_senders`, etc.). However, for most usecases `StateFilter` provides | ||
| a lot more than what is needed to read state. |
There was a problem hiding this comment.
Given that we already have RoomEventFilter established on /sync and /messages, I wonder if reusing it wouldn't be the cleaner design? It has no required fields. So even though it involves significantly more options than the single query parameter, clients wouldn't be forced to use all of them. Servers should also already have support for it, which should simplify the implementation.
There was a problem hiding this comment.
Yeah that is true and something I thought of while writing this. I'd love to hear what people think about the usefulness of RoomEventFilter for state, it's a conversation worth having here.
Rendered
Signed-off-by: Perny hey@perny.dev