element-hq / element-hq/synapse

Add a callback to the Synapse module API that can pass-through and handle the MSC4284 policy server check endpoint

Open
#18,597 5 comments 1 reaction 0 assignees View on GitHub
A-Modules good first issue O-Uncommon T-Enhancement
Dominant language
Python
Stars
4.6k
Forks
600
Avg merge
5d 22h
Merged PRs (30d)
51

Description

[MSC4284](https://github.com/matrix-org/matrix-spec-proposals/pull/4284) describes a new way to create custom access control for matrix events in Matrix rooms.

It would be very useful to provide this functionality as a synapse module API that can be used by synapse modules, such as [synapse-http-antispam](https://github.com/maunium/synapse-http-antispam). Which could then be used to empower [Draupnir](https://github.com/the-draupnir-project/Draupnir) to manage abuse proactively in protected Matrix rooms[^1], without the need to independently develop infrastructure for managing federation authentication. Including PKI and signature verification. Developing this infrastructure carries a huge amount of risk, and people will implement it incorrectly when they decide to roll their own. This can be avoided.

[^1]: This is very important because currently draupnir can only send redactions if it wants to enforce its own access control system. This is a system that we have been working towards for some time and the policy server is very nicely the missing piece that will make it complete https://marewolf.me/posts/draupnir/25/02.html#priorities-gradual-access-control

Contributor guide

Open the contributing guide

Research direction

Start by reading MSC4284 and Synapse's existing module API; the issue names no source file or test entry point. Done means defining and implementing a module callback that can pass through and handle the MSC4284 policy server check endpoint, with the behavior documented and covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.