-
Notifications
You must be signed in to change notification settings - Fork 385
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
291 additions
and
2 deletions.
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
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,145 @@ | ||
# Copyright 2016 OpenMarket Ltd | ||
# Copyright 2017 Kamax.io | ||
# Copyright 2017 New Vector Ltd | ||
# Copyright 2018 New Vector Ltd | ||
# Copyright 2019 The Matrix.org Foundation C.I.C. | ||
# | ||
# 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. | ||
swagger: '2.0' | ||
info: | ||
title: "Matrix Identity Service Lookup API" | ||
version: "2.0.0" | ||
host: localhost:8090 | ||
schemes: | ||
- https | ||
basePath: /_matrix/identity/v2 | ||
consumes: | ||
- application/json | ||
produces: | ||
- application/json | ||
securityDefinitions: | ||
$ref: definitions/security.yaml | ||
paths: | ||
"/hash_details": | ||
get: | ||
summary: Gets hash function information from the server. | ||
description: |- | ||
Gets parameters for hashing identifiers from the server. This can include | ||
any of the algorithms defined in this specification. | ||
operationId: getHashDetails | ||
security: | ||
- accessToken: [] | ||
parameters: [] | ||
responses: | ||
200: | ||
description: The hash function information. | ||
examples: | ||
application/json: { | ||
"lookup_pepper": "matrixrocks", | ||
"algorithms": ["none", "sha256"] | ||
} | ||
schema: | ||
type: object | ||
properties: | ||
lookup_pepper: | ||
type: string | ||
description: |- | ||
The pepper the client MUST use in hashing identifiers, and MUST | ||
supply to the ``/lookup`` endpoint when performing lookups. | ||
Servers SHOULD rotate this string often. | ||
algorithms: | ||
type: array | ||
items: | ||
type: string | ||
description: |- | ||
The algorithms the server supports. Must contain at least ``sha256``. | ||
required: ['lookup_pepper', 'algorithms'] | ||
"/lookup": | ||
post: | ||
summary: Look up Matrix User IDs for a set of 3PIDs. | ||
description: |- | ||
Looks up the set of Matrix User IDs which have bound the 3PIDs given, if | ||
bindings are available. Note that the format of the addresses is defined | ||
later in this specification. | ||
operationId: lookupUsersV2 | ||
security: | ||
- accessToken: [] | ||
parameters: | ||
- in: body | ||
name: body | ||
schema: | ||
type: object | ||
properties: | ||
algorithm: | ||
type: string | ||
description: |- | ||
The algorithm the client is using to encode the ``addresses``. This | ||
should be one of the available options from ``/hash_details``. | ||
example: "sha256" | ||
pepper: | ||
type: string | ||
description: |- | ||
The pepper from ``/hash_details``. This is required even when the | ||
``algorithm`` does not make use of it. | ||
example: "matrixrocks" | ||
addresses: | ||
type: array | ||
items: | ||
type: string | ||
description: |- | ||
The addresses to look up. The format of the entries here depend on | ||
the ``algorithm`` used. Note that queries which have been incorrectly | ||
hashed or formatted will lead to no matches. | ||
example: [ | ||
"4kenr7N9drpCJ4AfalmlGQVsOn3o2RHjkADUpXJWZUc", | ||
"nlo35_T5fzSGZzJApqu8lgIudJvmOQtDaHtr-I4rU7I" | ||
] | ||
required: ['algorithm', 'pepper', 'addresses'] | ||
responses: | ||
200: | ||
description: | ||
The associations for any matched ``addresses``. | ||
examples: | ||
application/json: { | ||
"mappings": { | ||
"4kenr7N9drpCJ4AfalmlGQVsOn3o2RHjkADUpXJWZUc": "@alice:example.org" | ||
} | ||
} | ||
schema: | ||
type: object | ||
properties: | ||
mappings: | ||
type: object | ||
description: |- | ||
Any applicable mappings of ``addresses`` to Matrix User IDs. Addresses | ||
which do not have associations will not be included, which can make | ||
this property be an empty object. | ||
title: AssociatedMappings | ||
additionalProperties: | ||
type: string | ||
required: ['mappings'] | ||
400: | ||
description: | ||
The client's request was invalid in some way. One possible problem could | ||
be the ``pepper`` being invalid after the server has rotated it - this is | ||
presented with the ``M_INVALID_PEPPER`` error code. Clients SHOULD make | ||
a call to ``/hash_details`` to get a new pepper in this scenario, being | ||
careful to avoid retry loops. | ||
examples: | ||
application/json: { | ||
"errcode": "M_INVALID_PEPPER", | ||
"error": "Unknown or invalid pepper - has it been rotated?" | ||
} | ||
schema: | ||
$ref: "../client-server/definitions/errors/error.yaml" |
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