Security
How Cala protects your data
Cala runs on your computer. Your documents, and everything Cala learns from them, stay there. We do not upload them and we do not store them on our servers. The parts that are not finished are named at the bottom of this page rather than left out.
Where each thing lives
| What it is | Where it lives | Uploaded to Cala |
|---|---|---|
| The documents you load | Your own disk | Never |
| Extracted knowledge, the model of your machine | Local SQLite database on your computer | Never |
| Chat history | Local SQLite database on your computer | Never |
| Investigations and exported reports | Local SQLite database, and the files you export | Never |
| Your email address | Cala’s servers | Yes, it is your account |
| Your plan and subscription state | Cala’s servers, and Stripe | Yes |
| Usage counters | Cala’s servers | Yes |
| Your spend-cap setting | Cala’s servers | Yes |
| Anything you email us | Our mailbox, for as long as the thread needs | Yes, you sent it |
There is no row for document content or chat content on the server side, because there is no table for it. Full detail of what is kept and for how long is in the privacy policy.
Local-first, and what that actually means
Extracted knowledge, chat history and investigation content live in a SQLite database on your own computer. They are not synced, not backed up to us, and not uploaded on any schedule. There is no setting that turns that on.
The consequence runs both ways, and the second half is the one people do not think about. We cannot lose your knowledge base, leak it, or hand it to anyone who asks for it, because we do not have it. We also cannot restore it for you if the disk fails. Back up your machine the way you back up the rest of your work.
Deleting your account removes what we hold. It does not touch the local database, because we never had a copy of it. Deleting the application and its data folder is what removes that.
What travels when you ask a question
To answer a question, your message and the specific pages being read are sent to the inference provider through Cala’s proxy, over TLS. They are not stored on our side. Anyone telling you that nothing at all leaves your machine is describing a product that cannot answer a question.
The proxy is a pass-through. It authenticates you, applies your plan limits and your spend cap, forwards the request and returns the response. Every third party that touches anything, what each one receives and where, is listed in the subprocessor register.
Where Cala stands on the material you load
Cala does not decide what you are allowed to load. It expects you to work inside the agreements and policies you are already bound by. That means your employment agreement, your customer and supplier agreements, any non-disclosure agreement, and any export control rule that applies to the documentation. Cala is not a way around any of them, and we do not position it as one. If your site has a review process for tools like this, put Cala through it. We would rather be assessed than waved in.
Because the content never reaches us, we cannot see what you have loaded and we cannot check this for you. That responsibility sits with the person loading the document. It is written into the acceptable use section of the terms, which also says when we would suspend an account over it.
Local-first is a security decision before it is a product decision. Equipment documentation is among the most sensitive material an engineer handles. The usual way an AI tool handles it is to copy it into a chat history in someone else’s data centre. It is kept there on their terms, outside your control. Cala runs on your computer. Your documents, and everything Cala learns from them, stay there. We do not upload them and we do not store them on our servers. For a security team, that removes a class of exposure rather than adding one.
The controls behind all of this
Transport encryption
Every connection is over TLS: the desktop app to Cala’s servers, this website to Cala’s servers, and the proxy onward to the inference provider. There is no plaintext endpoint to fall back to.
Row level security on every table
Row level security is enabled on every table in the Cala database, with policies keyed to the authenticated user id in the request. A signed-in client cannot construct a query that returns another user’s row, because the isolation is enforced by the database rather than by the application remembering to filter.
Operations that legitimately cross a user boundary, such as billing webhooks, run server-side behind a validated session and never with a client-held credential.
Server-side key handling
No inference provider key ships in the application. The desktop app authenticates to Cala’s own proxy with your session; the provider credential is held server-side as a function secret. Pulling the app apart yields no provider key, and a key can be rotated without shipping a new build.
The same applies to billing: the desktop app never holds a Stripe secret, and card details never reach Cala at all. They go to Stripe directly.
Sessions
Signing in on this website and signing in to the desktop app are separate sessions against the same account. Signing out of one does not sign out the other. Deleting the account ends both.
What Cala does not do today
These are current properties of the product, written here so you find out now rather than during an internal review.
- The local database is not separately encrypted
- Cala does not add its own encryption layer to the SQLite database on your machine today. It sits under your operating system full-disk encryption, like the rest of your work. If FileVault on macOS or BitLocker on Windows is off, turn it on before you load anything sensitive.
- Document content does reach an external provider
- To answer a question, the pages being read leave your machine. If your site policy forbids that outright, Cala does not meet it today.
- There is no on-prem version
- It does not exist yet, and there is no roadmap date to quote. If your policy allows no document content to reach an outside provider, Cala does not meet it today. Write in and tell us what your policy requires.
- The Windows build is unsigned
- It is a preview and is not code-signed yet, so you may see a SmartScreen warning on first launch. That is a real gap and it is being closed, not explained away.
What this page does not claim
There is no certification on this page, no audit report and no badge. Cala holds no SOC 2 report and no ISO certification, and describing itself as compliant with a regulation would be a claim nobody has assessed. When one of those exists it will appear as a document with a date on it.
What exists instead, live and versioned:
- The subprocessor register: every third party that processes anything, what it receives, and where.
- The privacy policy, including the retention schedule and how to exercise your rights.
- The intended use and AI disclosure statement, and its plain-language summary.
- A version history for all of them, so you can see what changed and when.
Reporting a problem
If you believe you have found a vulnerability, or you need answers for an internal security review, email support@calalayer.com and say so in the first line. Please do not include NDA’d document content in the message.
Data protection enquiries go to the privacy contact for Lumino Solution LLC: privacy@calalayer.com.
Cala's answers and extracted knowledge are AI-generated. Verify against the source documents and OEM procedures before acting.