Security
RabbitSync writes to systems your business runs on. This is how it handles your records, the access you grant it, and what protects both.
Your records pass through, not stored.
A sync reads records from one app, compares them with the other, and writes the changes, in memory. Their contents are not stored in our databases.
What we keep
- Record identifiers, and one-way hash fingerprints of record content to tell what changed
- The names and types of the fields you map
- Run history: counts, timings and error codes
- Access tokens for your connected apps, encrypted separately from the database
What we never keep
- Record contents
- Conflicting values: a conflict records which field, never what was in it
What protects it.
Protecting data
- Encryption
- TLS in transit. Every database and backup is encrypted at rest, and app tokens are envelope-encrypted with keys kept outside the database.
- Tenant isolation
- Each account's data is separated in the database by row-level security, enforced for the application's own role.
- Backups
- Automated backups with point-in-time recovery, and restores that are tested.
Controlling access
- Sign-in
- Through Clerk. RabbitSync never sees or stores a password.
- Least privilege
- Services and staff get only the access they need. Production access is limited to the people who operate it, with multi-factor authentication and no shared credentials.
- Network
- Databases and internal services are not reachable from the internet. Public traffic passes through Cloudflare's firewall, bot protection and rate limiting.
Operating safely
- Logging
- Security events are logged without record content, kept for 90 days and monitored with alerts.
- Development
- Every change is code reviewed and checked against the passthrough rule. Dependencies and containers are scanned, and secrets live in a secrets manager.
- Incidents
- A documented process to detect, contain and investigate a breach, and to notify affected customers within 48 hours of becoming aware of it.
The access you grant
You connect your apps through their own sign-in screens. In Notion you choose which pages and databases RabbitSync may reach, and it reads and writes only those. Google data is used only for the syncs you set up, under Google's Limited Use requirements. Disconnect an app in the console, or remove RabbitSync in your Google Account or Notion settings, and our access stops.
What the AI sees
The mapping agent receives the names and types of your databases, sheets and fields, never record values. Our AI providers process that under terms that forbid training their models on it, and we do not use your data to train any model either.
Report a vulnerability
Write to [email protected]. The same address is in our security.txt. Please don't use the contact form or support for a security report.