element-hq / element-hq/dendrite
[FR] Delete user's content & metadata when "deleting" a user
- Dominant language
- Go
- Stars
- 967
- Forks
- 102
- PR merge metrics
- No merged PRs in 30d
Description
*This issue was originally created by [**@spaetz**](https://github.com/spaetz) at .*
I understand that deactivating a user does not completely delete the user from our DB so that we cannot get identity/key conflicts when the name is re-registered. But the EU's data privacy laws (GDVO) demand that a user has the right to have all personal identifyable information being deleted upon request. To comply with that demand, several options might be possible:
1a) have deactivate not delete anything (so it can be re-activated later), but provide a separate "delete" API/flag.
1b) perform user deletion already during "deactivation".
on deactivate/delete:
a) delete a user's profile metadata only, so that e-mail, phone, usernames are gone. But keep the user record in the db, to prevent re-registration, everything else remains too (media files, conversations)
b) delete the above plus a user's media files, conversation and other non-state db entries.
c) delete the above plus everything pertaining to a user (but that will probably break room state as we loose join/leave events....)
Unclear (to me):
is it even possible to delete a user's conversation, or will it be "pulled back" via federation from other servers as soon as a user on our homeserver "scrolls up" the timeline?
Contributor guide
Research direction
No files, tests, or entry points are named. Start by tracing the existing user deactivation flow and how user metadata, media, conversations, and other database entries are stored, then investigate whether federation can restore deleted conversation data. Done requires deciding the deletion scope and whether this is a separate delete API or part of deactivation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100