Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes (#1850)

Fixes: #1826
Relates to: #1001
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
pull/1863/head
Johannes Marbach 4 months ago committed by GitHub
parent 3517846916
commit 7916032a78
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1 @@
Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes.

@ -0,0 +1 @@
Move size limits for user, room and event IDs into the appendix and clarify that the length is to be measured in bytes.

@ -556,7 +556,7 @@ The `domain` of a user ID is the [server name](#server-name) of the
homeserver which allocated the account. homeserver which allocated the account.
The length of a user ID, including the `@` sigil and the domain, MUST 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: The complete grammar for a legal user ID is:
@ -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 human-readable. They are intended to be treated as fully opaque strings
by clients. by clients.
The length of a room ID, including the `!` sigil and the domain, MUST
NOT exceed 255 bytes.
#### Room Aliases #### Room Aliases
A room may have zero or more aliases. A room alias has the format: A room may have zero or more aliases. A room alias has the format:
@ -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 which created the alias. Other servers may contact this
homeserver to look up the alias. homeserver to look up the alias.
Room aliases MUST NOT exceed 255 bytes (including the `#` sigil and the The length of a room alias, including the `#` sigil and the domain, MUST
domain). NOT exceed 255 bytes.
#### Event IDs #### Event IDs
@ -686,10 +689,12 @@ However, the precise format depends upon the [room version
specification](/rooms): early room versions included a `domain` component, specification](/rooms): early room versions included a `domain` component,
whereas more recent versions omit the domain and use a base64-encoded hash instead. whereas more recent versions omit the domain and use a base64-encoded hash instead.
In addition to the requirements of the room version, the length of an event ID,
including the `$` sigil and the domain where present, MUST NOT exceed 255 bytes.
Event IDs are case-sensitive. They are not meant to be human-readable. They are 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. intended to be treated as fully opaque strings by clients.
### URIs ### URIs
There are two major kinds of referring to a resource in Matrix: matrix.to There are two major kinds of referring to a resource in Matrix: matrix.to

@ -1849,16 +1849,15 @@ updates not being sent.
The complete event MUST NOT be larger than 65536 bytes, when formatted The complete event MUST NOT be larger than 65536 bytes, when formatted
with the [federation event format](#room-event-format), including any with the [federation event format](#room-event-format), including any
signatures, and encoded as [Canonical signatures, and encoded as [Canonical JSON](/appendices#canonical-json).
JSON](/appendices#canonical-json).
There are additional restrictions on sizes per key: There are additional restrictions on sizes per key:
- `sender` MUST NOT exceed 255 bytes (including domain). - `sender` MUST NOT exceed the size limit for [user IDs](/appendices/#user-identifiers).
- `room_id` MUST NOT exceed 255 bytes. - `room_id` MUST NOT exceed the size limit for [room IDs](/appendices/#room-ids).
- `state_key` MUST NOT exceed 255 bytes. - `state_key` MUST NOT exceed 255 bytes.
- `type` 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 Some event types have additional size restrictions which are specified
in the description of the event. Additional keys have no limit other in the description of the event. Additional keys have no limit other

Loading…
Cancel
Save