Beta data flow
Last updated 21 August 2026
Open and save locally
Your browser serializes the case, encrypts its name and JSON with a non-extractable AES-GCM device key, and writes the ciphertext to IndexedDB. An encrypted portable export is protected by its separate recovery secret.
Open and publish a shared case
Cloudflare Access validates the invited account. BlackMold then checks per-case membership. The browser decrypts and merges the case locally, encrypts a new revision locally, and uploads only the metadata-redacted encrypted envelope. R2 stores the immutable ciphertext; D1 conditionally commits its random pointer and non-content metadata.
Membership removal
The owner creates a new case key and encrypted revision in the browser. The server atomically commits that revision and removes the member. The new recovery secret is shown once for distribution outside BlackMold.
Optional network features
External lookups and map tiles require opt-in. Depending on the selected feature, data sent to a provider can include a search term, domain, IP address, URL, identifier, email address, location, or map viewport. The provider receives the request under its own terms.
Recovery boundary
BlackMold cannot recover a lost recovery secret or decrypt server revisions. Clearing local browser data removes the device key and local library.