SCOPE: everything in progressdocs/compliance/risk-register.md · build 40bb41bdb460

Risk register (draft)

Sign-off: approved by [Kyle] on [date], second reader [Dan] on [date]; recorded in approvals.md. Review quarterly.

A first register for ORG-17, 27 Oct 2026, from what the readiness review found. Owners: Kyle and Dan. Kept here, with each review logged in the control calendar (moved into the compliance platform, if one is chosen); review quarterly, reassess yearly.

Fraud and insider risks (CC3.3) are R13 and R14. The register is reviewed at each quarterly security review, and again when a client, a subprocessor, an add-on or a source system is added (CC3.4; for a source system, source-system-integrations.md).

Likelihood and impact on a 1 to 3 scale; score is the product. The response is what we are doing about it; the items are on the readiness page.

# Risk L I Score Response Items Owner
R1 One customer sees another customer's records: there is no tenant separation in the data 2 3 6 Separate project per client until tenant_id is built DB-3, VE-1, ORG-33 Dan
R2 Accounts held personally: a departure or lockout takes SCOPE with it 3 3 9 Step 0 moves, two owners, vault OW-1 to OW-8 Kyle
R3 A leaked key or password gives database access 2 3 6 Rotate after the moves, secret scanning, the demo password out of the bundle SC-1, SC-3, OW-8 Dan
R4 A driver's token reads investigation findings through the API 3 2 6 Move the investigation columns to an incident_finding table with its own RLS; waits on Paul's switch, a backward-compatible change, or Novvia's clone DB-2 Dan
R5 Data lost and not restorable in time 2 3 6 Daily backups (RPO up to 24 hours today), the PITR decision, timed restore test AV-1, AV-2 Dan
R6 A bad change reaches production unreviewed, or a reset wipes data 3 2 6 Branch protection, migrations by CI, separate demo database SC-5, SC-6, VE-1 Dan
R7 A shared tablet lets driver B act as driver A 2 2 4 Shift-end session expiry, PIN sign-in with rate limits ID-3, ID-4 Dan
R8 An attack or misuse goes unnoticed: logs kept days, no alerts 3 2 6 Log drains to 12 months, security alerts LM-1, LM-2 Dan
R9 A personal laptop is lost or compromised 2 2 4 BYOD policy, quarterly device check (endpoint verification or a dated screenshot), MFA ORG-15, ORG-16 Kyle
R10 A vendor (Supabase, Vercel) is breached or has a long outage 1 3 3 Vendor report review, BC/DR plan, offline capture VN-1, AV-3 Kyle
R11 A vulnerable dependency is exploited 2 2 4 Dependabot, 7-day patch rule, pen test SC-7, LM-4 Dan
R12 Key-person risk: two people run everything 3 2 6 Written runbooks (these drafts), two owners, documented on-call OW-6, NP-6 Kyle
R13 Fraud: a supervisor signs off their own corrective action, or a record is back-dated to look compliant 2 2 4 Two-step sign-off with a named verifier other than the assignee, append-only trails, audit columns on the real clock; raw-token checks prove the RPC rules hold at the table TS-5, DB-4 Dan
R14 Fraud or insider misuse: one of us reads or exports a client's Confidential data without a reason 2 3 6 Least privilege, quarterly access review, no client data in demo or development, standing access logged (ID-6) TS-5, ID-6, ORG-20 Kyle
R15 Free tools chosen over paid ones (Free first, 28 Oct) leave a control without continuous evidence 2 2 4 The control calendar and evidence log; the compliance platform before the Type II window TS-4, ORG-04 Dan
R16 No segregation of duties: one developer writes, merges, migrates and deploys, so a mistaken or deliberate change can reach main with nobody else having seen it 2 2 4 Accepted while there is one developer, with compensating controls (the change-management policy, Segregation of duties): no direct push to main, five required checks, the security owner's monthly review of every merged PR and of the dashboard log against the baseline, a second person for every client production release. One approval required once a second developer joins TS-11, ORG-07, TS-9, TS-13 Kyle

Accepted risks, if any, are recorded here with who accepted them and when.

# Accepted by On Until
R16 [Kyle], with Dan [date] A second developer joins
Back to top