element-hq / element-hq/synapse

Allow modules to provide local `/publicRooms` results

Open
#15,518 0 comments 0 reactions 0 assignees View on GitHub
A-Modules Z-Time-Tracked
Dominant language
Python
Stars
4.6k
Forks
600
Avg merge
5d 22h
Merged PRs (30d)
51

Description

This issue has been migrated from [#15518](https://github.com/matrix-org/synapse/pull/15518).

---

This PR creates a new module callback, `fetch_public_rooms`, which allows modules to inject results into the responses of `GET/POST /_matrix/client/v3/publicRooms` [on the Client-Server API](https://spec.matrix.org/v1.6/client-server-api/) and the [Federation API](https://spec.matrix.org/v1.6/server-server-api/#post_matrixfederationv1publicrooms).

This work supports the ongoing work for DINUM to write a Synapse module to aggregate `/publicRooms` information from multiple homeservers for a client. Internal JIRA link for those with access: https://element-io.atlassian.net/browse/PSP-2109.

Contributor guide

Open the contributing guide

Research direction

Read the Client-Server and Federation API sections linked in the issue, then trace the existing GET/POST /_matrix/client/v3/publicRooms and federation public-rooms handlers. Done means modules can implement fetch_public_rooms and its results appear in both response paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.