Account Deletion
How to delete your account and what happens to your data
Account Deletion
EduShade supports both self-service account deletion and admin-initiated account deletion. All deletions are soft deletes, meaning your data is retained for a configurable period before permanent removal.
Self-Service Account Deletion
How to Delete Your Account
- Go to Account Settings → Account Deletion (or navigate to
/dashboard/profile/settings/deletion) - Review the warning about what happens when your account is deleted
- Confirm that you want to delete your account
- Your account is immediately soft-deleted
What Happens After Deletion
- Account status changes to
deleted - All active sessions are terminated — you are logged out everywhere
- Your profile is no longer visible to other users
- Login is disabled — you cannot log in with your credentials
- Your data is retained according to the tenant's data retention policy
- Unique indexes are freed — your email/phone can be used for a new account (after retention period)
Data Retention
Your data is not immediately erased. Instead:
- Data is retained for the tenant's configured retention period
- During this period, your account may be reactivatable (see below)
- After the retention period expires, data may be permanently purged
- This supports compliance with data protection regulations (e.g., GDPR)
Reactivating a Deleted Account
If you deleted your account and want to come back:
- Navigate to the Registration page
- Enter the same email/phone you used before
- The system checks if your account is within the retention period
- If yes, a verification code is sent to your original email/phone
- Verify your identity to reactivate your account
- Your previous data is restored
If the retention period has expired, you must create a new account.
Admin-Initiated Deletion
Admins have two ways to remove a user:
A. Hard-soft-delete via the Delete endpoint
- Go to Admin → Users
- Find the user to delete
- Click Delete (requires
user.deletepermission) - Confirm the action
- The user is soft-deleted (
deleted_atset,status = "deleted") and all sessions are terminated
API: DELETE /v1/users/{user_id}.
B. Status change to deleted
Admins can also flip a user's status to deleted via the standard edit endpoint (PUT /v1/users/{user_id} with status: "deleted"). This produces the same observable outcome: the user can no longer log in. Use the dedicated Delete action when you also want to terminate sessions immediately.
Bulk User Deletion
- Go to Admin → Users
- Apply filters or select multiple users
- Click Bulk Delete (requires
user.deletepermission) - Confirm the action
- All matching users are soft-deleted
API: DELETE /v1/users/bulk/delete.
Effects of Account Deletion
| Area | Effect |
|---|---|
| Login | Disabled — credentials no longer work |
| Sessions | All terminated immediately |
| Profile | Hidden from other users |
| Enrollments | Access revoked (handled by learning service) |
| Email/Phone | Released after retention period |
| OAuth Links | Provider IDs become available |
| Roles/Permissions | Associations removed |
| Database Records | Retained with deleted_at timestamp |
Soft Delete (the default — and currently the only mode)
EduShade only performs soft deletes in the standard delete flows:
- Sets
deleted_attimestamp on the user record - Sets the user's
statustodeleted - Data remains in the database
- Unique constraints use conditional indexes (
WHERE deleted_at IS NULL), so the email/phone/username can be reused after the retention period - Allows future reactivation within the retention window
- Supports data retention compliance
Hard Delete (Out-of-Band)
There is no hard-delete API endpoint today. Permanent erasure (e.g. for GDPR right-to-be-forgotten requests) is handled out-of-band by:
- A scheduled retention job that purges records past the tenant's retention period, or
- A direct database operation performed by a platform engineer
If you need a record permanently removed before the retention window elapses, raise a request with your platform team.
Troubleshooting
| Issue | Solution |
|---|---|
| Can't find delete option | Navigate to Account Settings → Account Deletion |
| Want to undo deletion | Try registering with the same email/phone within the retention period |
| Admin can't delete user | Ensure you have user.delete permission |
| Deleted user's email still "taken" | Soft-deleted records free unique constraints. The email should be available for new registrations |
| Need permanent data removal | Contact your administrator for GDPR compliance deletion |

