Database-enforced tenancy
Every tenant-owned table uses forced PostgreSQL row-level security. Tenant and actor context is transaction-scoped rather than carried in a reusable connection.
Security and trust
Estate planning contains identity, family, and financial information that deserves a deliberately unexciting architecture: bounded access, encrypted content, explicit state changes, and evidence that survives the workflow.
Each firm’s data is separated at the database boundary. Sensitive records are encrypted with tenant-bound context, and searchable workflow facts are kept deliberately narrow.
Role-aware permissions, step-up staff assurance, immutable review evidence and auditable sharing decisions keep responsibility visible throughout a matter.
Defence in depth
Every tenant-owned table uses forced PostgreSQL row-level security. Tenant and actor context is transaction-scoped rather than carried in a reusable connection.
Client, adviser, firm-admin, and reviewer operations have separate server-side permissions. Staff operations require an assurance level representing step-up MFA.
Identity fields, will and LPA payloads, matter notes, messages and notification content are encrypted with tenant-bound authenticated context.
Audit events, immutable review snapshots, mirror-document provenance, life-event resolutions, vault tombstones, and delivery events preserve the decisions that moved data or documents forward.
The data path
HTTP-only, strict same-site session credentials; unsafe requests are origin-checked.
Authenticated operations set tenant and actor context inside one database transaction.
Sensitive content is encrypted before storage; searchable facts are deliberately minimized.
The storage contract uses short-lived audited URLs and never serves documents from the app origin.
Due-diligence view
Testament’s model joins technical controls to the decisions people make: who can see a client, when private work becomes reviewable, and how access can be revoked.
Data minimisation
A will draft or LPA instruction set is treated as an encrypted document rather than a convenient analytics dataset. Status, bounded triage categories, version references, and operational timestamps are separated because the service needs to query them.
Operational reports, application logs, and delivery records are designed to keep names, addresses, will wording, LPA instructions, adviser notes, and raw credentials out. Retention, deletion and subject-access handling follow the responsibilities agreed with each firm.
Due diligence