matrix-org / matrix-org/matrix-spec

Consider handling server ACLs through event auth rules rather than at the network level

Open
#928 5 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

The topic of why server ACLs act at the network level, and not the event auth level [came up in discussion today](https://matrix.to/#/!NasysSDfxKxZBzJJoE:matrix.org/$ieSUyH3TSc_mrphwCBi6u0wi02mKvPG1-Xe8YWVuJ6c?via=matrix.org&via=libera.chat&via=envs.net) in #matrix-spec. Summarising the conversation, handling ACLs in event auth mean that:

* locking it to a room version, which has the side-effect of knowing that all compliant homeservers in the room should support server ACLs.
* This can prevent events from "leaking" out of servers that don't support server ACLs.
* Room participants will have a simple way to check if all homeservers in the room support server ACLs, instead of checking homeserver implementation projects and version numbers.
* This will boost support of server ACLs in homeserver implementations, as it will be necessary to participate in newer room versions.

The original [proposal for Server ACLs](https://docs.google.com/document/d/1aiuROf1__7ZFkJvDdAZQfBNxyzjYd-ijiRAcHJYqJCM/edit#) noted that doing so at the network level was done for the sake of time - however @richvdh commented that a DAG-level ban would be ineffective. I'd be interested to know why?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked Matrix discussion and the original Server ACL proposal, then review the issue's summary of network-level versus event-auth handling. Investigate why a DAG-level ban was considered ineffective and determine whether the event-auth approach needs a concrete room-version design. Done means a documented decision or an accepted specification change.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.