* Fix ToC for room versions pages Like for the cs-module shortcode, use .RenderShortcodes instead of .Content for the rver-fragment shortcode, so the headings are detected by Hugo. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Change the way "this version" is detected in added-in and changed-in shortcodes Now that we use .RenderShortcodes in the rver-fragment shortcode, we cannot remove the output of these shortcodes dynamically because they are replaced by a temporary placeholder due to Hugo's internals. Instead, since the `this` parameter was only used for room version, we always use the `v` parameter and compare with the version provided in the page's front matter. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add changelog Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add version front matter for v11 Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Update changelogs/room_versions/newsfragments/1884.clarification --------- Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> Co-authored-by: Travis Ralston <travpc@gmail.com>
3.5 KiB
| title | type | weight | version |
|---|---|---|---|
| Room Version 8 | docs | 80 | 8 |
This room version builds on version 7 to introduce a new join rule that allows members to join the room based on membership in another room.
{{% boxes/warning %}} This room version is known to have issues relating to redactions of member join events. Room version 9 should be preferred over v8 when creating rooms. {{% /boxes/warning %}}
Client considerations
Clients are encouraged to expose the option for the join rule in their user interface for supported room versions.
The new join rule, restricted, is described in the
Client-Server API.
Clients which implement the redaction algorithm locally should refer to the redactions section below for a full overview.
Redactions
{{% added-in v=8 %}} m.room.join_rules events now keep allow in addition to other
keys in content when being redacted.
{{% boxes/warning %}} Room version 9 adds additional cases of protected properties for behaviour related to restricted rooms (the functionality introduced in v8). v9 is preferred over v8 when creating new rooms. {{% /boxes/warning %}}
The full redaction algorithm follows.
Upon receipt of a redaction event, the server must strip off any keys not in the following list:
event_idtyperoom_idsenderstate_keycontenthashessignaturesdepthprev_eventsprev_stateauth_eventsoriginorigin_server_tsmembership
The content object must also be stripped of all keys, unless it is one of one of the following event types:
m.room.memberallows keymembership.m.room.createallows keycreator.m.room.join_rulesallows keysjoin_rule,allow.m.room.power_levelsallows keysban,events,events_default,kick,redact,state_default,users,users_default.m.room.history_visibilityallows keyhistory_visibility.
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 8 adds a new join rule to allow members of a room to join another room without invite. Otherwise, the room version inherits all properties of Room version 7.
Authorization rules
{{< added-in v=8 >}} For checks performed upon m.room.member events, new
points for handling content.join_authorised_via_users_server are added (Rule 4.2
and 4.3.5).
{{% rver-fragment name="v8-auth-rules" %}}
Redactions
Unchanged from v7
The following sections have not been modified since v7, but are included for completeness.
Handling redactions
{{% rver-fragment name="v3-handling-redactions" %}}
Event IDs
{{% rver-fragment name="v4-event-ids" %}}
Event format
{{% rver-fragment name="v4-event-format" %}}
Deprecated event content schemas
{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}
{{% rver-fragment name="v1-stringy-power-levels" %}}
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" %}}