dendrite/clientapi
Tak Wai Wong 8f4d1828b4 matrix room Id does not resolve to channelId or spaceId correctly (#1010)
Issue: matrix room id does not always resolve to spaceId or channelId
correctly.

Root cause: The clientApi routing endpoint and the syncapi routing
endpoint uses different stores to query for the current room states.

One is correct, the other has incomplete events. Fix the issue by using
the correct store in both routing code paths.
2022-11-30 20:12:00 -08:00
..
api Implement ExtraPublicRoomsProvider for p2p demos (#1180) 2020-07-03 12:59:00 +01:00
auth Sync dendrite fork changes for gating, and single chain support (#778) 2022-11-01 11:09:34 -07:00
authorization matrix room Id does not resolve to channelId or spaceId correctly (#1010) 2022-11-30 20:12:00 -08:00
httputil Do not use ioutil as it is deprecated (#2625) 2022-08-05 10:26:59 +01:00
jsonerror Space,Channel soft deletion with dendrite gating, tests (#889) 2022-11-09 17:07:51 -07:00
producers Send-to-device consumer/producer tweaks (#2713) 2022-09-13 09:35:45 +02:00
routing matrix room Id does not resolve to channelId or spaceId correctly (#1010) 2022-11-30 20:12:00 -08:00
threepid Sync dendrite fork changes for gating, and single chain support (#778) 2022-11-01 11:09:34 -07:00
userutil Sync dendrite fork changes for gating, and single chain support (#778) 2022-11-01 11:09:34 -07:00
clientapi.go Make the User API responsible for sending account data output events (#2592) 2022-07-25 17:30:07 +01:00
README.md use go module for dependencies (#594) 2019-05-21 21:56:55 +01:00

This component roughly corresponds to "Client Room Send" and "Client Sync" on the WIRING diagram. This component produces multiple binaries.

Internals

  • HTTP routing is done using gorilla/mux and the routing paths are in the routing package.

Writers

  • Each HTTP "write operation" (/createRoom, /rooms/$room_id/send/$type, etc) is contained entirely to a single file in the writers package.
  • This file contains the request and response struct definitions, as well as a Validate() bool function to validate incoming requests.
  • The entry point for each write operation is a stand-alone function as this makes testing easier. All dependencies should be injected into this function, including server keys/name, etc.