mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-03-26 13:04:10 +01:00
99 lines
3.1 KiB
Markdown
99 lines
3.1 KiB
Markdown
---
|
|
title: Room Version 10
|
|
type: docs
|
|
weight: 100
|
|
---
|
|
|
|
This room version builds on [version 9](/rooms/v9) to enforce that power level
|
|
values be integers, and to introduce a new `knock_restricted` join rule, allowing
|
|
prospective members to more easily join such a room.
|
|
|
|
## Client considerations
|
|
|
|
This room version adds a new `knock_restricted` join rule to allow prospective
|
|
members of a room join either through knocking (introduced in [room version 7](/rooms/v7))
|
|
or through "join restrictions" (introduced in [room version 8](/rooms/v8) and
|
|
refined in [room version 9](/rooms/v9)).
|
|
|
|
Clients should render the new join rule accordingly for such rooms.
|
|
|
|
Clients which implement the redaction algorithm locally should refer to the
|
|
[redactions](#redactions) section below for a full overview.
|
|
|
|
## Server implementation components
|
|
|
|
{{% boxes/warning %}}
|
|
The information contained in this section is strictly for server
|
|
implementors. Applications which use the Client-Server API are generally
|
|
unaffected by the intricacies contained here. The section above
|
|
regarding client considerations is the resource that Client-Server API
|
|
use cases should reference.
|
|
{{% /boxes/warning %}}
|
|
|
|
[Room version 7](/rooms/v7) added "knocking" and [room version 8](/rooms/v8)
|
|
added "join restrictions" (refined by [room version 9](/rooms/v9)) - both allow
|
|
prospective members an avenue to join, however both could not be used at the
|
|
same time due to how the join rules work. This room version adds a new
|
|
`knock_restricted` join rule as a mix of the two behaviours (first match wins).
|
|
|
|
This room version additionally requires that values in the power levels event
|
|
be integers and not string representations, unlike other room versions.
|
|
|
|
Room version 10 is based upon room version 9 with the following considerations.
|
|
|
|
### Event format
|
|
|
|
The event format is unchanged by this room version. See [below](#event-format-1)
|
|
for details on the current event format.
|
|
|
|
#### Deprecated formatting
|
|
|
|
While this room version does not change the event format specifically, some
|
|
deprecated behaviours are strictly no longer supported.
|
|
|
|
##### Power levels must be integers
|
|
|
|
In other room versions, such as [v9](/rooms/v9/#power-levels-accepted-as-strings),
|
|
power levels could be represented as strings for backwards compatibility.
|
|
|
|
This backwards compatibility is removed in this room version - power levels MUST NOT
|
|
be represented as strings within this room version. Power levels which are not
|
|
correctly structured are rejected under the authorization rules below.
|
|
|
|
## Unchanged from v9
|
|
|
|
The following sections have not been modified since v9, but are included for
|
|
completeness.
|
|
|
|
### Redactions
|
|
|
|
{{% rver-fragment name="v9-redactions" %}}
|
|
|
|
### Handling redactions
|
|
|
|
{{% rver-fragment name="v3-handling-redactions" %}}
|
|
|
|
### Event IDs
|
|
|
|
{{% rver-fragment name="v4-event-ids" %}}
|
|
|
|
### Event format
|
|
|
|
{{% rver-fragment name="v4-event-format" %}}
|
|
|
|
### Authorization rules
|
|
|
|
{{% rver-fragment name="v8-auth-rules" %}}
|
|
|
|
### State resolution
|
|
|
|
{{% rver-fragment name="v2-state-res" %}}
|
|
|
|
### Canonical JSON
|
|
|
|
{{% rver-fragment name="v6-canonical-json" %}}
|
|
|
|
### Signing key validity period
|
|
|
|
{{% rver-fragment name="v5-signing-requirements" %}}
|