Your questions are answered by a French company.
Generation runs at Mistral in France, a company with no parent outside the European Economic Area. Documents are stored in Ireland and Nuremberg. Every provider, its country of incorporation and its parent are listed in our sub-processor register.
Data Isolation
Tenant isolation enforced at the database layer via Row-Level Security. Every query is scoped to the authenticated user. Cross-tenant data access is architecturally impossible.
Role-Based Access Control
Granular permissions scoped by team, data type, and action. Admins control who can view audit logs, manage members, delete documents, and access billing.
Immutable Audit Trail
Every AI query, data access, and administrative action is logged in an append-only trail. Who accessed what, from where, and when, queryable and separate from application data.
Your data stays yours.
Your data is only used to serve your team. It is never shared, sold, or repurposed. Your documents, queries, and responses are yours alone.
Where it runs, and who can reach it
Jurisdiction, not just region
Residency says where data sits. Jurisdiction says who can compel access to it. Generation, document storage and outbound mail are handled by companies incorporated in the EEA with no non-EEA parent. Our request path, cache and error monitoring still run on US-incorporated providers while we migrate to our own EU infrastructure. Our sub-processor register flags each one per row, including a provider that is EU-based but has a non-EEA parent.
EU data residency
Generation runs in France and embeddings run in Berlin. Documents are stored in Ireland and Nuremberg. Some of our providers are incorporated outside the European Economic Area, so their remote access counts as a transfer under GDPR Chapter V. Our sub-processor register names every provider and the transfer basis that applies to it.
Who at Nordvec can see your data
The product has no impersonation, support-login or staff-admin mode. There is no path for us to open your documents or conversations through the application, and a test fails the build if one is ever added. Two founders hold infrastructure-level database access, which is standing access we cannot remove while we run on managed infrastructure, and it does not appear in your audit log. Everything done through the product does, and you can export the whole log as CSV filtered by date and action. Named, time-limited access with notification to you arrives with our own EU hardware.
How it is protected, and what that covers
Encrypted at rest and in transit
All data is encrypted at rest (AES-256) and in transit (TLS 1.3). OAuth tokens use an additional application-level encryption layer.
Key custody
Our platform provider holds the encryption keys today, not us and not you. We state that plainly because it decides what the encryption above is worth: it protects a decommissioned or stolen disk, not a compromised credential on a running system. We do not offer customer-managed keys yet. Key custody becomes ours at our move to EU hardware, with an EU-resident key and a stated rotation policy.
Why the search index is not separately encrypted
Encrypting the text and vector columns individually would break the index that makes vector search possible, and on managed infrastructure the key would still sit with the provider. We would rather tell you where the boundary is than describe an encryption layer that does not do what the name suggests.
Backup scope
Backups cover the database daily, with a 24-hour recovery point. Document blobs are not included, so a deletion is final rather than something a restore can undo. Any restore replays recorded erasures before the service returns, so it cannot bring back data you asked us to delete.
How the code is tested
Every change is scanned before it lands: static analysis (semgrep) for code-level flaws, dependency vulnerability and licence auditing, secret scanning on every commit, and a seven-day release cooldown that blocks freshly published packages from entering the build. We do not hold an independent penetration test, and we would rather say so here than let a list of controls imply one.
What we do with it
Zero AI training data retention
Nordvec never uses your data to train, fine-tune, or improve any AI model. Only the 5-15 document chunks relevant to your question are sent per query, never entire documents.
No third-party data sharing
Your data is never sold or shared for anyone else's purposes. Model providers receive only the minimum context needed to answer your query, and every provider we use is named in our sub-processor register.
Instant physical deletion
When you disconnect an integration, all synced data, embeddings, and file references are permanently deleted immediately. Storage blobs are purged within minutes. No soft deletes.
Access control at every layer.
Authentication at the edge, row-level security in the database, and an append-only audit trail.
Edge-layer authentication
JWT verification happens at the edge before requests reach application servers. Invalid tokens are rejected with zero backend load.
Database-level access control
Row-Level Security (RLS) policies enforce tenant isolation directly in PostgreSQL. Even internal queries cannot bypass access controls.
Immutable audit trail
Every AI query, data access, and administrative action is logged in an append-only audit trail with precise timestamps.
Rate limiting and abuse prevention
API endpoints are rate-limited per user and per IP. Automated abuse prevention protects against credential stuffing and enumeration attacks.
What we hold, and what we do not.
GDPR
Full compliance with the General Data Protection Regulation. Self-service data subject rights (Art. 15, 17, 20), privacy by design (Art. 25), immutable processing records (Art. 30), and security of processing (Art. 32).
EU AI Act
Automatic decision logging, transparency controls and human oversight, mapped to Articles 12-14. Article 50 transparency via exportable AI interaction history, with each obligation's status published on the trust board.
SOC 2 Type II
Not held. The Trust Services Criteria our architecture already meets are published individually on the trust board, each linked to the code that implements it. An external audit is a funding decision, and we will not describe it as scheduled until it is booked.
ISO 27001
Not held. Our information-security controls are published and source-verified rather than asserted as alignment, and exported as OSCAL so you can load them into your own tooling. We would rather publish what you can check than a claim you cannot.
Safe harbour
Report a vulnerability to security@nordvec.com. We acknowledge within 72 hours, give you a triage severity within 5 business days, and keep you updated until it is resolved.
Safe harbour
We will not pursue or support legal action against researchers who act in good faith, follow this policy, avoid privacy violations and service degradation, and give us a reasonable opportunity to remediate before disclosure. If you are unsure whether an action is authorised, ask us first.
Before you test
Only interact with accounts you own or have permission to use. Do not access other tenants' data, run scanning that degrades the service, or disclose an unfixed issue publicly. We ask for a coordination window of up to 90 days before public disclosure, and we credit reporters who want to be named. If you used a generative AI tool at any stage, tell us how; it helps us triage and does not count against your report.
Our process follows ISO/IEC 29147 (disclosure) and ISO/IEC 30111 (handling), and the coordinated-disclosure duty of the EU Cyber Resilience Act (Regulation (EU) 2024/2847, Art. 13). Remediation targets and full scope are published in the SECURITY.md file in our source repository.
We do not run a paid bug-bounty programme. We recognise good-faith reports with public credit, not payment.
Get in touch.
Security inquiries
Questions about our security architecture, data handling, or compliance posture. We are happy to provide detailed documentation for your review.
Responsible disclosure
Report a vulnerability to security@nordvec.com. We acknowledge within 72 hours, give you a triage severity within 5 business days, and keep you updated until it is resolved.