Security
Built for manuscripts nobody has read yet
An unpublished book is the most sensitive thing an author owns. Here is exactly how it is protected.
Encryption
TLS 1.2+ in transit, AES-256 at rest for stored objects and database volumes, and AES-256-GCM envelope encryption for customer OpenAI keys.
Authentication
Email and password with verified addresses, Google sign-in, secure password reset, and short-lived bearer sessions validated on every privileged request.
Authorisation
Row-level security on every user-owned table. Roles are held in a dedicated table and evaluated by a security-definer function, so privileges can never be escalated from the client.
Rate limiting
Per-account request ceilings on analysis and upload endpoints, with plan-aware quotas that reject rather than queue abusive volume.
Input validation
Every server entry point validates its payload against a schema before touching the database. File uploads are checked for extension, declared type and size.
File security
Private bucket, per-user path policies, no public URLs, and mandatory expiry seven days after upload.
Audit logging
Administrative and security-relevant actions are written to an append-only audit log readable only by administrators.
Privacy
Manuscripts are processed under the customer's own OpenAI account, never used to train models, and permanently deleted on a fixed seven-day schedule.
Reporting a vulnerability
If you believe you have found a security issue, email us with the details and steps to reproduce. We acknowledge reports within two business days and will keep you updated until the issue is resolved. Please do not disclose publicly before we have responded.