serve well-known client and server config
This way users can have a simpler time configuring this stuff and we can worry about the spec compliance parts and specifying the same thing over and over parts.
New configuration options
Naming rationale
-
[server_discovery]
is so named because the spec uses that phrase: -
[server_discovery.client]
and[server_discovery.server]
are so named because they configure the client and server respectively. I could've gone forclient_server
andserver_server
but that feels needlessly verbose. -
authority
is the actual authority for client-server and server-server traffic. -
insecure
(boolean) is pretty self-explanatory I think.
Examples
Delegate requests to an alternate domain:
server_name = "computer.surgery"
[server_discovery]
client.authority = "matrix.computer.surgery"
server.authority = "matrix.computer.surgery"
Same as before but also make federation go over 443 instead of 8448:
server_name = "computer.surgery"
[server_discovery]
client.authority = "matrix.computer.surgery"
server.authority = "matrix.computer.surgery:443"
The following can be done for local development to use HTTP instead of HTTPS for the client configuration:
[server_discovery]
client.insecure = true
To enable sliding sync, you must opt in with an additional option, because this sliding sync impl is buggy:
[server_discovery]
client.advertise_buggy_sliding_sync = true
Edited by Charles Hall