mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-04-30 14:14:09 +02:00
Merge 867c96c22b into 156d1b878a
This commit is contained in:
commit
56b5e4f2d6
1
changelogs/client_server/newsfragments/2354.feature
Normal file
1
changelogs/client_server/newsfragments/2354.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Specify m.key_backup account data (MSC4287).
|
||||||
|
|
@ -4280,6 +4280,7 @@ that profile.
|
||||||
| [Policy Servers](#policy-servers) | Optional | Optional | Optional | Optional | Optional |
|
| [Policy Servers](#policy-servers) | Optional | Optional | Optional | Optional | Optional |
|
||||||
| [OpenID](#openid) | Optional | Optional | Optional | Optional | Optional |
|
| [OpenID](#openid) | Optional | Optional | Optional | Optional | Optional |
|
||||||
| [Recently used emoji](#recently-used-emoji) | Optional | Optional | Optional | Optional | Optional |
|
| [Recently used emoji](#recently-used-emoji) | Optional | Optional | Optional | Optional | Optional |
|
||||||
|
| [Key Backup Enabled](#key-backup-enabled) | Optional | Optional | Optional | Optional | Optional |
|
||||||
| [Reference Relations](#reference-relations) | Optional | Optional | Optional | Optional | Optional |
|
| [Reference Relations](#reference-relations) | Optional | Optional | Optional | Optional | Optional |
|
||||||
| [Reporting Content](#reporting-content) | Optional | Optional | Optional | Optional | Optional |
|
| [Reporting Content](#reporting-content) | Optional | Optional | Optional | Optional | Optional |
|
||||||
| [Rich replies](#rich-replies) | Optional | Optional | Optional | Optional | Optional |
|
| [Rich replies](#rich-replies) | Optional | Optional | Optional | Optional | Optional |
|
||||||
|
|
@ -4385,5 +4386,6 @@ systems.
|
||||||
{{% cs-module name="Event replacements" filename="event_replacements" %}}
|
{{% cs-module name="Event replacements" filename="event_replacements" %}}
|
||||||
{{% cs-module name="Event annotations and reactions" filename="event_annotations" %}}
|
{{% cs-module name="Event annotations and reactions" filename="event_annotations" %}}
|
||||||
{{% cs-module name="Recently used emoji" filename="recent_emoji" %}}
|
{{% cs-module name="Recently used emoji" filename="recent_emoji" %}}
|
||||||
|
{{% cs-module name="Key backup enabled" filename="key_backup_enabled" %}}
|
||||||
{{% cs-module name="Threading" filename="threading" %}}
|
{{% cs-module name="Threading" filename="threading" %}}
|
||||||
{{% cs-module name="Reference relations" filename="reference_relations" %}}
|
{{% cs-module name="Reference relations" filename="reference_relations" %}}
|
||||||
|
|
|
||||||
44
content/client-server-api/modules/key_backup_enabled.md
Normal file
44
content/client-server-api/modules/key_backup_enabled.md
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
### Key backup enabled
|
||||||
|
|
||||||
|
{{% added-in v="1.19" %}}
|
||||||
|
|
||||||
|
This module enables clients to track a user's preference about enabling or
|
||||||
|
disabling [server-side backups of room keys](#server-side-key-backups). The data
|
||||||
|
is stored in the [`m.key_backup`](#mkey_backup) global
|
||||||
|
[account data](#client-config).
|
||||||
|
|
||||||
|
#### Events
|
||||||
|
|
||||||
|
{{% event event="m.key_backup" %}}
|
||||||
|
|
||||||
|
#### Client behaviour on sign-in
|
||||||
|
|
||||||
|
When a user signs in to a client which supports encryption and key backup:
|
||||||
|
|
||||||
|
* If this event type exists in account data and contains the specified property
|
||||||
|
in the correct format, clients which support key backup MUST take account of
|
||||||
|
its contents in their behaviour. For example, clients may automatically turn
|
||||||
|
on/off key backup based on the property, or prompt the user, using the
|
||||||
|
property value as a default. (Because this property is server-controlled,
|
||||||
|
clients may wish to confirm the user's intention.)
|
||||||
|
|
||||||
|
* If this event type does not exist in account data, or if it does not contain
|
||||||
|
the `enabled` property, or if the value of `enabled` is not a boolean value,
|
||||||
|
clients MUST ignore the existing value and MAY decide whether or not to
|
||||||
|
perform key backup, possibly based on user input.
|
||||||
|
|
||||||
|
#### Client behaviour on setting change
|
||||||
|
|
||||||
|
If the user turns on key backups, clients MUST set this event type in account
|
||||||
|
data, to `"enabled": true`.
|
||||||
|
|
||||||
|
If the user turns off key backups, clients MUST set this event type in account
|
||||||
|
data, to `"enabled": false`.
|
||||||
|
|
||||||
|
#### Not actively monitoring this setting
|
||||||
|
|
||||||
|
Clients are not required to monitor the `m.key_backup` account data actively.
|
||||||
|
Clients MAY monitor the setting but should be aware that changing this setting
|
||||||
|
without user interaction based on choices made in a different client (or a
|
||||||
|
compromised homeserver) may cause unforeseen security problems or simply be
|
||||||
|
unexpected by users.
|
||||||
22
data/api/client-server/definitions/key_backup.yaml
Normal file
22
data/api/client-server/definitions/key_backup.yaml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Copyright 2026 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.
|
||||||
|
|
||||||
|
title: Key Backup
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
description: True if the user chose to enable key backup. False if the user chose to disable key backup.
|
||||||
|
required:
|
||||||
|
- enabled
|
||||||
7
data/event-schemas/examples/m.key_backup.yaml
Normal file
7
data/event-schemas/examples/m.key_backup.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"$ref": "core/event.json",
|
||||||
|
"type": "m.key_backup",
|
||||||
|
"content": {
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
}
|
||||||
26
data/event-schemas/schema/m.key_backup.yaml
Normal file
26
data/event-schemas/schema/m.key_backup.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"type": "object",
|
||||||
|
"title": "Key Backup Event",
|
||||||
|
"description": "Allows clients to track user preferences about key backup.",
|
||||||
|
"allOf": [{
|
||||||
|
"$ref": "core-event-schema/event.yaml"
|
||||||
|
}],
|
||||||
|
"properties": {
|
||||||
|
"type": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["m.key_backup"]
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"enabled": {
|
||||||
|
"description": "True if the user chose to enable key backup. False if the user chose to disable key backup.",
|
||||||
|
"type": "boolean",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["enabled"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["type", "content"]
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue