Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC4233: Remembering which server a user knocked through #4233

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

turt2live
Copy link
Member

Rendered


I am Director of Standards Development at The Matrix.org Foundation C.I.C., Matrix Spec Core Team (SCT) member, employed by Element, and operate the t2bot.io service. This proposal is written and published with my role as a member of the SCT.

@turt2live turt2live marked this pull request as ready for review November 28, 2024 18:37
@turt2live turt2live changed the title MSC: Remembering which server a user knock through MSC4233: Remembering which server a user knock through Nov 28, 2024
@turt2live turt2live added proposal A matrix spec change proposal client-server Client-Server API kind:core MSC which is critical to the protocol's success needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. kind:maintenance MSC which clarifies/updates existing spec and removed kind:core MSC which is critical to the protocol's success labels Nov 28, 2024
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implementation requirements:

  • Client(?)
  • Server

@turt2live turt2live changed the title MSC4233: Remembering which server a user knock through MSC4233: Remembering which server a user knocked through Nov 28, 2024
{"type": "m.room.name", "state_key": "", "content": {"name": "My Room"}}
]
},
"knock_servers": [ // new property
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i wonder if via might be clearer?

Servers may not have already tracked this, so information will be lacking for already-knocked rooms.
Clients should expect errors, per usual, when attempting to call the summary API or any other endpoint.

## Alternatives
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

presumably another option would be for the server to silently remember the knock server on behalf of the client and add an implicit via when they provide a raw room id?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would also mean that there would be no client implementation requirements, which would help this proposal proliferate through the ecosystem faster.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MSC already requires the server to track it, so I guess it's an open question for whether we want to continue using via for things, or have servers remember stuff.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This MSC also applies to rescinding knocks: servers don't know what server to make/send_leave through remotely.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This proposal currently doesn't help in the case of the user attempting to rescind a knock (see element-hq/synapse#18030 for some discussion) as POST /_matrix/client/v3/rooms/{roomId}/leave does not have a via parameter. It did not need one originally, as before knocking it was assumed the user had to be in the room already in order to /leave.

To support rescinding knocks over federation, either this proposal adds a via parameter to /leave as well, or we just make adding remotes entirely server-side as https://github.com/matrix-org/matrix-spec-proposals/pull/4233/files#r1862610665 describes.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/leave is also used to decline invites, which is also subject to the same sort of issues (if the sender's server is down).

Overall, if we do want to add via to /leave, I'd ask that it be a dedicated MSC. If we want to move away from client-provided vias, that may also be a different MSC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants