Clarify that org.matrix is reserved

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
pull/2222/head
Johannes Marbach 2 months ago
parent 7f59715369
commit 35eb6e1d2b

@ -458,25 +458,31 @@ In summary:
Unstable endpoints MUST use `/unstable` as the endpoint version and a Unstable endpoints MUST use `/unstable` as the endpoint version and a
vendor prefix in Java package naming format. For example: vendor prefix in Java package naming format. For example:
`/_matrix/client/unstable/org.matrix.mscxxxx/login`. The foundation's `/_matrix/client/unstable/com.example.mscxxxx/login`.
preferred vendor prefix is `org.matrix`.
{{% boxes/note %}}
Proposal authors operating with a Matrix.org Foundation mandate SHOULD use
a vendor prefix within the `org.matrix` namespace. This namespace is otherwise
restricted. Authors who don't own a domain MAY use the `com.github` namespace
instead.
{{% /boxes/note %}}
Note that unstable namespaces do not automatically inherit endpoints from Note that unstable namespaces do not automatically inherit endpoints from
stable namespaces: for example, the fact that `/_matrix/client/v3/sync` stable namespaces: for example, the fact that `/_matrix/client/v3/sync`
exists does not imply that `/_matrix/client/unstable/org.matrix.mscxxxx/sync` exists does not imply that `/_matrix/client/unstable/com.example.mscxxxx/sync`
exists. exists.
Vendor prefixes MUST also be used for: Vendor prefixes MUST also be used for:
- New parameters on existing endpoints. For example: - New parameters on existing endpoints. For example:
`/_matrix/client/v3/publicRooms?org.matrix.mscxxxx.ordered_by=member_count`. `/_matrix/client/v3/publicRooms?com.example.mscxxxx.ordered_by=member_count`.
- New properties in existing JSON objects. For example: - New properties in existing JSON objects. For example:
```json ```json
{ {
"avatar_url": "mxc://matrix.org/SDGdghriugerRg", "avatar_url": "mxc://matrix.org/SDGdghriugerRg",
"displayname": "Alice Margatroid", "displayname": "Alice Margatroid",
"org.matrix.mscxxxx.phone": [{ "com.example.mscxxxx.phone": [{
"type": "landline", "type": "landline",
"number": "+1-206-555-7000" "number": "+1-206-555-7000"
}], }],
@ -487,7 +493,7 @@ Vendor prefixes MUST also be used for:
```json ```json
{ {
"errcode": "ORG.MATRIX.MSCXXXX.M_INVALID_EMAIL", "errcode": "COM.EXAMPLE.MSCXXXX.M_INVALID_EMAIL",
"error": "The email address you provided is invalid." "error": "The email address you provided is invalid."
} }
``` ```
@ -496,13 +502,13 @@ If the client needs to be sure the server supports the feature, an
unstable feature flag that MUST also be vendor prefixed is to be used. unstable feature flag that MUST also be vendor prefixed is to be used.
This flag shows up in the `unstable_features` section of This flag shows up in the `unstable_features` section of
[`/_matrix/client/versions`](/client-server-api/#get_matrixclientversions) [`/_matrix/client/versions`](/client-server-api/#get_matrixclientversions)
as, for example, `org.matrix.mscxxxx.new_login`. as, for example, `com.example.mscxxxx.new_login`.
{{% boxes/note %}} {{% boxes/note %}}
MSCs MUST still describe what the stable endpoints/feature looks like MSCs MUST still describe what the stable endpoints/feature looks like
with a note towards the bottom for what the unstable feature with a note towards the bottom for what the unstable feature
flag/prefixes are. For example, an MSC would propose `/_matrix/client/v1/new/endpoint`, flag/prefixes are. For example, an MSC would propose `/_matrix/client/v1/new/endpoint`,
not `/_matrix/client/unstable/org.matrix.mscxxxx/new/endpoint`. not `/_matrix/client/unstable/com.example.mscxxxx/new/endpoint`.
{{% /boxes/note %}} {{% /boxes/note %}}
When using this approach correctly, the implementation can release When using this approach correctly, the implementation can release

Loading…
Cancel
Save