logo

Data Privacy & Security Report

πŸ”°
We take data privacy and security seriously. We are SOC 2 Type 2 certified, GDPR and HIPAA Compliant. If you would like to request any security-related documents, please contact support@typingmind.com, we’re happy to help.

Overview

Typing Mind CustomΒ is a software that provides a secure and private ChatGPT interface for teams.
This page will go through the details of Data Privacy and Security in Typing Mind Custom and compare our Cloud-host and Self-host versions.

How it works

Here is how you use Typing Mind Custom:
  • Setup a newΒ Typing Mind CustomΒ chat instance with your white-labeled branding
  • Connect to your favorite AI provider (ChatGPT, Claude, Gemini, etc.)
  • Customize the chat instance (custom domain, add prompts, plugins, etc.)
  • Share the chat interface with your team for use internally.
  • Your team member start using AI via the chat interface and boost their productivity.

Cloud-host and Self-host

We offer theΒ Typing Mind CustomΒ on our cloud server atΒ https://custom.typingmind.comΒ (US and EU data center available).
The Self-host version is also available for teams that prefer to run the software on their own server. More information about theΒ self-host version is available here.

Definitions

  • Chat Instance:Β The chat interface is set up to be used by one team. When you register on our cloud, you will create a new chat instance. You can create multiple instances for different purposes. Each instance has a separate environment and data: members, chats, prompts, plugins, chat preferences, themes, etc. A self-host setup can be configured to create multiple instances if needed.
  • Admin Users:Β the people who create and set up chat instances. Admin users have access to the Admin Panel, where they can customize their chat instance (name, tagline, logo, API key, etc.) and invite members. One instance may have multiple admin users.
  • End Users:Β the people who use the chat instance after being invited by the Admin Users. Some chat instances can be set up so that end users can register an account by themselves without waiting to be invited. End users can use all features available in the chat interface (as enabled by the admin users), like sending messages, creating prompts, adding AI characters, sharing/searching chat, etc.
  • The system:Β in the context of this article,Β The SystemΒ refers to the infrastructure of the Typing Mind Custom software.
  • AI Service: (or AI Provider) is the service that hosts the AI model. Typing Mind Custom will connect to the AI provider via API using the API Key (provided by the admin user) to get the AI response for the end users.
  • Knowledge Database: the service that hosts and process the training data, ofter involve tokenizing, chunking, and querying the data from a vector database. Typing Mind Custom will connect to the Knowledge Base Provider via API to query for relevant training data to serve the end users.
πŸ’‘
In the Self-host version of Typing Mind Custom, we do not offer the Knowledge Database components built-in yet. If you want to use the training data feature of Typing Mind Custom in the self-host environment, you will need to setup the Knowledge Database on your own and integrate it with Typing Mind Custom separately. We have built-in support for some Knowledge Database providers that will make this process easier, please contact us for more details.

The system

Minimal setup for Typing Mind Custom self-host.
Minimal setup for Typing Mind Custom self-host.
In theΒ self-host versionΒ of TypingMind Custom, there are two main components:
  • The app server (NodeJS app): this is where the data is received and processed.
  • The app database (MySQL database): this is where the data is securely stored.
Other optional parts of the system may include proxy servers, custom DNS servers, firewalls, backup app servers, backup databases, load balancers, etc.
Note that the system does not include an LLM model or an AI provider. Typing Mind Custom only provides the chat interface and the management system around it.
After setting up the system, you will need to connect it to an AI provider. This can be OpenAI’s ChatGPT, Claude, Gemini, or a private LLM model that you run in your infrastructure.

Types of data

When using the chat interface, here are the types of data that the End Users will enter into the system.
  • Email:Β Collect only when the user login is to authenticate the end user. If the chat instance has a Single Sign-On or External Authentication setup, the end user will not need to enter their email.
  • Chat Messages:Β when the user starts sending messages to the AI.
  • Prompts, AI characters, Plugins:Β the user can create their personal prompt library for convenience. These
  • User preferences:Β things like dark/light mode, font size, bookmarks, tags, etc., that help make the user experience better.
  • Training data: Uploaded documents (PDF, CSV, etc.) and connected online data sources (Notion, Google Drive, etc.)

Data flow

The flow of data from when it is created, where it is sent, and stored.

Self-host version

We assume the minimal setup with only the App Server and App Database, with no proxy and logging in between.
Type of data
Created/Collected where?
Sent where?
Stored where?
Email
When the user login or when the Admin User sends the invitation
Only to the App Server
Only in the App Database
Chat Messages
Created when the user starts sending messages in the chat interface
Send to the App Server, then to the AI Service Provider.
Only in the App Database
Prompts, AI characters, Plugins
When user use the corresponding feature on the chat interface
Send to the App Server, may send to the AI Service Provider when the user want to use the prompt for a specific chat.
Only in the App Database
User preferences
When user use the corresponding feature on the chat interface
Only to the App Server
Only in the App Database
Training data
When the user upload training documents or connect to online training data sources.
Send to Knowledge Database for processing and chunking
Store in Knowledge Database
Here is a sequence diagram from when the end user sends a message to when they receive a response:
Image without caption
In the β€œPrepare message” step, the user message will be processed before sending the final message to the AI service provider. The processing logic may include the following:
  • Adding relevant training data (retrieval augmented generation technique) and context.
  • Combining system prompts, AI character’s instructions, training messages (if any)
  • Other proprietary prompting techniques to improve the performance and the quality of the AI response.

Cloud-host version

On the cloud server, the data flow is exactly the same as the the self-host version. Here are the details of the services we used in our cloud host:
  • App Database: Amazon Web Services
Additional services we use to ensure our cloud server is running smoothly with high availability and minimal downtime:
  • DNS: Cloudflare.com
  • Logging: Axiom.co

Encryptions

All communication between servers and external services is encrypted while in transit via HTTPS.
In the self-host version, we highly recommend setting up your database with proper disk encryption to ensure the data is also encrypted at rest, preventing unwanted data access.
On our cloud, the app database is hosted by our service provider AWS, who ensures all data communications are AES encrypted throughout the AWS platform both in transit and at rest.
Note that we do not provide end-to-end encryption features to the end users. This means while the users’ messages are transmitted and stored securely between servers and external services (no man-in-the-middle attack is possible), the servers and external services themselves can still read the user data. This is necessary for many reasons, the most obvious being that AI service providers need to read the user message in order to generate an answer for the user.

External services

While we can provide a detailed description of the data flow of the Typing Mind Custom software, we cannot guarantee the same for external services you may use in your self-host setup.
If you use any external services in your setup, make sure to check their privacy policy and security carefully.
AI Service Providers like OpenAI ChatGPT and Anthropic Claude guarantee that your data, when used via API key (e.g., use via Typing Mind Custom), will not be used for model training. If you use another AI Service Provider, make sure to check their corresponding privacy notice.
If you are using Microsoft Azure, we recommend checking out Azure OpenAI, which is a great AI Service Provider that can be set up within a private network, is suitable for privacy-sensitive scenarios, and works perfectly with Typing Mind Custom self-host. We have many customers successfully working with this setup.

Common setups for self-host

Below are some example setups with Typing Mind Custom self-host for your reference.

Self-host with external LLM providers

Image without caption

Self-host with internal LLM providers

Image without caption