Skip to content
Security & compliance

Built to satisfy the compliance team.

Changes to client records, PDF exports, and admin actions are written to an append only audit log, and each client’s history is visible in the app. Every client query is scoped to your firm on the server, so another firm sees your clients’ numbers only if you share them.

Encrypted in transit
TLS 1.2+ · HSTS
Encrypted at rest
AES-256 via Neon Postgres
Firm level isolation
Every query scoped by firm ID, tested
Append only audit log
Security events kept seven years

Audit log · per client

TimeEventActor
  • 04:22:18Edited clientSusan retires · 2040 → 2041rachel@linden-moss.com
  • 04:22:04Downloaded documenthewitt-trust-2019.pdfalex@linden-moss.com
  • 04:21:57Exported PDFhewitt-annual-review.pdfrachel@linden-moss.com
  • 04:19:33Imported document1099-B · schwab-2024.pdfalex@linden-moss.com
  • 04:14:02Deleted accountSchwab · brokerage ···4471rachel@linden-moss.com
Controls

Six controls that protect your clients’ financial lives.

The same plan can carry a family’s numbers for decades. These are the measures that keep that data private, isolated, and recoverable.

01 / 06

Encrypted in transit and at rest

Traffic runs over HTTPS with TLS 1.2 or higher, older versions are refused, and HSTS keeps browsers on HTTPS. Data sits encrypted at rest with AES-256 in Neon managed Postgres, and uploaded documents are encrypted with AES-256 in Vercel Blob. Every app response carries hardened headers that deny framing, block MIME sniffing, and isolate the app's window from other sites.

02 / 06

Authentication and least privilege access

Identity, sessions, and multifactor authentication are managed by Clerk, and every user can turn on an authenticator app or a text message code as a second factor. Access is role based and enforced on the server for every action, never just hidden in the interface.

03 / 06

Each firm's data stays with that firm

Every client data query is scoped by firm ID on the server, using the firm from your session rather than anything the browser sends. An automated isolation test scans the client, CMA, CRM, and portal API routes for that scoping, and API responses are never cached, so another firm sees your clients' numbers only if you share them.

04 / 06

Read only access. No money movement.

Clients link accounts from their own portal, authenticating with their bank through Plaid. Foundry never sees or stores bank credentials, only an encrypted access token. Access is read only: balances, holdings, transactions, liabilities. Foundry requests no payment or transfer permission and cannot move money in, out, or between accounts. Clients can unlink an institution from their portal.

05 / 06

Continuous monitoring and scanning

Every change to the main branch, plus a weekly run, is scanned for vulnerable dependencies, leaked secrets, and code flaws, and disclosed vulnerabilities are triaged on a fixed clock. Sentry watches errors and performance in production. We identify users to Sentry by ID only, never name or email, and session replays mask all text and block images.

06 / 06

Backups, recovery, and residency

Application data lives in US regions on Neon managed Postgres, which keeps seven days of history for point in time recovery. Uploaded documents are stored in Vercel's US East region. Nothing about recovery depends on a single machine staying up.

Subprocessors

The vendors that touch your data, and what they answer to.

We name every third party that processes customer data, and the attestations each one publishes.

VendorWhat it handlesCertifications
StripePayments & billingPCI DSS Level 1 · SOC 1/2/3
ClerkAuthentication & MFASOC 2 Type II
PlaidBank & brokerage account linkingSOC 2 Type II · ISO 27001 · ISO 27701
NeonManaged Postgres · your dataSOC 2 Type II · ISO 27001 · HIPAA eligible
VercelHosting & document storageSOC 2 Type II · ISO 27001
SentryError & performance monitoringSOC 2 Type II · ISO 27001 · HIPAA eligible
UpstashRate limiting cacheSOC 2 Type II
ResendTransactional email deliverySOC 2 Type II
Azure OpenAIAI Import extraction & the Forge agentSOC 1/2/3 · ISO 27001/27017/27018/27701

No model training.Documents uploaded for AI Import are never used to train models.

30 days’ notice. Written notice to your owner of record before we add or replace any subprocessor that handles client data. You may object on reasonable grounds during that window.

US data residency. Application data is stored in US regions.

This is the subprocessor list our Data Processing Addendum refers to.Last reviewed: 2026-10-06

Responsible disclosure

Found a security issue? Tell us and we’ll get on it. We respond to every good faith report and won’t pursue researchers who act in good faith.

security@foundryplanning.com
Build a plan on the call

Bring a real client. We’ll build their plan on the call.

A live Zoom session where we build a working plan together. Bring a brokerage statement, a tax return, or a list of constraints. Redact the names if you like; the plan builds the same. The data goes in fast and we plan in front of you.

Call duration
~30 min
Preparation
Zero
Cost
Free
Demo requestFF-0000

We reply within one business day with a calendar link.