-
Notifications
You must be signed in to change notification settings - Fork 380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] MSC2301: server info endpoint #2301
base: old_master
Are you sure you want to change the base?
Conversation
to try to solve matrix-org/synapse#1199
So this is an alternate way to do #1929? |
Also #2063? |
We have many different APIs for querying server capabilities and configuration: | ||
|
||
* `/_matrix/client/versions` tells you what CS API versions your server supports (unauthed) | ||
* `/_matrix/media/r0/config` tells you the capabilities of your media repository (unauthed) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* `/_matrix/media/r0/config` tells you the capabilities of your media repository (unauthed) | |
* `/_matrix/media/r0/config` tells you the capabilities of your media repository (authed) |
* `/_matrix/client/r0/capabilities` tells you whether your server supports various optional capabilities (but is authed) | ||
* `/_matrix/federation/v1/capabilities` (MSC2127) is a proposal to tell you when you can upgrade rooms or not (authed as server) | ||
* MSC2233 as a rejected un-authed capabilities endpoint | ||
* System Alerts (as a way of sharing server updates with users) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We call them server notices: https://matrix.org/docs/spec/client_server/r0.5.0#module-server-notices
* System Alerts (as a way of sharing server updates with users) | |
* Server Notices (as a way of sharing server updates with users) |
|
||
```json | ||
{ | ||
"m.brand.server_name": "Matthew's Server", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why are we not using objects for m.brand
?
"m.brand.server_name": "Matthew's Server", | ||
"m.brand.server_info": "Where all the cool kids hang out", | ||
"m.motd": "This server will be upgraded on Oct 1st", | ||
"m.server_admin": "@admin:example.com", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what if my admin is an email address? what if there's many?
} | ||
``` | ||
|
||
## Alternatives |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -0,0 +1,75 @@ | |||
# Proposal for an /info endpoint on the CS API | |||
|
|||
## Problem |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How would clients receive updates to the info data? Periodic polling of the endpoint? |
So, let's see what's in #2063 (API):
As in #1929 (well-known):
I would also add for this static well-known page:
Possibly all of those are optional. The fediverse Aggregator site for example expects to display the following stats for nodes:
1929 is actually implemented by some sites already. ;-) |
It would be great to have all the necessary info in one endpoint, ie server metadata type info and usage info, to avoid consumers needing to poll several endpoints. Server metadata is no more static than usage information, so any site building a list of for example available Matrix sites would still have to consume both.
|
(please let's move to a thread before this becomes a longer conversation) |
|
||
## Alternatives | ||
|
||
We could put this data into a peekable room instead (particularly so we then get sync updates for free). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't really need that here. A normal static endpoint should be just fine. It is probably only ever called once, when the user is trying to decide on which homeserver to register on.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Peekable rooms also would make this harder to access from the outside in my opinion.
Hi, I like this. I would love to have some additional fields however as I am working with some people on a mastodon alike server/community finder and some more metadata would be nice to have. For us missing fields are:
|
We turn /versions into a more generic unauthed server /info endpoint, suitable for sharing branding information to clients before they login or register.
Open question on whether to use a server info room to store the bulk of the data or not.
Rendered