Compare commits

...

4 commits

Author SHA1 Message Date
Andy Balaam e562e120a6
Merge 7c1753b208 into 486a8f8764 2026-04-16 16:00:45 +01:00
Andy Balaam 7c1753b208 Remove unneeded extra key_backup.yaml 2026-04-16 16:00:39 +01:00
Kévin Commaille 486a8f8764
Improvements to "Events" section (#2349)
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
Spec / Create release (push) Has been cancelled
* Clarify string formats of event endpoints and schemas

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Fix links to endpoints

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Add changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-14 21:30:06 -04:00
Kévin Commaille 96799c287a
Improvements to "Filtering" section (#2347)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spec / Create release (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
* Clarify string format of filtering endpoints.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Use inline code for endpoints and add link to /members definition

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Add changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2026-04-14 16:34:47 -04:00
31 changed files with 130 additions and 41 deletions

View file

@ -0,0 +1 @@
Clarify formats of string types.

View file

@ -0,0 +1 @@
Clarify formats of string types.

View file

@ -3120,19 +3120,20 @@ events they have already been sent, and choose to skip sending membership
events for members whose membership has not changed. These are called events for members whose membership has not changed. These are called
'redundant membership events'. Clients may request that redundant membership 'redundant membership events'. Clients may request that redundant membership
events are always included in responses by setting `include_redundant_members` events are always included in responses by setting `include_redundant_members`
to true in the filter. to `true` in the filter.
The expected pattern for using lazy-loading is currently: The expected pattern for using lazy-loading is currently:
- Client performs an initial /sync with lazy-loading enabled, and - Client performs an initial `/sync` with lazy-loading enabled, and
receives only the membership events which relate to the senders of receives only the membership events which relate to the senders of
the events it receives. the events it receives.
- Clients which support display-name tab-completion or other - Clients which support display-name tab-completion or other
operations which require rapid access to all members in a room operations which require rapid access to all members in a room
should call /members for the currently selected room, with an `?at` should call [`/members`](#get_matrixclientv3roomsroomidmembers) for
parameter set to the /sync response's from token. The member list the currently selected room, with an `?at` parameter set to the
for the room is then maintained by the state in subsequent `/sync` response's `from` token. The member list for the room is
incremental /sync responses. then maintained by the state in subsequent incremental `/sync`
responses.
- Clients which do not support tab-completion may instead pull in - Clients which do not support tab-completion may instead pull in
profiles for arbitrary users (e.g. read receipts, typing profiles for arbitrary users (e.g. read receipts, typing
notifications) on demand by querying the room state or [`/profile`](#get_matrixclientv3profileuserid). notifications) on demand by querying the room state or [`/profile`](#get_matrixclientv3profileuserid).
@ -3347,8 +3348,8 @@ room at the start of the returned timeline. The response also includes a
`next_batch` field, which should be used as the value of the `since` `next_batch` field, which should be used as the value of the `since`
parameter in the next call to `/sync`. Finally, the response includes, parameter in the next call to `/sync`. Finally, the response includes,
for each room, a `prev_batch` field, which can be passed as a `from`/`to` for each room, a `prev_batch` field, which can be passed as a `from`/`to`
parameter to the [`/rooms/<room_id>/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages) API to retrieve earlier parameter to the [`/rooms/{roomId}/messages`](#get_matrixclientv3roomsroomidmessages)
messages. API to retrieve earlier messages.
For example, a `/sync` request might return a range of four events For example, a `/sync` request might return a range of four events
`E2`, `E3`, `E4` and `E5` within a given room, omitting two prior events `E2`, `E3`, `E4` and `E5` within a given room, omitting two prior events
@ -3367,7 +3368,8 @@ response to the previous call as the `since` parameter. The client
should also pass a `timeout` parameter. The server will then hold open should also pass a `timeout` parameter. The server will then hold open
the HTTP connection for a short period of time waiting for new events, the HTTP connection for a short period of time waiting for new events,
returning early if an event occurs. Only the `/sync` API (and the returning early if an event occurs. Only the `/sync` API (and the
deprecated `/events` API) support long-polling in this way. deprecated [`/events`](#get_matrixclientv3events) API) support
long-polling in this way.
Continuing the example above, an incremental sync might report Continuing the example above, an incremental sync might report
a single new event `E6`. The response can be visualised as: a single new event `E6`. The response can be visualised as:
@ -3387,7 +3389,7 @@ containing only the most recent message events. A state "delta" is also
returned, summarising any state changes in the omitted part of the returned, summarising any state changes in the omitted part of the
timeline. The client may therefore end up with "gaps" in its knowledge timeline. The client may therefore end up with "gaps" in its knowledge
of the message timeline. The client can fill these gaps using the of the message timeline. The client can fill these gaps using the
[`/rooms/<room_id>/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages) API. [`/rooms/{roomId}/messages`](#get_matrixclientv3roomsroomidmessages) API.
Continuing our example, suppose we make a third `/sync` request asking for Continuing our example, suppose we make a third `/sync` request asking for
events since the last sync, by passing the `next_batch` token `x-y-z` as events since the last sync, by passing the `next_batch` token `x-y-z` as
@ -3410,7 +3412,7 @@ The limited response includes a state delta which describes how the state
of the room changes over the gap. This delta explains how to build the state of the room changes over the gap. This delta explains how to build the state
prior to returned timeline (i.e. at `E7`) from the state the client knows prior to returned timeline (i.e. at `E7`) from the state the client knows
(i.e. at `E6`). To close the gap, the client should make a request to (i.e. at `E6`). To close the gap, the client should make a request to
[`/rooms/<room_id>/messages`](/client-server-api/#get_matrixclientv3roomsroomidmessages) [`/rooms/{roomId}/messages`](#get_matrixclientv3roomsroomidmessages)
with the query parameters `from=x-y-z` and `to=d-e-f`. with the query parameters `from=x-y-z` and `to=d-e-f`.
{{% boxes/warning %}} {{% boxes/warning %}}

View file

@ -24,8 +24,9 @@ allOf:
room_id: room_id:
description: The ID of the room associated with this event. description: The ID of the room associated with this event.
type: string type: string
format: mx-room-id
pattern: "^!"
example: '!jEsUZKDJdhlrceRyVU:example.org' example: '!jEsUZKDJdhlrceRyVU:example.org'
unsigned: unsigned:
properties: properties:
redacted_because: redacted_because:
@ -43,6 +44,6 @@ allOf:
"unsigned": { "unsigned": {
"age": 1257, "age": 1257,
} }
} }
required: required:
- room_id - room_id

View file

@ -28,6 +28,8 @@ properties:
event_id: event_id:
description: The globally unique identifier for this event. description: The globally unique identifier for this event.
type: string type: string
format: mx-event-id
pattern: "^\\$"
example: '$26RqwJMLw-yds1GAH_QxjHRC1Da9oasK0e5VLnck_45' example: '$26RqwJMLw-yds1GAH_QxjHRC1Da9oasK0e5VLnck_45'
type: type:
description: The type of the event. description: The type of the event.
@ -47,6 +49,8 @@ properties:
sender: sender:
description: Contains the fully-qualified ID of the user who sent this event. description: Contains the fully-qualified ID of the user who sent this event.
type: string type: string
format: mx-user-id
pattern: "^@"
example: "@example:example.org" example: "@example:example.org"
origin_server_ts: origin_server_ts:
description: |- description: |-

View file

@ -26,6 +26,8 @@ properties:
`senders` filter. `senders` filter.
items: items:
type: string type: string
format: mx-user-id
pattern: "^@"
type: array type: array
not_types: not_types:
description: A list of event types to exclude. If this list is absent then no description: A list of event types to exclude. If this list is absent then no
@ -40,6 +42,8 @@ properties:
senders are included. senders are included.
items: items:
type: string type: string
format: mx-user-id
pattern: "^@"
type: array type: array
types: types:
description: A list of event types to include. If this list is absent then all description: A list of event types to include. If this list is absent then all

View file

@ -1,22 +0,0 @@
# Copyright 2026 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.
title: Key Backup
type: object
properties:
enabled:
type: boolean
description: True if the user chose to enable key backup. False if the user chose to disable key backup.
required:
- enabled

View file

@ -39,5 +39,7 @@ properties:
such. such.
event_id: event_id:
type: string type: string
format: mx-event-id
pattern: "^\\$"
description: The event ID of the event that this event relates to. description: The event ID of the event that this event relates to.
required: ['rel_type', 'event_id'] required: ['rel_type', 'event_id']

View file

@ -43,12 +43,16 @@ allOf:
filter. filter.
items: items:
type: string type: string
format: mx-room-id
pattern: "^!"
type: array type: array
rooms: rooms:
description: A list of room IDs to include. If this list is absent then all rooms description: A list of room IDs to include. If this list is absent then all rooms
are included. are included.
items: items:
type: string type: string
format: mx-room-id
pattern: "^!"
type: array type: array
contains_url: contains_url:
type: boolean type: boolean

View file

@ -50,6 +50,8 @@ properties:
`state`, `timeline` or `account_data` `state`, `timeline` or `account_data`
items: items:
type: string type: string
format: mx-room-id
pattern: "^!"
type: array type: array
rooms: rooms:
description: A list of room IDs to include. If this list is absent then all rooms description: A list of room IDs to include. If this list is absent then all rooms
@ -57,6 +59,8 @@ properties:
`state`, `timeline` or `account_data` `state`, `timeline` or `account_data`
items: items:
type: string type: string
format: mx-room-id
pattern: "^!"
type: array type: array
ephemeral: ephemeral:
allOf: allOf:

View file

@ -36,6 +36,8 @@ paths:
example: "@alice:example.com" example: "@alice:example.com"
schema: schema:
type: string type: string
format: mx-user-id
pattern: "^@"
requestBody: requestBody:
content: content:
application/json: application/json:
@ -130,6 +132,8 @@ paths:
example: "@alice:example.com" example: "@alice:example.com"
schema: schema:
type: string type: string
format: mx-user-id
pattern: "^@"
- in: path - in: path
name: filterId name: filterId
description: The filter ID to download. description: The filter ID to download.

View file

@ -37,6 +37,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: query - in: query
name: from name: from
x-changedInMatrixVersion: x-changedInMatrixVersion:

View file

@ -148,6 +148,8 @@ paths:
properties: properties:
room_id: room_id:
type: string type: string
format: mx-room-id
pattern: "^!"
description: The ID of this room. description: The ID of this room.
membership: membership:
type: string type: string
@ -337,6 +339,8 @@ paths:
example: $asfDuShaf7Gafaw:matrix.org example: $asfDuShaf7Gafaw:matrix.org
schema: schema:
type: string type: string
format: mx-event-id
pattern: "^\\$"
responses: responses:
"200": "200":
description: The full event. description: The full event.

View file

@ -43,13 +43,17 @@ paths:
example: "!637q39766251:example.com" example: "!637q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: path - in: path
name: eventId name: eventId
description: The ID of the event to redact description: The ID of the event to redact.
required: true required: true
example: bai2b1i9:matrix.org example: $bai2b1i9:matrix.org
schema: schema:
type: string type: string
format: mx-event-id
pattern: "^\\$"
- in: path - in: path
name: txnId name: txnId
description: |- description: |-
@ -82,6 +86,8 @@ paths:
properties: properties:
event_id: event_id:
type: string type: string
format: mx-event-id
pattern: "^\\$"
description: A unique identifier for the event. description: A unique identifier for the event.
examples: examples:
response: response:

View file

@ -233,6 +233,8 @@ components:
example: "!636q39766251:matrix.org" example: "!636q39766251:matrix.org"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
eventId: eventId:
in: path in: path
name: eventId name: eventId
@ -241,6 +243,8 @@ components:
example: $asfDuShaf7Gafaw example: $asfDuShaf7Gafaw
schema: schema:
type: string type: string
format: mx-event-id
pattern: "^\\$"
from: from:
in: query in: query
name: from name: from

View file

@ -56,6 +56,8 @@ paths:
example: "!636q39766251:matrix.org" example: "!636q39766251:matrix.org"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: query - in: query
name: ts name: ts
description: |- description: |-
@ -86,6 +88,8 @@ paths:
properties: properties:
event_id: event_id:
type: string type: string
format: mx-event-id
pattern: "^\\$"
description: The ID of the event found description: The ID of the event found
origin_server_ts: origin_server_ts:
type: integer type: integer

View file

@ -27,6 +27,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
responses: responses:
"200": "200":
description: The current state of the room description: The current state of the room
@ -38,6 +40,8 @@ paths:
properties: properties:
room_id: room_id:
type: string type: string
format: mx-room-id
pattern: "^!"
description: The ID of this room. description: The ID of this room.
membership: membership:
type: string type: string

View file

@ -49,6 +49,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: path - in: path
name: eventType name: eventType
description: The type of event to send. description: The type of event to send.
@ -86,6 +88,8 @@ paths:
properties: properties:
event_id: event_id:
type: string type: string
format: mx-event-id
pattern: "^\\$"
description: A unique identifier for the event. description: A unique identifier for the event.
required: required:
- event_id - event_id

View file

@ -49,6 +49,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: path - in: path
name: eventType name: eventType
description: The type of event to send. description: The type of event to send.
@ -86,6 +88,8 @@ paths:
properties: properties:
event_id: event_id:
type: string type: string
format: mx-event-id
pattern: "^\\$"
description: A unique identifier for the event. description: A unique identifier for the event.
required: required:
- event_id - event_id

View file

@ -34,6 +34,8 @@ paths:
example: "!636q39766251:matrix.org" example: "!636q39766251:matrix.org"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: path - in: path
name: eventId name: eventId
description: The event ID to get. description: The event ID to get.
@ -41,6 +43,8 @@ paths:
example: $asfDuShaf7Gafaw:matrix.org example: $asfDuShaf7Gafaw:matrix.org
schema: schema:
type: string type: string
format: mx-event-id
pattern: "^\\$"
responses: responses:
"200": "200":
description: The full event. description: The full event.
@ -89,6 +93,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: path - in: path
name: eventType name: eventType
description: The type of state to look up. description: The type of state to look up.
@ -158,6 +164,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
responses: responses:
"200": "200":
description: The current state of the room description: The current state of the room
@ -211,6 +219,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
- in: query - in: query
name: at name: at
description: |- description: |-
@ -305,6 +315,8 @@ paths:
example: "!636q39766251:example.com" example: "!636q39766251:example.com"
schema: schema:
type: string type: string
format: mx-room-id
pattern: "^!"
security: security:
- accessTokenQuery: [] - accessTokenQuery: []
- accessTokenBearer: [] - accessTokenBearer: []

View file

@ -209,6 +209,8 @@ paths:
field may be omitted. field may be omitted.
items: items:
type: string type: string
format: mx-user-id
pattern: "^@"
m.joined_member_count: m.joined_member_count:
type: integer type: integer
description: |- description: |-

View file

@ -20,10 +20,13 @@ properties:
The signatures are calculated using the process described at The signatures are calculated using the process described at
[Signing JSON](/appendices/#signing-json). [Signing JSON](/appendices/#signing-json).
type: object type: object
additionalProperties: patternProperties:
type: object "":
additionalProperties: x-pattern-format: mx-server-name
type: string type: object
additionalProperties:
type: string
format: mx-unpadded-base64
example: { example: {
"magic.forest": { "magic.forest": {
"ed25519:3": "fQpGIW1Snz+pwLZu6sTy2aHy/DYWWTspTJRPyNp0PKkymfIsNffysMl6ObMMFdIJhk6g6pwlIqZ54rxo8SLmAg" "ed25519:3": "fQpGIW1Snz+pwLZu6sTy2aHy/DYWWTspTJRPyNp0PKkymfIsNffysMl6ObMMFdIJhk6g6pwlIqZ54rxo8SLmAg"

View file

@ -11,5 +11,7 @@ allOf:
The ID of the room associated with this event. Will not be present on events The ID of the room associated with this event. Will not be present on events
that arrive through `/sync`, despite being required everywhere else. that arrive through `/sync`, despite being required everywhere else.
type: string type: string
format: mx-room-id
pattern: "^!"
required: required:
- room_id - room_id

View file

@ -39,6 +39,8 @@ properties:
sender: sender:
description: The `sender` for the event. description: The `sender` for the event.
type: string type: string
format: mx-user-id
pattern: "^@"
required: required:
- type - type
- state_key - state_key

View file

@ -29,9 +29,13 @@ allOf:
event_id: event_id:
description: The globally unique event identifier. description: The globally unique event identifier.
type: string type: string
format: mx-event-id
pattern: "^\\$"
sender: sender:
description: Contains the fully-qualified ID of the user who sent this event. description: Contains the fully-qualified ID of the user who sent this event.
type: string type: string
format: mx-user-id
pattern: "^@"
origin_server_ts: origin_server_ts:
description: Timestamp in milliseconds on originating homeserver description: Timestamp in milliseconds on originating homeserver
when this event was sent. when this event was sent.

View file

@ -16,6 +16,8 @@ properties:
The canonical alias for the room. If not present, null, or empty the The canonical alias for the room. If not present, null, or empty the
room should be considered to have no canonical alias. room should be considered to have no canonical alias.
type: string type: string
format: mx-room-alias
pattern: "^#"
alt_aliases: alt_aliases:
description: | description: |
Alternative aliases the room advertises. This list can have aliases Alternative aliases the room advertises. This list can have aliases
@ -23,6 +25,8 @@ properties:
type: array type: array
items: items:
type: string type: string
format: mx-room-alias
pattern: "^#"
type: object type: object
state_key: state_key:
description: A zero-length string. description: A zero-length string.

View file

@ -12,6 +12,8 @@ properties:
The `user_id` of the room creator. **Required** for, and only present in, room versions 1 - 10. Starting with The `user_id` of the room creator. **Required** for, and only present in, room versions 1 - 10. Starting with
room version 11 the event `sender` should be used instead. room version 11 the event `sender` should be used instead.
type: string type: string
format: mx-user-id
pattern: "^@"
m.federate: m.federate:
description: Whether users on other servers can join this room. Defaults to `true` if key does not exist. description: Whether users on other servers can join this room. Defaults to `true` if key does not exist.
type: boolean type: boolean
@ -32,9 +34,13 @@ properties:
properties: properties:
room_id: room_id:
type: string type: string
format: mx-room-id
pattern: "^!"
description: The ID of the old room. description: The ID of the old room.
event_id: event_id:
type: string type: string
format: mx-event-id
pattern: "^\\$"
deprecated: true deprecated: true
x-changedInMatrixVersion: x-changedInMatrixVersion:
"1.16": |- "1.16": |-
@ -51,6 +57,8 @@ properties:
type: array type: array
items: items:
type: string type: string
format: mx-user-id
pattern: "^@"
description: Additional user ID to consider a creator of the room, if supported by the room version. description: Additional user ID to consider a creator of the room, if supported by the room version.
x-addedInMatrixVersion: "1.16" x-addedInMatrixVersion: "1.16"
description: |- description: |-

View file

@ -55,6 +55,8 @@ properties:
enum: ['m.room_membership'] enum: ['m.room_membership']
room_id: room_id:
type: string type: string
format: mx-room-id
pattern: "^!"
description: |- description: |-
Required if `type` is `m.room_membership`. The room ID to check the Required if `type` is `m.room_membership`. The room ID to check the
user's membership against. If the user is joined to this room, they user's membership against. If the user is joined to this room, they

View file

@ -76,6 +76,8 @@ properties:
join_authorised_via_users_server: join_authorised_via_users_server:
x-addedInMatrixVersion: "1.2" x-addedInMatrixVersion: "1.2"
type: string type: string
format: mx-user-id
pattern: "^@"
description: |- description: |-
Usually found on `join` events, this field is used to denote which homeserver (through Usually found on `join` events, this field is used to denote which homeserver (through
representation of a user with sufficient power level) authorised the user's join. More representation of a user with sufficient power level) authorised the user's join. More
@ -127,6 +129,8 @@ properties:
`join`, the user ID sending the event does not need to match the user ID in the `state_key`, `join`, the user ID sending the event does not need to match the user ID in the `state_key`,
unlike other events. Regular authorisation rules still apply. unlike other events. Regular authorisation rules still apply.
type: string type: string
format: mx-user-id
pattern: "^@"
type: type:
enum: enum:
- m.room.member - m.room.member

View file

@ -10,6 +10,8 @@ properties:
redacts: redacts:
description: The event ID that was redacted. Required for, and present starting in, room version 11. description: The event ID that was redacted. Required for, and present starting in, room version 11.
type: string type: string
format: mx-event-id
pattern: "^\\$"
reason: reason:
description: 'The reason for the redaction, if any.' description: 'The reason for the redaction, if any.'
type: string type: string
@ -17,6 +19,8 @@ properties:
redacts: redacts:
description: Required for, and only present in, room versions 1 - 10. The event ID that was redacted. description: Required for, and only present in, room versions 1 - 10. The event ID that was redacted.
type: string type: string
format: mx-event-id
pattern: "^\\$"
type: type:
enum: enum:
- m.room.redaction - m.room.redaction

View file

@ -66,6 +66,11 @@ mx-mxc-uri:
url: client-server-api#matrix-content-mxc-uris url: client-server-api#matrix-content-mxc-uris
# regex: "^mxc:\\/\\/" # regex: "^mxc:\\/\\/"
mx-unpadded-base64:
title: Unpadded Base64
url: appendices#unpadded-base64
# no regex
uri: uri:
title: URI title: URI
url: https://datatracker.ietf.org/doc/html/rfc3986 url: https://datatracker.ietf.org/doc/html/rfc3986