Sender | Message | Time |
---|---|---|
7 Jan 2025 | ||
ah, yeah. The official announcement's still to come. | 16:39:27 | |
hmm, that should generate a config file with a listener on port 1234. Are you also port forwarding to port 1234 when you run the container? Also note that the better room for this would be #synapse:matrix.org | 16:40:17 | |
...unless you're using the docker image to develop Synapse, I guess 😅 | 16:40:35 | |
Hi everyone. Synapse 1.122.0rc1 has just been released. Please note that this version of Synapse drops support for PostgreSQL 11 and 12. The minimum version of PostgreSQL supported is now version 13. | 17:44:04 | |
8 Jan 2025 | ||
11:42:23 | ||
Hi, I've recently come across a challenge regarding space privacy. Users from the same homeserver are allowed to see the membership list, even if they haven't joined the space. The goal is to have a public space with join rules set to "invite only," but with a hidden membership list for users who have not joined. Regarding this issue, I started to dig a little at the source code of Synapse, specifically here at :
I found this specific section :
I wonder if it could be possible to introduce additional steps or checks before returning the membership data. For example, there might be an option to confirm whether the requesting user has the correct membership status to view the list. Or, maybe enforcing stricter checks so that only joined members see those details, or potentially add configuration flags that govern who can view membership data. I’d be very interested in any feedback on whether this approach is consistent with Synapse’s principles. Thanks for your help either way 🚀 | 11:49:26 | |
loic.le_guen I'm not sure what you mean by "public space set to invite only". Room visibility permissions are set by the Matrix Spec; Synapse only implements them. A better room to discuss this in would be #matrix-spec:matrix.org 🙂 | 12:34:41 | |
Well it is just a public room with different join rule My first steps were to make the create a public space, then i changed the join rule to invite only using this command :
But the issue doesn't arise here, the issue is the membership list of a space than can be viewed by anyone, regardless if you joined or not the space | 12:37:44 | |
When you say "public", what do you mean? The join_rule , or the fact it's listed in the /publicRooms directory? | 12:47:29 | |
the fact it's listed in the /publicRooms directoory, yes | 12:48:13 | |
* the fact it's listed in the /publicRooms directory, yes | 12:48:43 | |
presumably it is also world-readable? | 12:51:13 | |
So a user is allowed to see the membership list if:
| 12:51:56 | |
basically: in a world-readable room you can view all the memberships even if you're not in the room, is the 'problem', but it's according to spec. I can see the idea behind what you're asking especially for spaces (since the members don't send any events into the room other than joining it), but I guess for normal rooms it's less likely to be relevant (since you can see who is in a room by the fact they sent a message etc) | 12:53:19 | |
A room may appear in the public rooms list if it:
The latter is so you can find rooms to knock on. | 12:54:05 | |
Well actually the problem came when I tried to hide the membership list from outsiders by setting:
As soon as I did that, the space vanished from the public listing in Element, even though I still wanted it to remain discoverable. My main goal is to let people see that this space exists while ensuring they can’t see who’s in it unless they’re invited and become members. | 12:57:51 | |
yup, I can see what you want, but I think this is unachievable without spec changes | 12:58:20 | |
if you can see the events in a room(space), you can see the rooms within that space as well as the members in that space If you can't see them, you can't see any. There's no in-between; both are considered events in the room history | 12:58:59 | |
Thats why i was asked about the specs above in the source code of Synapse in
| 13:00:42 | |
just so we're on the same page, by spec change I mean someone needs to create and have accepted a technical proposal to the Matrix spec https://spec.matrix.org/latest/ (See https://spec.matrix.org/proposals/ ; not sure where the best entrypoint is for this but it's likely to involve effort) | 13:02:52 | |
Oh, i see... | 13:03:15 | |
It sounds like you want a room that can be knocked on? Which means people can see the room and can ask to join, but someone has to accept the join. | 13:04:01 | |
Since I think my use case is quite narrow, I don't believe there's much chance my request will be considered over more important spec updates... | 13:04:42 | |
I also agree that a knock is the best option today — people will be able to see the space exists and ask to join it, but they won't be able to see what's in the space before they've been accepted to join it | 13:05:09 | |
Actually, yeah, I tried this as well, but it seems Element doesn't support it. | 13:05:21 | |
In reply to @loic.le_guen:matrix.orgI think your use case is actually very reasonable and it's probably not the only time this will come up, but fair enough | 13:05:49 | |
I might try at least | 13:06:26 | |
Element just lack the UI to support knock rooms actually | 13:07:16 | |
they where even design's proposed i saw on github | 13:07:37 | |
ah rats sorry then, I thought they had it by now | 13:07:43 |