Product
Audit Chain
A tamper-evident record of consequential changes that an auditor can verify without trusting the application that wrote it.
On this page
What it does
The Audit Chain keeps an append-only record of consequential operations. There is one chain per account. Each entry carries a digest computed over its own content and the previous entry's digest, so a changed, removed or reordered entry no longer recomputes.
What exists now
| Read | What it answers | Access |
|---|---|---|
| Head | The totals across the platform: entries, chains and anchors, and the latest anchor. There is no single head across accounts. | GET /api/audit/head, public |
| Window | A bounded range (at most 100) of the calling account's entries, from a sequence number. | GET /api/audit/window, session with a second factor and the audit grant |
| Verify | Recomputes the calling account's chain from the database function that wrote it, checks sequence and linkage, and compares the result with the latest external anchor. A fault is reported with its sequence number and a typed code. | GET /api/audit/verify, session with a second factor and the audit grant |
What a verification establishes
A passing verification establishes that the chain recomputes and that, if an anchor exists, the chain still carries the attested hash at the anchored position. A truncated chain, or one rewritten consistently from before the anchor, is reported as an anchor mismatch and is distinct from an ordinary chain fault.
It does not establish that the statement an entry records was true. A digest shows that a record has not changed since it was written; the underlying claim needs its own evidence. For that reason the platform keeps audit and evidence records apart from debug logs.
Operating needs
- PostgreSQL, where the digest function and the insert trigger live.
- An external anchor, if continuity against truncation is wanted; without one only internal consistency is checked.
Limits
- The chain verified is the calling account's, so an auditor verifies the account whose record they are examining.
- Some operations record their entry immediately after the change instead of in the same transaction; the run reports whether the entry was written.
Availability
The Audit Chain is running on RJV's own platform. RJV does not sell a licence for it as a separate product today: the commercial terms state what is on sale. It can be part of the result of an engineering engagement, where the written proposal names it, its licence terms and what you would hold at the end. To discuss it, use Work with Us.
Evidence
Chain linkage, fault reporting and anchor mismatch are covered by the platform's own database tests. The evidence register lists the graded claims, and API reference documents the reads.
Works with
- Advisory Engagement Register: Required by. Each record created or moved is entered in the account's audit chain.
- Appointment Register: Required by. Each record created or moved is entered in the account's audit chain.
- Asset Tracker: Required by. Each record created or moved is entered in the account's audit chain.
- Board Resolutions: Required by. Each record created or moved is entered in the account's audit chain.
- Case Record: Required by. Each record created or moved is entered in the account's audit chain.
- Clinical Audit Register: Required by. Each record created or moved is entered in the account's audit chain.
- Clinical Trial Registry: Required by. Each record created or moved is entered in the account's audit chain.
- Configuration Change Register: Required by. Each record created or moved is entered in the account's audit chain.
- Consent Record Register: Required by. Each record created or moved is entered in the account's audit chain.
- Cost Tracker: Required by. Each record created or moved is entered in the account's audit chain.
- Customer Due Diligence Register: Required by. Each record created or moved is entered in the account's audit chain.
- Customer Segment Register: Required by. Each record created or moved is entered in the account's audit chain.
- Dataset Lineage Register: Required by. Each record created or moved is entered in the account's audit chain.
- Decision Log: Required by. Each record created or moved is entered in the account's audit chain.
- Document Search: Required by. Each document saved is entered in the account's audit chain.
- Document Vault: Required by. Each document saved is entered in the account's audit chain, which is the record outside the document table.
- Endpoint Alerts: Required by. Each record created or moved is entered in the account's audit chain.
- Evidence Register: Required by. Each recorded claim and verification is entered in the chain.
- Governed Workflows: Required by. Runs and approvals are recorded in the chain.
- Grid Asset Registry: Required by. Each record created or moved is entered in the account's audit chain.
- Incident Timeline: Required by. Each record created or moved is entered in the account's audit chain.
- Information Request Tracker: Required by. Each record created or moved is entered in the account's audit chain.
- Invention Disclosure: Required by. Each record created or moved is entered in the account's audit chain.
- Inventory Tracker: Required by. Each record created or moved is entered in the account's audit chain.
- Licensing Registry: Required by. Each record created or moved is entered in the account's audit chain.
- Loyalty Engine: Required by. Each member, posting and status change is entered in the account's audit chain.
- Maintenance Scheduler: Required by. Each record created or moved is entered in the account's audit chain.
- Outage Coordination: Required by. Each record created or moved is entered in the account's audit chain.
- Patent Tracker: Required by. Each record created or moved is entered in the account's audit chain.
- Production Line Registry: Required by. Each record created or moved is entered in the account's audit chain.
- Publishing and Discovery: Required by. Each change to a public record is recorded.
- Quality Nonconformance Tracker: Required by. Each record created or moved is entered in the account's audit chain.
- Research Log: Required by. Each record created or moved is entered in the account's audit chain.
- Review Moderation Register: Required by. Each record created or moved is entered in the account's audit chain.
- Risk Register: Required by. Each record created or moved is entered in the account's audit chain.
- Sentinel: Required by. Each rule, run and status change is entered in the account's audit chain.
- Storefront Content Register: Required by. Each record created or moved is entered in the account's audit chain.
- Supplier Quality Register: Required by. Each record created or moved is entered in the account's audit chain.
- Trade Surveillance Case Review: Required by. Each record created or moved is entered in the account's audit chain.
- Transaction Alert Review: Required by. Each record created or moved is entered in the account's audit chain.
- Workforce Register: Required by. Each record created or moved is entered in the account's audit chain.
- Billing Ledger: Works with. Ledger postings and settlements are recorded in the chain.
- Data Subject Requests: Works with. Erasure leaves audit and attempt records untouched.
- Security and Assurance: Works with. Control evidence draws on the audit chain.
Where it runs
| Supported target | A customer-controlled Linux host on x86-64 with PostgreSQL 18 (linux-x86_64-customer-controlled). |
|---|---|
| Not yet supported | Windows, macOS, phones and tablets, and Linux on other architectures. Each needs its own installation, update and recovery evidence before it is supported. |
| Check a device | Run rjv2 preflight on it. It reads the operating system, architecture, memory, disk, listen address, configuration, database, database role and schema, changes nothing, and exits non-zero if release 2.0.0-alpha.1 cannot run there. |
| Installed as | One application and a PostgreSQL database. Installing release 2.0.0-alpha.1 (schema 100) installs every system on this site, including Audit Chain. |
| Data | It stays in the PostgreSQL database you run. The only outside service the release can use is an outbound mail relay that you configure. |
| Updating | A release is a numbered build. The schema is applied by a separate owner step (rjv2 migrate), and the application refuses to serve a schema it was not built for. |
| Backup and restore | rjv2 backup writes a checksummed dump. rjv2 restore restores it into an empty database and checks the checksum, the schema version and the audit chain of every account. |
| Leaving | The data is in your own database and can be dumped at any time. What you may do with the release is set by the terms on deployment and ownership. |
- Published
- 29 October 2026
- Revision
- 1