Security

Data lifecycle and deletion

Deleting a document removes it from serving, not just from a list. The delete clears the warm copy the serving box is answering from before it removes the durable one, then writes a receipt naming every place it reached. This page is that story end to end, including the boundaries.

What we hold

Loading a document produces four things, and every one of them is covered by a delete.

CopyWhat it is
The fileExactly what you uploaded, in the document store.
The extracted textWhat we read out of the file, which is what the memory is built from.
Section descriptionsShort written summaries of the document's sections, used to route a question to the right documents.
The cartridgeThe compiled model memory: the document's key/value cache, captured once. It is not the text, not an embedding and not a summary, and the model weights are never modified to produce it. Onboarding is read once, no training.

The cartridge is stored in a pickle-free container, so loading one cannot execute code, and every blob is stamped with a SHA-256 that is re-verified on every load. A tampered or corrupted blob fails at the transport boundary and never reaches the model.

What a delete removes, and by when

This is the erasure timeline the API publishes, generated from the same constants the infrastructure is configured with, so the statement cannot drift from the lifecycle rules actually in force. Any signed-in user can fetch it:

curl -s https://api.engramdynamics.org/platform/erasure-timeline \
  -H "Authorization: Bearer <your key>"
TierWhereWhen it goesWorst case
Database rowsPlatform databaseImmediately, in the delete call. The document and document-base records, and every job and import run attached to them.0 days
The fileDocument store and the worker's mirrorRemoved immediately. The bucket keeps versions, so the deleted copy sits in the recycle bin and is then expired and unrecoverable.30 days
Extracted textDocument store and the worker's mirrorRemoved immediately, on the same recycle-bin window.30 days
Section descriptionsDocument store and the worker's mirrorThe deleted document's entries go immediately. Deleting a whole document base removes the file outright, on the same window.30 days
Retrieval indexAPI memoryDropped in the delete call. The document cannot be retrieved by the next query.0 days
CartridgeCartridge storeDeleted immediately, unless another of your document bases still uses the same content, in which case it is kept and the receipt says so. The deleted copy sits in the recycle bin and is then expired.30 days
Warm serving copyServing box caches and its local mirrorPurged in the delete call, before the durable copy is removed, so a delete can never leave a warm copy answering questions. A box that was offline at the time purges when it returns.7 days
Operational logsCloudWatchExpired on a rolling window. They record that a request happened, ids, filenames and timings, never the contents of a document.14 days
Deletion receiptPlatform databaseKept on purpose. It is the proof the deletion happened, so it outlives the data it describes. Ids and counts only, never document content.Kept

The order matters and it is deliberate: the warm serving copy is purged before the durable blob is removed. Done the other way round, a failure would leave a warm copy serving a document whose blob is already gone from every listing, which nothing could then find to clean up.

Deleting

Delete one document, or a whole document base:

curl -s -X DELETE https://api.engramdynamics.org/corpora/<base id>/documents/<document id> \
  -H "Authorization: Bearer <your key>"

curl -s -X DELETE https://api.engramdynamics.org/corpora/<base id> \
  -H "Authorization: Bearer <your key>"

Both answer 204. A build in flight does not hold the delete open: the document goes and the receipt records that a build was running. A delete is never blocked by a billing state either, so leaving with your data and removing it are always available, including on a cancelled workspace.

The receipt

Every delete writes an append-only receipt you can read back, tier by tier, each with its own outcome rather than one blanket success.

curl -s https://api.engramdynamics.org/audit/deletions \
  -H "Authorization: Bearer <your key>"

Each tier reports ok, failed or skipped, and anything that is not ok carries the reason. A tier that quietly did nothing, because no cartridge was ever built or the file was already gone, reads as skipped with the reason rather than as a success we did not earn. The cartridge tier always accounts for all three outcomes: what was deleted, what was already missing, and what was retained because another live document base of yours still uses the same content. A reviewer can see that a retained id was intentional, not missed.

The receipt's tier names are the same names as the timeline above, so the two read against each other line for line. See Audit log for the full event catalogue.

Replacing a document

An update is held to the same guarantee as a delete. When a document changes and its memory is rebuilt, the new memory is written in place of the old one and the warm copy the serving box was answering from is purged as soon as the rebuild succeeds. The next question gets the new version, so a rebuilt document never keeps answering from the text it used to have.

An unchanged file costs no rebuild at all: re-saving a document whose words did not move is recognised as the same document and is never re-read. Documents and formats covers what counts as a change.

The boundaries, stated plainly

A reviewer will find these anyway, so here they are.

Policies and the agreement

The published policies are the Privacy Policy and the Terms of Service. The operative contract, including the deletion commitment and the processing terms, is the Service Agreement and the Data Processing Agreement your workspace accepts in the product: see Terms and DPA acceptance, which also serves both documents' full text over the API.

For a security review we maintain a written data lifecycle statement, a threat model for the serving connector and cartridge store, and a bill of materials for the shipped package. Ask us and we will send them.

Next

Audit log is where deletion receipts live alongside every other recorded action, and Exports turns them into a file for a reviewer.