Attestkeep docs

Evidence trust model

An audit trail you could quietly rewrite is a story, not evidence. This page explains how the admission ledger is sealed, what an attacker with database access can and cannot do to it, and — because a trust page that hides its own limits is worthless — exactly where the guarantees end.

The problem

Every admission decision lands in PostgreSQL. A database is the right place to query them and the wrong place to trust them: anyone with write access could flip a denied to allowed after the fact, and a plain table would carry no trace. If your auditor asks "how do you know these records are what the webhook actually decided?", a backup schedule is not an answer.

How the ledger is sealed

What verification checks

When an evidence document is generated, the operator re-verifies the whole ledger — not just the report period — and the document's ledger section states the result:

intact is true only when all four pass. We have run this against a live tamper, not just in theory: flip one verdict with SQL and the next document names that record's id; delete a sealed row and the checkpoint's count betrays it.

Where the guarantees end

This is a tamper-evidence scheme, not a tamper-proofing one, and you should know its boundaries as precisely as its strengths:

Operational notes