diff --git a/changelogs/client_server/newsfragments/2347.clarification b/changelogs/client_server/newsfragments/2347.clarification new file mode 100644 index 00000000..bdcce777 --- /dev/null +++ b/changelogs/client_server/newsfragments/2347.clarification @@ -0,0 +1 @@ +Clarify formats of string types. diff --git a/content/client-server-api/_index.md b/content/client-server-api/_index.md index 410a1f25..68d4bae4 100644 --- a/content/client-server-api/_index.md +++ b/content/client-server-api/_index.md @@ -3120,19 +3120,20 @@ events they have already been sent, and choose to skip sending membership events for members whose membership has not changed. These are called 'redundant membership events'. Clients may request that redundant membership events are always included in responses by setting `include_redundant_members` -to true in the filter. +to `true` in the filter. The expected pattern for using lazy-loading is currently: -- Client performs an initial /sync with lazy-loading enabled, and +- Client performs an initial `/sync` with lazy-loading enabled, and receives only the membership events which relate to the senders of the events it receives. - Clients which support display-name tab-completion or other operations which require rapid access to all members in a room - should call /members for the currently selected room, with an `?at` - parameter set to the /sync response's from token. The member list - for the room is then maintained by the state in subsequent - incremental /sync responses. + should call [`/members`](#get_matrixclientv3roomsroomidmembers) for + the currently selected room, with an `?at` parameter set to the + `/sync` response's `from` token. The member list for the room is + then maintained by the state in subsequent incremental `/sync` + responses. - Clients which do not support tab-completion may instead pull in profiles for arbitrary users (e.g. read receipts, typing notifications) on demand by querying the room state or [`/profile`](#get_matrixclientv3profileuserid). diff --git a/data/api/client-server/definitions/event_filter.yaml b/data/api/client-server/definitions/event_filter.yaml index ceb0d5bf..ad91e699 100644 --- a/data/api/client-server/definitions/event_filter.yaml +++ b/data/api/client-server/definitions/event_filter.yaml @@ -26,6 +26,8 @@ properties: `senders` filter. items: type: string + format: mx-user-id + pattern: "^@" type: array not_types: description: A list of event types to exclude. If this list is absent then no @@ -40,6 +42,8 @@ properties: senders are included. items: type: string + format: mx-user-id + pattern: "^@" type: array types: description: A list of event types to include. If this list is absent then all diff --git a/data/api/client-server/definitions/room_event_filter.yaml b/data/api/client-server/definitions/room_event_filter.yaml index 6c9b705d..de908a82 100644 --- a/data/api/client-server/definitions/room_event_filter.yaml +++ b/data/api/client-server/definitions/room_event_filter.yaml @@ -43,12 +43,16 @@ allOf: filter. items: type: string + format: mx-room-id + pattern: "^!" type: array rooms: description: A list of room IDs to include. If this list is absent then all rooms are included. items: type: string + format: mx-room-id + pattern: "^!" type: array contains_url: type: boolean diff --git a/data/api/client-server/definitions/sync_filter.yaml b/data/api/client-server/definitions/sync_filter.yaml index f181aa22..6f80b4c1 100644 --- a/data/api/client-server/definitions/sync_filter.yaml +++ b/data/api/client-server/definitions/sync_filter.yaml @@ -50,6 +50,8 @@ properties: `state`, `timeline` or `account_data` items: type: string + format: mx-room-id + pattern: "^!" type: array rooms: description: A list of room IDs to include. If this list is absent then all rooms @@ -57,6 +59,8 @@ properties: `state`, `timeline` or `account_data` items: type: string + format: mx-room-id + pattern: "^!" type: array ephemeral: allOf: diff --git a/data/api/client-server/filter.yaml b/data/api/client-server/filter.yaml index f1135939..551748d4 100644 --- a/data/api/client-server/filter.yaml +++ b/data/api/client-server/filter.yaml @@ -36,6 +36,8 @@ paths: example: "@alice:example.com" schema: type: string + format: mx-user-id + pattern: "^@" requestBody: content: application/json: @@ -130,6 +132,8 @@ paths: example: "@alice:example.com" schema: type: string + format: mx-user-id + pattern: "^@" - in: path name: filterId description: The filter ID to download.