Compare commits

...

4 commits

Author SHA1 Message Date
Travis Ralston d2cf7db161
Merge 430cbd681b into fea0b925a0 2025-09-09 17:21:42 +00:00
Patrick Cloke fea0b925a0
Add time zone profile field from MSC4175 (#2206)
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
2025-09-09 12:02:39 -04:00
Kim Brose bfbeb5e257
clarify world_readable history visibility (#2204)
Signed-off-by: HarHarLinks <2803622+HarHarLinks@users.noreply.github.com>
2025-09-09 16:02:51 +01:00
Kim Brose d1a51f7b8c
fix typo in MSC process (#2205)
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
2025-09-09 09:02:32 +00:00
9 changed files with 25 additions and 13 deletions

View file

@ -1 +1 @@
Update user profile endpoints to handle custom fields, and add a new `m.profile_fields` capability,as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133). Update user profile endpoints to handle custom fields, and add a new `m.profile_fields` capability, as per [MSC4133](https://github.com/matrix-org/matrix-spec-proposals/pull/4133).

View file

@ -0,0 +1 @@
Clarify wording around the `world_readable` history visibility setting. Contributed by @HarHarLinks.

View file

@ -0,0 +1 @@
Add a profile field for a user's time zone, per [MSC4175](https://github.com/matrix-org/matrix-spec-proposals/pull/4175).

View file

@ -0,0 +1 @@
Fix a grammatical typo on the Matrix Spec Process documentation page.

View file

@ -16,8 +16,8 @@ The four options for the `m.room.history_visibility` event are:
- `world_readable` - All events while this is the - `world_readable` - All events while this is the
`m.room.history_visibility` value may be shared by any participating `m.room.history_visibility` value may be shared by any participating
homeserver with anyone, regardless of whether they have ever joined homeserver with any authenticated user, regardless of whether they have
the room. ever joined the room. This includes [guest users](#guest-access).
- `shared` - Previous events are always accessible to newly joined - `shared` - Previous events are always accessible to newly joined
members. All events in the room are accessible, even those sent when members. All events in the room are accessible, even those sent when
the member was not a part of the room. the member was not a part of the room.
@ -44,7 +44,7 @@ setting at that time was more restrictive.
#### Client behaviour #### Client behaviour
Clients may want to display a notice that events may be read by Clients may want to display a notice that events may be read by
non-joined people if the history visibility is set to `world_readable`. non-joined users if the history visibility is set to `world_readable`.
#### Server behaviour #### Server behaviour

View file

@ -6,7 +6,7 @@ It is sometimes desirable to offer a preview of a room, where a user can
This can be particularly effective when combined with [Guest Access](#guest-access). This can be particularly effective when combined with [Guest Access](#guest-access).
Previews are implemented via the `world_readable` [Room History Previews are implemented via the `world_readable` [Room History
Visibility](#room-history-visibility). setting, along with a special version of the [GET Visibility](#room-history-visibility) setting, along with a special version of the [GET
/events](#get_matrixclientv3events) endpoint. /events](#get_matrixclientv3events) endpoint.
#### Client behaviour #### Client behaviour

View file

@ -555,7 +555,7 @@ resolve to the desired MSC, whether it started as an issue or a PR.
Other metadata: Other metadata:
- The MSC number is taken from the GitHub Pull Request ID. This is - The MSC number is taken from the GitHub Pull Request ID. This is
carried for the lifetime of the proposal. These IDs do not necessary carried for the lifetime of the proposal. These IDs do not necessarily
represent a chronological order. represent a chronological order.
- The GitHub PR title will act as the MSC's title. - The GitHub PR title will act as the MSC's title.
- Please link to the spec PR (if any) by adding a "PRs: \#1234" line - Please link to the spec PR (if any) by adding a "PRs: \#1234" line

View file

@ -43,7 +43,7 @@ properties:
example: "All things general" example: "All things general"
world_readable: world_readable:
type: boolean type: boolean
description: Whether the room may be viewed by guest users without joining. description: Whether the room may be viewed by users without joining.
example: false example: false
guest_can_join: guest_can_join:
type: boolean type: boolean

View file

@ -19,7 +19,7 @@ paths:
"/profile/{userId}/{keyName}": "/profile/{userId}/{keyName}":
put: put:
x-changedInMatrixVersion: x-changedInMatrixVersion:
"1.16": This endpoint now accepts a variable `keyName` parameter. Previously only `displayname` and `avatar_url` were accepted. "1.16": This endpoint now accepts a variable `keyName` parameter and `m.tz` was added as a defined key. Previously only `displayname` and `avatar_url` were accepted.
summary: Set a profile field for a user. summary: Set a profile field for a user.
description: |- description: |-
Set or update a profile field for a user. Must be authenticated with an Set or update a profile field for a user. Must be authenticated with an
@ -44,13 +44,13 @@ paths:
- in: path - in: path
name: keyName name: keyName
description: The name of the profile field to set. This MUST be either description: The name of the profile field to set. This MUST be either
`avatar_url`, `displayname`, or a custom field following the `avatar_url`, `displayname`, `m.tz`, or a custom field following the
[Common Namespaced Identifier Grammar](/appendices/#common-namespaced-identifier-grammar). [Common Namespaced Identifier Grammar](/appendices/#common-namespaced-identifier-grammar).
required: true required: true
example: "displayname" example: "displayname"
schema: schema:
type: string type: string
pattern: '^(avatar_url|displayname|[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+)$' pattern: '^(avatar_url|displayname|m\.tz|[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+)$'
requestBody: requestBody:
description: A JSON object containing the property whose name matches description: A JSON object containing the property whose name matches
the `keyName` specified in the URL. See `additionalProperties` for the `keyName` specified in the URL. See `additionalProperties` for
@ -69,6 +69,10 @@ paths:
For `displayname`, the value MUST be a string. For `displayname`, the value MUST be a string.
For `m.tz`, the value MUST be a valid identifier from the [IANA Time Zone Database](https://www.iana.org/time-zones).
Servers MAY choose to validate the value. Clients MUST expect unknown or invalid
values.
For custom keys, any JSON type is allowed. Servers MAY not validate For custom keys, any JSON type is allowed. Servers MAY not validate
these values, but clients SHOULD follow the format defined for that key. these values, but clients SHOULD follow the format defined for that key.
additionalProperties: true additionalProperties: true
@ -137,7 +141,7 @@ paths:
- User data - User data
get: get:
x-changedInMatrixVersion: x-changedInMatrixVersion:
"1.16": This endpoint now accepts a variable `keyName` parameter. Previously only `displayname` and `avatar_url` were accepted. "1.16": This endpoint now accepts a variable `keyName` parameter and `m.tz` was added as a defined key. Previously only `displayname` and `avatar_url` were accepted.
summary: Get a profile field for a user. summary: Get a profile field for a user.
description: Get the value of a profile field for a user. description: Get the value of a profile field for a user.
operationId: getProfileField operationId: getProfileField
@ -156,7 +160,7 @@ paths:
example: "displayname" example: "displayname"
schema: schema:
type: string type: string
pattern: '^(avatar_url|displayname|[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+)$' pattern: '^(avatar_url|displayname|m\.tz|[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+)$'
responses: responses:
"200": "200":
description: The profile field value was retrieved. description: The profile field value was retrieved.
@ -214,7 +218,7 @@ paths:
example: "displayname" example: "displayname"
schema: schema:
type: string type: string
pattern: '^(avatar_url|displayname|[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+)$' pattern: '^(avatar_url|displayname|m\.tz|[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)+)$'
responses: responses:
"200": "200":
description: The profile field was deleted or it doesn't exist. description: The profile field was deleted or it doesn't exist.
@ -293,6 +297,10 @@ paths:
type: string type: string
description: The user's display name if they have set one, otherwise not description: The user's display name if they have set one, otherwise not
present. present.
m.tz:
x-addedInMatrixVersion: "1.16"
type: string
description: The user's time zone.
additionalProperties: additionalProperties:
x-addedInMatrixVersion: "1.16" x-addedInMatrixVersion: "1.16"
description: Additional profile fields. description: Additional profile fields.
@ -302,6 +310,7 @@ paths:
{ {
"avatar_url": "mxc://matrix.org/SDGdghriugerRg", "avatar_url": "mxc://matrix.org/SDGdghriugerRg",
"displayname": "Alice Margatroid", "displayname": "Alice Margatroid",
"m.tz": "Europe/London",
"m.example_field": "custom_value", "m.example_field": "custom_value",
} }
"403": "403":