What is a Receipt?
Every run — whether it passes or gets blocked — writes a signed JSON receipt toreceipts/. It records:
- Who ran the workflow (
user_email) - Which workflow ran
- Which policies passed or failed, and why
- Which actions were taken and whether they succeeded
- Timestamp
- HMAC-SHA256 signature (tamper-proof)
Receipt Format
"decision": "BLOCK" and actions_taken is empty.
Verify a Receipt
Receipt Browser (local UI)
Browse, filter, and verify your receipts locally — no cloud account needed.- Every run listed (PASS / BLOCK / ROLLED_BACK)
- Click into the full signed JSON
- Invalid signatures highlighted in red
- Dark mode toggle
- Ships with
pip install enact-sdk— zero extra dependencies
The run_id
When you call enact.run(), you get back a receipt with a run_id:
run_id is the handle you pass to enact.rollback(). Save it.