Remove doc references to publicroomsapi

This commit is contained in:
Kegan Dougal 2020-07-02 16:23:25 +01:00
parent 123bd57351
commit 27e081aec9
3 changed files with 41 additions and 69 deletions

View file

@ -51,7 +51,6 @@ var (
syncServerURL = flag.String("sync-api-server-url", "", "The base URL of the listening 'dendrite-sync-api-server' process. E.g. 'http://localhost:4200'") syncServerURL = flag.String("sync-api-server-url", "", "The base URL of the listening 'dendrite-sync-api-server' process. E.g. 'http://localhost:4200'")
clientAPIURL = flag.String("client-api-server-url", "", "The base URL of the listening 'dendrite-client-api-server' process. E.g. 'http://localhost:4321'") clientAPIURL = flag.String("client-api-server-url", "", "The base URL of the listening 'dendrite-client-api-server' process. E.g. 'http://localhost:4321'")
mediaAPIURL = flag.String("media-api-server-url", "", "The base URL of the listening 'dendrite-media-api-server' process. E.g. 'http://localhost:7779'") mediaAPIURL = flag.String("media-api-server-url", "", "The base URL of the listening 'dendrite-media-api-server' process. E.g. 'http://localhost:7779'")
publicRoomsAPIURL = flag.String("public-rooms-api-server-url", "", "The base URL of the listening 'dendrite-public-rooms-api-server' process. E.g. 'http://localhost:7775'")
bindAddress = flag.String("bind-address", ":8008", "The listening port for the proxy.") bindAddress = flag.String("bind-address", ":8008", "The listening port for the proxy.")
certFile = flag.String("tls-cert", "", "The PEM formatted X509 certificate to use for TLS") certFile = flag.String("tls-cert", "", "The PEM formatted X509 certificate to use for TLS")
keyFile = flag.String("tls-key", "", "The PEM private key to use for TLS") keyFile = flag.String("tls-key", "", "The PEM private key to use for TLS")
@ -121,13 +120,6 @@ func main() {
fmt.Fprintln(os.Stderr, "no --media-api-server-url specified.") fmt.Fprintln(os.Stderr, "no --media-api-server-url specified.")
os.Exit(1) os.Exit(1)
} }
if *publicRoomsAPIURL == "" {
flag.Usage()
fmt.Fprintln(os.Stderr, "no --public-rooms-api-server-url specified.")
os.Exit(1)
}
syncProxy, err := makeProxy(*syncServerURL) syncProxy, err := makeProxy(*syncServerURL)
if err != nil { if err != nil {
panic(err) panic(err)
@ -140,14 +132,8 @@ func main() {
if err != nil { if err != nil {
panic(err) panic(err)
} }
publicRoomsProxy, err := makeProxy(*publicRoomsAPIURL)
if err != nil {
panic(err)
}
http.Handle("/_matrix/client/r0/sync", syncProxy) http.Handle("/_matrix/client/r0/sync", syncProxy)
http.Handle("/_matrix/client/r0/directory/list/", publicRoomsProxy)
http.Handle("/_matrix/client/r0/publicRooms", publicRoomsProxy)
http.Handle("/_matrix/media/v1/", mediaProxy) http.Handle("/_matrix/media/v1/", mediaProxy)
http.Handle("/", clientProxy) http.Handle("/", clientProxy)
@ -159,8 +145,6 @@ func main() {
fmt.Println("Proxying requests to:") fmt.Println("Proxying requests to:")
fmt.Println(" /_matrix/client/r0/sync => ", *syncServerURL+"/api/_matrix/client/r0/sync") fmt.Println(" /_matrix/client/r0/sync => ", *syncServerURL+"/api/_matrix/client/r0/sync")
fmt.Println(" /_matrix/client/r0/directory/list => ", *publicRoomsAPIURL+"/_matrix/client/r0/directory/list")
fmt.Println(" /_matrix/client/r0/publicRooms => ", *publicRoomsAPIURL+"/_matrix/media/client/r0/publicRooms")
fmt.Println(" /_matrix/media/v1 => ", *mediaAPIURL+"/api/_matrix/media/v1") fmt.Println(" /_matrix/media/v1 => ", *mediaAPIURL+"/api/_matrix/media/v1")
fmt.Println(" /* => ", *clientAPIURL+"/api/*") fmt.Println(" /* => ", *clientAPIURL+"/api/*")
fmt.Println("Listening on ", *bindAddress) fmt.Println("Listening on ", *bindAddress)

View file

@ -108,7 +108,7 @@ Assuming that Postgres 9.5 (or later) is installed:
* Create the component databases: * Create the component databases:
```bash ```bash
for i in account device mediaapi syncapi roomserver serverkey federationsender publicroomsapi appservice naffka; do for i in account device mediaapi syncapi roomserver serverkey federationsender currentstate appservice naffka; do
sudo -u postgres createdb -O dendrite dendrite_$i sudo -u postgres createdb -O dendrite dendrite_$i
done done
``` ```
@ -176,17 +176,17 @@ The following contains scripts which will run all the required processes in orde
| | :7774 | | :7774
| | | |
| | | |
| | /directory +----------------------------------+ | |
| | +--------->| dendrite-public-rooms-api-server |<========++ | |
| | | +----------------------------------+ || | |
| | | :7775 | || | |
| | | +<-----------+ || | |
| | | | || | |
| | | /sync +--------------------------+ || | | /sync +--------------------------+
| | +--------->| dendrite-sync-api-server |<================++ | | +--------->| dendrite-sync-api-server |<================++
| | | | +--------------------------+ || | | | +--------------------------+ ||
| | | | :7773 | ^^ || | | | :7773 | ^^ ||
Matrix +------------------+ | | | | || client_data || Matrix +------------------+ | | | || client_data ||
Clients --->| client-api-proxy |-------+ +<-----------+ ++=============++ || Clients --->| client-api-proxy |-------+ +<-----------+ ++=============++ ||
+------------------+ | | | || || +------------------+ | | | || ||
:8008 | | CS API +----------------------------+ || || :8008 | | CS API +----------------------------+ || ||
@ -232,7 +232,6 @@ your client at `http://localhost:8008`.
--client-api-server-url "http://localhost:7771" \ --client-api-server-url "http://localhost:7771" \
--sync-api-server-url "http://localhost:7773" \ --sync-api-server-url "http://localhost:7773" \
--media-api-server-url "http://localhost:7774" \ --media-api-server-url "http://localhost:7774" \
--public-rooms-api-server-url "http://localhost:7775" \
``` ```
### Federation proxy ### Federation proxy
@ -282,15 +281,6 @@ order to upload and retrieve media.
./bin/dendrite-media-api-server --config dendrite.yaml ./bin/dendrite-media-api-server --config dendrite.yaml
``` ```
### Public room server
This implements `/directory` requests. Clients talk to this via the proxy
in order to retrieve room directory listings.
```bash
./bin/dendrite-public-rooms-api-server --config dendrite.yaml
```
### Federation API server ### Federation API server
This implements federation requests. Servers talk to this via the proxy in This implements federation requests. Servers talk to this via the proxy in

View file

@ -9,23 +9,22 @@ a request/response model like HTTP or RPC. Therefore, components can expose "int
Note in Monolith mode these are actually direct function calls and are not serialised HTTP requests. Note in Monolith mode these are actually direct function calls and are not serialised HTTP requests.
``` ```
Tier 1 Sync PublicRooms FederationAPI ClientAPI MediaAPI Tier 1 Sync FederationAPI ClientAPI MediaAPI
Public Facing | .-----1------` | | | | | | | | | Public Facing | | | | | | | | | |
2 | .-------3-----------------` | | | `--------|-|-|-|--11--------------------. 2 .-------3-----------------` | | | `--------|-|-|-|--11--------------------.
| | | .--------4----------------------------------` | | | | | | .--------4----------------------------------` | | | |
| | | | .---5-----------` | | | | | | | | | .---5-----------` | | | | | |
| | | | | .---6----------------------------` | | | | | | | .---6----------------------------` | | |
| | | | | | | .-----7----------` | | | | | | | | .-----7----------` | |
| | | | | | 8 | | 10 | | | | | | 8 | | 10 |
| | | | | | | | `---9----. | | | | | | | | | `---9----. | |
V V V V V V V V V V V V V V V V V V V V V
Tier 2 Roomserver EDUServer FedSender AppService KeyServer ServerKeyAPI Tier 2 Roomserver EDUServer FedSender AppService KeyServer ServerKeyAPI
Internal only | `------------------------12----------^ ^ Internal only | `------------------------12----------^ ^
`------------------------------------------------------------13----------` `------------------------------------------------------------13----------`
Client ---> Server Client ---> Server
``` ```
- 1 (PublicRooms -> Roomserver): Calculating current auth for changing visibility
- 2 (Sync -> Roomserver): When making backfill requests - 2 (Sync -> Roomserver): When making backfill requests
- 3 (FedAPI -> Roomserver): Calculating (prev/auth events) and sending new events, processing backfill/state/state_ids requests - 3 (FedAPI -> Roomserver): Calculating (prev/auth events) and sending new events, processing backfill/state/state_ids requests
- 4 (ClientAPI -> Roomserver): Calculating (prev/auth events) and sending new events, processing /state requests - 4 (ClientAPI -> Roomserver): Calculating (prev/auth events) and sending new events, processing /state requests
@ -46,20 +45,20 @@ In addition to this, all public facing components (Tier 1) talk to the `UserAPI`
``` ```
.----1--------------------------------------------. .----1--------------------------------------------.
V | V |
Tier 1 Sync PublicRooms FederationAPI ClientAPI MediaAPI Tier 1 Sync FederationAPI ClientAPI MediaAPI
Public Facing ^ ^ ^ ^ Public Facing ^ ^ ^
| | | | | | |
2 | | | 2 | |
| `-3------------. | | `-3------------. |
| | | | | | |
| | | | | | |
| .------4------` | | | | |
| | .--------5-----|------------------------------` | .--------4-----|------------------------------`
| | | | | | |
Tier 2 Roomserver EDUServer FedSender AppService KeyServer ServerKeyAPI Tier 2 Roomserver EDUServer FedSender AppService KeyServer ServerKeyAPI
Internal only | | ^ ^ Internal only | | ^ ^
| `-----6----------` | | `-----5----------` |
`--------------------7--------` `--------------------6--------`
Producer ----> Consumer Producer ----> Consumer
@ -67,7 +66,6 @@ Producer ----> Consumer
- 1 (ClientAPI -> Sync): For tracking account data - 1 (ClientAPI -> Sync): For tracking account data
- 2 (Roomserver -> Sync): For all data to send to clients - 2 (Roomserver -> Sync): For all data to send to clients
- 3 (EDUServer -> Sync): For typing/send-to-device data to send to clients - 3 (EDUServer -> Sync): For typing/send-to-device data to send to clients
- 4 (Roomserver -> PublicRooms): For tracking the current room name/topic/joined count/etc. - 4 (Roomserver -> ClientAPI): For tracking memberships for profile updates.
- 5 (Roomserver -> ClientAPI): For tracking memberships for profile updates. - 5 (EDUServer -> FedSender): For sending EDUs over federation
- 6 (EDUServer -> FedSender): For sending EDUs over federation - 6 (Roomserver -> FedSender): For sending PDUs over federation, for tracking joined hosts.
- 7 (Roomserver -> FedSender): For sending PDUs over federation, for tracking joined hosts.