Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The client-server API in Matrix doesn't really allow for the nested "server with channels" paradigm that something like Discord follows.

There's the Spaces [0] API but it's not really meant for creating "servers" (servers as Discord labels it, meaning a top-level room or thing that contains children voice or text rooms) and as such there's no easy way to have any type of per-"server" RBAC or other permissions that Discord's model provides because of the Room + Power Level paradigm Matrix follows.

There's also difficulty with enforcing recursive operations, e.g. in Discord you can just kick/ban somebody and they are removed from the top-level (Server) and all child channels- but there is not really a way to perform any such operations with Matrix without a lot of hacking around and writing custom app services.

[0] https://spec.matrix.org/latest/client-server-api/#spaces




Yes I have. Mjolnir is not really suited for the problem I am describing because:

A) you need to create an account for the bot and provide an access token (which is cumbersome to obtain). In Discord that type of moderation of users works ootb.

B) There is no mechanism for role-based permissions. In Discord, you can create a role and assign specific permissions to that role which can control different rooms, etc. in your server. That is not possible in Matrix currently even with Mjolnir or custom app services because of how power level mappings work.

It's a problem I'm interested in solving but it would require MSCs drafted to alter the Matrix spec to create a new permissions model and will have extremely far reaching implications for homeserver implementations.



Perfect, thanks for the pointer!


This is precisely my issue, yes




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: