-
Notifications
You must be signed in to change notification settings - Fork 385
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
MSC1929: Homeserver Admin Contact and Support page #1929
Merged
Merged
Changes from all commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
a4e12ca
Create 1929-admin-contact.md
Half-Shot 8fc5861
Update 1929-admin-contact.md
Half-Shot 17992a3
recommended
Half-Shot 7aa0b77
clarify backup contact address
Half-Shot eb02652
Update 1929-admin-contact.md
Half-Shot 7dd8b4c
s/mxid/matrix_id/
Half-Shot 7d7b372
s/email/email_address/
Half-Shot 165fcc4
Update proposals/1929-admin-contact.md
Half-Shot 7f68d57
Cleanup
Half-Shot 5b9e832
Clarify hostname in endpoint definition.
Half-Shot 79c6aa7
Fix contact formatting
Half-Shot 490ed1c
Update admins -> contacts
Half-Shot 318ec5d
Mark that role is required and namespaced.
Half-Shot 147d92e
Use `m.` prefix
Half-Shot ae96409
Apply suggestions from code review
Half-Shot File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
# MSC1929 Homeserver Admin Contact and Support page | ||
Half-Shot marked this conversation as resolved.
Show resolved
Hide resolved
turt2live marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Currently, contacting a homeserver admin is difficult because you need to have insider knowledge | ||
of who the admin actually is. This proposal aims to fix that by specifying a way to add contact details | ||
of admins, as well as a link to a support page for users who are having issues with the service. | ||
|
||
This proposal aims to fix https://github.com/matrix-org/matrix-doc/issues/484 | ||
|
||
## Proposal | ||
|
||
The proposal suggests adding a new endpoint: `https://{hostname}/.well-known/matrix/support`, | ||
where `hostname` is the server name, without the port number. This is the same as what is used | ||
when performing server discovery. | ||
|
||
The response format should be: | ||
|
||
```json5 | ||
{ | ||
"contacts": [ | ||
{ | ||
"matrix_id": "@admin:domain.tld", | ||
"email_address": "[email protected]", | ||
"role": "m.role.admin" | ||
}, | ||
{ | ||
"email_address": "[email protected]", | ||
"role": "m.role.security" | ||
} | ||
], | ||
"support_page": "https://domain.tld/support.html" | ||
} | ||
Half-Shot marked this conversation as resolved.
Show resolved
Hide resolved
Half-Shot marked this conversation as resolved.
Show resolved
Hide resolved
|
||
``` | ||
|
||
The `contacts` array is optional, but recommended. | ||
|
||
The `matrix_id` and `email_address` do NOT need to have the same domain as the homeserver. It is expected that | ||
an admin will have a "backup" contact address if the server is down, like an email or alternative mxid on a different homeserver. | ||
|
||
Entries may have a `matrix_id` OR an `email_address`, but at least one MUST be specified. | ||
|
||
`role` is an informal description of what the address(es) are used for. The only two specified in this | ||
proposal are `m.role.admin` and `m.role.security`. | ||
|
||
- `m.role.admin` is a catch-all user for any queries. | ||
- `m.role.security` is intended for sensitive requests | ||
|
||
Implementors may use custom values for role for other purposes, but it's suggested | ||
that the value be namespaced to prevent collisions. A value for `role` MUST be specified. | ||
turt2live marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
`support_page` is an optional property to specify a affiliated page of the homserver to give users help | ||
turt2live marked this conversation as resolved.
Show resolved
Hide resolved
|
||
specific to the homeserver, like extra login/registration steps. | ||
|
||
Half-Shot marked this conversation as resolved.
Show resolved
Hide resolved
|
||
At least one valid key should be provided. This means `contacts` should have at least one entry, or the `support_page` should be defined. An empty object is not considered valid, however both `contacts `and `support_page` may be specified together. | ||
|
||
## Alternative solutions | ||
|
||
Hardcode a given user localpart that should be used as an admin address. | ||
- The account would need to either internally redirect messages intended for @admin:domain.tld to another account(s) | ||
- OR require an admin to regularly sign into this special account to check for messages. Neither of which is useful. | ||
turt2live marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
Specify the same content inside a homeserver endpoint, rather than use `.well-known`. | ||
- This requires the homeserver to be up or responsive, which might be not very useful if trying to report issues with | ||
connectivity. | ||
|
||
Use vCards. | ||
- vCards would add bloat, as the vast majority of a vcards contents is not useful for contacting an admin. | ||
|
||
## Security considerations | ||
|
||
Half-Shot marked this conversation as resolved.
Show resolved
Hide resolved
|
||
If the host is compromised, any information could be specified in the well known file which may direct users to send | ||
sensitive information to a malicious user. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Draupnir Implementation has been started at the-draupnir-project/Draupnir#150
It adds a
queryAdmin <entity | domain>
command which allows querying this data in a user-friendly way. The implementation is not tested at the time of writing this.