Clarify the meaning of "public spaces" (#2109)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled

Relates to: #633

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
This commit is contained in:
Johannes Marbach 2025-05-29 22:19:46 +02:00 committed by GitHub
parent 643a6dca2d
commit 7470c72d94
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 11 deletions

View file

@ -0,0 +1 @@
Spaces are subject to the same access mechanisms as rooms.

View file

@ -2,8 +2,8 @@
{{% added-in v="1.2" %}} {{% added-in v="1.2" %}}
Often used to group rooms of similar subject matter (such as a public "Official Often used to group rooms of similar subject matter (such as an "Official
matrix.org rooms" space or personal "Work stuff" space), spaces are a way to matrix.org rooms" space or a "Work stuff" space), spaces are a way to
organise rooms while being represented as rooms themselves. organise rooms while being represented as rooms themselves.
A space is defined by the [`m.space` room type](#types), making it known as a A space is defined by the [`m.space` room type](#types), making it known as a
@ -18,11 +18,11 @@ In the default power level structure, this would be `100`. Clients might wish to
go a step further and explicitly ignore notification counts on space-rooms. go a step further and explicitly ignore notification counts on space-rooms.
Membership of a space is defined and controlled by the existing mechanisms which Membership of a space is defined and controlled by the existing mechanisms which
govern a room: [`m.room.member`](#mroommember), [`m.room.history_visibility`](#mroomhistory_visibility), govern a room: [`m.room.member`](/client-server-api#mroommember), [`m.room.history_visibility`](/client-server-api#mroomhistory_visibility),
and [`m.room.join_rules`](#mroomjoin_rules). Public spaces are encouraged to have and [`m.room.join_rules`](/client-server-api#mroomjoin_rules). Canonical aliases and invites, including
a similar setup to public rooms: `world_readable` history visibility, published third-party invites, still work just as they do in normal rooms as well. Furthermore,
canonical alias, and suitably public `join_rule`. Invites, including third-party spaces can also be published in the [room directory](/client-server-api#published-room-directory) to make them
invites, still work just as they do in normal rooms as well. discoverable.
All other aspects of regular rooms are additionally carried over, such as the All other aspects of regular rooms are additionally carried over, such as the
ability to set arbitrary state events, hold room account data, etc. Spaces are ability to set arbitrary state events, hold room account data, etc. Spaces are
@ -87,10 +87,9 @@ the state of `#space:example.org` would consist of:
} }
``` ```
No state events in the child rooms themselves would be required (though they No state events in the child rooms themselves would be required (though they can also
can also be present). This allows for users be present). This allows for users to define spaces without needing explicit permission
to define personal/private spaces to organise their own rooms without needing explicit from the room moderators/admins.
permission from the room moderators/admins.
Child rooms can be removed from a space by omitting the `via` key of `content` on the Child rooms can be removed from a space by omitting the `via` key of `content` on the
relevant state event, such as through redaction or otherwise clearing the `content`. relevant state event, such as through redaction or otherwise clearing the `content`.