dendrite/clientapi
Tak Wai Wong 8a66a55771 Pull the fix for user_interactive crash from dendrite fork (#249)
* Fix issues with migrations not getting executed (#2628)

* Fix issues with migrations not getting executed

* Check actual postgres error

* Return error if it's not "column does not exist"

* Send-to-device/sync tweaks (#2630)

* Always delete send to device messages

* Omit empty to_device

* Tweak /sync response to omit empty values

* Add housekeeping function to delete old/expired EDUs (#2399)

* Add housekeeping function to delete old/expired EDUs

* Add migrations

* Evict EDUs from cache

* Fix queries

* Fix upgrade

* Use map[string]time.Duration to specify different expiry times

* Fix copy & paste mistake

* Set expires_at to tomorrow

* Don't allow NULL

* Add comment

* Add tests

* Use new testrig package

* Fix migrations

* Never expire m.direct_to_device

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Co-authored-by: kegsay <kegan@matrix.org>

* Remove nonce generation for eip4361 signin (#25)

Co-authored-by: Tak Wai Wong <tak@hntlabs.com>

* Fix user_interactive crash when multiple clients try to log in (#26)

* add rw locks

* lock / unlock protect other fields

Co-authored-by: Tak Wai Wong <tak@hntlabs.com>

Co-authored-by: Till <2353100+S7evinK@users.noreply.github.com>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
Co-authored-by: kegsay <kegan@matrix.org>
Co-authored-by: Tak Wai Wong <tak@hntlabs.com>
Co-authored-by: Tak Wai Wong <takwaiw@gmail.com>
2022-08-10 18:44:28 -07:00
..
api Implement ExtraPublicRoomsProvider for p2p demos (#1180) 2020-07-03 12:59:00 +01:00
auth Pull the fix for user_interactive crash from dendrite fork (#249) 2022-08-10 18:44:28 -07:00
httputil Do not use ioutil as it is deprecated (#2625) 2022-08-05 10:26:59 +01:00
jsonerror Restricted join support on /make_join, /send_join (#2478) 2022-05-25 10:05:30 +01:00
producers Make the User API responsible for sending account data output events (#2592) 2022-07-25 17:30:07 +01:00
routing Tak/pull-dendrite-changes (#245) 2022-08-09 15:23:56 -07:00
threepid Back out matrix-org/dendrite#2421 by restoring http.Clients 2022-05-10 11:08:10 +01:00
userutil - Removed double imports (#1989) 2021-09-08 17:31:03 +01: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.