mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-03-23 19:44:09 +01:00
Spec for MSC3981
This writes up https://github.com/matrix-org/matrix-spec-proposals/pull/3981 Hopefully this is relatively straightforward, apart from having to add the parameters and response field in all three places. I tried to factor these out but it seems references just aren't supported in the right places currently (see https://github.com/matrix-org/matrix-spec/pull/1745 for my efforts). Path parameters can't be optional, so it can't be done that way either.
This commit is contained in:
parent
9068c336f4
commit
4fde94767f
|
|
@ -2156,6 +2156,19 @@ following endpoint.
|
||||||
This endpoint is particularly useful if the client has lost context on the aggregation for
|
This endpoint is particularly useful if the client has lost context on the aggregation for
|
||||||
a parent event and needs to rebuild/verify it.
|
a parent event and needs to rebuild/verify it.
|
||||||
|
|
||||||
|
When using the `recurse` parameter, note that there no way for a client to
|
||||||
|
affect how much the server recurses. If the client decides that the server's
|
||||||
|
recursion level is insufficient, it could, for example, perform the recursion
|
||||||
|
manually, or disable whatever feature requires more recursion.
|
||||||
|
|
||||||
|
Filters specified via `event_type` or `rel_type` will be applied to all events
|
||||||
|
returned, whether direct or indirect relations. Events that would match the filter,
|
||||||
|
but whose only relation to the original given event is through a non-matching
|
||||||
|
intermediate event, will not be included. This means that supplying a `rel_type`
|
||||||
|
parameter of `m.thread` is not appropriate for fetching all events in a thread since
|
||||||
|
relations to the threaded events would be filtered out. For this purpose, clients should
|
||||||
|
omit the `rel_type` parameter and perform any necessary filtering on the client side.
|
||||||
|
|
||||||
{{% boxes/note %}}
|
{{% boxes/note %}}
|
||||||
Because replies do not use `rel_type`, they will not be accessible via this API.
|
Because replies do not use `rel_type`, they will not be accessible via this API.
|
||||||
{{% /boxes/note %}}
|
{{% /boxes/note %}}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright 2022 The Matrix.org Foundation C.I.C.
|
# Copyright 2022,2024 The Matrix.org Foundation C.I.C.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
|
@ -96,6 +96,26 @@ paths:
|
||||||
enum:
|
enum:
|
||||||
- b
|
- b
|
||||||
- f
|
- f
|
||||||
|
- in: query
|
||||||
|
name: recurse
|
||||||
|
x-addedInMatrixVersion: "1.10"
|
||||||
|
required: false
|
||||||
|
description: |-
|
||||||
|
Whether to additionally include events which only relate indirectly to the
|
||||||
|
given event, ie. events related to the root events via one or more direct relationships.
|
||||||
|
|
||||||
|
If set to `false`, only events which have direct a relation with the given
|
||||||
|
event will be included.
|
||||||
|
|
||||||
|
If set to `true`, all events which relate to the given event, or relate to
|
||||||
|
events that relate to the given event, will be included.
|
||||||
|
|
||||||
|
It is recommended that at least 3 levels of relationships are traversed.
|
||||||
|
Implementations may perform more but should be careful to not infinitely recurse.
|
||||||
|
|
||||||
|
The default value is `false`.
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
responses:
|
responses:
|
||||||
# note: this endpoint deliberately does not support rate limiting, therefore a
|
# note: this endpoint deliberately does not support rate limiting, therefore a
|
||||||
# 429 error response is not included.
|
# 429 error response is not included.
|
||||||
|
|
@ -127,6 +147,12 @@ paths:
|
||||||
description: |-
|
description: |-
|
||||||
An opaque string representing a pagination token. The absence of this token
|
An opaque string representing a pagination token. The absence of this token
|
||||||
means this is the start of the result set, i.e. this is the first batch/page.
|
means this is the start of the result set, i.e. this is the first batch/page.
|
||||||
|
recursion_depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
If the `recurse` parameter was supplied by the client, this response field is
|
||||||
|
mandatory and gives the actual depth to which the server recursed. The the client
|
||||||
|
did not specify the `recurse` parameter, this field must be absent.
|
||||||
required:
|
required:
|
||||||
- chunk
|
- chunk
|
||||||
examples:
|
examples:
|
||||||
|
|
@ -253,6 +279,24 @@ paths:
|
||||||
enum:
|
enum:
|
||||||
- b
|
- b
|
||||||
- f
|
- f
|
||||||
|
- in: query
|
||||||
|
name: recurse
|
||||||
|
x-addedInMatrixVersion: "1.10"
|
||||||
|
required: false
|
||||||
|
description: |-
|
||||||
|
Whether to additionally include events which only relate indirectly to the
|
||||||
|
given event, ie. events related to the root events via one or more direct relationships.
|
||||||
|
|
||||||
|
If set to `false`, only events which have direct a relation with the given
|
||||||
|
event will be included.
|
||||||
|
|
||||||
|
If set to `true`, all events which relate to the given event, or relate to
|
||||||
|
events that relate to the given event, will be included.
|
||||||
|
|
||||||
|
It is recommended that at least 3 levels of relationships are traversed.
|
||||||
|
Implementations may perform more but should be careful to not infinitely recurse.
|
||||||
|
|
||||||
|
The default value is `false`.
|
||||||
responses:
|
responses:
|
||||||
# note: this endpoint deliberately does not support rate limiting, therefore a
|
# note: this endpoint deliberately does not support rate limiting, therefore a
|
||||||
# 429 error response is not included.
|
# 429 error response is not included.
|
||||||
|
|
@ -286,6 +330,12 @@ paths:
|
||||||
description: |-
|
description: |-
|
||||||
An opaque string representing a pagination token. The absence of this token
|
An opaque string representing a pagination token. The absence of this token
|
||||||
means this is the start of the result set, i.e. this is the first batch/page.
|
means this is the start of the result set, i.e. this is the first batch/page.
|
||||||
|
recursion_depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
If the `recurse` parameter was supplied by the client, this response field is
|
||||||
|
mandatory and gives the actual depth to which the server recursed. The the client
|
||||||
|
did not specify the `recurse` parameter, this field must be absent.
|
||||||
required:
|
required:
|
||||||
- chunk
|
- chunk
|
||||||
examples:
|
examples:
|
||||||
|
|
@ -424,6 +474,24 @@ paths:
|
||||||
enum:
|
enum:
|
||||||
- b
|
- b
|
||||||
- f
|
- f
|
||||||
|
- in: query
|
||||||
|
name: recurse
|
||||||
|
x-addedInMatrixVersion: "1.10"
|
||||||
|
required: false
|
||||||
|
description: |-
|
||||||
|
Whether to additionally include events which only relate indirectly to the
|
||||||
|
given event, ie. events related to the root events via one or more direct relationships.
|
||||||
|
|
||||||
|
If set to `false`, only events which have direct a relation with the given
|
||||||
|
event will be included.
|
||||||
|
|
||||||
|
If set to `true`, all events which relate to the given event, or relate to
|
||||||
|
events that relate to the given event, will be included.
|
||||||
|
|
||||||
|
It is recommended that at least 3 levels of relationships are traversed.
|
||||||
|
Implementations may perform more but should be careful to not infinitely recurse.
|
||||||
|
|
||||||
|
The default value is `false`.
|
||||||
responses:
|
responses:
|
||||||
# note: this endpoint deliberately does not support rate limiting, therefore a
|
# note: this endpoint deliberately does not support rate limiting, therefore a
|
||||||
# 429 error response is not included.
|
# 429 error response is not included.
|
||||||
|
|
@ -457,6 +525,12 @@ paths:
|
||||||
description: |-
|
description: |-
|
||||||
An opaque string representing a pagination token. The absence of this token
|
An opaque string representing a pagination token. The absence of this token
|
||||||
means this is the start of the result set, i.e. this is the first batch/page.
|
means this is the start of the result set, i.e. this is the first batch/page.
|
||||||
|
recursion_depth:
|
||||||
|
type: integer
|
||||||
|
description: |-
|
||||||
|
If the `recurse` parameter was supplied by the client, this response field is
|
||||||
|
mandatory and gives the actual depth to which the server recursed. The the client
|
||||||
|
did not specify the `recurse` parameter, this field must be absent.
|
||||||
required:
|
required:
|
||||||
- chunk
|
- chunk
|
||||||
examples:
|
examples:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue