Add message retention and hide emails by default
- db: cleanup_old_messages(days) purges messages older than N days in batches; recipients/reads/deliveries/reactions follow via ON DELETE CASCADE. Returns attachment file_ids no longer referenced by any surviving message (forwarded copies keep their files) and removes their image_uploads rows - server: MESSAGE_RETENTION_DAYS env var (default 0 = keep forever); hourly cleanup deletes expired messages and securely removes orphaned attachment blobs from the upload dir - schema: email_visible now defaults to 0 — previously any logged-in user who knew a UUID could read another user's email via get_profile - migrations: SQL script to apply the new default and reset the flag on existing databases (run manually, see file header) - docker-compose: document MESSAGE_RETENTION_DAYS Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -65,6 +65,9 @@ services:
|
||||
# Metadata retention (days)
|
||||
METADATA_RETENTION_DAYS: 90
|
||||
|
||||
# Message retention (days); 0 = keep messages forever
|
||||
MESSAGE_RETENTION_DAYS: 0
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
uploads:
|
||||
|
||||
Reference in New Issue
Block a user