Account Backup & Export
Account Backup & Export GDPR-compliant data export (Article 20) fully implemented. Users can export all account data as a ZIP with YAML/CSV/binary formats, e...
[T:documentation.sender_name]
Account Backup & Export
GDPR-compliant data export (Article 20) fully implemented. Users can export all account data as a ZIP with YAML/CSV/binary formats, entirely client-side. Import and backup reminders also implemented.
Why This Exists
- GDPR Article 15 (Right to Access), Article 20 (Data Portability), Article 17 (Right to Erasure – backup before deletion)
- Users need a way to export their data in a human-readable or machine-readable format
Current Implementation
Location: Account Settings > Export Account / Import Account
Export (accountExportService.ts, SettingsExportAccount.svelte)
Processing happens entirely client-side:
- Fetch manifest (list of all data IDs)
- Sync missing chats to IndexedDB
- Load all data from IndexedDB
- Decrypt encrypted data (email, settings/memories)
- Download profile image blob
- Convert to YML/CSV format
- Create ZIP archive with JSZip
- Download to client
Data Categories (User Selectable)
- Chats & Messages – all chats with message history, including all file embeds (images, audio, PDFs, code, transcripts)
- Memories – per-app configurations and memories (decrypted)
- Usage Logs – API usage history (YAML + CSV)
- Invoice PDFs – payment invoices
- Account Settings – profile info, preferences (decrypted email)
- Profile Image – user avatar blob
Import (SettingsImportAccount.svelte)
Allows re-importing previously exported data.
Backup Reminders (SettingsBackupReminders.svelte)
Periodic reminders to encourage users to back up their data.
Planned: Automatic Cloud Backup
Scheduled backups to S3/GCS/Azure/Dropbox/Google Drive/OneDrive/WebDAV/SFTP. Credentials stored client-side only (encrypted in IndexedDB). Not yet implemented.
Related Docs
- Delete Account – users may want to export before deletion
- Encryption Architecture – decryption happens client-side