Drop a data folder to audit it
The app finds ImmutableQC/ inside it and starts at once: every file re-read, every seal and link checked. A whole lab folder works too: every ledger in it, and every agent step traced to the measurements it used.
Any file type. Large files are read in 8 MiB slices, so they never have to fit in memory.
Nothing is uploaded: your browser reads the files, and this page is not allowed to open a connection.
Pinned heads, key ids, station and reviewer keys, expected changes Optional
From iqc head or an earlier report: a record number, a colon and a 64-character link. A ledger rewritten since will not match it. Several: separate them with commas.
The key id from an earlier report: a ledger signed with another key will not match it. Several: separate them with commas.
Patterns with * and ?, separated by commas: a file that matches and was sealed again is listed, not sent to review.
No pin file chosen.
The key ids of your instruments or stations. Only files sealed by a listed key count as measured, so a ledger an agent made itself cannot vouch for its own inputs. Several: separate them with commas.
The key ids of your reviewers. Only an approval signed by a listed key counts; a rejection or a question counts from any key. Several: separate them with commas.
No ledger in the folder? The app asks for the ledger file next. Reviewer ledgers (*.ledger.jsonl) in the folder are audited with the others.
Where is the ledger?
The agent writes it as ImmutableQC/ledger.jsonl inside the data folder, unless it was told to keep it somewhere else.
Drop a data folder to seal it
Your browser fingerprints every file and signs the list with a key it keeps. You get ledger.jsonl, to put in an ImmutableQC folder inside the data folder.
If the folder has a ledger whose key this browser holds, a scan and the changes since are added to it.
Nothing is uploaded. The key stays in this browser, which cannot export it.
Station name Optional
Sealed into every record: where it was made. 1 to 64 characters; “Browser” when left empty.
For an instrument PC, the agent is the real tool: it seals each new or changed file as soon as it is written, and keeps watching. Get the agent
Demo · sample data
A pass, a review and a fail, in under a minute
A small lab folder is built in this tab: a plate-reader folder sealed with an instrument key, and an analysis agent that runs here and signs each step with its own key. The same code as a real folder audits it. Nothing is installed or uploaded.
- Sealed the instrument folder, with an instrument key made for this demo
- Analysis agent ran in this tab, each step signed with an agent key
- Audited the whole lab folder: every file re-read, every step traced
- One change a step that cites a file nothing measured, one value changed in a copy, or a sign-off
- Audited again each change is audited again
demo-lab · in memory
The edit happens in a copy (a shared drive, a sync conflict, a restored backup), not on the watched instrument PC: there, a running agent would seal the edit as a new version, with its time, and the audit would list every version.