A record of who changed what

Every insert, update and delete made through the app writes an audit row with the acting user stamped by the server, not claimed by the browser.

What it is

The data proxy that all browser reads and writes go through logs every write action to an audit table, including a snapshot of the row before an update or delete so the change itself is reconstructable. Identity comes from the authenticated session, so a client cannot forge the user name on an entry. A small number of high-volume, low-value tables — such as tutorial progress — are explicitly exempt so the log stays readable.

Also called: audit log · change history · who deleted this · who changed the price · accountability

See it
A record of who changed what
Apr
May
Jun
Jul
Marlin Hoover — Barndominium
Framing
Ivy Brubaker — Hobby Shop
Concrete
Delia Yoder — Barndominium
Trim
Sutter Kline — Hobby Shop
Framing
Ivy Brubaker — 40×64 Shop
Concrete
Framing crewConcrete crewTrim crew
An audit list filtered to one record: action, actor, timestamp, and the before/after diff — audit_log view. Sample data — no customer information appears here.
How it works
  1. 1Writes go through the proxy, which stamps org and user server-side
  2. 2Updates and deletes snapshot the affected rows first, so the log records what changed
  3. 3Client-side actions worth recording can post to the audit endpoint, which stamps identity from the session rather than the payload
  4. 4Noise tables are on a documented exemption list
Why we built it

When several people can change a price, a stage or an invoice, 'who changed this?' comes up on the day it costs money, and 'nobody knows' is the answer that ends trust in every other number on the screen. Every create, edit and delete made through the app is recorded against the person who did it, stamped from their verified login rather than taken on the browser's word, so it cannot be claimed by one person and pinned on another. Routine machine chatter is deliberately kept out: a history buried in automated noise is a history nobody reads on the day it matters.

The problem
  • Changes in a shared system are unattributable after the fact
  • A browser-supplied user name makes the log meaningless
Sound familiar?
What you get
Every change has a name and a timestamp behind it
Deleted and updated rows leave a before-snapshot
The log stays readable because machine noise is kept out
What's inside

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →