Skip to content

Commit 2b0208f

Browse files
committed
Merge tag 'v1.51.0' into develop
Synapse 1.51.0 (2022-01-25) =========================== No significant changes since 1.51.0rc2. Synapse 1.51.0 deprecates `webclient` listeners and non-HTTP(S) `web_client_location`s. Support for these will be removed in Synapse 1.53.0, at which point Synapse will not be capable of directly serving a web client for Matrix. Synapse 1.51.0rc2 (2022-01-24) ============================== Bugfixes -------- - Fix a bug introduced in Synapse 1.40.0 that caused Synapse to fail to process incoming federation traffic after handling a large amount of events in a v1 room. ([\matrix-org#11806](matrix-org#11806)) Synapse 1.51.0rc1 (2022-01-21) ============================== Features -------- - Add `track_puppeted_user_ips` config flag to record client IP addresses against puppeted users, and include the puppeted users in monthly active user counts. ([\matrix-org#11561](matrix-org#11561), [\matrix-org#11749](matrix-org#11749), [\matrix-org#11757](matrix-org#11757)) - Include whether the requesting user has participated in a thread when generating a summary for [MSC3440](matrix-org/matrix-spec-proposals#3440). ([\matrix-org#11577](matrix-org#11577)) - Return an `M_FORBIDDEN` error code instead of `M_UNKNOWN` when a spam checker module prevents a user from creating a room. ([\matrix-org#11672](matrix-org#11672)) - Add a flag to the `synapse_review_recent_signups` script to ignore and filter appservice users. ([\matrix-org#11675](matrix-org#11675), [\matrix-org#11770](matrix-org#11770)) Bugfixes -------- - Fix a long-standing issue which could cause Synapse to incorrectly accept data in the unsigned field of events received over federation. ([\matrix-org#11530](matrix-org#11530)) - Fix a long-standing bug where Synapse wouldn't cache a response indicating that a remote user has no devices. ([\matrix-org#11587](matrix-org#11587)) - Fix an error that occurs whilst trying to get the federation status of a destination server that was working normally. This admin API was newly introduced in Synapse v1.49.0. ([\matrix-org#11593](matrix-org#11593)) - Fix bundled aggregations not being included in the `/sync` response, per [MSC2675](matrix-org/matrix-spec-proposals#2675). ([\matrix-org#11612](matrix-org#11612), [\matrix-org#11659](matrix-org#11659), [\matrix-org#11791](matrix-org#11791)) - Fix the `/_matrix/client/v1/room/{roomId}/hierarchy` endpoint returning incorrect fields which have been present since Synapse 1.49.0. ([\matrix-org#11667](matrix-org#11667)) - Fix preview of some GIF URLs (like tenor.com). Contributed by Philippe Daouadi. ([\matrix-org#11669](matrix-org#11669)) - Fix a bug where only the first 50 rooms from a space were returned from the `/hierarchy` API. This has existed since the introduction of the API in Synapse v1.41.0. ([\matrix-org#11695](matrix-org#11695)) - Fix a bug introduced in Synapse v1.18.0 where password reset and address validation emails would not be sent if their subject was configured to use the 'app' template variable. Contributed by @br4nnigan. ([\matrix-org#11710](matrix-org#11710), [\matrix-org#11745](matrix-org#11745)) - Make the 'List Rooms' Admin API sort stable. Contributed by Daniël Sonck. ([\matrix-org#11737](matrix-org#11737)) - Fix a long-standing bug where space hierarchy over federation would only work correctly some of the time. ([\matrix-org#11775](matrix-org#11775)) - Fix a bug introduced in Synapse v1.46.0 that prevented `on_logged_out` module callbacks from being correctly awaited by Synapse. ([\matrix-org#11786](matrix-org#11786)) Improved Documentation ---------------------- - Warn against using a Let's Encrypt certificate for TLS/DTLS TURN server client connections, and suggest using ZeroSSL certificate instead. This works around client-side connectivity errors caused by WebRTC libraries that reject Let's Encrypt certificates. Contibuted by @AndrewFerr. ([\matrix-org#11686](matrix-org#11686)) - Document the new `SYNAPSE_TEST_PERSIST_SQLITE_DB` environment variable in the contributing guide. ([\matrix-org#11715](matrix-org#11715)) - Document that the minimum supported PostgreSQL version is now 10. ([\matrix-org#11725](matrix-org#11725)) - Fix typo in demo docs: differnt. ([\matrix-org#11735](matrix-org#11735)) - Update room spec URL in config files. ([\matrix-org#11739](matrix-org#11739)) - Mention `python3-venv` and `libpq-dev` dependencies in the contribution guide. ([\matrix-org#11740](matrix-org#11740)) - Update documentation for configuring login with Facebook. ([\matrix-org#11755](matrix-org#11755)) - Update installation instructions to note that Python 3.6 is no longer supported. ([\matrix-org#11781](matrix-org#11781)) Deprecations and Removals ------------------------- - Remove the unstable `/send_relation` endpoint. ([\matrix-org#11682](matrix-org#11682)) - Remove `python_twisted_reactor_pending_calls` Prometheus metric. ([\matrix-org#11724](matrix-org#11724)) - Remove the `password_hash` field from the response dictionaries of the [Users Admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html). ([\matrix-org#11576](matrix-org#11576)) - **Deprecate support for `webclient` listeners and non-HTTP(S) `web_client_location` configuration. ([\matrix-org#11774](matrix-org#11774), [\matrix-org#11783](matrix-org#11783 Internal Changes ---------------- - Run `pyupgrade --py37-plus --keep-percent-format` on Synapse. ([\matrix-org#11685](matrix-org#11685)) - Use buildkit's cache feature to speed up docker builds. ([\matrix-org#11691](matrix-org#11691)) - Use `auto_attribs` and native type hints for attrs classes. ([\matrix-org#11692](matrix-org#11692), [\matrix-org#11768](matrix-org#11768)) - Remove debug logging for matrix-org#4422, which has been closed since Synapse 0.99. ([\matrix-org#11693](matrix-org#11693)) - Remove fallback code for Python 2. ([\matrix-org#11699](matrix-org#11699)) - Add a test for [an edge case](matrix-org#11532 (comment)) in the `/sync` logic. ([\matrix-org#11701](matrix-org#11701)) - Add the option to write SQLite test dbs to disk when running tests. ([\matrix-org#11702](matrix-org#11702)) - Improve Complement test output for Gitub Actions. ([\matrix-org#11707](matrix-org#11707)) - Fix docstring on `add_account_data_for_user`. ([\matrix-org#11716](matrix-org#11716)) - Complement environment variable name change and update `.gitignore`. ([\matrix-org#11718](matrix-org#11718)) - Simplify calculation of Prometheus metrics for garbage collection. ([\matrix-org#11723](matrix-org#11723)) - Improve accuracy of `python_twisted_reactor_tick_time` Prometheus metric. ([\matrix-org#11724](matrix-org#11724), [\matrix-org#11771](matrix-org#11771)) - Minor efficiency improvements when inserting many values into the database. ([\matrix-org#11742](matrix-org#11742)) - Invite PR authors to give themselves credit in the changelog. ([\matrix-org#11744](matrix-org#11744)) - Add optional debugging to investigate [issue 8631](matrix-org#8631). ([\matrix-org#11760](matrix-org#11760)) - Remove `log_function` utility function and its uses. ([\matrix-org#11761](matrix-org#11761)) - Add a unit test that checks both `client` and `webclient` resources will function when simultaneously enabled. ([\matrix-org#11765](matrix-org#11765)) - Allow overriding complement commit using `COMPLEMENT_REF`. ([\matrix-org#11766](matrix-org#11766)) - Add some comments and type annotations for `_update_outliers_txn`. ([\matrix-org#11776](matrix-org#11776))
2 parents 80b18aa + 343d4f1 commit 2b0208f

File tree

264 files changed

+7764
-4343
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

264 files changed

+7764
-4343
lines changed

.github/PULL_REQUEST_TEMPLATE.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- Use markdown where necessary, mostly for `code blocks`.
99
- End with either a period (.) or an exclamation mark (!).
1010
- Start with a capital letter.
11+
- Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry.
1112
* [ ] Pull request includes a [sign off](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#sign-off)
1213
* [ ] [Code style](https://matrix-org.github.io/synapse/latest/code_style.html) is correct
1314
(run the [linters](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))

.github/workflows/tests.yml

+10-7
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ jobs:
7676
runs-on: ubuntu-latest
7777
strategy:
7878
matrix:
79-
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"]
79+
python-version: ["3.7", "3.8", "3.9", "3.10"]
8080
database: ["sqlite"]
8181
toxenv: ["py"]
8282
include:
@@ -85,9 +85,9 @@ jobs:
8585
toxenv: "py-noextras"
8686

8787
# Oldest Python with PostgreSQL
88-
- python-version: "3.6"
88+
- python-version: "3.7"
8989
database: "postgres"
90-
postgres-version: "9.6"
90+
postgres-version: "10"
9191
toxenv: "py"
9292

9393
# Newest Python with newest PostgreSQL
@@ -167,7 +167,7 @@ jobs:
167167
runs-on: ubuntu-latest
168168
strategy:
169169
matrix:
170-
python-version: ["pypy-3.6"]
170+
python-version: ["pypy-3.7"]
171171

172172
steps:
173173
- uses: actions/checkout@v2
@@ -291,8 +291,8 @@ jobs:
291291
strategy:
292292
matrix:
293293
include:
294-
- python-version: "3.6"
295-
postgres-version: "9.6"
294+
- python-version: "3.7"
295+
postgres-version: "10"
296296

297297
- python-version: "3.10"
298298
postgres-version: "14"
@@ -366,6 +366,8 @@ jobs:
366366
# Build initial Synapse image
367367
- run: docker build -t matrixdotorg/synapse:latest -f docker/Dockerfile .
368368
working-directory: synapse
369+
env:
370+
DOCKER_BUILDKIT: 1
369371

370372
# Build a ready-to-run Synapse image based on the initial image above.
371373
# This new image includes a config file, keys for signing and TLS, and
@@ -374,7 +376,8 @@ jobs:
374376
working-directory: complement/dockerfiles
375377

376378
# Run Complement
377-
- run: go test -v -tags synapse_blacklist,msc2403 ./tests/...
379+
- run: set -o pipefail && go test -v -json -tags synapse_blacklist,msc2403 ./tests/... 2>&1 | gotestfmt
380+
shell: bash
378381
env:
379382
COMPLEMENT_BASE_IMAGE: complement-synapse:latest
380383
working-directory: complement

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,7 @@ __pycache__/
5050

5151
# docs
5252
book/
53+
54+
# complement
55+
/complement-*
56+
/master.tar.gz

CHANGES.md

+225
Large diffs are not rendered by default.

contrib/docker/docker-compose.yml

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ services:
1414
# failure
1515
restart: unless-stopped
1616
# See the readme for a full documentation of the environment settings
17+
# NOTE: You must edit homeserver.yaml to use postgres, it defaults to sqlite
1718
environment:
1819
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
1920
volumes:

contrib/prometheus/consoles/synapse.html

-16
Original file line numberDiff line numberDiff line change
@@ -92,22 +92,6 @@ <h3>Average reactor tick time</h3>
9292
})
9393
</script>
9494

95-
<h3>Pending calls per tick</h3>
96-
<div id="reactor_pending_calls"></div>
97-
<script>
98-
new PromConsole.Graph({
99-
node: document.querySelector("#reactor_pending_calls"),
100-
expr: "rate(python_twisted_reactor_pending_calls_sum[30s]) / rate(python_twisted_reactor_pending_calls_count[30s])",
101-
name: "[[job]]-[[index]]",
102-
min: 0,
103-
renderer: "line",
104-
height: 150,
105-
yAxisFormatter: PromConsole.NumberFormatter.humanize,
106-
yHoverFormatter: PromConsole.NumberFormatter.humanize,
107-
yTitle: "Pending Calls"
108-
})
109-
</script>
110-
11195
<h1>Storage</h1>
11296

11397
<h3>Queries</h3>

debian/changelog

+42
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
matrix-synapse-py3 (1.51.0) stable; urgency=medium
2+
3+
* New synapse release 1.51.0.
4+
5+
-- Synapse Packaging team <[email protected]> Tue, 25 Jan 2022 11:28:51 +0000
6+
7+
matrix-synapse-py3 (1.51.0~rc2) stable; urgency=medium
8+
9+
* New synapse release 1.51.0~rc2.
10+
11+
-- Synapse Packaging team <[email protected]> Mon, 24 Jan 2022 12:25:00 +0000
12+
13+
matrix-synapse-py3 (1.51.0~rc1) stable; urgency=medium
14+
15+
* New synapse release 1.51.0~rc1.
16+
17+
-- Synapse Packaging team <[email protected]> Fri, 21 Jan 2022 10:46:02 +0000
18+
19+
matrix-synapse-py3 (1.50.1) stable; urgency=medium
20+
21+
* New synapse release 1.50.1.
22+
23+
-- Synapse Packaging team <[email protected]> Tue, 18 Jan 2022 16:06:26 +0000
24+
25+
matrix-synapse-py3 (1.50.0) stable; urgency=medium
26+
27+
* New synapse release 1.50.0.
28+
29+
-- Synapse Packaging team <[email protected]> Tue, 18 Jan 2022 10:40:38 +0000
30+
31+
matrix-synapse-py3 (1.50.0~rc2) stable; urgency=medium
32+
33+
* New synapse release 1.50.0~rc2.
34+
35+
-- Synapse Packaging team <[email protected]> Fri, 14 Jan 2022 11:18:06 +0000
36+
37+
matrix-synapse-py3 (1.50.0~rc1) stable; urgency=medium
38+
39+
* New synapse release 1.50.0~rc1.
40+
41+
-- Synapse Packaging team <[email protected]> Wed, 05 Jan 2022 12:36:17 +0000
42+
143
matrix-synapse-py3 (1.49.2) stable; urgency=medium
244

345
* New synapse release 1.49.2.

demo/README

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ Logs and sqlitedb will be stored in demo/808{0,1,2}.{log,db}
2222

2323

2424

25-
Also note that when joining a public room on a differnt HS via "#foo:bar.net", then you are (in the current impl) joining a room with room_id "foo". This means that it won't work if your HS already has a room with that name.
25+
Also note that when joining a public room on a different HS via "#foo:bar.net", then you are (in the current impl) joining a room with room_id "foo". This means that it won't work if your HS already has a room with that name.
2626

docker/Dockerfile

+21-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
# Dockerfile to build the matrixdotorg/synapse docker images.
22
#
3+
# Note that it uses features which are only available in BuildKit - see
4+
# https://docs.docker.com/go/buildkit/ for more information.
5+
#
36
# To build the image, run `docker build` command from the root of the
47
# synapse repository:
58
#
6-
# docker build -f docker/Dockerfile .
9+
# DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile .
710
#
811
# There is an optional PYTHON_VERSION build argument which sets the
912
# version of python to build against: for example:
1013
#
11-
# docker build -f docker/Dockerfile --build-arg PYTHON_VERSION=3.6 .
14+
# DOCKER_BUILDKIT=1 docker build -f docker/Dockerfile --build-arg PYTHON_VERSION=3.9 .
1215
#
1316

1417
ARG PYTHON_VERSION=3.8
@@ -19,7 +22,16 @@ ARG PYTHON_VERSION=3.8
1922
FROM docker.io/python:${PYTHON_VERSION}-slim as builder
2023

2124
# install the OS build deps
22-
RUN apt-get update && apt-get install -y \
25+
#
26+
# RUN --mount is specific to buildkit and is documented at
27+
# https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md#build-mounts-run---mount.
28+
# Here we use it to set up a cache for apt, to improve rebuild speeds on
29+
# slow connections.
30+
#
31+
RUN \
32+
--mount=type=cache,target=/var/cache/apt,sharing=locked \
33+
--mount=type=cache,target=/var/lib/apt,sharing=locked \
34+
apt-get update && apt-get install -y \
2335
build-essential \
2436
libffi-dev \
2537
libjpeg-dev \
@@ -44,7 +56,8 @@ COPY synapse/python_dependencies.py /synapse/synapse/python_dependencies.py
4456
# used while you develop on the source
4557
#
4658
# This is aiming at installing the `install_requires` and `extras_require` from `setup.py`
47-
RUN pip install --prefix="/install" --no-warn-script-location \
59+
RUN --mount=type=cache,target=/root/.cache/pip \
60+
pip install --prefix="/install" --no-warn-script-location \
4861
/synapse[all]
4962

5063
# Copy over the rest of the project
@@ -66,7 +79,10 @@ LABEL org.opencontainers.image.documentation='https://github.com/matrix-org/syna
6679
LABEL org.opencontainers.image.source='https://github.com/matrix-org/synapse.git'
6780
LABEL org.opencontainers.image.licenses='Apache-2.0'
6881

69-
RUN apt-get update && apt-get install -y \
82+
RUN \
83+
--mount=type=cache,target=/var/cache/apt,sharing=locked \
84+
--mount=type=cache,target=/var/lib/apt,sharing=locked \
85+
apt-get update && apt-get install -y \
7086
curl \
7187
gosu \
7288
libjpeg62-turbo \

docker/Dockerfile-dhvirtualenv

+4-5
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ARG distro=""
1616
### Stage 0: build a dh-virtualenv
1717
###
1818

19-
# This is only really needed on bionic and focal, since other distributions we
19+
# This is only really needed on focal, since other distributions we
2020
# care about have a recent version of dh-virtualenv by default. Unfortunately,
2121
# it looks like focal is going to be with us for a while.
2222
#
@@ -36,9 +36,8 @@ RUN env DEBIAN_FRONTEND=noninteractive apt-get install \
3636
wget
3737

3838
# fetch and unpack the package
39-
# TODO: Upgrade to 1.2.2 once bionic is dropped (1.2.2 requires debhelper 12; bionic has only 11)
4039
RUN mkdir /dh-virtualenv
41-
RUN wget -q -O /dh-virtualenv.tar.gz https://github.com/spotify/dh-virtualenv/archive/ac6e1b1.tar.gz
40+
RUN wget -q -O /dh-virtualenv.tar.gz https://github.com/spotify/dh-virtualenv/archive/refs/tags/1.2.2.tar.gz
4241
RUN tar -xv --strip-components=1 -C /dh-virtualenv -f /dh-virtualenv.tar.gz
4342

4443
# install its build deps. We do another apt-cache-update here, because we might
@@ -86,12 +85,12 @@ RUN apt-get update -qq -o Acquire::Languages=none \
8685
libpq-dev \
8786
xmlsec1
8887

89-
COPY --from=builder /dh-virtualenv_1.2~dev-1_all.deb /
88+
COPY --from=builder /dh-virtualenv_1.2.2-1_all.deb /
9089

9190
# install dhvirtualenv. Update the apt cache again first, in case we got a
9291
# cached cache from docker the first time.
9392
RUN apt-get update -qq -o Acquire::Languages=none \
94-
&& apt-get install -yq /dh-virtualenv_1.2~dev-1_all.deb
93+
&& apt-get install -yq /dh-virtualenv_1.2.2-1_all.deb
9594

9695
WORKDIR /synapse/source
9796
ENTRYPOINT ["bash","/synapse/source/docker/build_debian.sh"]

docker/README.md

+4
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ The following environment variables are supported in `generate` mode:
6868
directories. If unset, and no user is set via `docker run --user`, defaults
6969
to `991`, `991`.
7070

71+
## Postgres
72+
73+
By default the config will use SQLite. See the [docs on using Postgres](https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md) for more info on how to use Postgres. Until this section is improved [this issue](https://github.com/matrix-org/synapse/issues/8304) may provide useful information.
74+
7175
## Running synapse
7276

7377
Once you have a valid configuration file, you can start synapse as follows:

docs/SUMMARY.md

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
- [SSO Mapping Providers](sso_mapping_providers.md)
3131
- [Password Auth Providers](password_auth_providers.md)
3232
- [JSON Web Tokens](jwt.md)
33+
- [Refresh Tokens](usage/configuration/user_authentication/refresh_tokens.md)
3334
- [Registration Captcha](CAPTCHA_SETUP.md)
3435
- [Application Services](application_services.md)
3536
- [Server Notices](server_notices.md)

docs/admin_api/user_admin_api.md

+80-4
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ server admin: [Admin API](../usage/administration/admin_api)
1515

1616
It returns a JSON body like the following:
1717

18-
```json
18+
```jsonc
1919
{
20-
"displayname": "User",
20+
"name": "@user:example.com",
21+
"displayname": "User", // can be null if not set
2122
"threepids": [
2223
{
2324
"medium": "email",
@@ -32,11 +33,11 @@ It returns a JSON body like the following:
3233
"validated_at": 1586458409743
3334
}
3435
],
35-
"avatar_url": "<avatar_url>",
36+
"avatar_url": "<avatar_url>", // can be null if not set
37+
"is_guest": 0,
3638
"admin": 0,
3739
"deactivated": 0,
3840
"shadow_banned": 0,
39-
"password_hash": "$2b$12$p9B4GkqYdRTPGD",
4041
"creation_ts": 1560432506,
4142
"appservice_id": null,
4243
"consent_server_notice_sent": null,
@@ -480,6 +481,81 @@ The following fields are returned in the JSON response body:
480481
- `joined_rooms` - An array of `room_id`.
481482
- `total` - Number of rooms.
482483

484+
## Account Data
485+
Gets information about account data for a specific `user_id`.
486+
487+
The API is:
488+
489+
```
490+
GET /_synapse/admin/v1/users/<user_id>/accountdata
491+
```
492+
493+
A response body like the following is returned:
494+
495+
```json
496+
{
497+
"account_data": {
498+
"global": {
499+
"m.secret_storage.key.LmIGHTg5W": {
500+
"algorithm": "m.secret_storage.v1.aes-hmac-sha2",
501+
"iv": "fwjNZatxg==",
502+
"mac": "eWh9kNnLWZUNOgnc="
503+
},
504+
"im.vector.hide_profile": {
505+
"hide_profile": true
506+
},
507+
"org.matrix.preview_urls": {
508+
"disable": false
509+
},
510+
"im.vector.riot.breadcrumb_rooms": {
511+
"rooms": [
512+
"!LxcBDAsDUVAfJDEo:matrix.org",
513+
"!MAhRxqasbItjOqxu:matrix.org"
514+
]
515+
},
516+
"m.accepted_terms": {
517+
"accepted": [
518+
"https://example.org/somewhere/privacy-1.2-en.html",
519+
"https://example.org/somewhere/terms-2.0-en.html"
520+
]
521+
},
522+
"im.vector.setting.breadcrumbs": {
523+
"recent_rooms": [
524+
"!MAhRxqasbItqxuEt:matrix.org",
525+
"!ZtSaPCawyWtxiImy:matrix.org"
526+
]
527+
}
528+
},
529+
"rooms": {
530+
"!GUdfZSHUJibpiVqHYd:matrix.org": {
531+
"m.fully_read": {
532+
"event_id": "$156334540fYIhZ:matrix.org"
533+
}
534+
},
535+
"!tOZwOOiqwCYQkLhV:matrix.org": {
536+
"m.fully_read": {
537+
"event_id": "$xjsIyp4_NaVl2yPvIZs_k1Jl8tsC_Sp23wjqXPno"
538+
}
539+
}
540+
}
541+
}
542+
}
543+
```
544+
545+
**Parameters**
546+
547+
The following parameters should be set in the URL:
548+
549+
- `user_id` - fully qualified: for example, `@user:server.com`.
550+
551+
**Response**
552+
553+
The following fields are returned in the JSON response body:
554+
555+
- `account_data` - A map containing the account data for the user
556+
- `global` - A map containing the global account data for the user
557+
- `rooms` - A map containing the account data per room for the user
558+
483559
## User media
484560

485561
### List media uploaded by a user

0 commit comments

Comments
 (0)