diff --git a/changelogs/appendices/newsfragments/1583.feature b/changelogs/appendices/newsfragments/1583.feature new file mode 100644 index 00000000..b24077c6 --- /dev/null +++ b/changelogs/appendices/newsfragments/1583.feature @@ -0,0 +1 @@ +Allow `+` in Matrix IDs, per [MSC4009](https://github.com/matrix-org/matrix-spec-proposals/pull/4009). diff --git a/content/appendices.md b/content/appendices.md index 4592c428..59c1b1c3 100644 --- a/content/appendices.md +++ b/content/appendices.md @@ -540,6 +540,8 @@ be represented with a `domain` component under some conditions - see the #### User Identifiers +{{% changed-in v="1.8" %}} + Users within Matrix are uniquely identified by their Matrix user ID. The user ID is namespaced to the homeserver which allocated the account and has the form: @@ -548,7 +550,7 @@ has the form: The `localpart` of a user ID is an opaque identifier for that user. It MUST NOT be empty, and MUST contain only the characters `a-z`, `0-9`, -`.`, `_`, `=`, `-`, and `/`. +`.`, `_`, `=`, `-`, `/`, and `+`. The `domain` of a user ID is the [server name](#server-name) of the homeserver which allocated the account. @@ -562,7 +564,7 @@ The complete grammar for a legal user ID is: user_id_localpart = 1*user_id_char user_id_char = DIGIT / %x61-7A ; a-z - / "-" / "." / "=" / "_" / "/" + / "-" / "." / "=" / "_" / "/" / "+" {{% boxes/rationale %}} A number of factors were considered when defining the allowable