Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Experimental join_rule for joining rooms in a space without an invite #9712

Closed
clokep opened this issue Mar 29, 2021 · 7 comments · Fixed by #9717
Closed

Experimental join_rule for joining rooms in a space without an invite #9712

clokep opened this issue Mar 29, 2021 · 7 comments · Fixed by #9717
Assignees
Labels
A-Spaces Hierarchical organization of rooms T-Enhancement New features, changes in functionality, improvements in performance, or user-facing enhancements.

Comments

@clokep
Copy link
Member

clokep commented Mar 29, 2021

For the Spaces project there needs to be a way to allow users to join a room based on membership in a space.

An approach for this is detailed in MSC3083.

The approach will be to:

  • Create an experimental room version.
  • Update the auth rules based on the join_rule / experimental room version to allow users to join based on the allowed key in the m.room.join_rules event.

Note that we want this to be in an experimental room version as it is unclear whether clients will need to make changes to support this.

@clokep clokep added T-Enhancement New features, changes in functionality, improvements in performance, or user-facing enhancements. A-Spaces Hierarchical organization of rooms labels Mar 29, 2021
@clokep clokep self-assigned this Mar 29, 2021
@clokep clokep changed the title Add an experimental join_rule for joining rooms in a space without an invite Experimental join_rule for joining rooms in a space without an invite Mar 29, 2021
@clokep
Copy link
Member Author

clokep commented Mar 29, 2021

I think we can use the term restricted fine (not name-spaced) since we'll put this into an experimental room version.

@richvdh
Copy link
Member

richvdh commented Mar 29, 2021

I think we can use the term restricted fine (not name-spaced) since we'll put this into an experimental room version.

I'm not entirely sure that follows. @turt2live wdyt?

@clokep
Copy link
Member Author

clokep commented Mar 29, 2021

My thought process was that since the room version is experimental, then anything inside of it is essentially namespaced away from "stable" already, but maybe that doesn't make sense. 🤷 I'm happy to namespace if that seems clearer.

@turt2live
Copy link
Member

uhh, I need a lot more context. Is there a short summary of the issue?

@clokep
Copy link
Member Author

clokep commented Mar 29, 2021

uhh, I need a lot more context. Is there a short summary of the issue?

There's a proposal to add a new join rule (restricted) as part of a new room version. While doing development work on this I plan to use an experimental room version (org.matrix.mscxxxx). The question is whether the join_rule value should also be namespaced (org.matrix.mscxxxx.restricted) or it being part of an unstable room version is enough.

@turt2live
Copy link
Member

The intent of the process is that the restricted keyword would also be namespaced, though given the MSC's purpose and that the room version's namespace is clearly for that MSC, it would be fine to go without. Reason being that room versions aren't supposed to be used for doing arbitrarily custom things without namespacing, but when a room version is clearly identified for a given purpose, there's no point in us saying you must use extra complexity in representation.

Team mechanics might reveal other opinions, such as the restricted keyword popping up in the middle of the codebase without any reference in the official spec, but that's beyond my role 😄 (the widget-api and other various projects tend to make a deliberate effort to at least name the constants MSC2962_RESTRICTED = "restricted" to fix this problem).

@clokep
Copy link
Member Author

clokep commented Mar 30, 2021

An approach for this is detailed in MSC2962.

Note that this has been modified a bit, you can see a current draft at https://hackmd.io/zO0fQwo9TqurOt66mF5Qmg?view.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A-Spaces Hierarchical organization of rooms T-Enhancement New features, changes in functionality, improvements in performance, or user-facing enhancements.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants