Trust
Security built into the ownership layer.
Perseids holds the record of who owns what. The protections below are architectural — enforced by the database and the server, not by the interface.
Tenant isolation
- Data lives in a managed PostgreSQL database with row-level security enabled on application tables.
- Isolation is enforced by the database itself, so a client request cannot reach another tenant's rows even if the interface asks for them.
- Company, investor and partner workspaces are separated: one identity can hold several workspaces, and each read resolves against the active workspace only.
Access control
- Authenticated sessions with per-workspace membership.
- A role and permission model checked server-side through a security-definer function, never from client state.
- Private documents are tenant-scoped and readable only with the relevant permission.
- Sensitive actions are recorded in audit trails.
The ledger firewall
Nothing outside an authorised, human-approved workflow can change the ownership ledger.
- AI proposals are inert records. They become nothing until a permitted user approves them.
- The authoritative ledger is kept structurally separate from AI features.
- A partner action in the partner portal can never directly mutate the ownership ledger.
- Confirming settlement in a secondary workflow does not itself move ownership; the transfer is recorded through the normal ledger flow.
- Companies control disclosure: what an investor or counterparty sees is a projection under the company's settings, not access to the cap table.
Invitations
- Invitation tokens are stored hashed, never in plain text.
- Invitations expire, are single-use, and can be revoked at any time.
- Claiming happens through a server-side function that reveals nothing about an invitation to an unauthorised caller.
- Where an invitation is bound to an email address, that binding is checked on claim.
Billing integrity
- The payment integration runs server-side only.
- Incoming billing webhooks are signature-verified before anything is processed.
- Billing events are idempotent, so a replayed event cannot double-apply.
- Payments are authoritative at the provider; entitlements are resolved by Perseids from the active workspace's subscription.
Secrets and transport
- All traffic is served over encrypted HTTPS.
- Service-role and provider credentials are held server-side and are never exposed to the browser bundle.
- Server-only modules are blocked from client builds at the bundler level.
What we do not claim
We describe controls we actually operate. Perseids does not currently hold ISO 27001 certification, a SOC 2 report, a GDPR certification or a published penetration-test certification, and we will not imply otherwise. When that changes, this page will say so with the report available on request.
Responsible disclosure
If you believe you have found a vulnerability, email security@perseids.ai with enough detail to reproduce it. Please give us a reasonable opportunity to investigate before public disclosure, and do not access, modify or exfiltrate data that is not yours. We will acknowledge reports and keep you updated on remediation.