matrix-spec/data/api/server-server/user_devices.yaml
codedust 48bbc53045 Clarify terminology for keys in cross-signing module
- the naming of the master signing key has been harmonised (no more 'master
  cross-signing key' or 'master key').
- in the QR code example, the term 'cross-signing key' has been replaced
  by 'master signing key' since in mode 0x00, the current user's own master
  signing key and what the device thinks the other user's master signng key
  is used.
- it has been made more explicit that cross-signing private keys stored on the
  server are stored as described in the secrets module (as opposed to store
  them in unencrypted form)

Signed-off-by: codedust <codedust@so.urceco.de>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2026-01-30 15:11:05 +01:00

125 lines
4.7 KiB
YAML

# Copyright 2018 New Vector Ltd
# Copyright 2020 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.
openapi: 3.1.0
info:
title: Matrix Federation User Device Management API
version: 1.0.0
paths:
"/user/devices/{userId}":
get:
summary: Gets all of the user's devices
description: Gets information on all of the user's devices
operationId: getUserDevices
security:
- signedRequest: []
parameters:
- in: path
name: userId
required: true
description: |-
The user ID to retrieve devices for. Must be a user local to the
receiving homeserver.
example: "@alice:example.org"
schema:
type: string
responses:
"200":
description: The user's devices.
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: The user ID devices were requested for.
example: "@alice:example.org"
stream_id:
type: integer
description: |-
A unique ID for a given user_id which describes the version of
the returned device list. This is matched with the `stream_id`
field in `m.device_list_update` EDUs in order to incrementally
update the returned device_list.
example: 5
devices:
type: array
description: The user's devices. May be empty.
items:
type: object
title: User Device
properties:
device_id:
type: string
description: The device ID.
example: JLAFKJWSCS
keys:
type: object
description: Identity keys for the device.
allOf:
- $ref: ../client-server/definitions/device_keys.yaml
device_display_name:
type: string
description: Optional display name for the device.
example: Alice's Mobile Phone
required:
- device_id
- keys
master_key:
type: object
description: The user\'s master signing key.
allOf:
- $ref: ../client-server/definitions/cross_signing_key.yaml
- example:
user_id: "@alice:example.com"
usage:
- master
keys:
ed25519:base64+master+public+key: base64+master+public+key
self_signing_key:
type: object
description: The user\'s self-signing key.
allOf:
- $ref: ../client-server/definitions/cross_signing_key.yaml
- example:
user_id: "@alice:example.com"
usage:
- self_signing
keys:
ed25519:base64+self+signing+public+key: base64+self+signing+master+public+key
signatures:
"@alice:example.com":
ed25519:base64+master+public+key: signature+of+self+signing+key
required:
- user_id
- stream_id
- devices
servers:
- url: "{protocol}://{hostname}{basePath}"
variables:
protocol:
enum:
- http
- https
default: https
hostname:
default: localhost:8448
basePath:
default: /_matrix/federation/v1
components:
securitySchemes:
signedRequest:
$ref: definitions/security.yaml#/signedRequest