matrix-org / matrix-org/matrix-spec

API to allow access to account data for bridges

Open
#338 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

(This is more of a note to remind me to write up a doc, which will be soon. This is like a pre proposal)

In a nutshell, this API allows bridges to fetch configs from the user's homeserver rather than storing it locally in a database.

The idea behind this would be to allow read access to settings so that bridges could pull things like nicknames or stored passwords without having to store the information on the bridge where it may get lost, and requires the bridge developer to be more careful about what data they store.

Advantages of this include:

  • Configuration is in control of the user, rather than the bridge.
  • Configuration can be set, even if the bridge is offline.
  • Configuration can be seen by multiple bridges where needed.
  • Richer UIs are easier to write if modifying the local user's settings, rather than using a room or custom http api to talk to the bridge.

Disadvantages:

  • If done wrong, this could add a vulnerability to sniff for user settings over federation.

The mechanism would work so that the AS user could request a certain key(s) from a user's account data and from then on a token would be generated which would give them access to request that dataset.

Since over federation, it is not easy to validate what a bridge looks like, let alone trustworthiness it would be desirable for client's to make a big thing of the request and show a warning.

I am unsure if there is yet a need for writable access, but this would probably be served as a room event that could prompt to store some data on the bridges behalf.

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

No file, test, or entry point is named. Start with the pre-proposal in this issue and clarify the requirements for bridge access to account data, token generation, federation security, and client warnings; done would be a decided and documented protocol proposal.

Written by the indexing model from the issue text.

Assessment

Domain
api, security
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.