ChatOTL logoChatOTLSign in

Secure AI chat, explained control by control

Secure AI chat means authorisation is enforced server-side for every read and write, credentials are isolated per account, and file access is time-limited. ChatOTL implements all three with database row-level security, per-account provider keys, and signed URLs into a private storage bucket.

"Secure" is only meaningful when someone lists the controls. Here are the ones ChatOTL actually implements, and the ones it doesn't claim.

Authorisation

Conversations, messages, user settings, uploaded files and role assignments each carry an owner. Database policies evaluate the caller's identity on every query, so a client that asks for someone else's row simply receives nothing. Roles live in a dedicated table checked by a security-definer function, which keeps privilege escalation off the table.

Credentials

Provider API keys are stored per account and read only by the server when it builds a request. Nothing about another user's configuration is reachable from your session.

File handling

Uploads are written under a path prefixed with your user ID inside a private bucket. The server validates that any attachment URL it forwards to a model points at your own storage path before the request goes out, and signed URLs expire shortly after issue.

Verification

Cross-account access is covered by an automated test suite that attempts to read another user's conversations, messages, files and settings, and asserts that each attempt fails.

Out of scope

  • Hosted model providers process the prompts you send them under their own terms.
  • ChatOTL does not offer end-to-end encryption where the server cannot read message content.
  • Operators of a self-hosted deployment have infrastructure-level access, as with any self-hosted software.

Frequently asked questions

Is data encrypted at rest?

Yes — the managed database and storage layer encrypt data at rest, and all traffic runs over TLS. The stronger guarantee is the authorisation layer described above.

Can I avoid third-party providers entirely?

Point ChatOTL at a self-hosted OpenAI-compatible endpoint. Prompts then stay inside your own network.

How do agent integrations stay secure?

The MCP server requires OAuth. Every tool call runs as your authenticated user, so the same row-level rules apply to agents as to the web app.

What is logged?

Operational data — usage counts, provider errors and health — for the owner dashboard. Conversation content is not part of those reports.

Review it yourself

The access rules and their tests ship with the project. Read them, then try the workspace.

Create an account

Related pages