Security
Last updated: October 21, 2026
This page describes how HONED protects the data you upload and the models you train, where that data goes, how long it stays and how to report a problem. It describes controls that are in place today, not a certification we do not have.
1. Where your data goes
| Data | Where | How long |
|---|---|---|
| Uploaded files | Cloudflare R2, EU jurisdiction | Deleted after use, at the latest after 7 days |
| Datasets, test sets, calls | PlanetScale, Frankfurt, sealed with AES-256-GCM per account | Until you delete the model; call inputs and outputs 30 days by default |
| Our functions, jobs and sandboxes | Vercel, Frankfurt | Only while a job runs |
| Questions, data writing, labeling, comparison models | Model providers in EU regions, through AI Gateway, no training | As long as the provider's terms allow |
| Training and running your model | Thinking Machines (Tinker), USA and global, no training on your data | Weights deleted with the model |
| Sign-in and account | Clerk, USA | Until you delete your account |
Everything HONED runs itself, and every model it calls through AI Gateway, is in the EU. A model without an EU provider is not offered. Two parts are not in the EU and we say so: training and running your model at Thinking Machines, and sign-in at Clerk. Model providers never receive your account identity.
2. Encryption
- TLS 1.2 or newer for every connection; HSTS with a two-year lifetime and preload.
- Datasets, test sets and the input, output and correction of every call are sealed with AES-256-GCM before they reach the database. Each value is bound to its owner and purpose as associated data, so a copy of one tenant's ciphertext cannot be decrypted inside another tenant's row.
- Keys are 256-bit, generated at random and kept outside the database. The key ring supports rotation: new writes use the newest key and older rows stay readable.
- API keys are stored only as SHA-256 hashes; the full key is shown once and cannot be recovered.
- Upload and download links are signed for 10 minutes and bound to one object, one content type and one byte size.
PlanetScale and Cloudflare also encrypt the database and object storage at rest, in addition to the encryption HONED applies itself.
3. Isolation and access
- Every query is scoped to the signed-in account; there is no shared view of customer data.
- Training and data writing run in isolated sandboxes. A training sandbox can reach only Thinking Machines and the package and tokenizer hosts it installs from; a data-writing sandbox can reach only AI Gateway. Provider keys never enter a sandbox: the sandbox firewall adds them, and only for the one model that job may use.
- API access uses per-account keys with a limit of 60 requests per minute per key and 600 per account, revocable at any time.
- Expensive actions are limited per account per minute and per day, and at most two builds and two trainings run at once per account.
- Deleting data or an account requires typing the word delete; the server checks the same word again. Cross-site requests that change data are refused.
- Security-relevant events are recorded without content and with only the network prefix of an IP address. You see your own in Settings.
- Administrative screens check the administrator on every page and action, are separate from the product and are not indexed.
- Browser protections: a Content Security Policy that allows only our own origin, Clerk and Cloudflare Turnstile; framing is refused.
4. How long data stays
- Uploaded files: deleted when training or evaluation uses them, and at the latest 7 days after upload.
- Datasets, models and evaluations: until you delete the model or your account.
- Inputs and outputs of calls: 30 days by default; in Settings you choose none, 30 or 90 days. Corrected calls stay as training data until you delete the model.
- Trained weights: deleted at Thinking Machines through its API when you delete the model or your account. Thinking Machines may keep backups for the period its terms allow.
- Rate-limit counters: 2 days. Security events: 180 days. Invite records: 2 years. Usage records: until you delete your account.
5. Subprocessors and transfers
| Company | Location | Purpose |
|---|---|---|
| Vercel Inc. | EU (Frankfurt) | Hosting, server functions, background jobs, the sandboxes that write data and run training, and the AI Gateway that routes model requests. |
| Model providers through Vercel AI Gateway | EU regions | Anthropic, Google and OpenAI models, run by providers such as AWS Bedrock and Google Vertex AI in EU regions: clarifying questions, writing and labeling training data, and the comparison models of an evaluation. None of them may train on the requests. |
| Thinking Machines Lab, Inc. (Tinker) | USA and global | Training your models and running them. Receives training data, test data and the inputs of calls to your model. Its own subprocessors include Google Cloud, Cloudflare, WorkOS and OpenAI's moderation API. It does not train on customer content. |
| PlanetScale, Inc. | EU (Frankfurt, AWS) | Database. Datasets, test sets and calls are stored encrypted with AES-256-GCM. |
| Cloudflare, Inc. (R2) | EU jurisdiction | Storage of uploaded files until they are deleted. |
| Clerk, Inc. | USA | Sign-in, accounts, sessions and email codes. Clerk does not offer storage in the EU. |
Transfers and any access from outside the EEA rely on:
- Vercel Inc.: US company: EU–US Data Privacy Framework (certified) and Standard Contractual Clauses.
- Model providers through Vercel AI Gateway: Inference runs in the EU. The providers are US companies: Data Privacy Framework or Standard Contractual Clauses for any access from the USA.
- Thinking Machines Lab, Inc. (Tinker): Standard Contractual Clauses (Module 2) in its data processing agreement.
- PlanetScale, Inc.: Stored in the EU. US company: Data Privacy Framework (certified) and Standard Contractual Clauses for support access.
- Cloudflare, Inc. (R2): Stored in the EU under R2's EU jurisdiction. US company: Data Privacy Framework (certified).
- Clerk, Inc.: EU–US Data Privacy Framework (certified), Standard Contractual Clauses as fallback.
Changes to this list, newest first. Customers also get an email at least 14 days before a change takes effect.
- October 21, 2026: Vercel functions, background jobs and sandboxes moved to Frankfurt; model providers now run inference in EU regions; Inception (Mercury) is no longer used.
6. EU AI Act
Fine-tuning with LoRA uses far less than a third of the compute that trained the base model, so neither HONED nor its customers become providers of a general-purpose AI model by training here. Answers in Try say that they are generated by AI, and every API answer is marked as AI-generated in a machine-readable way: an AI-Generated: true header and an ai_generated field.
7. What we do not claim yet
HONED has no SOC 2 report, no ISO 27001 certificate and no penetration-test attestation to show you today. We publish this page instead of a badge we have not earned. If your procurement needs a specific document, write to us. We send our transfer impact assessment, records of processing, technical and organisational measures and a DPIA template on request, and tell you exactly what exists and what does not.
8. GDPR
Our Data Processing Agreement is part of the Terms and covers Article 28. It lists subprocessors, a 14-day notice before changes, breach notification within 48 hours, audit rights and deletion. You can export every record we hold as a ZIP of JSON files and delete it from Settings; deleting your account removes the rows, the stored files, the trained weights and the sign-in.
9. Reporting a vulnerability
Write to kustec.filip@icloud.com with steps to reproduce. We acknowledge within two business days, tell you what we found, and credit you if you want. We will not pursue legal action for good-faith research that stays inside your own account, avoids other users' data and does not degrade the service. Please do not run automated scanners against production; ask us for a test account instead.
A machine-readable copy of this contact is at /.well-known/security.txt.
10. Contact
Filip Kustec · kustec.filip@icloud.com