mirror of
https://github.com/matrix-org/matrix-spec
synced 2025-12-20 16:38:37 +01:00
Add state_after to /sync (#2187)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
* Add `state_after` to `/sync` As per MSC4222. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Add changelog Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Improve wording Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> * Clarify to not use timeline with state_after Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr> --------- Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
This commit is contained in:
parent
67a2aa4761
commit
9c313b099f
1
changelogs/client_server/newsfragments/2187.feature
Normal file
1
changelogs/client_server/newsfragments/2187.feature
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Add the `use_state_after` query parameter and `state_after` response property to `GET /sync`, as per [MSC4222](https://github.com/matrix-org/matrix-spec-proposals/issues/4222).
|
||||||
|
|
@ -117,6 +117,31 @@ paths:
|
||||||
example: 30000
|
example: 30000
|
||||||
schema:
|
schema:
|
||||||
type: integer
|
type: integer
|
||||||
|
- in: query
|
||||||
|
name: use_state_after
|
||||||
|
x-addedInMatrixVersion: "1.16"
|
||||||
|
description: |-
|
||||||
|
Controls whether to receive state changes between the previous sync
|
||||||
|
and the **start** of the timeline, or between the previous sync and
|
||||||
|
the **end** of the timeline.
|
||||||
|
|
||||||
|
If this is set to `true`, servers MUST respond with the state
|
||||||
|
between the previous sync and the **end** of the timeline in
|
||||||
|
`state_after` and MUST omit `state`.
|
||||||
|
|
||||||
|
If `false`, servers MUST respond with the state between the previous
|
||||||
|
sync and the **start** of the timeline in `state` and MUST omit
|
||||||
|
`state_after`.
|
||||||
|
|
||||||
|
Even if this is set to `true`, clients MUST update their local state
|
||||||
|
with events in `state` and `timeline` if `state_after` is missing in
|
||||||
|
the response, for compatibility with servers that don't support this
|
||||||
|
parameter.
|
||||||
|
|
||||||
|
By default, this is `false`.
|
||||||
|
example: false
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: The initial snapshot or delta for the client to use to update their
|
description: The initial snapshot or delta for the client to use to update their
|
||||||
|
|
@ -197,16 +222,50 @@ paths:
|
||||||
type: object
|
type: object
|
||||||
description: |-
|
description: |-
|
||||||
Updates to the state, between the time indicated by
|
Updates to the state, between the time indicated by
|
||||||
the `since` parameter, and the start of the
|
the `since` parameter, and the **start** of the
|
||||||
`timeline` (or all state up to the start of the
|
`timeline` (or all state up to the **start** of the
|
||||||
`timeline`, if `since` is not given, or
|
`timeline`, if `since` is not given, or
|
||||||
`full_state` is true).
|
`full_state` is true).
|
||||||
|
|
||||||
N.B. state updates for `m.room.member` events will
|
{{% boxes/note %}}
|
||||||
|
State updates for `m.room.member` events will
|
||||||
be incomplete if `lazy_load_members` is enabled in
|
be incomplete if `lazy_load_members` is enabled in
|
||||||
the `/sync` filter, and only return the member events
|
the `/sync` filter, and only return the member events
|
||||||
required to display the senders of the timeline events
|
required to display the senders of the timeline events
|
||||||
in this response.
|
in this response.
|
||||||
|
{{% /boxes/note %}}
|
||||||
|
|
||||||
|
MUST be omitted if `use_state_after` was set to `true`
|
||||||
|
in the request.
|
||||||
|
allOf:
|
||||||
|
- $ref: definitions/state_event_batch.yaml
|
||||||
|
state_after:
|
||||||
|
title: State
|
||||||
|
type: object
|
||||||
|
x-addedInMatrixVersion: "1.16"
|
||||||
|
description: |-
|
||||||
|
Updates to the state, between the time indicated by
|
||||||
|
the `since` parameter, and the **end** of the
|
||||||
|
`timeline` (or all state up to the **end** of the
|
||||||
|
`timeline`, if `since` is not given, or
|
||||||
|
`full_state` is true).
|
||||||
|
|
||||||
|
{{% boxes/note %}}
|
||||||
|
State updates for `m.room.member` events will
|
||||||
|
be incomplete if `lazy_load_members` is enabled in
|
||||||
|
the `/sync` filter, and only return the member events
|
||||||
|
required to display the senders of the timeline events
|
||||||
|
in this response.
|
||||||
|
{{% /boxes/note %}}
|
||||||
|
|
||||||
|
If this field is set, even if it is empty, clients MUST
|
||||||
|
only update their local state with events in this list,
|
||||||
|
and MUST NOT update their local state with events in
|
||||||
|
`timeline`. If this field is not set, clients MUST update
|
||||||
|
their local state with events in `state` and `timeline`.
|
||||||
|
|
||||||
|
**Required** if `use_state_after` was set to `true` in the
|
||||||
|
request, even if it is empty.
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: definitions/state_event_batch.yaml
|
- $ref: definitions/state_event_batch.yaml
|
||||||
timeline:
|
timeline:
|
||||||
|
|
@ -353,7 +412,28 @@ paths:
|
||||||
state:
|
state:
|
||||||
title: State
|
title: State
|
||||||
type: object
|
type: object
|
||||||
description: The state updates for the room up to the start of the timeline.
|
description: |-
|
||||||
|
The state updates for the room up to the **start** of the timeline.
|
||||||
|
|
||||||
|
MUST be omitted if `use_state_after` was set to `true` in the
|
||||||
|
request.
|
||||||
|
allOf:
|
||||||
|
- $ref: definitions/state_event_batch.yaml
|
||||||
|
state_after:
|
||||||
|
title: State
|
||||||
|
type: object
|
||||||
|
x-addedInMatrixVersion: "1.16"
|
||||||
|
description: |-
|
||||||
|
The state updates for the room up to the **end** of the timeline.
|
||||||
|
|
||||||
|
If this field is set, even if it is empty, clients MUST only
|
||||||
|
update their local state with events in this list, and MUST NOT
|
||||||
|
update their local state with events in `timeline`. If this field
|
||||||
|
is not set, clients MUST update their local state with events in
|
||||||
|
`state` and `timeline`.
|
||||||
|
|
||||||
|
**Required** if `use_state_after` was set to `true` in the
|
||||||
|
request, even if it is empty.
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: definitions/state_event_batch.yaml
|
- $ref: definitions/state_event_batch.yaml
|
||||||
timeline:
|
timeline:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue