plan: self-healing admin room #2064

Open
opened 2026-07-28 01:52:08 +00:00 by nex · 3 comments
Owner

Currently, losing access to the admin room is basically devastating, as it requires effectively rebooting the server into a recovery state. This is inconvenient as it requires downtime and can often be tricky for new users who may have simply made a mistake (despite our best efforts to implement guard rails). Ideally, the admin room would be self-healing, and as such I plan to implement the following things:

  • Custom join rule that allows admins listed in the configuration to always be permitted to join the admin room via alias
  • Custom alias calculation that acts as a pin that is logged to the console (e.g. #admin-recovery-75671957:server.example) that allows anyone (who can read the console) to rejoin the admin room
  • Support upgrading the admin room via /upgrade again
  • Automatic recreation of the admin room if it detects a bad state in the room (e.g. encryption, public join rules, bad power levels). Not sure how people keep managing this because this is explicitly blocked by guard rails, but people keep finding ways.
  • Also perhaps automatically upgrading the room whenever the default_room_version changes?
  • Command-line flag to re-create the admin room on the next run (conduwuit --recreate-admin-room)
Currently, losing access to the admin room is basically devastating, as it requires effectively rebooting the server into a recovery state. This is inconvenient as it requires downtime and can often be tricky for new users who may have simply made a mistake (despite our best efforts to implement guard rails). Ideally, the admin room would be self-healing, and as such I plan to implement the following things: - Custom join rule that allows admins listed in the configuration to always be permitted to join the admin room via alias - Custom alias calculation that acts as a pin that is logged to the console (e.g. `#admin-recovery-75671957:server.example`) that allows anyone (who can read the console) to rejoin the admin room - Support upgrading the admin room via `/upgrade` again - Automatic recreation of the admin room if it detects a bad state in the room (e.g. encryption, public join rules, bad power levels). Not sure how people keep managing this because this is explicitly blocked by guard rails, but people keep finding ways. - Also perhaps automatically upgrading the room whenever the `default_room_version` changes? - Command-line flag to re-create the admin room on the next run (`conduwuit --recreate-admin-room`)
nex self-assigned this 2026-07-28 01:52:08 +00:00

Custom join rule that allows admins listed in the configuration to always be permitted to join the admin room via alias

How do clients know how to join a room with a (to them) unknown join rule?

> Custom join rule that allows admins listed in the configuration to always be permitted to join the admin room via alias How do clients know how to join a room with a (to them) unknown join rule?
Author
Owner

clients don't deal with join rules

clients don't deal with join rules

clients don't deal with join rules

Right, sorry, I didn't know that.

But then, same question for the server: What if someone wanted to join their admin room on a Backup-Account on a Synapse Server?

> clients don't deal with join rules Right, sorry, I didn't know that. But then, same question for the server: What if someone wanted to join their admin room on a Backup-Account on a Synapse Server?
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity#2064
No description provided.