Skip to content

Commit

Permalink
Clarify which events will be included in Stripped State (#1409)
Browse files Browse the repository at this point in the history
Signed-off-by: Andy Balaam andy.balaam@matrix.org
  • Loading branch information
andybalaam committed Feb 13, 2023
1 parent 6b02e39 commit b5566db
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
1 change: 1 addition & 0 deletions changelogs/client_server/newsfragments/1409.clarification
@@ -0,0 +1 @@
Clarify which events will be included in Stripped State. Contributed by @andybalaam.
21 changes: 12 additions & 9 deletions content/client-server-api/_index.md
Expand Up @@ -1579,24 +1579,27 @@ detail on why this assumption is unsafe.

### Stripped state

Stripped state events are simplified state events to help a potential
joiner identify the room. These state events can only have the `sender`,
`type`, `state_key` and `content` keys present.
Stripped state is a simplified view of the state of a room intended to help a
potential joiner identify the room. It consists of a limited set of state events
that are themselves simplified to reduce the amount of data required.

These stripped state events typically appear on invites, knocks, and in
other places where a user *could* join the room under the conditions
available (such as a [`restricted` room](#restricted-rooms)).
Stripped state events can only have the `sender`, `type`, `state_key` and
`content` properties present.

Clients should only use stripped state events so long as they don't have
Stripped state typically appears in invites, knocks, and in other places where a
user *could* join the room under the conditions available (such as a
[`restricted` room](#restricted-rooms)).

Clients should only use stripped state events when they don't have
access to the proper state of the room. Once the state of the room is
available, all stripped state should be discarded. In cases where the
client has an archived state of the room (such as after being kicked)
and the client is receiving stripped state for the room, such as from an
invite or knock, then the stripped state should take precedence until
fresh state can be acquired from a join.

The following state events should be represented as stripped state when
possible:
Stripped state should contain some or all of the following state events, which
should be represented as stripped state events when possible:

* [`m.room.create`](#mroomcreate)
* [`m.room.name`](#mroomname)
Expand Down

0 comments on commit b5566db

Please sign in to comment.