Skip to content

Commit

Permalink
Move size limits for user, room and event IDs into the appendix and c…
Browse files Browse the repository at this point in the history
…larify that the length is to be measured in bytes

Fixes: matrix-org#1826
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
  • Loading branch information
Johennes committed Jun 7, 2024
1 parent 7d5b506 commit 68a8ff8
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 8 deletions.
11 changes: 8 additions & 3 deletions content/appendices.md
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,7 @@ The `domain` of a user ID is the [server name](#server-name) of the
homeserver which allocated the account.

The length of a user ID, including the `@` sigil and the domain, MUST
NOT exceed 255 characters.
NOT exceed 255 bytes.

The complete grammar for a legal user ID is:

Expand Down Expand Up @@ -663,6 +663,9 @@ Room IDs are case-sensitive. They are not meant to be
human-readable. They are intended to be treated as fully opaque strings
by clients.

The length of a room ID, including the `!` sigil and the domain, MUST
NOT exceed 255 bytes.

#### Room Aliases

A room may have zero or more aliases. A room alias has the format:
Expand All @@ -673,8 +676,8 @@ The `domain` of a room alias is the [server name](#server-name) of the
homeserver which created the alias. Other servers may contact this
homeserver to look up the alias.

Room aliases MUST NOT exceed 255 bytes (including the `#` sigil and the
domain).
The length of a room alias, including the `#` sigil and the domain, MUST
NOT exceed 255 bytes.

#### Event IDs

Expand All @@ -689,6 +692,8 @@ whereas more recent versions omit the domain and use a base64-encoded hash inste
Event IDs are case-sensitive. They are not meant to be human-readable. They are
intended to be treated as fully opaque strings by clients.

The length of an event ID MUST NOT exceed 255 bytes.


### URIs

Expand Down
9 changes: 4 additions & 5 deletions content/client-server-api/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1842,16 +1842,15 @@ updates not being sent.

The complete event MUST NOT be larger than 65536 bytes, when formatted
with the [federation event format](#room-event-format), including any
signatures, and encoded as [Canonical
JSON](/appendices#canonical-json).
signatures, and encoded as [Canonical JSON](/appendices#canonical-json).

There are additional restrictions on sizes per key:

- `sender` MUST NOT exceed 255 bytes (including domain).
- `room_id` MUST NOT exceed 255 bytes.
- `sender` MUST NOT exceed the size limit for [user IDs](/appendices/#user-identifiers).
- `room_id` MUST NOT exceed the size limit for [room IDs](/appendices/#room-ids).
- `state_key` MUST NOT exceed 255 bytes.
- `type` MUST NOT exceed 255 bytes.
- `event_id` MUST NOT exceed 255 bytes.
- `event_id` MUST NOT exceed the size limit for [event IDs](/appendices/#event-ids).

Some event types have additional size restrictions which are specified
in the description of the event. Additional keys have no limit other
Expand Down

0 comments on commit 68a8ff8

Please sign in to comment.