Skip to content

feat: configure hosted file retention per account - #9

Merged
Defiabell merged 1 commit into
mainfrom
feat/account-retention
Sep 20, 2026
Merged

Defiabell merged 1 commit into
mainfrom
feat/account-retention

Conversation

@Defiabell

Copy link
Copy Markdown
Owner

Hosted files currently expire after seven days for every account. Add an operator-controlled per-account retention setting: default seven days, 1–3,650 days, or zero for no automatic expiry. Storage, transfer and sharing limits remain unchanged.

New longer-lived uploads use a persisted retained/ R2 prefix so the existing users/ eight-day lifecycle cannot delete them. Permanent files return expiresAt: null; cleanup still reclaims pending/deleting files, and shared links still expire within 24 hours. The gallery shows the account's actual retention and each file's expiry.

Migration 0005 is additive and preserves existing files and their expiry. The guide documents the setting, lifecycle checks and the prohibition on rolling back to cleanup code that does not understand permanent files or the new prefix.

Validation: 22 file tests against real local D1/R2, UI tests, typecheck and a real browser scenario covering 90-day, permanent and default seven-day accounts. Independent review before push. Production lifecycle inspected: object deletion applies only to users/; owner account has no existing files.

@Defiabell
Defiabell merged commit 076de9a into main Sep 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant