Add server support discovery endpoint (#1733)
* Add server support discovery endpoint As per MSC1929. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add changelog Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Fix example indentation Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Apply suggestions from code review Co-authored-by: Travis Ralston <travpc@gmail.com> * Fix line length Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add link to definiton of Matrix User ID Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Fix copyright Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Remove HTTP from supported protocols Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> --------- Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> Co-authored-by: Travis Ralston <travpc@gmail.com>release/v1.10
parent
575c84d431
commit
44c16918fd
@ -0,0 +1 @@
|
||||
Add server support discovery endpoint, as per [MSC1929](https://github.com/matrix-org/matrix-spec-proposals/pull/1929).
|
@ -0,0 +1,135 @@
|
||||
# Copyright 2024 Kévin Commaille
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
openapi: 3.1.0
|
||||
info:
|
||||
title: Matrix Client-Server Support Discovery API
|
||||
version: 1.0.0
|
||||
paths:
|
||||
/matrix/support:
|
||||
get:
|
||||
summary: Gets homeserver contacts and support details.
|
||||
description: |-
|
||||
Gets server admin contact and support page of the domain.
|
||||
|
||||
Like the [well-known discovery URI](/client-server-api/#well-known-uri),
|
||||
this should be accessed with the hostname of the homeserver by making a
|
||||
GET request to `https://hostname/.well-known/matrix/support`.
|
||||
|
||||
Note that this endpoint is not necessarily handled by the homeserver.
|
||||
It may be served by another webserver, used for discovering support
|
||||
information for the homeserver.
|
||||
operationId: getWellknownSupport
|
||||
x-addedInMatrixVersion: "1.10"
|
||||
responses:
|
||||
"200":
|
||||
description: Server support information.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
contacts:
|
||||
type: array
|
||||
description: |-
|
||||
Ways to contact the server administrator.
|
||||
|
||||
At least one of `contacts` or `support_page` is required.
|
||||
If only `contacts` is set, it must contain at least one
|
||||
item.
|
||||
items:
|
||||
type: object
|
||||
title: Contact
|
||||
description: A way to contact the server administrator.
|
||||
properties:
|
||||
matrix_id:
|
||||
type: string
|
||||
description: |-
|
||||
A [Matrix User ID](/appendices/#user-identifiers)
|
||||
representing the administrator.
|
||||
|
||||
It could be an account registered on a different
|
||||
homeserver so the administrator can be contacted
|
||||
when the homeserver is down.
|
||||
|
||||
At least one of `matrix_id` or `email_address` is
|
||||
required.
|
||||
email_address:
|
||||
type: string
|
||||
description: |-
|
||||
An email address to reach the administrator.
|
||||
|
||||
At least one of `matrix_id` or `email_address` is
|
||||
required.
|
||||
role:
|
||||
type: string
|
||||
enum:
|
||||
- "m.role.admin"
|
||||
- "m.role.security"
|
||||
description: |-
|
||||
An informal description of what the contact methods
|
||||
are used for.
|
||||
|
||||
`m.role.admin` is a catch-all role for any queries
|
||||
and `m.role.security` is intended for sensitive
|
||||
requests.
|
||||
|
||||
Unspecified roles are permitted through the use of
|
||||
[Namespaced Identifiers](/appendices/#common-namespaced-identifier-grammar).
|
||||
required:
|
||||
- role
|
||||
example: {
|
||||
"matrix_id": "@admin:example.org",
|
||||
"email_address": "admin@example.org",
|
||||
"role": "m.role.admin"
|
||||
}
|
||||
support_page:
|
||||
type: string
|
||||
description: |-
|
||||
The URL of a page to give users help specific to the
|
||||
homeserver, like extra login/registration steps.
|
||||
|
||||
At least one of `contacts` or `support_page` is required.
|
||||
example: "https://example.org/support.html"
|
||||
examples:
|
||||
response:
|
||||
value:
|
||||
{
|
||||
"contacts": [
|
||||
{
|
||||
"matrix_id": "@admin:example.org",
|
||||
"email_address": "admin@example.org",
|
||||
"role": "m.role.admin"
|
||||
},
|
||||
{
|
||||
"email_address": "security@example.org",
|
||||
"role": "m.role.security"
|
||||
}
|
||||
],
|
||||
"support_page": "https://example.org/support.html"
|
||||
}
|
||||
"404":
|
||||
description: No server support information available.
|
||||
tags:
|
||||
- Server administration
|
||||
servers:
|
||||
- url: "{protocol}://{hostname}{basePath}"
|
||||
variables:
|
||||
protocol:
|
||||
enum:
|
||||
- https
|
||||
default: https
|
||||
hostname:
|
||||
default: localhost:8008
|
||||
basePath:
|
||||
default: /.well-known
|
Loading…
Reference in New Issue