dendrite/clientapi
Tommie Gannert 58233c790a Split SSO into OAuth2 and OIDC. Add OIDC discovery.
GitHub implements OAuth2, but not OpenID Connect.

This means it needs more magic constants than those that can do OIDC
discovery (and where Userinfo is in OIDC-compatible.)

Fixes the HTTP client to have a timeout.
2022-05-25 01:17:08 +02:00
..
api Implement ExtraPublicRoomsProvider for p2p demos (#1180) 2020-07-03 12:59:00 +01:00
auth Split SSO into OAuth2 and OIDC. Add OIDC discovery. 2022-05-25 01:17:08 +02:00
httputil Support for m.login.token (#2014) 2022-02-10 10:27:26 +00:00
jsonerror Add canonical alias support (#2236) 2022-03-07 10:37:04 +01:00
producers Define component interfaces based on consumers (1/2) (#2423) 2022-05-05 13:17:38 +01:00
routing Split SSO into OAuth2 and OIDC. Add OIDC discovery. 2022-05-25 01:17:08 +02:00
threepid Back out matrix-org/dendrite#2421 by restoring http.Clients 2022-05-10 11:08:10 +01:00
userutil Support for m.login.sso. 2022-05-23 16:25:29 +02:00
clientapi.go One NATS instance per BaseDendrite (#2438) 2022-05-09 14:15:24 +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.