Security
Bill8 inherits the Sentin8 security model
by construction — every service runs the platform's 8-step
authorization pipeline, connects to PostgreSQL through
certificate-only identity, and stores every table behind FORCE RLS
on env_id.
The vertical's own invariants
- One money authority — Bill8:Ledger is the single authority that mutates balances; Payments, Billing, and Reporting move money by asking it to post, never shadow-writing.
- Screened before money moves — Risk gates every charge before the rail; a blocked charge moves nothing.
- Signed, retried webhooks — every outbound delivery is signed (secret references, never inline secrets) and retried to completion or dead-letter.
- No PAN/CVV in application tables — card data passes to the delegated rail (Bank8:Payments); bill8 stores references only.
- Deterministic proration — subscription changes compute mid-cycle adjustments exactly once; the same change never bills twice.
Read the platform's five pillars at sentin8.dev/docs/security.