funnel
funnel copied to clipboard
Account deletion feature
We discussed it and decided that we won't actually delete any content from the site, but when users opt-in to "delete" their accounts, we'll replace their personally identifiable data like names with [deleted]
, remove emails and disable their accounts. This ticket lists all the things needed to accomplish this -
- Replace user's full name with
[deleted]
- release the username, replace with something random
- delete emails linked to the account (need more detailed steps)
- disable account so nobody can login with it
- de-link external IDs, phone numbers
- revoke all active memberships
- check user's deleted/disabled state inside
Comment.user
along with comment's state - any unread notifications pointing to the user needs to be revoked?
- remove user from all organizations
- what else?
All personal data of a user has to be deleted. This includes:
- UserEmail/UserEmailClaim
- UserPhone/UserPhoneClaim
- Profile (no random usernames)
This will cascade to anything owned by a profile (currently Project), and presents a problem there as projects are collaborative spaces and hold the data of other users. The first cut of user deletion will only work when the profile is empty.
We have a separate "convert user account into organization" ticket for orgs that registered as users. That feature will have to be used to appoint collaborators and release a profile from the user account.
As a destructive action, this also needs safeguards. One of:
- Temporary suspension that the user can undo if they change their mind (Twitter has this)
- Actual delete, but send the user a signed packet of data that can be restored with one upload (somewhat dangerous due to possible conflicts when data is exclusive, like an email address)
- Gating against hijacks, such as requiring an email or SMS-based confirmation
- Backend-only Locked state on a user account, preventing deletion attempts