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

MSC3266: Room summary API #3266

Merged
merged 43 commits into from
Mar 26, 2025
Merged

Conversation

deepbluev7
Copy link
Contributor

@deepbluev7 deepbluev7 commented Jul 4, 2021

Rendered.

Somewhat related to MSC2946 this provides an API to get a summary for a specific room either from the local server or over federation.

Useful for a few cases, where you need to show a summary for a room like matrix.to, traveler bots, showing spaces, lightweight clients, etc.

Open design questions looking for feedback: see this comment chain: #3266 (comment) resolved as of 2021/10/06

Implementations:

Signed-off-by: Nicolas Werner [email protected]


SCT stuff:

Shepherd: @richvdh
FCP tickyboxes

Checklist: #3266 (comment)

Signed-off-by: Nicolas Werner <[email protected]>
@deepbluev7 deepbluev7 changed the title Room summary proposal MSC3266: Room summary proposal Jul 4, 2021
@deepbluev7 deepbluev7 changed the title MSC3266: Room summary proposal MSC3266: Room summary Jul 4, 2021
@turt2live turt2live added client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff 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 proposal-in-review labels Jul 5, 2021
@deepbluev7 deepbluev7 changed the title MSC3266: Room summary MSC3266: Room summary API Jul 11, 2021
Signed-off-by: Nicolas Werner <[email protected]>
…est of the path separate

Signed-off-by: Nicolas Werner <[email protected]>
That way the requesting server knows, if any user would have access to
that room and it can forward the room to the user.

Signed-off-by: Nicolas Werner <[email protected]>
@richvdh
Copy link
Member

richvdh commented Mar 4, 2025

@mscbot resolve should unauthenticated access be enabled by default?

@mscbot mscbot removed the unresolved-concerns This proposal has at least one outstanding concern label Mar 4, 2025
@richvdh richvdh requested review from dbkr, t3chguy and erikjohnston and removed request for t3chguy March 4, 2025 16:02
@mscbot
Copy link
Collaborator

mscbot commented Mar 7, 2025

🔔 This is now entering its final comment period, as per the review above. 🔔

@mscbot mscbot added final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. and removed proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. labels Mar 7, 2025
@richvdh
Copy link
Member

richvdh commented Mar 26, 2025

@KitsuneRal you have an outstanding request for changes (#3266 (review), I think). Could you dismiss your review, unless you still want to see changes here?

@richvdh
Copy link
Member

richvdh commented Mar 26, 2025

🔔 This is now entering its final comment period, as per the review above. 🔔

As far as I can tell, this should have completed FCP weeks ago, but the bot seems to be stuck.

@turt2live
Copy link
Member

considering FCP completed as-is. If there's edits to be made to the MSC, please put those up as a PR urgently.

@turt2live turt2live merged commit 520ba77 into matrix-org:old_master Mar 26, 2025
@turt2live turt2live added finished-final-comment-period spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec and removed final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. finished-final-comment-period labels Mar 26, 2025
turt2live pushed a commit that referenced this pull request Mar 27, 2025
* Room summary proposal

Signed-off-by: Nicolas Werner <[email protected]>

* Remove alias resolution step from the federation API

* Reference #688 in the alternatives section

Signed-off-by: Nicolas Werner <[email protected]>

* Remove `is_direct` from response

Signed-off-by: Nicolas Werner <[email protected]>

* Fix unstable prefixes for implementations which keep the prefix and rest of the path separate

Signed-off-by: Nicolas Werner <[email protected]>

* Add allowed_room_ids field

That way the requesting server knows, if any user would have access to
that room and it can forward the room to the user.

Signed-off-by: Nicolas Werner <[email protected]>

* Extend rationale for additional fields to reference MSC2946

Also explain that membership is already accessible information.

Signed-off-by: Nicolas Werner <[email protected]>

* Add bulk API as an alternative

Signed-off-by: Nicolas Werner <[email protected]>

* Remove federation API and address feedback

- Add some additional rationale to some things.
- Federation API now reuses MSC 2946
- roomid -> roomId
- Move it out of /rooms, because it allows using an alias

Signed-off-by: Nicolas Werner <[email protected]>

* fix prefixes again

* Remove extensions to federation API since that MSC is amended now

Signed-off-by: Nicolas Werner <[email protected]>

* Fix minor inaccuracy about the spaces sumary api

* Add encryption field back

* Add room version field

Signed-off-by: Nicolas Werner <[email protected]>

* Apply suggestions from code review

Co-authored-by: Andrew Morgan <[email protected]>
Co-authored-by: Alexey Rusakov <[email protected]>

* Add a bit more reasoning

* version -> room_version

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <[email protected]>

* Try to address review comments

Signed-off-by: Nicolas Werner <[email protected]>

* Fix incorrect statement about encryption being a bool

Signed-off-by: Nicolas Werner <[email protected]>

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <[email protected]>

* Split up the big alternatives section

* Collapse the same descriptions for publicRooms and hierarchy into one

* Shorten the 'accessible' section again

* Update proposals/3266-room-summary.md

Co-authored-by: Richard van der Hoff <[email protected]>

* Update proposals/3266-room-summary.md

* Update proposals/3266-room-summary.md

Co-authored-by: Alexey Rusakov <[email protected]>

* Support knock_restricted rooms and rename to room_summary

As well as a few smaller clarifications.

* Be more explicit about authentication

* Apply suggestions from code review

Co-authored-by: Richard van der Hoff <[email protected]>
Co-authored-by: Patrick Cloke <[email protected]>

* Fix error codes and missing "Optional"

* Also add allowed_room_ids to hierarchy API

It suffers from the same knock_restricted issue.

* Apply suggestions from code review

Co-authored-by: Eric Eastwood <[email protected]>
Co-authored-by: Patrick Cloke <[email protected]>

* Update spec links

* Clarify accessibility rules

* Update proposals/3266-room-summary.md

Co-authored-by: Richard van der Hoff <[email protected]>

* Update proposals/3266-room-summary.md

Co-authored-by: Johannes Marbach <[email protected]>

* Unauthenticated access is impl-dependent

* add  to response

* Clarify resposnse documentation.

* Clarify situation for invited rooms

* further clarification about unauth access

* Update proposals/3266-room-summary.md

Co-authored-by: Johannes Marbach <[email protected]>

---------

Signed-off-by: Nicolas Werner <[email protected]>
Co-authored-by: Andrew Morgan <[email protected]>
Co-authored-by: Alexey Rusakov <[email protected]>
Co-authored-by: Richard van der Hoff <[email protected]>
Co-authored-by: Patrick Cloke <[email protected]>
Co-authored-by: Eric Eastwood <[email protected]>
Co-authored-by: Richard van der Hoff <[email protected]>
Co-authored-by: Johannes Marbach <[email protected]>

For unauthenticated requests a response should only be returned if the room is
publicly accessible; specifically, that means either:
* the room has `join_rule: public` or `join_rule: knock`, or:
Copy link
Contributor

Choose a reason for hiding this comment

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

I suspect this is meant to include knock_restricted?

Copy link
Member

Choose a reason for hiding this comment

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

If the current implementation does so, yes. Otherwise it'll need a new MSC.

Copy link
Contributor

Choose a reason for hiding this comment

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

@Johennes
Copy link
Contributor

Spec PR: matrix-org/matrix-spec#2125

@turt2live turt2live added spec-pr-in-review A proposal which has been PR'd against the spec and is in review and removed spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec labels Apr 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API disposition-merge kind:feature MSC for not-core and not-maintenance stuff proposal A matrix spec change proposal spec-pr-in-review A proposal which has been PR'd against the spec and is in review
Projects
Status: Requires spec PR review
Development

Successfully merging this pull request may close these issues.