Security
Last updated July 11, 2026
Single front door
All reads and writes go through the Self Gateway. The database, vector store, knowledge graph, and blob storage are private and never exposed directly to the browser or to agents.
Authentication
Owners authenticate with Google and act only under a verified session (JWT); the owner is always resolved from the verified token, never from the request body.
Row-Level Security
Row-Level Security is enabled on every table and keyed to the authenticated owner; privileged server paths additionally filter by owner in code, so the service role can never cross owners.
Server-side secrets
Owner keys are stored with envelope encryption (a per-owner data key wrapped by a Key Vault/KMS master key) and decrypted only inside Edge Functions. The ciphertext is bound to the owner id, so it cannot be decrypted under another owner.
Scoped agent tokens
Agent tokens are random secrets stored only as a SHA-256 hash. Each is scoped (read/write, and optionally to specific unit types), rate-limited per minute, individually revocable, and attributed in the audit log on every call.
Untrusted input
Ingested content is treated as data, never as instructions, to defend against prompt injection. Inputs are validated at the Edge boundary, and HTML is reduced to text before processing.
No autonomous external actions
The service only ingests and grows your memory and serves it back. It never takes external write-actions on your behalf; any action is taken by an agent you explicitly authorized.
Questions about this page? Contact Debajyoti Saikia.