Check server's perspective on base_url / rendezvous

I had it two times now that a missing or wrong public_baseurl value in Synapse’s config caused trouble only in some cases. This might be a me issue entirely because I configure my reverse proxy to answer /.well-known/matrix/* requests.

Notably the POST v3/login success result will return a base_url that clients SHOULD prefer even. I’m not sure if this is meant to be for split DNS configurations or similar, so other than this requiring valid credentials to check comparing might not be the best idea.

What is a promising way to discover the base_url and introduce a check that validates expected behavior is using rendezvous like this:

# Use previously discovered client endpoint
$ curl -X POST https://matrix.nwex.de/_matrix/client/unstable/org.matrix.msc4108/rendezvous -H "Content-Type: text/plain"
# ... will return what the server thinks its reachable on.
#     This needs to be publically reachable for rendezvous to work
{"url":"https://matrix.nwex.de/_synapse/client/rendezvous/01KZ8NBE364X0ZC483XHPR2QBQ"}

$ curl -I https://matrix.nwex.de/_synapse/client/rendezvous/01KZ8NBE364X0ZC483XHPR2QBQ
HTTP/2 200 
# ...

Hm the thing with rendezvous is that apparently only synapse implements it or has it activated by default apparently. All other implementations have no support as far as I can tell :confused: so its not an option imho.

Login also doesnt work since that requires credentials to return things. So thats not a reliable way to check either. (one premise of the tool is to not require a user account on a HS to test the HS)

Not sure if there is currently any other options.

I do think its not just a you issue btw. I know plenty that do wellknown at reverse proxy level. (I think even the example configs at some point did that?) But I dont think there is currently an easy way to check that from the outside.

_technically_ there is guest login that can be used on the register endpoint… but guests are almost always disabled for security reasons. So its not a real option here.

TLDR: we maybe can revisit if the rendezvous stuff actually lands in more servers. But as of today I dont see any way to add this feature within the goals I have for the tool (no auth, coverage for all servers)

All good. I might just suggest this in the likes of MSC4524 to a new suite of debug endpoints

1 Like