Privacy Policy
VaultKeep is operated by MLI Technologies ("we", "us"), Halifax, Nova Scotia, Canada. This policy explains what personal data we handle when you use vaultkeep.dev and the VaultKeep service, and what your rights are. Questions go to support@vaultkeep.dev.
We have tried to write this in plain language. Where a sentence is precise for legal reasons, we say so.
The two kinds of data
There is an important distinction in how VaultKeep handles data:
- Account and usage data — your email address, organization settings, project metadata, billing records and logs. For this data we are the controller: we decide what to collect and why.
- Your backup contents — the database rows and Storage files inside the backups we take on your instructions. For this data you are the controller and we are a processor: we only act on your instructions (the schedules and restores you configure), and we never look inside it. Backup contents are encrypted before they are written to storage, with a key that is itself encrypted; see Security.
What we collect and why
| Data | Why | Legal basis (GDPR) |
|---|---|---|
| Email address | Sign-in by magic link; alerts about failed backups and verifications; billing receipts | Performance of the contract |
| Organization name, members and roles, invitations | Running your account and team access | Performance of the contract |
| Project name, Supabase project reference, Postgres major version, Storage region | Connecting and identifying your projects | Performance of the contract |
| Database connection string and Storage access keys | Taking backups and running restores on your instruction. Stored sealed with AES-256-GCM; read only by the backup runner at job time, and every read is logged | Performance of the contract |
| Credentials for a storage destination you add (S3, Azure, etc.) | Writing backups to your own bucket, if you choose to | Performance of the contract |
| Backup manifests: table names, row counts, object names and sizes, hashes | Verifying that backups restore correctly | Performance of the contract |
| Audit log: who did what and when (including credential reads by the runner) | Security, and evidence for your own audits | Legitimate interest (security); performance of the contract |
| Billing details via Stripe: name, email, plan, invoices. Card numbers never reach our servers | Charging for paid plans | Performance of the contract; legal obligation (tax and accounting) |
| Technical logs: IP address, user agent, request path, timestamps, error details | Operating and securing the service, rate-limiting sign-in | Legitimate interest |
| Emails you send us | Support | Legitimate interest |
We do not buy data about you, and we do not sell or rent personal data to anyone.
Cookies
We use one cookie, vk_session, which keeps you signed in. It is strictly necessary and contains no tracking. If we add analytics, it will be Cloudflare Web Analytics, which does not use cookies or track individuals. If you enable the optional Turnstile bot check, Cloudflare may set its own cookies on that widget; see Cloudflare's privacy policy.
We do not use advertising cookies or third-party trackers.
Where data is stored and who processes it
VaultKeep runs on Cloudflare's network. Our sub-processors are:
| Sub-processor | Purpose | Location |
|---|---|---|
| Cloudflare, Inc. | Hosting (Workers, D1, Containers), backup storage (R2), email delivery, bot protection | Global network; data at rest in Cloudflare's storage regions |
| Stripe, Inc. | Payments and invoicing | United States and EU |
| Resend, Inc. | Transactional email (used where Cloudflare's email service is not enabled) | United States |
If you configure your own backup destination (for example an Amazon S3 or Azure bucket), that provider processes your encrypted backups under your agreement with them, not ours.
Transfers outside the EEA/UK rely on the providers' standard contractual clauses. We will update this list when a sub-processor changes; email us if you want to be notified of changes.
How long we keep it
| Data | Retention |
|---|---|
| Backups | For the retention period you configure, capped by your plan (7, 30 or 90 days). Expired backups are deleted and their encryption key is destroyed nightly |
| Credentials | Until you replace them, remove the project, or delete your organization; then the ciphertext is destroyed immediately |
| Audit log | While your organization exists, and for 90 days after you delete it |
| Account and organization data | Until you delete your organization. Deletion destroys credentials at once and queues every backup artifact for removal |
| Billing records | As long as tax and accounting law requires (typically 7–10 years), at Stripe and in our exports |
| Technical logs | Up to 30 days |
| Support emails | Up to 2 years |
Security
The short version, with the technical details on the security page: backups are streamed through AES-256-GCM before they are stored; each backup has its own key, wrapped by a master key that the web application cannot read; credentials are sealed the moment they arrive and are only opened by the isolated job runner, with every read written to an append-only audit log; the runner and the web application run in separate trust domains; and restores only ever target an empty database you designate.
No system is perfectly secure. If we discover a breach affecting your personal data we will notify you without undue delay and, where required, within 72 hours of becoming aware.
Your rights
Depending on where you live (GDPR, UK GDPR, CCPA/CPRA and similar laws) you can ask us to:
- Access the personal data we hold about you, and get a copy (your audit log is exportable as CSV from the app).
- Correct it: your email and organization details are editable in Settings.
- Delete it: deleting your organization in Settings removes your projects, credentials and backups; email us to delete the account itself.
- Restrict or object to processing based on legitimate interest.
- Port your data: backups are in standard
pg_dumpformat and can be restored anywhere. - Complain to your data-protection authority. We would rather hear from you first.
Email support@vaultkeep.dev. We answer within 30 days and never charge for these requests.
Children
VaultKeep is for businesses and developers and is not directed at anyone under 16. We do not knowingly collect data from children.
Changes
When we change this policy we update the effective date above and, for material changes, email account owners at least 14 days before they take effect.
Contact
MLI Technologies · Halifax, Nova Scotia, Canada · support@vaultkeep.dev