RocketChat / RocketChat/Rocket.Chat
feat: Add E2EE key loss warning when leaving or deleting an encrypted room
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Proposed changes (including videos or screenshots)
Currently, when a user leaves or deletes an E2EE encrypted room in Rocket.Chat, their local encryption keys for that room are deleted from their client keychain.
If this user was the last active participant holding the room key, or if other members have not safely stored their keys, the historical message content of that room becomes permanently unreadable for everyone. Currently, there is no prominent warning notifying the user of this key loss during these actions.
We propose adding a clear warning message inside the Leave Room and Delete Room confirmation modals when the target room is E2E encrypted (room.encrypted === true).
Issue(s)
(None - this is a new proposal/feature request)
Steps to test or reproduce
- Enable End-to-End Encryption (E2EE) in your workspace settings.
- Create an encrypted 1-to-1 DM or Private Channel.
- Open the Room Info context bar and click Leave or Delete.
- Notice that the confirmation dialog does not present any warnings about deleting local encryption keys or permanent history loss.
Further comments
This will significantly improve user awareness and prevent accidental key and data loss in production workspaces.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Leave Room and Delete Room confirmation modals and trace how they determine whether a room is encrypted. Add a warning for encrypted rooms covering local key deletion and possible permanent history loss, then verify that it appears for both actions and not for unencrypted rooms.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, security
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100