Security and data handling
How AACSearch keeps each customer's data separate, protects keys and limits what any single request can do. Every control below names the code that implements it.
Tenant isolation
Each index is a separate collection, and every query carries a server-side organisation filter that callers cannot override.
packages/search-engine/search.ts · scopeFilterAPI keys stored hashed
Keys are shown once and stored as SHA-256 hashes. They can expire, be rotated with a grace period, or be revoked.
packages/api/lib/search/api-keys.tsEnterprise OIDC SSO
Enterprise organisations can sign in through their OIDC identity provider after verifying an email domain. SAML is not available yet; every sign-in is plan-gated so a downgrade revokes IdP access at once.
packages/auth/lib/sso-gate.tsNo keys in the browser
The widget uses short-lived session tokens (15 minutes by default, one hour at most) minted on your server and limited to searching one index.
packages/api/lib/search/embed-token.tsDocument-level access
Documents can carry an access list; results, counts and facets are filtered before they are computed, so hidden documents do not leak through totals.
packages/search-engine/search.ts · withAclFilterSafe crawling
Crawlers and connectors only fetch public http(s) addresses and re-check every redirect, so they cannot be pointed at internal networks.
packages/api/lib/search/safe-fetch.tsRate limits
Per-key limits on every API endpoint and per-IP limits on public endpoints such as the widget and health checks.
packages/api/lib/search/ip-rate-limit.tsErrors that reveal nothing
Public error codes and messages never include engine internals, stack traces or other customers' identifiers.
packages/api/lib/search/privacy.tsAudit log
Administrative changes — keys, rules, experiments, connectors, purges — are recorded with actor and time.
packages/api/lib/search/audit.tsExport and deletion
An organisation can export its data and delete all of it, including indexes, documents, logs and graphs.
GET /organization/export, DELETE /organization/dataNot yet available
So you can plan around it:
- No SOC 2 or ISO 27001 certification yet.
- Customer-selectable data residency is not available; ask us where your data is hosted.
Report a vulnerability
If you find a security issue, contact us with details and steps to reproduce. Please don't test against other customers' data.
Contact security