Security and data protection

What is stored, where it goes, and who can see it

A plain account of how Uliasti Chat handles your content and your visitors' questions. Written from the system as it is, not from a template.

The short version

  • The assistant answers only from content you provide. It has no web access and no general-knowledge fallback.
  • Each client has its own knowledge base, settings, users and conversation history. Every database query is scoped to one client.
  • Visitor questions and answers are stored so you can review them. The visitor's IP address is not stored with the conversation.
  • Passages from your content and the visitor's question are sent to Anthropic's Claude API to write the answer. Nothing is sent anywhere else.
  • Embeddings, the index behind the search, are computed on our own server with an open-source model. No third party sees your documents for that.
  • Admins sign in with one-time email codes. Credentials for connected sources are stored encrypted.

What the widget sends

When a visitor asks a question, the widget sends three things to our server: the message, your client identifier, and a random session identifier generated in the visitor's browser so the conversation has a thread. No cookies are set on your website by the widget, and no visitor account exists.

What is stored

DataStoredWhy
Your website pages and documentsAs text passages with embeddings, per clientThis is the knowledge base the assistant answers from
Original uploaded filesNot stored; the text is extracted and the file discardedOnly the text is needed for answers
Client logosIn object storage, public, so the widget can display themShown in the chat header
Visitor questions and answersPer session, with language and answer outcomeSo you can review conversations and find gaps
Visitor IP address and browserOnly for sessions flagged for abuse, for admin reviewNot kept for normal conversations
Admin accountsEmail, name, role, client, last loginAccess control
Connector credentialsEncrypted with AES-256-GCMNeeded to sync connected sources

Where it is processed

The application and its database run on a virtual server at DigitalOcean. Logo files are stored in DigitalOcean Spaces in Frankfurt, Germany.

Answer generation uses Anthropic's Claude models through their API. For each question, the relevant passages of your content, the question and the recent turns of that conversation are sent to Anthropic, and the written answer comes back. Embeddings are computed on our own server and never leave it.

Separation between clients

Each client has its own knowledge base, settings and users; nothing is shared between themClient AKnowledge baseWidget settings, brandingUsers, chat historyclient_id on every rowClient BKnowledge baseWidget settings, brandingUsers, chat historyclient_id on every rowClient CKnowledge baseWidget settings, brandingUsers, chat historyclient_id on every rowOne platform. Every query is scoped to the client it belongs to.
Every row in the database carries a client identifier, and every query filters on it. A client user can only reach their own client, enforced before any page or API responds.

Access

  • Admins sign in with a six-digit code sent to their email address, valid for ten minutes. There are no passwords.
  • Sessions are signed cookies, HTTP-only and limited to seven days.
  • New users are invited by an existing admin. There is no self-registration.
  • Client users see only their own client. Platform admins at Uliasti can see all clients in order to set them up and support them.

Abuse and misuse

  • Requests are rate-limited per session and per IP address.
  • Messages are checked for prompt-injection patterns, such as attempts to reveal instructions or change the assistant's role. A hit flags the session for review and alerts us by email; it does not block the visitor.
  • The assistant has no access to your systems, so there is nothing for a malicious visitor to reach through it.

Transport

The site and the widget are served over HTTPS. The widget script loads from chat.uliasti.com and talks only to that host.

Deletion

  • Removing a document or an imported site deletes its passages immediately. Deleting a client deletes everything that belongs to it.

Your responsibilities

The assistant shows what you give it. Do not import documents that contain personal data not meant for the public, and keep your widget's privacy note current. See how to prepare your content.

Questions

Write to hello@uliasti.com. We answer security questionnaires and can walk your IT team through the setup.

Questions for your IT or compliance team?

We are happy to go through the setup in detail, with the people who need to sign it off.