Public sandbox · Cloudflare D1 · sample data only
Audit trail D1
Same screens as the browser-storage demo, but rows live in a shared Cloudflare D1 database. Anyone on this URL sees the same notes and the same log. Do not type real names or company data. The other tab updates after the list polls (about 8 seconds) or you click Refresh. Back to the private localStorage demo.
Click a row to load the selected record.
| ID | Title | Status | Due |
|---|
Note
Status stores the ID. Body is logged on this page (form wrapper). Last-touch fields are metadata, not the trail.
History (frmAuditHistory · read-only)
Not a data-entry form. Seed inserts are already in the log.
| ID | When | Action | Field | Old | New | Who | Source |
|---|
Sample choices (tblAuditChoice)
This demo’s answers to George’s questions. Not Tony’s product spec.
| Q | This demo |
|---|
What this demo shows
Shared Cloudflare D1 copy of the Access audit-trail sample.
Same field names as tblNotes / tblAuditLog.
Compare with the localStorage twin.
- Write wrapper on D1 — Save writes the note and the log together in one API call. Access data macros are not ported.
- Field-level trail — old value, new value, when, who (
sample-clerk). - Body is logged here — every save goes through the form. Access data macros still skip Long Text.
- No-op save — unchanged fields write no log rows.
- Lookup not audited —
tlkpNoteStatusis not in the log. - History is read-only — one record’s tab, or all rows from the menu.
- Last-touch columns — Created / Updated on the live row, labelled as metadata.
- Unsaved changes — Yes / No / Cancel before leaving a dirty record. Yes waits for the D1 save.
- Shared list — another browser on this URL sees your save after about 8 seconds, or Refresh.
Will this work when the data is in a database?
This page already is a database. The localStorage twin is /demo/audit-trail/.
Sample data only. Shared sandbox — not a company tenancy. Do not type real records.