Compare commits

...

7 commits

Author SHA1 Message Date
Andy Balaam b80c6238b1
Remove unneeded 'required' property
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2026-04-15 13:57:37 +01:00
Andy Balaam f7f6080e71
Add link to changelog
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2026-04-15 13:56:53 +01:00
Andy Balaam 030502f540 Rename 'Key backup enabled' to 'Key backup enabled preference' 2026-04-15 13:04:56 +01:00
Andy Balaam c9408e804e Remove subheadings in 'Key backup enabled' 2026-04-15 13:04:56 +01:00
Andy Balaam 941dc8950a Move 'Key backup enabled' into the correct section, 'Server-side key backups' 2026-04-15 13:04:56 +01:00
Andy Balaam da0f627c18
Remove module line for now-unused module.
Co-authored-by: Tulir Asokan <tulir@maunium.net>
2026-04-15 11:54:44 +01:00
Andy Balaam 51c049a232 Move key_backup from its own module into end_to_end_encryption.md 2026-04-15 11:28:34 +01:00
5 changed files with 38 additions and 48 deletions

View file

@ -1 +1 @@
Specify m.key_backup account data (MSC4287).
Specify `m.key_backup` account data, as per [MSC4287](https://github.com/matrix-org/matrix-spec-proposals/pull/4287).

View file

@ -4280,7 +4280,6 @@ that profile.
| [Policy Servers](#policy-servers) | Optional | Optional | Optional | Optional | Optional |
| [OpenID](#openid) | 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 |
| [Reporting Content](#reporting-content) | Optional | Optional | Optional | Optional | Optional |
| [Rich replies](#rich-replies) | Optional | Optional | Optional | Optional | Optional |
@ -4386,6 +4385,5 @@ systems.
{{% cs-module name="Event replacements" filename="event_replacements" %}}
{{% cs-module name="Event annotations and reactions" filename="event_annotations" %}}
{{% 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="Reference relations" filename="reference_relations" %}}

View file

@ -1479,6 +1479,43 @@ potential new key backup algorithm version that would fix this issue.
{{% http-api spec="client-server" api="key_backup" %}}
###### Key backup enabled preference
{{% 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).
{{% event event="m.key_backup" %}}
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.
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`.
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.
##### Key exports
Keys can be manually exported from one device to an encrypted file,

View file

@ -1,44 +0,0 @@
### 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.

View file

@ -22,5 +22,4 @@
"required": ["enabled"]
}
},
"required": ["type", "content"]
}