Use $ref, clean up, fix errors, AS is now a C-S module.

anoa/as_thirdparty_lookup
Andrew Morgan 6 years ago
parent e81e0328c2
commit 114bcf1a2e

@ -131,7 +131,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -140,7 +140,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN" "errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: |- description: |-
The application service indicates that this room alias does not exist. The application service indicates that this room alias does not exist.
@ -150,7 +150,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
"/users/{userId}": "/users/{userId}":
get: get:
summary: Query if a user should exist on the application service. summary: Query if a user should exist on the application service.
@ -187,7 +187,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -196,7 +196,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN" "errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: |- description: |-
The application service indicates that this user does not exist. The application service indicates that this user does not exist.
@ -206,7 +206,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
"/_matrix/app/unstable/thirdparty/protocol/{protocol}": "/_matrix/app/unstable/thirdparty/protocol/{protocol}":
get: get:
summary: Retrieve metadata about a specific protocol that the application service supports. summary: Retrieve metadata about a specific protocol that the application service supports.
@ -219,44 +219,14 @@ paths:
- in: path - in: path
name: protocol name: protocol
type: string type: string
description: |- description: The protocol ID.
The name of the protocol.
required: true required: true
x-example: "irc" x-example: "irc"
responses: responses:
200: 200:
description: The protocol was found and metadata returned. description: The protocol was found and metadata returned.
examples:
application/json: {
"user_fields": ["network", "nickname"],
"location_fields": ["network", "channel"],
"icon": "mxc://example.org/aBcDeFgH",
"field_types": {
"network": {
"regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
"placeholder": "irc.example.org"
},
"nickname": {
"regexp": "[^\\s]+",
"placeholder": "username"
},
"channel": {
"regexp": "#[^\\s]+",
"placeholder": "#foobar"
}
},
"instances": [
{
"desc": "Freenode",
"icon": "mxc://example.org/JkLmNoPq",
"fields": {
"network": "freenode.net",
}
}
]
}
schema: schema:
type: object $ref: definitions/schema/protocol_metadata.yaml
401: 401:
description: |- description: |-
The homeserver has not supplied credentials to the application service. The homeserver has not supplied credentials to the application service.
@ -266,7 +236,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -275,7 +245,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN" "errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: No protocol was found with the given path. description: No protocol was found with the given path.
examples: examples:
@ -283,20 +253,20 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
"/_matrix/app/unstable/thirdparty/user/{protocol}": "/_matrix/app/unstable/thirdparty/user/{protocol}":
get: get:
summary: Retrieve the Matrix ID of a corresponding third party user. summary: Retrieve the Matrix User ID of a corresponding third party user.
description: |- description: |-
This API is called by the homeserver in order to retrieve a Matrix ID linked This API is called by the homeserver in order to retrieve a Matrix
to a user on the external service, given a set of user parameters. User ID linked to a user on the third party network, given a set of
user parameters.
operationId: queryUserByProtocol operationId: queryUserByProtocol
parameters: parameters:
- in: path - in: path
name: protocol name: protocol
type: string type: string
description: |- description: The protocol ID.
The name of the protocol.
required: true required: true
x-example: irc x-example: irc
- in: query - in: query
@ -307,35 +277,9 @@ paths:
service to help identify the user. service to help identify the user.
responses: responses:
200: 200:
description: The Matrix IDs found with the given parameters. description: The Matrix User IDs found with the given parameters.
examples:
application/json: [{
"userid": "@_gitter_jim:matrix.org",
"protocol": "gitter",
"fields": {
"user": "jim"
}
}]
schema: schema:
type: array $ref: definitions/schema/user_batch.yaml
description: Matched users.
items:
type: object
title: User
schema:
userid:
type: string
description: The Matrix ID of the matched user.
protocol:
type: string
description: The third party protocol.
fields:
type: object
description: The third party network fields used to identify this user.
properties:
user:
type: string
description: An example field, in this case the username for a Gitter user.
401: 401:
description: |- description: |-
The homeserver has not supplied credentials to the application service. The homeserver has not supplied credentials to the application service.
@ -345,7 +289,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -354,7 +298,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN" "errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: No users were found with the given parameters. description: No users were found with the given parameters.
examples: examples:
@ -362,27 +306,20 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
"/_matrix/app/unstable/thirdparty/location/{protocol}": "/_matrix/app/unstable/thirdparty/location/{protocol}":
get: get:
summary: Retreive Matrix-side portal rooms leading to a third party location. summary: Retreive Matrix-side portal rooms leading to a third party location.
description: |- description: |-
Requesting this endpoint with a valid protocol name results in a list Retrieve a list of Matrix portal rooms that lead to the matched third party location.
of successful mapping results in a JSON array. Each result contains
objects to represent the Matrix room or rooms that represent a portal
to this third party network. Each has the Matrix room alias string,
an identifier for the particular third party network protocol, and an
object containing the network-specific fields that comprise this
identifier. It should attempt to canonicalise the identifier as much
as reasonably possible given the network type.
operationId: queryLocationByProtocol operationId: queryLocationByProtocol
parameters: parameters:
- in: path - in: path
name: protocol name: protocol
type: string type: string
description: The protocol used to communicate to the third party network. description: The protocol ID.
required: true required: true
x-example: "irc" x-example: irc
- in: query - in: query
name: field1, field2... name: field1, field2...
type: string type: string
@ -392,23 +329,8 @@ paths:
responses: responses:
200: 200:
description: At least one portal room was found. description: At least one portal room was found.
examples:
application/json: [{
"alias": "#freenode_#matrix:matrix.org",
"protocol": "irc",
"fields": {
"network": "freenode",
"channel": "#matrix"
}
}]
schema: schema:
type: array $ref: definitions/schema/location_batch.yaml
description: |-
Array of portal rooms leading to the requested third party
location.
items:
type: object
title: Portal Room
401: 401:
description: |- description: |-
The homeserver has not supplied credentials to the application service. The homeserver has not supplied credentials to the application service.
@ -418,7 +340,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -427,7 +349,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN" "errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: No mappings were found with the given parameters. description: No mappings were found with the given parameters.
examples: examples:
@ -435,7 +357,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
"/_matrix/app/unstable/thirdparty/location": "/_matrix/app/unstable/thirdparty/location":
get: get:
summary: Reverse-lookup third party locations given a Matrix room alias. summary: Reverse-lookup third party locations given a Matrix room alias.
@ -444,30 +366,16 @@ paths:
alias. alias.
operationId: queryLocationByAlias operationId: queryLocationByAlias
parameters: parameters:
- in: query - in: query
name: alias name: alias
type: string type: string
description: The Matrix room alias to look up. description: The Matrix room alias to look up.
responses: responses:
200: 200:
description: |- description: |-
All found third party locations. Same response format as the All found third party locations.
forward lookup response.
examples:
application/json: [{
"alias": "#freenode_#matrix:matrix.org",
"protocol": "irc",
"fields": {
"network": "freenode",
"channel": "#matrix"
}
}]
schema: schema:
type: array $ref: definitions/schema/location_batch.yaml
description: Matched third party locations.
items:
type: object
title: Location
401: 401:
description: |- description: |-
The homeserver has not supplied credentials to the application service. The homeserver has not supplied credentials to the application service.
@ -477,7 +385,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -486,7 +394,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN" "errcode": "COM.EXAMPLE.MYAPPSERVICE_FORBIDDEN"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: No mappings were found with the given parameters. description: No mappings were found with the given parameters.
examples: examples:
@ -494,36 +402,24 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
"/_matrix/app/unstable/thirdparty/user": "/_matrix/app/unstable/thirdparty/user":
get: get:
summary: Reverse-lookup third party users given a Matrix ID. summary: Reverse-lookup third party users given a Matrix User ID.
description: |- description: |-
Retreive an array of third party users from a Matrix ID. Retreive an array of third party users from a Matrix User ID.
operationId: queryUserByID operationId: queryUserByID
parameters: parameters:
- in: query - in: query
name: userid name: userid
type: string type: string
description: The Matrix ID to look up. description: The Matrix User ID to look up.
responses: responses:
200: 200:
description: |- description: |-
An array of third party users. An array of third party users.
examples:
application/json: [{
"userid": "@_gitter_jim:matrix.org",
"protocol": "gitter",
"fields": {
"user": "jim"
}
}]
schema: schema:
type: array $ref: definitions/schema/user_batch.yaml
description: Matched third party users
items:
type: object
title: User
401: 401:
description: |- description: |-
The homeserver has not supplied credentials to the application service. The homeserver has not supplied credentials to the application service.
@ -533,7 +429,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
403: 403:
description: |- description: |-
The credentials supplied by the homeserver were rejected. The credentials supplied by the homeserver were rejected.
@ -542,7 +438,7 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED" "errcode": "COM.EXAMPLE.MYAPPSERVICE_UNAUTHORIZED"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml
404: 404:
description: No mappings were found with the given parameters. description: No mappings were found with the given parameters.
examples: examples:
@ -550,4 +446,4 @@ paths:
"errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND" "errcode": "COM.EXAMPLE.MYAPPSERVICE_NOT_FOUND"
} }
schema: schema:
type: object $ref: ../client-server/definitions/error.yaml

@ -0,0 +1,30 @@
# Copyright 2018 New Vector Ltd
#
# 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.
properties:
alias:
description: An alias for a matrix room.
type: string
example: "#freenode_#matrix:matrix.org"
protocol:
description: The protocol ID that the third party location is a part of.
type: string
example: irc
fields:
description: Information used to identify this third party location.
type: object
example:
"network": "freenode"
"channel": "#matrix"
title: Location
type: object

@ -0,0 +1,17 @@
# Copyright 2018 New Vector Ltd
#
# 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.
type: array
description: List of matched third party locations.
items:
$ref: location.yaml

@ -0,0 +1,79 @@
# Copyright 2018 New Vector Ltd
#
# 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.
properties:
user_fields:
description: Fields used to identify a third party user.
type: array
items:
type: string
description: Field used to identify a third party user.
example: ["network", "nickname"]
location_fields:
description: Fields used to identify a third party location.
type: array
items:
type: string
description: Field used to identify a third party location.
example: ["network", "channel"]
icon:
description: An icon representing the third party protocol.
type: string
example: "mxc://example.org/aBcDeFgH"
field_types:
title: Field Types
description: All location or user fields should have an entry here.
type: object
properties:
fieldname:
title: Field Type
description: Definition of valid values for a field.
type: object
properties:
regexp:
description: A regular expression for validation of a field's value.
type: string
placeholder:
description: An placeholder serving as a valid example of the field value.
type: string
example: {
"network": {
"regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
"placeholder": "irc.example.org"
},
"nickname": {
"regexp": "[^\\s#]+",
"placeholder": "username"
},
"channel": {
"regexp": "#[^\\s]+",
"placeholder": "#foobar"
}
}
instances:
description: |-
A list of objects representing independent instances of configuration.
For instance multiple networks on IRC if multiple are bridged by the
same bridge.
type: array
items:
type: object
example: {
"desc": "Freenode",
"icon": "mxc://example.org/JkLmNoPq",
"fields": {
"network": "freenode.net",
}
}
title: Protocol
type: object

@ -0,0 +1,66 @@
# Copyright 2018 New Vector Ltd
#
# 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.
type: object
description: Dictionary of supported third party protocols.
example: {
"irc": {
"user_fields": ["network", "nickname"],
"location_fields": ["network", "channel"],
"icon": "mxc://example.org/aBcDeFgH",
"field_types": {
"network": {
"regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
"placeholder": "irc.example.org"
},
"nickname": {
"regexp": "[^\\s]+",
"placeholder": "username"
},
"channel": {
"regexp": "#[^\\s]+",
"placeholder": "#foobar"
}
},
"instances": [
{
"desc": "Freenode",
"icon": "mxc://example.org/JkLmNoPq",
"fields": {
"network": "freenode.net",
}
}
]
},
"gitter": {
"user_fields": ["username"],
"location_fields": ["room"],
"field_types": {
"username": {
"regexp": "@[^\\s]+",
"placeholder": "@username"
},
"room": {
"regexp": "[^\\s]+\\/[^\\s]+",
"placeholder": "matrix-org/matrix-doc"
}
},
"instances": [
{
"desc": "Gitter",
"icon": "mxc://example.org/zXyWvUt",
"fields": {}
}
]
}
}

@ -0,0 +1,31 @@
# Copyright 2018 New Vector Ltd
#
# 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.
# TODO: Change userid to user_id as a breaking change
properties:
userid:
description: A Matrix User ID represting a third party user.
type: string
example: "@_gitter_jim:matrix.org"
protocol:
description: The protocol ID that the third party location is a part of.
type: string
example: gitter
fields:
description: Information used to identify this third party location.
type: object
example:
"user": "jim"
title: Location
type: object

@ -0,0 +1,17 @@
# Copyright 2018 New Vector Ltd
#
# 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.
type: array
description: List of matched third party users.
items:
$ref: user.yaml

@ -24,6 +24,8 @@ consumes:
- application/json - application/json
produces: produces:
- application/json - application/json
securityDefinitions:
$ref: definitions/security.yaml
paths: paths:
"/thirdparty/protocols": "/thirdparty/protocols":
get: get:
@ -36,60 +38,8 @@ paths:
responses: responses:
200: 200:
description: The protocols supported by the homeserver. description: The protocols supported by the homeserver.
examples:
application/json: {
"irc": {
"user_fields": ["network", "nickname"],
"location_fields": ["network", "channel"],
"icon": "mxc://example.org/aBcDeFgH",
"field_types": {
"network": {
"regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
"placeholder": "irc.example.org"
},
"nickname": {
"regexp": "[^\\s]+",
"placeholder": "username"
},
"channel": {
"regexp": "#[^\\s]+",
"placeholder": "#foobar"
}
},
"instances": [
{
"desc": "Freenode",
"icon": "mxc://example.org/JkLmNoPq",
"fields": {
"network": "freenode.net",
}
}
]
},
"gitter": {
"user_fields": ["username"],
"location_fields": ["room"],
"field_types": {
"username": {
"regexp": "@[^\\s]+",
"placeholder": "@username"
},
"room": {
"regexp": "[^\\s]+\\/[^\\s]+",
"placeholder": "matrix-org/matrix-doc"
}
},
"instances": [
{
"desc": "Gitter",
"icon": "mxc://example.org/zXyWvUt",
"fields": {}
}
]
}
}
schema: schema:
type: object $ref: ../application-service/definitions/schema/protocol_metadata.yaml
"/thirdparty/protocol/{protocol}": "/thirdparty/protocol/{protocol}":
get: get:
summary: Retrieve metadata about a specific protocol that the homeserver supports. summary: Retrieve metadata about a specific protocol that the homeserver supports.
@ -107,45 +57,16 @@ paths:
responses: responses:
200: 200:
description: The protocol was found and metadata returned. description: The protocol was found and metadata returned.
examples:
application/json: {
"user_fields": ["network", "nickname"],
"location_fields": ["network", "channel"],
"icon": "mxc://example.org/aBcDeFgH",
"field_types": {
"network": {
"regexp": "([a-z0-9]+\\.)*[a-z0-9]+",
"placeholder": "irc.example.org"
},
"nickname": {
"regexp": "[^\\s#]+",
"placeholder": "username"
},
"channel": {
"regexp": "#[^\\s]+",
"placeholder": "#foobar"
}
},
"instances": [
{
"desc": "Freenode",
"icon": "mxc://example.org/JkLmNoPq",
"fields": {
"network": "freenode.net",
}
}
]
}
schema: schema:
type: object $ref: ../application-service/definitions/schema/protocol.yaml
404: 404:
description: The protocol is unknown description: The protocol is unknown.
examples: examples:
application/json: { application/json: {
"errcode": "M_NOT_FOUND" "errcode": "M_NOT_FOUND"
} }
schema: schema:
type: object $ref: definitions/error.yaml
"/thirdparty/location/{protocol}": "/thirdparty/location/{protocol}":
get: get:
summary: Retreive Matrix-side portals rooms leading to a third party location. summary: Retreive Matrix-side portals rooms leading to a third party location.
@ -165,9 +86,9 @@ paths:
type: string type: string
description: The protocol used to communicate to the third party network. description: The protocol used to communicate to the third party network.
required: true required: true
x-example: "irc" x-example: irc
- in: query - in: query
name: field1, field2... name: searchFields
type: string type: string
description: |- description: |-
One or more custom fields to help identify the third party One or more custom fields to help identify the third party
@ -175,36 +96,21 @@ paths:
responses: responses:
200: 200:
description: At least one portal room was found. description: At least one portal room was found.
examples:
application/json: [{
"alias": "#freenode_#matrix:matrix.org",
"protocol": "irc",
"fields": {
"network": "freenode",
"channel": "#matrix"
}
}]
schema: schema:
type: array $ref: ../application-service/definitions/schema/location_batch.yaml
description: |-
Array of portal rooms leading to the requested third party
location.
items:
type: object
title: Portal Room
404: 404:
description: The Matrix room alias was not found description: No portal rooms were found.
examples: examples:
application/json: { application/json: {
"errcode": "M_NOT_FOUND" "errcode": "M_NOT_FOUND"
} }
schema: schema:
type: object $ref: definitions/error.yaml
"/thirdparty/user/{protocol}": "/thirdparty/user/{protocol}":
get: get:
summary: Retrieve the Matrix ID of a corresponding third party user. summary: Retrieve the Matrix User ID of a corresponding third party user.
description: |- description: |-
Retrieve a Matrix ID linked to a user on the third party service, given Retrieve a Matrix User ID linked to a user on the third party service, given
a set of user parameters. a set of user parameters.
operationId: queryUserByProtocol operationId: queryUserByProtocol
parameters: parameters:
@ -222,43 +128,16 @@ paths:
One or more custom fields that are passed to the AS to help identify the user. One or more custom fields that are passed to the AS to help identify the user.
responses: responses:
200: 200:
description: The Matrix IDs found with the given parameters. description: The Matrix User IDs found with the given parameters.
examples: $ref: ../application-service/definitions/schema/user_batch.yaml
application/json: [{
"userid": "@_gitter_jim:matrix.org",
"protocol": "gitter",
"fields": {
"user": "jim"
}
}]
schema:
type: array
description: Matched users.
items:
type: object
title: User
schema:
userid:
type: string
description: The Matrix ID of the matched user.
protocol:
type: string
description: The third party protocol.
fields:
type: object
description: The third party network fields used to identify this user.
properties:
user:
type: string
description: An example field, in this case the username for a Gitter user.
404: 404:
description: The Matrix ID was not found description: The Matrix User ID was not found
examples: examples:
application/json: { application/json: {
"errcode": "M_NOT_FOUND" "errcode": "M_NOT_FOUND"
} }
schema: schema:
type: object $ref: definitions/error.yaml
"/thirdparty/location": "/thirdparty/location":
get: get:
summary: Reverse-lookup third party locations given a Matrix room alias. summary: Reverse-lookup third party locations given a Matrix room alias.
@ -267,30 +146,17 @@ paths:
alias. alias.
operationId: queryLocationByAlias operationId: queryLocationByAlias
parameters: parameters:
- in: path - in: path
name: alias name: alias
type: string type: string
description: The Matrix room alias to look up. description: The Matrix room alias to look up.
required: true
responses: responses:
200: 200:
description: |- description: |-
All found third party locations. Same response format as the All found third party locations.
forward lookup response.
examples:
application/json: [{
"alias": "#freenode_#matrix:matrix.org",
"protocol": "irc",
"fields": {
"network": "freenode",
"channel": "#matrix"
}
}]
schema: schema:
type: array $ref: ../application-service/definitions/schema/location_batch.yaml
description: Matched third party locations.
items:
type: object
title: Location
404: 404:
description: The Matrix room alias was not found description: The Matrix room alias was not found
examples: examples:
@ -298,41 +164,30 @@ paths:
"errcode": "M_NOT_FOUND" "errcode": "M_NOT_FOUND"
} }
schema: schema:
type: object $ref: definitions/error.yaml
"/thirdparty/user": "/thirdparty/user":
get: get:
summary: Reverse-lookup third party users given a Matrix ID. summary: Reverse-lookup third party users given a Matrix User ID.
description: |- description: |-
Retreive an array of third party users from a Matrix ID. Retreive an array of third party users from a Matrix User ID.
operationId: queryUserByID operationId: queryUserByID
parameters: parameters:
- in: path - in: path
name: userid name: userid
type: string type: string
description: The Matrix ID to look up. description: The Matrix User ID to look up.
required: true
responses: responses:
200: 200:
description: |- description: |-
An array of third party users. An array of third party users.
examples:
application/json: [{
"userid": "@_gitter_jim:matrix.org",
"protocol": "gitter",
"fields": {
"user": "jim"
}
}]
schema: schema:
type: array $ref: ../application-service/definitions/schema/user_batch.yaml
description: Matched third party users
items:
type: object
title: User
404: 404:
description: The Matrix ID was not found description: The Matrix User ID was not found
examples: examples:
application/json: { application/json: {
"errcode": "M_NOT_FOUND" "errcode": "M_NOT_FOUND"
} }
schema: schema:
type: object $ref: definitions/error.yaml

@ -42,6 +42,7 @@ Summary
`Server Side Search`_ Optional Optional Optional Optional Optional `Server Side Search`_ Optional Optional Optional Optional Optional
`Server Administration`_ Optional Optional Optional Optional Optional `Server Administration`_ Optional Optional Optional Optional Optional
`Event Context`_ Optional Optional Optional Optional Optional `Event Context`_ Optional Optional Optional Optional Optional
`Application Services`_ Optional Optional Optional Optional Optional
===================================== ========== ========== ========== ========== ========== ===================================== ========== ========== ========== ========== ==========
*Please see each module for more details on what clients need to implement.* *Please see each module for more details on what clients need to implement.*
@ -57,6 +58,7 @@ Summary
.. _Server Side Search: `module:search`_ .. _Server Side Search: `module:search`_
.. _Server Administration: `module:admin`_ .. _Server Administration: `module:admin`_
.. _Event Context: `module:event-context`_ .. _Event Context: `module:event-context`_
.. _Application Services: `module:application-services`_
Clients Clients
------- -------

@ -1,6 +1,8 @@
Application Services Application Services
==================== ====================
.. _module:application-services:
An application service is a separate program that interacts with a homeserver An application service is a separate program that interacts with a homeserver
and provides various bits of functionality that would otherwise not make and provides various bits of functionality that would otherwise not make
sense to include directly in the homeserver. This ranges from bots, which can sense to include directly in the homeserver. This ranges from bots, which can

@ -1,772 +1,6 @@
Tables of Tracked Proposals Tables of Tracked Proposals
--------------------------- ---------------------------
proposal-wip This file is autogenerated by a jenkins build process
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table:: View the current live version `at https://matrix.org/docs/spec/proposals <https://matrix.org/docs/spec/proposals>`_
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC455 <https://github.com/matrix-org/matrix-doc/issues/455>`_
- Do we want to specify a matrix:// URI scheme for rooms? (SPEC-5)
- 2014-09-15
- 2018-05-15
- `455-1 <https://docs.google.com/document/d/18A3ZRgGR-GLlPXF_VIHxywWiX1vpMvNfAU6JCnNMVuQ/edit>`_
- `@KitsuneRal`_
- None
-
* - `MSC586 <https://github.com/matrix-org/matrix-doc/issues/586>`_
- Federation API for canonicalising MXIDs
- 2014-10-27
- 2018-05-15
- `586-1 <https://docs.google.com/document/d/1B7q_3ruJzeQTg-uJHe1UScxbVLzgm451c25OjpYcojI/edit#>`_
- `@ara4n`_
- None
-
* - `MSC489 <https://github.com/matrix-org/matrix-doc/issues/489>`_
- Extensible Profiles. (SPEC-93)
- 2015-01-19
- 2018-05-15
- `489-1 <https://docs.google.com/document/d/1jXMElbQR-5ldt_yhWuqzLFBO3-TEJWhRyWF5Y_gGSsc/edit#heading=h.h8vj3b7rllw9>`_
- `@erikjohnston`_
- None
-
* - `MSC1196 <https://github.com/matrix-org/matrix-doc/issues/1196>`_
- Matrix Escape Hatch (Versioned Rooms)
- 2015-10-22
- 2018-05-15
- `1196-1 <https://docs.google.com/document/d/1_N9HhXEqO9yX1c4TSlVAAvTaiyzDXTuVmGW-3hJe840/edit#heading=h.83j3cb3h3i4c>`_
- `@leonerd`_
- None
-
* - `MSC1148 <https://github.com/matrix-org/matrix-doc/issues/1148>`_
- Support for websockets
- 2015-11-16
- 2018-06-04
- `1148-1 <https://github.com/matrix-org/matrix-doc/blob/master/drafts/websockets.rst>`_, `1148-2 <https://docs.google.com/document/d/104ClehFBgqLQbf4s-AKX2ijr8sOAxcizfcRs_atsB0g/edit>`_
- `@richvdh`_, `@krombel`_
- None
-
* - `MSC1238 <https://github.com/matrix-org/matrix-doc/issues/1238>`_
- Push to Talk
- 2016-04-13
- 2018-05-15
- `1238-1 <TBD>`_
- `@aviraldg`_
- None
- `PR#310`_
* - `MSC1198 <https://github.com/matrix-org/matrix-doc/issues/1198>`_
- Threading API
- 2016-05-23
- 2018-05-15
- `1198-1 <https://docs.google.com/document/d/1bLAcYBvTYp2XNvUG-DuYv4E0uWThz_Cr6PHzspq7e60/edit>`_
- `@Half-Shot`_
- None
-
* - `MSC1207 <https://github.com/matrix-org/matrix-doc/issues/1207>`_
- Publishing Room Lists for 3rd party networks
- 2016-10-21
- 2018-05-31
- `1207-1 <https://docs.google.com/document/d/12mVuOT7Qoa49L_PQAPjavoK9c2nalYEFOHxJOmH5j-w/edit>`_
- `@erikjohnston`_
- None
-
* - `MSC441 <https://github.com/matrix-org/matrix-doc/issues/441>`_
- Support for Reactions / Aggregations
- 2016-12-25
- 2018-05-15
- `441-1 <https://docs.google.com/document/d/1CnNbYSSea0KcyhEI6-rB8R8u6DCZyZv-Pv4hhoXJHSE/edit>`_
- `@pik`_
- `@ara4n`_
-
* - `MSC1237 <https://github.com/matrix-org/matrix-doc/issues/1237>`_
- Improving m.location with GeoJSON and accuracy
- 2017-05-19
- 2018-05-15
- `1237-1 <TBD>`_
- `@Half-Shot`_
- None
- `PR#919`_
* - `MSC971 <https://github.com/matrix-org/matrix-doc/issues/971>`_
- Add groups stuff to spec
- 2017-08-10
- 2018-05-20
- `971-1 <https://docs.google.com/document/d/17RHQ4Fw_cltmF1ABvDp7P4q65Kk65vi6HAaNbXgjjJE/edit>`_, `971-2 <https://docs.google.com/document/d/1cTK2pKolWNXspL69knpDJkcQWZsHpsMDTc2X_dEB5XQ/edit>`_, `971-3 <https://docs.google.com/document/d/1F2i1q7Kk4DKMtSaUzwj8CoNkDDwNFu0Uc2xPzJ2Mx00/edit>`_
- `@erikjohnston`_
- None
-
* - `MSC1215 <https://github.com/matrix-org/matrix-doc/issues/1215>`_
- Groups as Rooms
- 2017-10-17
- 2018-05-15
- `1215-1 <https://docs.google.com/document/d/1ZnAuA_zti-K2-RnheXII1F1-oyVziT4tJffdw1-SHrE/edit#>`_
- `@ara4n`_
- None
-
* - `MSC1217 <https://github.com/matrix-org/matrix-doc/issues/1217>`_
- Visibility of groups to group members and their non-members
- 2017-10-30
- 2018-05-15
- `1217-1 <https://docs.google.com/document/d/13OQ0gtdLsha4RKttxVZlGTKEncvjOToa2duv8bOdyvs/edit#heading=h.xsf65cn5ty5q>`_
- `@lampholder`_
- None
-
* - `MSC1218 <https://github.com/matrix-org/matrix-doc/issues/1218>`_
- Bridging group membership with 3rd party group sources
- 2017-11-15
- 2018-05-15
- `1218-1 <https://docs.google.com/document/d/1Nyk3Jf9BF0T2jHbeOV4DltazY5a3eP2meovSnMKDsxU/edit#heading=h.aienm7wdvf4q>`_
- `@lukebarnard1`_
- None
-
* - `MSC1219 <https://github.com/matrix-org/matrix-doc/issues/1219>`_
- Proposal for storing megolm keys serverside
- 2017-11-23
- 2018-05-15
- `1219-1 <https://docs.google.com/document/d/1MOoIA9qEKIhUQ3UmKZG-loqA8e0BzgWKKlKRUGMynVc/edit>`_
- `@ara4n`_
- None
-
* - `MSC1221 <https://github.com/matrix-org/matrix-doc/issues/1221>`_
- Improving Presence
- 2017-12-26
- 2018-05-24
- `1221-1 <https://docs.google.com/document/d/1sKaM9J5oorEeReYwOBmcgED6XnX2PdCYcx0Pp0gFnqM/edit#heading=h.geptormxf2k8>`_
- `@ara4n`_
- None
-
* - `MSC1222 <https://github.com/matrix-org/matrix-doc/issues/1222>`_
- Pushing updates about Groups (Communities) to clients
- 2018-01-02
- 2018-05-24
- `1222-1 <https://drive.google.com/open?id=1GzwhGdnWWMENYOaXMFP8CD-M9ny1vznxHnNqT3I3NZI>`_
- `@ara4n`_
- None
-
* - `MSC1225 <https://github.com/matrix-org/matrix-doc/issues/1225>`_
- Extensible event types & fallback in Matrix
- 2018-02-18
- 2018-05-15
- `1225-1 <https://docs.google.com/document/d/1FUVFzTOF4a6XBKVTk55bVRIk4N9u5uZkHS4Rjr_SGxo/edit#heading=h.m568t57r6od9>`_
- `@ara4n`_
- None
-
* - `MSC1206 <https://github.com/matrix-org/matrix-doc/issues/1206>`_
- Proposal for improved bot support
- 2018-03-14
- 2018-06-08
- `1206-1 <https://docs.google.com/document/d/13ec6iqTQc7gMYGtiyP6qkzsgi3APVwuoXqJFHrfLEP4/edit?usp=sharing>`_
- `@turt2live`_
- None
-
* - `MSC1228 <https://github.com/matrix-org/matrix-doc/issues/1228>`_
- Removing MXIDs from events
- 2018-04-19
- 2018-05-15
- `1228-1 <https://drive.google.com/open?id=1ni4LnC_vafX4h4K4sYNpmccS7QeHEFpAcYcbLS-J21Q>`_
- `@richvdh`_
- None
-
* - `MSC1231 <https://github.com/matrix-org/matrix-doc/issues/1231>`_
- Handling Consent for Privacy Policy
- 2018-05-02
- 2018-05-15
- `1231-1 <https://docs.google.com/document/d/1-Q_Z9dD3VTfsNYtK_WTzyTQR4HQWsntt-_DwgoW02ZU/edit#heading=h.cvd8uae3gmto>`_
- `@neilisfragile`_
- None
-
* - `MSC1267 <https://github.com/matrix-org/matrix-doc/issues/1267>`_
- Interactive Key Verification
- 2018-05-28
- 2018-05-28
- `1267-1 <https://docs.google.com/document/d/1SXmyjyNqClJ5bTHtwvp8tT1Db4pjlGVxfPQNdlQILqU/edit#>`_
- `@uhoreg`_
- None
-
* - `MSC1280 <https://github.com/matrix-org/matrix-doc/issues/1280>`_
- Mechanisms for communicating erasure requests to bots and federated homeservers
- 2018-06-05
- 2018-06-05
- `1280-1 <https://docs.google.com/document/d/17ssplT4pX80ebmyaFIYcXtINV88lBT83ddW9ZhjsDnI>`_
- `@richvdh`_
- None
-
* - `MSC688 <https://github.com/matrix-org/matrix-doc/issues/688>`_
- Calculate room names server-side
- 2018-06-10
- 2018-06-15
- `688-1 <https://docs.google.com/document/d/11i14UI1cUz-OJ0knD5BFu7fmT6Fo327zvMYqfSAR7xs/edit#>`_
- `@ara4n`_
- None
-
* - `MSC1324 <https://github.com/matrix-org/matrix-doc/issues/1324>`_
- Custom protocol definitions for application services
- 2018-06-20
- 2018-06-20
- `1324-1 <https://docs.google.com/document/d/1nCAGu9ZDqum39yj1-pun-sldCCHgeDA0tPqC94R4Qcg/edit?usp=sharing>`_
- `@anoadragon453`_
- None
-
* - `MSC1323 <https://github.com/matrix-org/matrix-doc/issues/1323>`_
- AS traffic rate-limiting
- 2018-06-20
- 2018-07-03
- `1323-1 <https://docs.google.com/document/d/14ygfhAMUrAa04YMHHl2P8_mxV3H2ntNq_-crmZizED0/edit?usp=sharing>`_
- `@anoadragon453`_
- None
-
* - `MSC1322 <https://github.com/matrix-org/matrix-doc/issues/1322>`_
- Mechanism to communicate 3PID binding updates or deletions to homeservers
- 2018-06-20
- 2018-06-20
- `1322-1 <https://docs.google.com/document/d/1LPHBfJQ6x5iOkm2_ZYPNHNjyAzJ4hWNdOGcPGpnEb14>`_
- `@babolivier`_
- None
-
proposal-ready-for-review
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC1227 <https://github.com/matrix-org/matrix-doc/issues/1227>`_
- Proposal for lazy-loading room members to improve initial sync speed and client RAM usage
- 2018-03-05
- 2018-06-10
- `1227-1 <https://docs.google.com/document/d/11yn-mAkYll10RJpN0mkYEVqraTbU3U4eQx9MNrzqX1U/edit>`_
- `@ara4n`_
- None
-
* - `MSC1206 <https://github.com/matrix-org/matrix-doc/issues/1206>`_
- Proposal for improved bot support
- 2018-03-14
- 2018-06-08
- `1206-1 <https://docs.google.com/document/d/13ec6iqTQc7gMYGtiyP6qkzsgi3APVwuoXqJFHrfLEP4/edit?usp=sharing>`_
- `@turt2live`_
- None
-
* - `MSC1256 <https://github.com/matrix-org/matrix-doc/issues/1256>`_
- Custom emoji and sticker packs in matrix
- 2018-05-23
- 2018-05-24
- `1256-1 <https://docs.google.com/document/d/1zHS14unA2Wb3DgTL5fiymlWKZo4WMJpmmJOgY_2g6pg/edit?usp=sharing>`_
- `@turt2live`_
- None
-
* - `MSC1270 <https://github.com/matrix-org/matrix-doc/issues/1270>`_
- Proposal Add /_matrix/media/v1/resolve_url to Client-Server API: download and preview urls in the clients despite CORS
- 2018-05-31
- 2018-06-19
- `1270-1 <https://docs.google.com/document/d/1bbX1yxNETmMa-AxBGjIpb4lNoTuc3vjGXmbZWrNBlzM/edit?usp=sharing>`_
- `@oivoodoo`_
- None
-
* - `MSC701 <https://github.com/matrix-org/matrix-doc/issues/701>`_
- Auth for content repo (and enforcing GDPR erasure)
- 2018-06-04
- 2018-06-07
- `701-1 <https://docs.google.com/document/d/1ERHpmthZyspnZtE3tQzxKTkcxar6JANeyNXgz2_djhA/edit#>`_
- `@ara4n`_
- None
-
* - `MSC1304 <https://github.com/matrix-org/matrix-doc/issues/1304>`_
- Proposal to simplify the auth rules of m.room.power_level events.
- 2018-06-13
- 2018-06-14
- `1304-1 <https://docs.google.com/document/d/1YuaCFH3RzBUIAjJWFMzKROMDlttoP94KIsyV_F_kfNs/edit#heading=h.8b2tmd2n0vhz>`_
- `@richvdh`_, `@ara4n`_
- None
-
* - `MSC1301 <https://github.com/matrix-org/matrix-doc/issues/1301>`_
- Proposal for improving authorization for the matrix profile API
- 2018-06-13
- 2018-06-13
- `1301-1 <https://docs.google.com/document/d/1G7JjyTuJlZHieuAflGFWmdKyNViGGLRTWON7AMl0wrM/edit#>`_
- `@turt2live`_
- None
-
* - `MSC1309 <https://github.com/matrix-org/matrix-doc/issues/1309>`_
- Proposal for an application service management API
- 2018-06-14
- 2018-06-15
- `1309-1 <https://docs.google.com/document/d/1Y6bWdejrOiwL5UjnJ5VnOKoK6OfK6kX-pYbWT7f5czA/edit>`_
- `@turt2live`_
- None
-
* - `MSC1308 <https://github.com/matrix-org/matrix-doc/issues/1308>`_
- Proposal for speeding up review of simple spec changes
- 2018-06-14
- 2018-06-24
-
- `@ara4n`_
- None
-
* - `MSC1306 <https://github.com/matrix-org/matrix-doc/issues/1306>`_
- Proposal to filter out traffic to Appservices based on filters
- 2018-06-14
- 2018-06-14
- `1306-1 <https://docs.google.com/document/d/1YhjKWTjIijdM40_4xePtU6LliDJT068IE0i09Yl1w6g/edit?usp=sharing>`_
- `@Half-Shot`_
- None
-
proposal-in-review
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC1194 <https://github.com/matrix-org/matrix-doc/issues/1194>`_
- A way for HSes to remove bindings from ISes (aka unbind)
- 2018-05-09
- 2018-06-05
- `1194-1 <https://docs.google.com/document/d/135g2muVxmuml0iUnLoTZxk8M2ZSt3kJzg81chGh51yg/edit?usp=sharing>`_
- `@dbkr`_
- None
-
proposal-passed-review
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC433 <https://github.com/matrix-org/matrix-doc/issues/433>`_
- Support for discovering API endpoints via .well-known URIs (SPEC-121)
- 2015-03-08
- 2018-07-01
- `433-1 <https://docs.google.com/document/d/1OdEj06qA7diURofyonIMgTR3fB_pWf12Txye41qd-U4/edit>`_, `433-2 <https://docs.google.com/document/d/1vF-uWlUYmf1Xo161m871H1upJbwiIPeikWGWzaE_lrU/edit#>`_
- `@maxidor`_, `others`_
- `@uhoreg`_
-
* - `MSC1226 <https://github.com/matrix-org/matrix-doc/issues/1226>`_
- State Reset mitigation proposal
- 2018-02-20
- 2018-05-15
- `1226-1 <https://docs.google.com/document/d/1L2cr8djdpOFXJgqGTf3gUrk-YGBYf--rP8Nw6mYYAu8/edit#heading=h.vazyvubo3b4z>`_
- `@richvdh`_
- None
-
* - `MSC1229 <https://github.com/matrix-org/matrix-doc/issues/1229>`_
- Mitigating abuse of the event depth parameter over federation
- 2018-04-30
- 2018-05-15
- `1229-1 <https://docs.google.com/document/d/16ofbjluy8ZKYL6nt7WLHG4GqSodJUWLUxHhI6xPEjr4/edit>`_
- `@ara4n`_
- None
-
* - `MSC1232 <https://github.com/matrix-org/matrix-doc/issues/1232>`_
- Media limits API
- 2018-05-04
- 2018-06-21
- `1232-1 <https://docs.google.com/document/d/1fI4ZqQcyAyBEPMtS1MCZWpN84kEPdm9SDw6SVZsJvYY/edit>`_
- `@Half-Shot`_
- None
- `PR#1189`_
* - `MSC1236 <https://github.com/matrix-org/matrix-doc/issues/1236>`_
- Matrix Widget API v2
- 2018-05-13
- 2018-05-15
- `1236-1 <https://docs.google.com/document/d/1uPF7XWY_dXTKVKV7jZQ2KmsI19wn9-kFRgQ1tFQP7wQ/edit>`_
- `@rxl881`_
- None
-
spec-pr-missing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC1200 <https://github.com/matrix-org/matrix-doc/issues/1200>`_
- Configuration of E2E encryption in a room
- 2016-06-16
- 2018-05-31
- `1200-1 <https://docs.google.com/document/d/1SEPMhNh6ztcrrbkGRSayVQ23bd3cfMPkTgGL4kBS9Ps/edit#heading=h.e7hfigo2zcsj>`_
- `@richvdh`_
- None
-
* - `MSC1201 <https://github.com/matrix-org/matrix-doc/issues/1201>`_
- Device Management API
- 2016-07-14
- 2018-05-15
- `1201-1 <https://docs.google.com/document/d/1H8Z5b9kGKuvFkfDR1uQHaKdYxBD03ZDjMGH1IXQ0Wbw/edit#heading=h.8rtccxo23ng>`_
- `@richvdh`_
- None
-
* - `MSC1203 <https://github.com/matrix-org/matrix-doc/issues/1203>`_
- 3rd Party Entity lookup API
- 2016-07-21
- 2018-07-02
- `1203-1 <https://docs.google.com/document/d/13NGa46a_WWno-XYfe8mQrglQdtOYMFVZtxkPKXDC3ac/edit#heading=h.m0btedxhv6ao>`_
- `@leonerd`_
- None
-
* - `MSC1208 <https://github.com/matrix-org/matrix-doc/issues/1208>`_
- Encrypted attachment format
- 2016-10-26
- 2018-05-15
- `1208-1 <https://docs.google.com/document/d/1vZi2xGmWLQMANobe5IxaqxiFc4HhykZDNcu102xjZlQ/edit>`_
- `@NegativeMjark`_
- None
-
* - `MSC739 <https://github.com/matrix-org/matrix-doc/issues/739>`_
- Reporting inappropriate content in Matrix
- 2016-11-21
- 2018-05-31
- `739-1 <https://docs.google.com/document/d/15cUuF0VyBMtNIcyFqXvEmXsMURLgXzMOIW33qHoi89A/edit>`_
- `@ara4n`_
- None
-
* - `MSC1211 <https://github.com/matrix-org/matrix-doc/issues/1211>`_
- Megolm session export format
- 2017-01-03
- 2018-05-15
- `1211-1 <https://docs.google.com/document/d/1UjWpNMfof3ynFbEOtHWGmqxy_WrFZEojrGWUq_os0G8/edit>`_
- `@richvdh`_
- None
-
* - `MSC1212 <https://github.com/matrix-org/matrix-doc/issues/1212>`_
- Device List Update Stream
- 2017-01-18
- 2018-05-15
- `1212-1 <https://docs.google.com/document/d/1fNBZUeMlp0fn0en5bCji5fn6mSvj48UylWfGKrk8ZIw/edit#heading=h.j3k62x61k895>`_
- `@richvdh`_
- None
-
* - `MSC829 <https://github.com/matrix-org/matrix-doc/issues/829>`_
- Need to spec msisdn login API
- 2017-03-08
- 2018-05-15
- `829-1 <https://docs.google.com/document/d/1-6ZSSW5YvCGhVFDyD2QExAUAdpCWjccvJT5xiyTTG2Y/edit#heading=h.79ot48krpkq7>`_
- `@dbkr`_
- None
-
* - `MSC855 <https://github.com/matrix-org/matrix-doc/issues/855>`_
- spec m.login.msisdn UI auth type
- 2017-03-24
- 2018-05-15
- `855-1 <https://docs.google.com/document/d/1B7q_3ruJzeQTg-uJHe1UScxbVLzgm451c25OjpYcojI/edit#>`_
- `@dbkr`_
- None
-
* - `MSC910 <https://github.com/matrix-org/matrix-doc/issues/910>`_
- Add new Read Marker API to docs
- 2017-05-08
- 2018-05-15
-
- `@lukebarnard1`_
- None
-
* - `MSC1067 <https://github.com/matrix-org/matrix-doc/issues/1067>`_
- Spec @mentions
- 2017-07-14
- 2018-05-15
- `1067-1 <https://docs.google.com/document/d/1oRhw3DJhbVAKkHAEgyt6ccV82wtXR_11qY7JqMcesUU/edit>`_
- `@lukebarnard1`_
- None
-
* - `MSC1214 <https://github.com/matrix-org/matrix-doc/issues/1214>`_
- Related Groups (i.e. flair)
- 2017-10-03
- 2018-05-15
- `1214-1 <https://docs.google.com/document/d/1wCLXwUT3r4gVFuQpwWMHxl-nEf_Kx2pv34vZQQVb_Bc/edit#heading=h.82i09uxamcfq>`_
- `@lukebarnard1`_
- None
-
* - `MSC1033 <https://github.com/matrix-org/matrix-doc/issues/1033>`_
- Doc @room notifications
- 2017-10-23
- 2018-05-31
-
- `@dbkr`_
- None
-
* - `MSC1183 <https://github.com/matrix-org/matrix-doc/issues/1183>`_
- Document key-share requests
- 2018-04-30
- 2018-05-31
- `1183-1 <https://docs.google.com/document/d/1m4gQkcnJkxNuBmb5NoFCIadIY-DyqqNAS3lloE73BlQ>`_
- `@richvdh`_
- None
-
* - `MSC1230 <https://github.com/matrix-org/matrix-doc/issues/1230>`_
- Temporary mitigation for depth parameter abuse
- 2018-05-01
- 2018-05-15
- `1230-1 <https://docs.google.com/document/d/1I3fi2S-XnpO45qrpCsowZv8P8dHcNZ4fsBsbOW7KABI/edit#heading=h.fj95ykuss7s1>`_
- `@ara4n`_
- None
-
* - `MSC1234 <https://github.com/matrix-org/matrix-doc/issues/1234>`_
- Rich Replies format
- 2018-05-12
- 2018-05-18
- `1234-1 <https://docs.google.com/document/d/1BPd4lBrooZrWe_3s_lHw_e-Dydvc7bXbm02_sV2k6Sc>`_
- `@t3chguy`_
- None
-
merged
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC1197 <https://github.com/matrix-org/matrix-doc/issues/1197>`_
- Ignoring Users
- 2016-05-03
- 2018-05-18
- `1197-1 <https://docs.google.com/document/d/1Jex7lDAwmv0KcgyL9oeGfUCsjw0CWSqedPKZ1ViSVis/edit>`_
- `@erikjohnston`_
- None
- `PR#1142`_
* - `MSC1199 <https://github.com/matrix-org/matrix-doc/issues/1199>`_
- Notifications API
- 2016-05-23
- 2018-06-25
- `1199-1 <https://docs.google.com/document/d/1tQUOkbygHky_6Te4ZNCju_KV0Phmk1cuJsbf2Ir0Vvs/edit>`_
- `@dbkr`_
- None
-
* - `MSC1204 <https://github.com/matrix-org/matrix-doc/issues/1204>`_
- Access Token Semantics (refresh and macaroons) - aka Auth Sept 2016 Edition
- 2016-09-29
- 2018-06-25
- `1204-1 <https://docs.google.com/document/d/1mdis1LQcoOSVRElszEmrAWZGIX0jX_croSha-X5oe_w/edit#heading=h.3zmkga77kwe3>`_
- `@richvdh`_
- None
-
* - `MSC1205 <https://github.com/matrix-org/matrix-doc/issues/1205>`_
- Proposal for multi-device deletion API
- 2016-10-12
- 2018-06-25
- `1205-1 <https://docs.google.com/document/d/1LaA9Q96ytumLmE-eAscONMMX5rE26ri4G7uj-rmltbs/edit>`_
- `@richvdh`_
- None
- `PR#1239`_
* - `MSC953 <https://github.com/matrix-org/matrix-doc/issues/953>`_
- Add /user_directory/search API
- 2017-05-31
- 2018-05-10
- `953-1 <https://docs.google.com/document/d/1Xc9lAM-FiIC66Z5pnaI4D5zqAqcFcZ5uHr3bYT-DWVk/edit>`_
- `@erikjohnston`_
- None
-
* - `MSC1233 <https://github.com/matrix-org/matrix-doc/issues/1233>`_
- A proposal for organising spec proposals
- 2018-05-10
- 2018-06-25
- `1233-1 <https://docs.google.com/document/d/1wLln7da12l0H5YgAh5xM2TVE7VsTjXzhEwVh3sRBMCk/edit#>`_
- `@ara4n`_
- None
- `PR#1240`_
abandoned
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC531 <https://github.com/matrix-org/matrix-doc/issues/531>`_
- Homeservers as OAuth authorization endpoints (resource owners) (SPEC-206)
- 2015-07-25
- 2018-05-15
- `531-1 <https://docs.google.com/document/d/1vEPFlX79oa1foBmar6i8nvw-hB4SXfVqg6o6Wsdl1kQ/edit>`_
- `@Kegsay`_
- None
-
* - `MSC1202 <https://github.com/matrix-org/matrix-doc/issues/1202>`_
- Profile Personae
- 2016-07-15
- 2018-05-15
- `1202-1 <https://docs.google.com/document/d/1_15r2b43506FhgEKjLZC32BxRy6JAlB8ayCazMR0_S0/edit>`_
- `@erikjohnston`_
- None
-
* - `MSC1209 <https://github.com/matrix-org/matrix-doc/issues/1209>`_
- Server Side Profile API
- 2016-11-01
- 2018-05-15
- `1209-1 <https://docs.google.com/document/d/18r84a3IgsItUu1k326XZCGHbVy0S-YLqrfvItGaEo_4/edit#heading=h.oxxmp054yga2>`_
- `@erikjohnston`_
- None
-
* - `MSC1213 <https://github.com/matrix-org/matrix-doc/issues/1213>`_
- Set defaults for m.federate
- 2017-04-10
- 2018-05-18
- `1213-1 <https://docs.google.com/document/d/14zqsbwl5KKil-bB8w2HMhidBVmFkP9Q7EQKFwKIIfZc/edit#heading=h.eipip5qhqo0d>`_
- `@psaavedra`_
- None
-
obsolete
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
:widths: auto
:stub-columns: 1
* - MSC
- Proposal Title
- Creation Date
- Update Date
- Documentation
- Author
- Shepherd
- PRs
* - `MSC1223 <https://github.com/matrix-org/matrix-doc/issues/1223>`_
- Replies event format
- 2018-02-01
- 2018-05-15
- `1223-1 <https://docs.google.com/document/d/1KLdKtuZBbFoWDSfN4KM3p7LnIvFBQfSORICBo8zRHaE/edit>`_
- `@t3chguy`_
- None
-
* - `MSC1224 <https://github.com/matrix-org/matrix-doc/issues/1224>`_
- Replies - next steps
- 2018-02-03
- 2018-05-15
- `1224-1 <https://docs.google.com/document/d/1FZsvodn2C0iKJDtn-8y8IPwOa96ixoJejK3gMLVOXHM/edit>`_
- `@t3chguy`_
- None
-
* - `MSC1235 <https://github.com/matrix-org/matrix-doc/issues/1235>`_
- Proposal for Calendar Events
- 2018-02-06
- 2018-05-15
- `1235-1 <https://docs.google.com/document/d/1kfR5aVflEtZ9spHkqa2gOkS5eGr6nYfWVY7BcM5DAZg/edit>`_
- `@Half-Shot`_
- None
-
* - `MSC1220 <https://github.com/matrix-org/matrix-doc/issues/1220>`_
- Rich quoting proposal
- 2018-05-10
- 2018-05-15
- `1220-1 <https://docs.google.com/document/d/146zJr4h6odczMeGUH99dxDZk0i_iVtDiVMy510G25jI/edit>`_
- `@t3chguy`_
- None
-
.. _@rxl881: https://github.com/rxl881
.. _@turt2live: https://github.com/turt2live
.. _@erikjohnston: https://github.com/erikjohnston
.. _@anoadragon453: https://github.com/anoadragon453
.. _@t3chguy: https://github.com/t3chguy
.. _@Kegsay: https://github.com/Kegsay
.. _@KitsuneRal: https://github.com/KitsuneRal
.. _@leonerd: https://github.com/leonerd
.. _@psaavedra: https://github.com/psaavedra
.. _@ara4n: https://github.com/ara4n
.. _@krombel: https://github.com/krombel
.. _@maxidor: https://github.com/maxidor
.. _@uhoreg: https://github.com/uhoreg
.. _@pik: https://github.com/pik
.. _@neilisfragile: https://github.com/neilisfragile
.. _@babolivier: https://github.com/babolivier
.. _@lukebarnard1: https://github.com/lukebarnard1
.. _others: https://github.com/thers
.. _@Half-Shot: https://github.com/Half-Shot
.. _@aviraldg: https://github.com/aviraldg
.. _@oivoodoo: https://github.com/oivoodoo
.. _@richvdh: https://github.com/richvdh
.. _@NegativeMjark: https://github.com/NegativeMjark
.. _@lampholder: https://github.com/lampholder
.. _@dbkr: https://github.com/dbkr
.. _PR#1189: https://github.com/matrix-org/matrix-doc/pull/1189
.. _PR#310: https://github.com/matrix-org/matrix-doc/pull/310
.. _PR#1142: https://github.com/matrix-org/matrix-doc/pull/1142
.. _PR#1239: https://github.com/matrix-org/matrix-doc/pull/1239
.. _PR#1240: https://github.com/matrix-org/matrix-doc/pull/1240
.. _PR#919: https://github.com/matrix-org/matrix-doc/pull/919

@ -12,7 +12,6 @@ targets:
- { 1: modules.rst } - { 1: modules.rst }
- { 2: feature_profiles.rst } - { 2: feature_profiles.rst }
- { 2: "group:modules" } # reference a group of files - { 2: "group:modules" } # reference a group of files
- { 1: third_party_lookup.rst }
version_label: "%CLIENT_RELEASE_LABEL%" version_label: "%CLIENT_RELEASE_LABEL%"
application_service: application_service:
files: files:
@ -69,6 +68,7 @@ groups: # reusable blobs of files when prefixed with 'group:'
- modules/ignore_users.rst - modules/ignore_users.rst
- modules/stickers.rst - modules/stickers.rst
- modules/report_content.rst - modules/report_content.rst
- modules/application_services.rst
title_styles: ["=", "-", "~", "+", "^", "`", "@", ":"] title_styles: ["=", "-", "~", "+", "^", "`", "@", ":"]

Loading…
Cancel
Save