Our Personal Data Server from scratch! tranquil.farm

Blob garbage collection #672

Merged jola.dev
targeting main from johanna/garbage-collection
Merged opened by and assigned to jola.dev
targeting main from johanna/garbage-collection

Branches off of https://tangled.org/tranquil.farm/tranquil-pds/pulls/671/latest. I'll rebase this when the first PR is merged.

This time I was careful to split things into reviewable chunks. Yay!

This PR introduces blob garbage collection through a scheduled task that runs on an interval. It can be disabled by setting it to 0.

To prevent accidentally garbagely collecting a blob while someone is uploading the same blob (Tranquil deduplicates blobs globally), or a blob getting deleted while a record is being uploaded that references it, this introduces a blob lock. That way GC can't accidentally rug pull anything else 🤞

Here's how I imagine what the blob lock looks like:

Any blob has at least 6h after being uploaded to get referenced. After that, it's fair game.

Closes #136 and #151

Commits 0