System
Audit log
Every meaningful change captured immutably. Phase 1 wires this to the Supabase audit_log table — append-only at the database level, no UPDATE or DELETE permitted on rows.
Source
Live (Supabase)
Events shown
10
Distinct actions
8
Most recent
27 Apr
Activity
- Consulted advisor27 Apr 2026, 10:00 pm
Profitability advisor opened on Oyra with imported live data — pre-launch hedging applied.
Daniel Johnsonadvisor.profitability
- Imported live data27 Apr 2026, 8:00 pm
Imported Oyra admin export · 7 streams · 0 active revenue (pre-launch).
Daniel Johnsonentity.live_data:ludema
after: {"revenueStreams":7,"activeRevenueAud":0,"coachPayouts":0,"monthlyCostsAud":480} - Saved scenario26 Apr 2026, 4:00 pm
What-if: bought out Harley's 50% of Spokespot.
Daniel Johnsonscenario.snapshot:snap-spokespot-buyout
- Completed obligation25 Apr 2026, 10:00 am
obligation
Daniel Johnsonobligation:ob-asic-ar-spokespot
- Consulted advisor24 Apr 2026, 6:00 pm
Cash advisor — runway across the group with BHP fortnightly modelled in.
Daniel Johnsonadvisor.cash
- Added entity (sandbox)24 Apr 2026, 2:00 pm
Sandbox: prospective NewCo Pty Ltd to hold web-dev contracts.
Daniel Johnsonstructure.entity:sandbox-newco
after: {"name":"NewCo Pty Ltd","type":"pty_ltd"} - Recorded dissent23 Apr 2026, 6:00 am
Disagreed with Risk Consult re: PI insurance level for first web-dev project — noted reasoning for future review.
Daniel Johnsondissent.entry
- Consulted advisor22 Apr 2026, 8:00 pm
Asked accountant agent about gross-revenue model + 47% no-ABN withholding for AU coaches.
Daniel Johnsonadvisor.accounting
- Edited ownership21 Apr 2026, 12:00 pm
Edited proposed ownership of HoldCo from 100% to 60/40 with trust.
Daniel Johnsonstructure.ownership
before: {"holdco":"100% Daniel"} after: {"holdco":"60% Daniel · 40% Family Trust"} - Uploaded patent19 Apr 2026, 10:00 pm
Provisional spec attached — locking mechanism v2.
Daniel Johnsonip.patent:spokespot-locking-mechanism
Action mix
Schema · helm/supabase/migrations/0001_audit_log.sql
The audit_log table revokes UPDATE and DELETE from every role at the database level — once a row lands, it's permanent. Row-level security restricts SELECT to the authenticated user's own events, with service_role access for back-office reporting.