mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-05-02 07:04:09 +02:00
Compare commits
10 commits
4896459f5f
...
07b959c078
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
07b959c078 | ||
|
|
817ec5380f | ||
|
|
029be205b9 | ||
|
|
fe880fdaf4 | ||
|
|
71ce620fc0 | ||
|
|
cb6d039c57 | ||
|
|
2933ab5f52 | ||
|
|
03c96e505b | ||
|
|
5be34d8f2b | ||
|
|
5e9f6dd130 |
|
|
@ -1 +0,0 @@
|
||||||
Clarify that arbitrary unicode is allowed in user/room IDs and room aliases.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
The `POST /_matrix/client/v3/rooms/{roomId}/initialSync` endpoint is no longer deprecated, as it is still used for peeking.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Clarify wording in the `/join` endpoints' summaries and descriptions. Contributed by @HarHarLinks.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Clarify formats of string types.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix various typos throughout the specification.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix various typos throughout the specification.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
Document the `instance_id` field of `Protocol Instance` in the responses to
|
|
||||||
`GET /_matrix/client/v3/thirdparty/protocols` and `GET /_matrix/client/v3/thirdparty/protocol/{protocol}`.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Applying redactions is a SHOULD for clients.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Remove `server_name` parameter from `/_matrix/client/v3/join/{roomIdOrAlias}` and `/_matrix/client/v3/knock/{roomIdOrAlias}` as per [MSC4213](https://github.com/matrix-org/matrix-spec-proposals/pull/4213).
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Clarify which rooms are returned from `/hierarchy`.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Clients can choose which history visibility options they offer to users when creating rooms.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix various typos throughout the specification.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix various typos throughout the specification.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Add `POST /_matrix/client/v3/users/{userId}/report` as per [MSC4260](https://github.com/matrix-org/matrix-spec-proposals/pull/4260).
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Rooms published in `/publicRooms` don't necessarily have `public` join rules or `world_readable` history visibility.
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Generate the changelog release info with Hugo, rather than the changelog generation script.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Update release steps documentation.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Remove unused `release_date` from Hugo config.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Clarify that v1.0 of Matrix was a release prior to the current global versioning system.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix syntax highlighting and click-to-copy buttons for code blocks by purging less CSS.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix the version of the Identity Service API when Matrix 1.0 was introduced.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix parsing of nested slices in `resolve-refs` and `resolve-allof` partials.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Deduplicate the definition of `RoomKeysUpdateResponse`.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Deduplicate the definitions of `Invite3pid`.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Support more locations for examples in OpenAPI definitions and JSON schemas.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Add link to the git commit for the unstable changelog.
|
|
||||||
1
changelogs/internal/newsfragments/2115.clarification
Normal file
1
changelogs/internal/newsfragments/2115.clarification
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add [well-known funding manifest urls](https://floss.fund/funding-manifest/) to spec to authorise https://matrix.org/funding.json. Contributed by @HarHarLinks.
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
For room versions 6 and 7, clarify in the authorization rules that `m.federate` must be checked and that events with rejected auth events must be rejected, for parity with all the other room versions.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Fix various typos throughout the specification.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Refactor PDU definitions to reduce duplication.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Update the default room version to 11, as per [MSC4239](https://github.com/matrix-org/matrix-spec-proposals/pull/4239).
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Remove the `origin` field in `PUT /send_join` responses, because it was never sent in the first place.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Clarify that `m.join_rules` should be in the `auth_events` of an `m.room.member` event with a `membership` of `knock`.
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Remove an erroneous `room_id` field in a few examples.
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Rooms published in `/publicRooms` don't necessarily have `public` join rules or `world_readable` history visibility.
|
||||||
|
|
@ -67,7 +67,7 @@ current_version_url = "https://spec.matrix.org/latest"
|
||||||
# The following is used when status = "stable", and is displayed in various UI elements on a released version
|
# The following is used when status = "stable", and is displayed in various UI elements on a released version
|
||||||
# of the spec.
|
# of the spec.
|
||||||
# major = "1"
|
# major = "1"
|
||||||
# minor = "13"
|
# minor = "14"
|
||||||
|
|
||||||
# User interface configuration
|
# User interface configuration
|
||||||
[params.ui]
|
[params.ui]
|
||||||
|
|
|
||||||
93
content/changelog/v1.14.md
Normal file
93
content/changelog/v1.14.md
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
---
|
||||||
|
title: v1.14 Changelog
|
||||||
|
linkTitle: v1.14
|
||||||
|
type: docs
|
||||||
|
layout: changelog
|
||||||
|
outputs:
|
||||||
|
- html
|
||||||
|
- checklist
|
||||||
|
date: 2025-03-27
|
||||||
|
---
|
||||||
|
|
||||||
|
## Client-Server API
|
||||||
|
|
||||||
|
**New Endpoints**
|
||||||
|
|
||||||
|
- Add `POST /_matrix/client/v3/users/{userId}/report`, as per [MSC4260](https://github.com/matrix-org/matrix-spec-proposals/pull/4260). ([#2093](https://github.com/matrix-org/matrix-spec/issues/2093))
|
||||||
|
|
||||||
|
**Removed Endpoints**
|
||||||
|
|
||||||
|
- Remove `server_name` parameter from `/_matrix/client/v3/join/{roomIdOrAlias}` and `/_matrix/client/v3/knock/{roomIdOrAlias}`, as per [MSC4213](https://github.com/matrix-org/matrix-spec-proposals/pull/4213). ([#2059](https://github.com/matrix-org/matrix-spec/issues/2059))
|
||||||
|
|
||||||
|
**Spec Clarifications**
|
||||||
|
|
||||||
|
- The `POST /_matrix/client/v3/rooms/{roomId}/initialSync` endpoint is no longer deprecated, as it is still used for peeking. ([#2036](https://github.com/matrix-org/matrix-spec/issues/2036))
|
||||||
|
- Clarify wording in the `/join` endpoints' summaries and descriptions. Contributed by @HarHarLinks. ([#2038](https://github.com/matrix-org/matrix-spec/issues/2038))
|
||||||
|
- Clarify formats of string types. ([#2046](https://github.com/matrix-org/matrix-spec/issues/2046))
|
||||||
|
- Fix various typos throughout the specification. ([#2047](https://github.com/matrix-org/matrix-spec/issues/2047), [#2048](https://github.com/matrix-org/matrix-spec/issues/2048), [#2080](https://github.com/matrix-org/matrix-spec/issues/2080), [#2091](https://github.com/matrix-org/matrix-spec/issues/2091))
|
||||||
|
- Document the `instance_id` field of `Protocol Instance` in the responses to `GET /_matrix/client/v3/thirdparty/protocols` and `GET /_matrix/client/v3/thirdparty/protocol/{protocol}`. ([#2051](https://github.com/matrix-org/matrix-spec/issues/2051))
|
||||||
|
- Applying redactions is a SHOULD for clients. ([#2055](https://github.com/matrix-org/matrix-spec/issues/2055))
|
||||||
|
- Clarify which rooms are returned from `/hierarchy`. ([#2064](https://github.com/matrix-org/matrix-spec/issues/2064))
|
||||||
|
- Clients can choose which history visibility options they offer to users when creating rooms. ([#2072](https://github.com/matrix-org/matrix-spec/issues/2072))
|
||||||
|
|
||||||
|
|
||||||
|
## Server-Server API
|
||||||
|
|
||||||
|
**Spec Clarifications**
|
||||||
|
|
||||||
|
- Remove the `origin` field in `PUT /send_join` responses, because it was never sent in the first place. ([#2050](https://github.com/matrix-org/matrix-spec/issues/2050))
|
||||||
|
- Clarify that `m.join_rules` should be in the `auth_events` of an `m.room.member` event with a `membership` of `knock`. ([#2063](https://github.com/matrix-org/matrix-spec/issues/2063))
|
||||||
|
- Remove an erroneous `room_id` field in a few examples. ([#2076](https://github.com/matrix-org/matrix-spec/issues/2076))
|
||||||
|
|
||||||
|
|
||||||
|
## Application Service API
|
||||||
|
|
||||||
|
No significant changes.
|
||||||
|
|
||||||
|
|
||||||
|
## Identity Service API
|
||||||
|
|
||||||
|
No significant changes.
|
||||||
|
|
||||||
|
|
||||||
|
## Push Gateway API
|
||||||
|
|
||||||
|
No significant changes.
|
||||||
|
|
||||||
|
|
||||||
|
## Room Versions
|
||||||
|
|
||||||
|
**Backwards Compatible Changes**
|
||||||
|
|
||||||
|
- Update the default room version to 11, as per [MSC4239](https://github.com/matrix-org/matrix-spec-proposals/pull/4239). ([#2105](https://github.com/matrix-org/matrix-spec/issues/2105))
|
||||||
|
|
||||||
|
**Spec Clarifications**
|
||||||
|
|
||||||
|
- For room versions 6 and 7, clarify in the authorization rules that `m.federate` must be checked and that events with rejected auth events must be rejected, for parity with all the other room versions. ([#2065](https://github.com/matrix-org/matrix-spec/issues/2065))
|
||||||
|
- Fix various typos throughout the specification. ([#2066](https://github.com/matrix-org/matrix-spec/issues/2066))
|
||||||
|
- Refactor PDU definitions to reduce duplication. ([#2070](https://github.com/matrix-org/matrix-spec/issues/2070))
|
||||||
|
- Clarify the maximum `depth` value for room versions 6, 7, 8, 9, 10, and 11. ([#2114](https://github.com/matrix-org/matrix-spec/issues/2114))
|
||||||
|
|
||||||
|
|
||||||
|
## Appendices
|
||||||
|
|
||||||
|
**Spec Clarifications**
|
||||||
|
|
||||||
|
- Clarify that arbitrary unicode is allowed in user/room IDs and room aliases. ([#1506](https://github.com/matrix-org/matrix-spec/issues/1506))
|
||||||
|
|
||||||
|
|
||||||
|
## Internal Changes/Tooling
|
||||||
|
|
||||||
|
**Spec Clarifications**
|
||||||
|
|
||||||
|
- Generate the changelog release info with Hugo, rather than the changelog generation script. ([#2033](https://github.com/matrix-org/matrix-spec/issues/2033))
|
||||||
|
- Update release steps documentation. ([#2041](https://github.com/matrix-org/matrix-spec/issues/2041))
|
||||||
|
- Remove unused `release_date` from Hugo config. ([#2042](https://github.com/matrix-org/matrix-spec/issues/2042))
|
||||||
|
- Clarify that v1.0 of Matrix was a release prior to the current global versioning system. ([#2045](https://github.com/matrix-org/matrix-spec/issues/2045))
|
||||||
|
- Fix syntax highlighting and click-to-copy buttons for code blocks by purging less CSS. ([#2049](https://github.com/matrix-org/matrix-spec/issues/2049))
|
||||||
|
- Fix the version of the Identity Service API when Matrix 1.0 was introduced. ([#2061](https://github.com/matrix-org/matrix-spec/issues/2061))
|
||||||
|
- Fix parsing of nested slices in `resolve-refs` and `resolve-allof` partials. ([#2069](https://github.com/matrix-org/matrix-spec/issues/2069))
|
||||||
|
- Deduplicate the definition of `RoomKeysUpdateResponse`. ([#2073](https://github.com/matrix-org/matrix-spec/issues/2073))
|
||||||
|
- Deduplicate the definitions of `Invite3pid`. ([#2074](https://github.com/matrix-org/matrix-spec/issues/2074))
|
||||||
|
- Support more locations for examples in OpenAPI definitions and JSON schemas. ([#2076](https://github.com/matrix-org/matrix-spec/issues/2076))
|
||||||
|
- Add link to the git commit for the unstable changelog. ([#2078](https://github.com/matrix-org/matrix-spec/issues/2078))
|
||||||
|
|
@ -2831,7 +2831,38 @@ re-invited.
|
||||||
|
|
||||||
{{% http-api spec="client-server" api="banning" %}}
|
{{% http-api spec="client-server" api="banning" %}}
|
||||||
|
|
||||||
### Listing rooms
|
### Room directory
|
||||||
|
|
||||||
|
Homeservers MAY publish a room directory to allow users to discover rooms. A room
|
||||||
|
can have one of two visibility settings in the directory:
|
||||||
|
|
||||||
|
`public`
|
||||||
|
The room will be shown in the published room directory.
|
||||||
|
|
||||||
|
`private`
|
||||||
|
The room will be hidden from the published room directory.
|
||||||
|
|
||||||
|
Clients can define a room's initial visibility in the directory via the `visibility`
|
||||||
|
parameter in [`/createRoom`](#post_matrixclientv3createroom). Irrespective of room
|
||||||
|
creation, clients can query and change a room's visibility in the directory through
|
||||||
|
the endpoints listed below, provided that the server permits this.
|
||||||
|
|
||||||
|
{{% boxes/warning %}}
|
||||||
|
The visibility setting merely defines whether a room is included in the published
|
||||||
|
room directory or not. It doesn't make any guarantees about the room's
|
||||||
|
[join rule](#mroomjoin_rules) or [history visibility](#room-history-visibility).
|
||||||
|
|
||||||
|
In particular, a visibility setting of `public` should not be confused with a `public`
|
||||||
|
join rule. Rooms with a join rule of `knock`, for instance, could reasonably be published
|
||||||
|
in the directory, too.
|
||||||
|
|
||||||
|
Similarly, a visibility setting of `public` does not necessarily imply a `world_readable`
|
||||||
|
history visibility.
|
||||||
|
|
||||||
|
To increase performance, servers MAY apply additional filters when listing the
|
||||||
|
directory, for instance, by automatically excluding rooms with `invite` join rules
|
||||||
|
that are not `world_readable` regarless of their visibility.
|
||||||
|
{{% /boxes/warning %}}
|
||||||
|
|
||||||
{{% http-api spec="client-server" api="list_public_rooms" %}}
|
{{% http-api spec="client-server" api="list_public_rooms" %}}
|
||||||
|
|
||||||
|
|
|
||||||
4
content/rooms/fragments/v6-event-format.md
Normal file
4
content/rooms/fragments/v6-event-format.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
Events in rooms of this version have the following structure:
|
||||||
|
|
||||||
|
{{% definition path="api/server-server/definitions/pdu_v6" %}}
|
||||||
|
|
@ -281,7 +281,7 @@ completeness.
|
||||||
|
|
||||||
### Event format
|
### Event format
|
||||||
|
|
||||||
{{% rver-fragment name="v4-event-format" %}}
|
{{% rver-fragment name="v6-event-format" %}}
|
||||||
|
|
||||||
### State resolution
|
### State resolution
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,13 @@ in [room version 5](/rooms/v5).
|
||||||
|
|
||||||
[See above](#redactions).
|
[See above](#redactions).
|
||||||
|
|
||||||
|
### Event format
|
||||||
|
|
||||||
|
{{% added-in v=6 %}} Through enforcement of [Canonical JSON](#canonical-json),
|
||||||
|
the `depth` limit has been reduced in this room version.
|
||||||
|
|
||||||
|
{{% rver-fragment name="v6-event-format" %}}
|
||||||
|
|
||||||
### Authorization rules
|
### Authorization rules
|
||||||
|
|
||||||
{{% added-in v=6 %}} Rule 4, which related specifically to events
|
{{% added-in v=6 %}} Rule 4, which related specifically to events
|
||||||
|
|
@ -229,10 +236,6 @@ completeness.
|
||||||
|
|
||||||
{{% rver-fragment name="v4-event-ids" %}}
|
{{% rver-fragment name="v4-event-ids" %}}
|
||||||
|
|
||||||
### Event format
|
|
||||||
|
|
||||||
{{% rver-fragment name="v4-event-format" %}}
|
|
||||||
|
|
||||||
#### Deprecated event content schemas
|
#### Deprecated event content schemas
|
||||||
|
|
||||||
{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}
|
{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,7 @@ completeness.
|
||||||
|
|
||||||
### Event format
|
### Event format
|
||||||
|
|
||||||
{{% rver-fragment name="v4-event-format" %}}
|
{{% rver-fragment name="v6-event-format" %}}
|
||||||
|
|
||||||
#### Deprecated event content schemas
|
#### Deprecated event content schemas
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ completeness.
|
||||||
|
|
||||||
### Event format
|
### Event format
|
||||||
|
|
||||||
{{% rver-fragment name="v4-event-format" %}}
|
{{% rver-fragment name="v6-event-format" %}}
|
||||||
|
|
||||||
#### Deprecated event content schemas
|
#### Deprecated event content schemas
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ completeness.
|
||||||
|
|
||||||
### Event format
|
### Event format
|
||||||
|
|
||||||
{{% rver-fragment name="v4-event-format" %}}
|
{{% rver-fragment name="v6-event-format" %}}
|
||||||
|
|
||||||
#### Deprecated event content schemas
|
#### Deprecated event content schemas
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1045,11 +1045,10 @@ user's Matrix ID and the token delivered when the invite was stored,
|
||||||
this verification will prove that the `m.room.member` invite event comes
|
this verification will prove that the `m.room.member` invite event comes
|
||||||
from the user owning the invited third-party identifier.
|
from the user owning the invited third-party identifier.
|
||||||
|
|
||||||
## Public Room Directory
|
## Room Directory
|
||||||
|
|
||||||
To complement the [Client-Server
|
To complement the [room directory in the Client-Server API](/client-server-api#room-directory),
|
||||||
API](/client-server-api)'s room directory,
|
homeservers need a way to query the published rooms of another server.
|
||||||
homeservers need a way to query the public rooms for another server.
|
|
||||||
This can be done by making a request to the `/publicRooms` endpoint for
|
This can be done by making a request to the `/publicRooms` endpoint for
|
||||||
the server the room directory should be retrieved for.
|
the server the room directory should be retrieved for.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,12 +87,8 @@ paths:
|
||||||
- public
|
- public
|
||||||
- private
|
- private
|
||||||
description: |-
|
description: |-
|
||||||
A `public` visibility indicates that the room will be shown
|
The room's visibility in the server's [room directory](#room-directory).
|
||||||
in the published room list. A `private` visibility will hide
|
Defaults to `private`.
|
||||||
the room from the published room list. Rooms default to
|
|
||||||
`private` visibility if this key is not included. NB: This
|
|
||||||
should not be confused with `join_rules` which also uses the
|
|
||||||
word `public`.
|
|
||||||
room_alias_name:
|
room_alias_name:
|
||||||
type: string
|
type: string
|
||||||
description: |-
|
description: |-
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
type: object
|
type: object
|
||||||
title: "PublicRoomsChunk"
|
title: "PublishedRoomsChunk"
|
||||||
properties:
|
properties:
|
||||||
canonical_alias:
|
canonical_alias:
|
||||||
type: string
|
type: string
|
||||||
|
|
|
||||||
|
|
@ -13,28 +13,15 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
type: object
|
type: object
|
||||||
description: A list of the rooms on the server.
|
description: A list of the published rooms on the server.
|
||||||
required: ["chunk"]
|
required: ["chunk"]
|
||||||
properties:
|
properties:
|
||||||
chunk:
|
chunk:
|
||||||
type: array
|
type: array
|
||||||
description: |-
|
description: |-
|
||||||
A paginated chunk of public rooms.
|
A paginated chunk of published rooms.
|
||||||
items:
|
items:
|
||||||
allOf:
|
$ref: "public_rooms_chunk.yaml"
|
||||||
- $ref: "public_rooms_chunk.yaml"
|
|
||||||
- type: object
|
|
||||||
title: PublicRoomsChunk
|
|
||||||
properties:
|
|
||||||
# Override description of join_rule
|
|
||||||
join_rule:
|
|
||||||
type: string
|
|
||||||
description: |-
|
|
||||||
The room's join rule. When not present, the room is assumed to
|
|
||||||
be `public`. Note that rooms with `invite` join rules are not
|
|
||||||
expected here, but rooms with `knock` rules are given their
|
|
||||||
near-public nature.
|
|
||||||
example: "public"
|
|
||||||
next_batch:
|
next_batch:
|
||||||
type: string
|
type: string
|
||||||
description: |-
|
description: |-
|
||||||
|
|
@ -50,7 +37,7 @@ properties:
|
||||||
total_room_count_estimate:
|
total_room_count_estimate:
|
||||||
type: integer
|
type: integer
|
||||||
description: |-
|
description: |-
|
||||||
An estimate on the total number of public rooms, if the
|
An estimate on the total number of published rooms, if the
|
||||||
server has an estimate.
|
server has an estimate.
|
||||||
example: {
|
example: {
|
||||||
"chunk": [
|
"chunk": [
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@ paths:
|
||||||
"/directory/list/room/{roomId}":
|
"/directory/list/room/{roomId}":
|
||||||
get:
|
get:
|
||||||
summary: Gets the visibility of a room in the directory
|
summary: Gets the visibility of a room in the directory
|
||||||
description: Gets the visibility of a given room on the server's public room
|
description: Gets the visibility of a given room in the server's room directory.
|
||||||
directory.
|
|
||||||
operationId: getRoomVisibilityOnDirectory
|
operationId: getRoomVisibilityOnDirectory
|
||||||
parameters:
|
parameters:
|
||||||
- in: path
|
- in: path
|
||||||
|
|
@ -32,7 +31,7 @@ paths:
|
||||||
type: string
|
type: string
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: The visibility of the room in the directory
|
description: The visibility of the room in the directory.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|
@ -50,7 +49,7 @@ paths:
|
||||||
"visibility": "public"
|
"visibility": "public"
|
||||||
}
|
}
|
||||||
"404":
|
"404":
|
||||||
description: The room is not known to the server
|
description: The room is not known to the server.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|
@ -66,12 +65,11 @@ paths:
|
||||||
put:
|
put:
|
||||||
summary: Sets the visibility of a room in the room directory
|
summary: Sets the visibility of a room in the room directory
|
||||||
description: |-
|
description: |-
|
||||||
Sets the visibility of a given room in the server's public room
|
Sets the visibility of a given room in the server's room directory.
|
||||||
directory.
|
|
||||||
|
|
||||||
Servers may choose to implement additional access control checks
|
Servers MAY implement additional access control checks, for instance,
|
||||||
here, for instance that room visibility can only be changed by
|
to ensure that a room's visibility can only be changed by the room creator
|
||||||
the room creator or a server administrator.
|
or a server administrator.
|
||||||
operationId: setRoomVisibilityOnDirectory
|
operationId: setRoomVisibilityOnDirectory
|
||||||
security:
|
security:
|
||||||
- accessTokenQuery: []
|
- accessTokenQuery: []
|
||||||
|
|
@ -97,7 +95,7 @@ paths:
|
||||||
- public
|
- public
|
||||||
description: |-
|
description: |-
|
||||||
The new visibility setting for the room.
|
The new visibility setting for the room.
|
||||||
Defaults to 'public'.
|
Defaults to `public`.
|
||||||
example: {
|
example: {
|
||||||
"visibility": "public"
|
"visibility": "public"
|
||||||
}
|
}
|
||||||
|
|
@ -114,7 +112,7 @@ paths:
|
||||||
response:
|
response:
|
||||||
value: {}
|
value: {}
|
||||||
"404":
|
"404":
|
||||||
description: The room is not known to the server
|
description: The room is not known to the server.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|
@ -129,9 +127,9 @@ paths:
|
||||||
- Room discovery
|
- Room discovery
|
||||||
/publicRooms:
|
/publicRooms:
|
||||||
get:
|
get:
|
||||||
summary: Lists the public rooms on the server.
|
summary: Lists a server's published room directory
|
||||||
description: |-
|
description: |-
|
||||||
Lists the public rooms on the server.
|
Lists a server's published room directory.
|
||||||
|
|
||||||
This API returns paginated responses. The rooms are ordered by the number
|
This API returns paginated responses. The rooms are ordered by the number
|
||||||
of joined members, with the largest rooms first.
|
of joined members, with the largest rooms first.
|
||||||
|
|
@ -154,13 +152,13 @@ paths:
|
||||||
- in: query
|
- in: query
|
||||||
name: server
|
name: server
|
||||||
description: |-
|
description: |-
|
||||||
The server to fetch the public room lists from. Defaults to the
|
The server to fetch the room directory from. Defaults to the
|
||||||
local server. Case sensitive.
|
local server. Case sensitive.
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: A list of the rooms on the server.
|
description: A list of the published rooms on the server.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|
@ -168,9 +166,9 @@ paths:
|
||||||
tags:
|
tags:
|
||||||
- Room discovery
|
- Room discovery
|
||||||
post:
|
post:
|
||||||
summary: Lists the public rooms on the server with optional filter.
|
summary: Lists a server's published room directory with an optional filter
|
||||||
description: |-
|
description: |-
|
||||||
Lists the public rooms on the server, with optional filter.
|
Lists a server's published room directory with an optional filter.
|
||||||
|
|
||||||
This API returns paginated responses. The rooms are ordered by the number
|
This API returns paginated responses. The rooms are ordered by the number
|
||||||
of joined members, with the largest rooms first.
|
of joined members, with the largest rooms first.
|
||||||
|
|
@ -182,7 +180,7 @@ paths:
|
||||||
- in: query
|
- in: query
|
||||||
name: server
|
name: server
|
||||||
description: |-
|
description: |-
|
||||||
The server to fetch the public room lists from. Defaults to the
|
The server to fetch the room directory from. Defaults to the
|
||||||
local server. Case sensitive.
|
local server. Case sensitive.
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
|
@ -253,7 +251,7 @@ paths:
|
||||||
required: true
|
required: true
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: A list of the rooms on the server.
|
description: A filtered list of the published rooms on the server.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|
|
||||||
|
|
@ -41,13 +41,6 @@ properties:
|
||||||
type: object
|
type: object
|
||||||
description: The content of the event.
|
description: The content of the event.
|
||||||
example: {"key": "value"}
|
example: {"key": "value"}
|
||||||
depth:
|
|
||||||
type: integer
|
|
||||||
description: |-
|
|
||||||
The maximum depth of the `prev_events`, plus one. Must be less than the
|
|
||||||
maximum value for an integer (2^63 - 1). If the room's depth is already at
|
|
||||||
the limit, the depth must be set to the limit.
|
|
||||||
example: 12
|
|
||||||
hashes:
|
hashes:
|
||||||
$ref: "event_hash.yaml"
|
$ref: "event_hash.yaml"
|
||||||
signatures:
|
signatures:
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,13 @@ allOf:
|
||||||
type: string
|
type: string
|
||||||
description: For redaction events, the ID of the event being redacted.
|
description: For redaction events, the ID of the event being redacted.
|
||||||
example: "$def456:matrix.org"
|
example: "$def456:matrix.org"
|
||||||
|
depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
The maximum depth of the `prev_events`, plus one. Must be less than the
|
||||||
|
maximum value for an integer (2^63 - 1). If the room's depth is already at
|
||||||
|
the limit, the depth must be set to the limit.
|
||||||
|
example: 12
|
||||||
auth_events:
|
auth_events:
|
||||||
type: array
|
type: array
|
||||||
description: |-
|
description: |-
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,16 @@ description: A persistent data unit (event) for room version 11 and beyond.
|
||||||
example:
|
example:
|
||||||
$ref: "../examples/pdu_v11.json"
|
$ref: "../examples/pdu_v11.json"
|
||||||
allOf:
|
allOf:
|
||||||
# v11 is the v4 event, but without redacts.
|
# v11 is the v6 event, but without redacts.
|
||||||
- $ref: "components/pdu_base.yaml"
|
- $ref: "components/pdu_base.yaml"
|
||||||
- $ref: "components/auth_events_prev_events_v4.yaml"
|
- $ref: "components/auth_events_prev_events_v4.yaml"
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
# v6 enforces Canonical JSON and therefore needs a depth limit change
|
||||||
|
depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
The maximum depth of the `prev_events`, plus one. Must be less than the
|
||||||
|
maximum value for an integer (2^53 - 1). If the room's depth is already at
|
||||||
|
the limit, the depth must be set to the limit.
|
||||||
|
example: 12
|
||||||
|
|
@ -24,6 +24,13 @@ allOf:
|
||||||
type: string
|
type: string
|
||||||
description: For redaction events, the ID of the event being redacted.
|
description: For redaction events, the ID of the event being redacted.
|
||||||
example: "$def/456+oldevent"
|
example: "$def/456+oldevent"
|
||||||
|
depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
The maximum depth of the `prev_events`, plus one. Must be less than the
|
||||||
|
maximum value for an integer (2^63 - 1). If the room's depth is already at
|
||||||
|
the limit, the depth must be set to the limit.
|
||||||
|
example: 12
|
||||||
auth_events:
|
auth_events:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|
|
||||||
|
|
@ -26,3 +26,10 @@ allOf:
|
||||||
type: string
|
type: string
|
||||||
description: For redaction events, the ID of the event being redacted.
|
description: For redaction events, the ID of the event being redacted.
|
||||||
example: "$def_456-oldevent"
|
example: "$def_456-oldevent"
|
||||||
|
depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
The maximum depth of the `prev_events`, plus one. Must be less than the
|
||||||
|
maximum value for an integer (2^63 - 1). If the room's depth is already at
|
||||||
|
the limit, the depth must be set to the limit.
|
||||||
|
example: 12
|
||||||
|
|
|
||||||
36
data/api/server-server/definitions/pdu_v6.yaml
Normal file
36
data/api/server-server/definitions/pdu_v6.yaml
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
# Copyright 2025 The Matrix.org Foundation C.I.C.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
type: object
|
||||||
|
title: Persistent Data Unit
|
||||||
|
description: |-
|
||||||
|
A persistent data unit (event) for room versions 4, 5, 6, 7, 8, 9 and 10.
|
||||||
|
example:
|
||||||
|
$ref: "../examples/pdu_v4.json"
|
||||||
|
allOf:
|
||||||
|
- $ref: "components/pdu_base.yaml"
|
||||||
|
- $ref: "components/auth_events_prev_events_v4.yaml"
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
redacts:
|
||||||
|
type: string
|
||||||
|
description: For redaction events, the ID of the event being redacted.
|
||||||
|
example: "$def_456-oldevent"
|
||||||
|
# v6 enforces Canonical JSON and therefore needs a depth limit change
|
||||||
|
depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
The maximum depth of the `prev_events`, plus one. Must be less than the
|
||||||
|
maximum value for an integer (2^53 - 1). If the room's depth is already at
|
||||||
|
the limit, the depth must be set to the limit.
|
||||||
|
example: 12
|
||||||
|
|
@ -13,16 +13,20 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
openapi: 3.1.0
|
openapi: 3.1.0
|
||||||
info:
|
info:
|
||||||
title: Matrix Federation Public Rooms API
|
title: Matrix Federation Room Directory API
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
paths:
|
paths:
|
||||||
/publicRooms:
|
/publicRooms:
|
||||||
get:
|
get:
|
||||||
summary: Get all the public rooms for a homeserver
|
summary: Lists the server's published room directory.
|
||||||
description: |-
|
description: |-
|
||||||
Gets all the public rooms for the homeserver. This should not return
|
Lists the server's published room directory.
|
||||||
rooms that are listed on another homeserver's directory, just those
|
|
||||||
listed on the receiving homeserver's directory.
|
This API returns paginated responses. The rooms are ordered by the number
|
||||||
|
of joined members, with the largest rooms first.
|
||||||
|
|
||||||
|
This should not return rooms that are listed on another homeserver's directory,
|
||||||
|
just those listed on the receiving homeserver's directory.
|
||||||
operationId: getPublicRooms
|
operationId: getPublicRooms
|
||||||
security:
|
security:
|
||||||
- signedRequest: []
|
- signedRequest: []
|
||||||
|
|
@ -62,21 +66,18 @@ paths:
|
||||||
type: string
|
type: string
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: The public room list for the homeserver.
|
description: A list of the published rooms on the server.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: ../client-server/definitions/public_rooms_response.yaml
|
$ref: ../client-server/definitions/public_rooms_response.yaml
|
||||||
post:
|
post:
|
||||||
summary: Gets the public rooms on the server with optional filter.
|
summary: Lists the server's published room directory with an optional filter
|
||||||
description: |-
|
description: |-
|
||||||
Lists the public rooms on the server, with optional filter.
|
Lists the server's published room directory with an optional filter.
|
||||||
|
|
||||||
This API returns paginated responses. The rooms are ordered by the number
|
This API returns paginated responses. The rooms are ordered by the number
|
||||||
of joined members, with the largest rooms first.
|
of joined members, with the largest rooms first.
|
||||||
|
|
||||||
Note that this endpoint receives and returns the same format that is seen
|
|
||||||
in the Client-Server API's `POST /publicRooms` endpoint.
|
|
||||||
operationId: queryPublicRooms
|
operationId: queryPublicRooms
|
||||||
security:
|
security:
|
||||||
- signedRequest: []
|
- signedRequest: []
|
||||||
|
|
@ -147,69 +148,11 @@ paths:
|
||||||
required: true
|
required: true
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: A list of the rooms on the server.
|
description: A filtered list of the published rooms on the server.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
type: object
|
$ref: ../client-server/definitions/public_rooms_response.yaml
|
||||||
description: A list of the rooms on the server.
|
|
||||||
required:
|
|
||||||
- chunk
|
|
||||||
properties:
|
|
||||||
chunk:
|
|
||||||
title: PublicRoomsChunks
|
|
||||||
type: array
|
|
||||||
description: A paginated chunk of public rooms.
|
|
||||||
items:
|
|
||||||
allOf:
|
|
||||||
- $ref: ../client-server/definitions/public_rooms_chunk.yaml
|
|
||||||
- type: object
|
|
||||||
properties:
|
|
||||||
# Override description of join_rule
|
|
||||||
join_rule:
|
|
||||||
type: string
|
|
||||||
description: |-
|
|
||||||
The room's join rule. When not present, the room is assumed to
|
|
||||||
be `public`. Note that rooms with `invite` join rules are not
|
|
||||||
expected here, but rooms with `knock` rules are given their
|
|
||||||
near-public nature.
|
|
||||||
next_batch:
|
|
||||||
type: string
|
|
||||||
description: |-
|
|
||||||
A pagination token for the response. The absence of this token
|
|
||||||
means there are no more results to fetch and the client should
|
|
||||||
stop paginating.
|
|
||||||
prev_batch:
|
|
||||||
type: string
|
|
||||||
description: |-
|
|
||||||
A pagination token that allows fetching previous results. The
|
|
||||||
absence of this token means there are no results before this
|
|
||||||
batch, i.e. this is the first batch.
|
|
||||||
total_room_count_estimate:
|
|
||||||
type: integer
|
|
||||||
description: |-
|
|
||||||
An estimate on the total number of public rooms, if the
|
|
||||||
server has an estimate.
|
|
||||||
examples:
|
|
||||||
response:
|
|
||||||
value: {
|
|
||||||
"chunk": [
|
|
||||||
{
|
|
||||||
"avatar_url": "mxc://bleecker.street/CHEDDARandBRIE",
|
|
||||||
"guest_can_join": false,
|
|
||||||
"name": "CHEESE",
|
|
||||||
"num_joined_members": 37,
|
|
||||||
"room_id": "!ol19s:bleecker.street",
|
|
||||||
"topic": "Tasty tasty cheese",
|
|
||||||
"world_readable": true,
|
|
||||||
"join_rule": "public",
|
|
||||||
"room_type": "m.space"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"next_batch": "p190q",
|
|
||||||
"prev_batch": "p1902",
|
|
||||||
"total_room_count_estimate": 115
|
|
||||||
}
|
|
||||||
servers:
|
servers:
|
||||||
- url: "{protocol}://{hostname}{basePath}"
|
- url: "{protocol}://{hostname}{basePath}"
|
||||||
variables:
|
variables:
|
||||||
|
|
|
||||||
1
static/.well-known/funding-manifest-urls
Normal file
1
static/.well-known/funding-manifest-urls
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
https://matrix.org/funding.json
|
||||||
Loading…
Reference in a new issue