mirror of
https://mau.dev/maunium/synapse.git
synced 2024-11-16 06:51:46 +01:00
Updated spec and api docs to desired new format.
This commit is contained in:
parent
d81e7dc00e
commit
586e0df62d
2 changed files with 76 additions and 36 deletions
|
@ -3,35 +3,38 @@
|
||||||
"apis": [
|
"apis": [
|
||||||
{
|
{
|
||||||
"operations": [
|
"operations": [
|
||||||
|
{
|
||||||
|
"method": "GET",
|
||||||
|
"nickname": "get_registration_info",
|
||||||
|
"notes": "All login stages MUST be mentioned if there is >1 login type.",
|
||||||
|
"summary": "Get the login mechanism to use when registering.",
|
||||||
|
"type": "RegistrationFlows"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"method": "POST",
|
"method": "POST",
|
||||||
"nickname": "register",
|
"nickname": "submit_registration",
|
||||||
"notes": "Volatile: This API is likely to change.",
|
"notes": "If this is part of a multi-stage registration, there MUST be a 'session' key.",
|
||||||
"parameters": [
|
"parameters": [
|
||||||
{
|
{
|
||||||
"description": "A registration request",
|
"description": "A registration submission",
|
||||||
"name": "body",
|
"name": "body",
|
||||||
"paramType": "body",
|
"paramType": "body",
|
||||||
"required": true,
|
"required": true,
|
||||||
"type": "RegistrationRequest"
|
"type": "RegistrationSubmission"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"responseMessages": [
|
"responseMessages": [
|
||||||
{
|
{
|
||||||
"code": 400,
|
"code": 400,
|
||||||
"message": "No JSON object."
|
"message": "Bad login type"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"code": 400,
|
"code": 400,
|
||||||
"message": "User ID must only contain characters which do not require url encoding."
|
"message": "Missing JSON keys"
|
||||||
},
|
|
||||||
{
|
|
||||||
"code": 400,
|
|
||||||
"message": "User ID already taken."
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"summary": "Register with the home server.",
|
"summary": "Submit a registration action.",
|
||||||
"type": "RegistrationResponse"
|
"type": "RegistrationResult"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"path": "/register"
|
"path": "/register"
|
||||||
|
@ -42,30 +45,68 @@
|
||||||
"application/json"
|
"application/json"
|
||||||
],
|
],
|
||||||
"models": {
|
"models": {
|
||||||
"RegistrationResponse": {
|
"RegistrationFlows": {
|
||||||
"id": "RegistrationResponse",
|
"id": "RegistrationFlows",
|
||||||
|
"properties": {
|
||||||
|
"flows": {
|
||||||
|
"description": "A list of valid registration flows.",
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"$ref": "RegistrationInfo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RegistrationInfo": {
|
||||||
|
"id": "RegistrationInfo",
|
||||||
|
"properties": {
|
||||||
|
"stages": {
|
||||||
|
"description": "Multi-stage registration only: An array of all the login types required to registration.",
|
||||||
|
"items": {
|
||||||
|
"$ref": "string"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
},
|
||||||
|
"type": {
|
||||||
|
"description": "The first login type that must be used when logging in.",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"RegistrationResult": {
|
||||||
|
"id": "RegistrationResult",
|
||||||
"properties": {
|
"properties": {
|
||||||
"access_token": {
|
"access_token": {
|
||||||
"description": "The access token for this user.",
|
"description": "The access token for this user's registration if this is the final stage of the registration process.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"user_id": {
|
"user_id": {
|
||||||
"description": "The fully-qualified user ID.",
|
"description": "The user's fully-qualified user ID.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"home_server": {
|
"next": {
|
||||||
"description": "The name of the home server.",
|
"description": "Multi-stage registration only: The next registration type to submit.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"session": {
|
||||||
|
"description": "Multi-stage registration only: The session token to send when submitting the next registration type.",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"RegistrationRequest": {
|
"RegistrationSubmission": {
|
||||||
"id": "RegistrationRequest",
|
"id": "RegistrationSubmission",
|
||||||
"properties": {
|
"properties": {
|
||||||
"user_id": {
|
"type": {
|
||||||
"description": "The desired user ID. If not specified, a random user ID will be allocated.",
|
"description": "The type of registration being submitted.",
|
||||||
"type": "string",
|
"type": "string"
|
||||||
"required": false
|
},
|
||||||
|
"session": {
|
||||||
|
"description": "Multi-stage registration only: The session token from an earlier registration stage.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"_registration_type_defined_keys_": {
|
||||||
|
"description": "Keys as defined by the specified registration type, e.g. \"user\", \"password\""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1279,12 +1279,6 @@ display name other than it being a valid unicode string.
|
||||||
|
|
||||||
Registration and login
|
Registration and login
|
||||||
======================
|
======================
|
||||||
.. WARNING::
|
|
||||||
The registration API is likely to change.
|
|
||||||
|
|
||||||
.. TODO
|
|
||||||
- TODO Kegan : Make registration like login (just omit the "user" key on the
|
|
||||||
initial request?)
|
|
||||||
|
|
||||||
Clients must register with a home server in order to use Matrix. After
|
Clients must register with a home server in order to use Matrix. After
|
||||||
registering, the client will be given an access token which must be used in ALL
|
registering, the client will be given an access token which must be used in ALL
|
||||||
|
@ -1297,9 +1291,11 @@ a token sent to their email address, etc. This specification does not define how
|
||||||
home servers should authorise their users who want to login to their existing
|
home servers should authorise their users who want to login to their existing
|
||||||
accounts, but instead defines the standard interface which implementations
|
accounts, but instead defines the standard interface which implementations
|
||||||
should follow so that ANY client can login to ANY home server. Clients login
|
should follow so that ANY client can login to ANY home server. Clients login
|
||||||
using the |login|_ API.
|
using the |login|_ API. Clients register using the |register|_ API. Registration
|
||||||
|
follows the same procedure as login, but the path requests are sent to are
|
||||||
|
different.
|
||||||
|
|
||||||
The login process breaks down into the following:
|
The registration/login process breaks down into the following:
|
||||||
1. Determine the requirements for logging in.
|
1. Determine the requirements for logging in.
|
||||||
2. Submit the login stage credentials.
|
2. Submit the login stage credentials.
|
||||||
3. Get credentials or be told the next stage in the login process and repeat
|
3. Get credentials or be told the next stage in the login process and repeat
|
||||||
|
@ -2216,6 +2212,9 @@ Transaction:
|
||||||
.. |login| replace:: ``/login``
|
.. |login| replace:: ``/login``
|
||||||
.. _login: /docs/api/client-server/#!/-login
|
.. _login: /docs/api/client-server/#!/-login
|
||||||
|
|
||||||
|
.. |register| replace:: ``/register``
|
||||||
|
.. _register: /docs/api/client-server/#!/-registration
|
||||||
|
|
||||||
.. |/rooms/<room_id>/messages| replace:: ``/rooms/<room_id>/messages``
|
.. |/rooms/<room_id>/messages| replace:: ``/rooms/<room_id>/messages``
|
||||||
.. _/rooms/<room_id>/messages: /docs/api/client-server/#!/-rooms/get_messages
|
.. _/rooms/<room_id>/messages: /docs/api/client-server/#!/-rooms/get_messages
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue