Security & Compliance

Your data stays yours.
Always.

Per-account isolation enforced by the database. Documents and vectors on our own hardware in Brazil. The one step that leaves the country is answer generation, and it is declared by name in the DPA.

Postgres RLS

Row-Level Security active. Engine runs as role valorbrain_app with tenant-scoped policies enforced by the database. BYPASSRLS isolation for admin migrations.

Token hashing

MCP tokens stored as SHA-256 hash. Raw token shown only once at creation. Granular per-token scopes.

Daily backup

Postgres dump every day, kept 14 days, inside the same physical perimeter as the database. Restore already exercised in a real incident. TLS 1.3 required for all traffic.

On-premise

Optional on the Empresa plan, included on Enterprise: all of ValorBrain on your infrastructure, answer model included. No step leaves your perimeter.

LGPD

We are the processor; you are the controller. Designated DPO, public DPA, open subprocessor list. Access, correction, deletion and portability through the product.

Access record

Who searched, who opened which document and when, with user_id and timestamp. Available while the account exists, exportable at any time.

Deletion

A deletion request erases content and vectors within 30 days. Backups rotate every 14 days, so no copy survives beyond that.

Where the data sits

Documents, vectors and database on our hardware in Santa Catarina, Brazil. Embedding, rerank and NER on the same machine's GPU. The exception is answer generation, which uses a cloud LLM abroad — declared in the DPA.

Incident transparency

3 incidents (TRUNCATE-prod) handled within 24h in May 2026. 4-layer defense active since. Public postmortem available under NDA.

Compliance status

Honest about where we are. No claims without proof.

Active
LGPD
Designated DPO, public DPA, listed subprocessors, storage in Brazil
Active
TLS 1.3
Cloudflare-managed certificates, HSTS enabled
Active
Postgres RLS
Per-account isolation enforced by the database, 4 layers (SAFETY.md in repo)
Active
On-premise
Optional on Empresa, included on Enterprise — removes the international transfer
N/A
PCI-DSS
We store no card data; billing is delegated to Stripe
Planned
SOC 2 · ISO 27001 · HIPAA
We hold none, and we announce no date. When a customer requires it, it becomes a project with a deadline

If your diligence requires a certification today, the honest answer is that we have none. What we do have is the DPA, the subprocessor list, and the willingness to answer a security questionnaire line by line.

How multi-tenant works

1.Tenant ID on every request

Every engine call carries X-Tenant-IDderived from the user's JWT. Engine validates ownership before any query.

2.Postgres RLS policies

Each table with tenant_id has an RLS policy: USING (tenant_id = current_setting('app.tenant_id')). Engine runs as role valorbrain_app which respects RLS.

3.Connection-level isolation

Each connection sets SET LOCAL app.tenant_id = '...' at the start of the transaction. Connection pool does not share state across tenants.

4.Defense in depth

4 layers: app-level filter → engine validation → Postgres RLS → BYPASSRLS guard on admin ops. Documented in SAFETY.md in the repo.

Security questions?

We speak your language. Security questionnaires, architecture detail, NDAs — all available.