Deployment options and data security¶
Colleag runs three ways. The same product in all three — what differs is where the servers stand, whose cloud they sit in, and who holds the keys.
This page is written for IT and for whoever has to approve that the company's product data goes into the system. To connect your ERP, start at Integrations and your ERP. To review the secure connector specifically, read Connector security.
The three options¶
-
Colleag runs the platform in Azure in Sweden and handles operations, updates and backups.
-
The whole platform in one resource group in your subscription, with a scoped role for Colleag.
-
On your hardware, behind your firewall. It can run with no internet connection at all.
Where your data ends up comes down to three things: where the files live, where the database runs, and which models read your text. Read the table from left to right — the further right, the less leaves your network.
| SaaS | In your Azure | On-premises | |
|---|---|---|---|
| Where the platform runs | Colleag's Azure, Sweden (Sweden Central) | Your own Azure subscription | Your hardware, your network |
| Where documents live | Colleag's Git service, or your GitHub organisation | Your GitHub organisation | Self-hosted Git on your side |
| Database | Colleag's PostgreSQL | PostgreSQL in your subscription | PostgreSQL on your side |
| Language model | Anthropic via Colleag | Your models, e.g. Azure OpenAI in your subscription | Local models, or your own API account |
| Embedding model (search) | Azure OpenAI within the EU, via Colleag | Azure OpenAI in your subscription | A local model, or keyword search only |
| Secrets | Colleag's Key Vault | Your Key Vault | Your secret store |
| Sign-in | Colleag's Entra External ID | Your Entra ID | Your directory |
| Who operates it | Colleag | Colleag, with a scoped role on one resource group | You |
| Outbound connectivity required | Yes | Yes | No — can run fully disconnected |
SaaS¶
The platform runs in Colleag's Azure environment in Sweden. You sign in; we handle operations, updates and backups.
- Runs in Sweden (Sweden Central)
- Each organisation isolated in every query
- Backups with 35 days of history
- Your data is never used to train a model
For IT: what protects your data
- Per-organisation isolation. Every row in the database carries its organisation's id, and the API takes the organisation from the signed sign-in token — never from anything a user can edit in an address bar. A request aimed at another organisation's resource answers "not found", not "denied".
- Encryption. TLS in transit. Stored ERP and Git credentials are encrypted with Fernet (AES-128-CBC with HMAC-SHA256) and the key lives in Key Vault, not in the code. Disks are encrypted by Azure.
- Backups. The database is backed up automatically with 35 days of history. Operational logs are kept for 30 days.
- No model training. Your data is not used to train or fine-tune language models.
- Deletion. You own the content. We delete it when you ask.
What you should know
Colleag's operations staff have technical access to the platform in order to run it — unavoidable in an operated service. That access goes through the Azure resources rather than a back door in the product, and every Azure sign-in is logged there. If you need that possibility removed as well, the other two options are the answer.
In your Azure¶
The whole platform is installed in your own Azure subscription. Colleag gets a scoped role on that single resource group to install and update it, and nothing else in your tenant.
- Database, search index, files and Key Vault in your subscription
- Secrets created in your vault, never at Colleag
- Your Entra ID, conditional access and MFA
- Documents in your own GitHub organisation
For IT: what moves into your subscription
- All storage becomes yours. Database, search index, files and Key Vault sit in your subscription, under your rules for backup, encryption and networking.
- Your secrets are born with you. Database password, encryption key, session secrets and ERP credentials are created in your vault at install time and have never existed at Colleag.
- Your sign-in. Your Entra ID, your conditional access, your MFA.
- Your models. Wire in Azure OpenAI in your own subscription and neither prompts nor answers leave your tenant.
- Your documents. The content is ordinary Markdown and YAML files in your own GitHub organisation. Stop using Colleag and you are left with a readable archive, not an export problem.
What still comes from Colleag
The software, as images we publish to your registry, and Colleag's GitHub app identity, which lets the platform read and write in your repositories. No other customer's data exists in your installation, and yours does not exist in ours.
On-premises¶
Colleag runs on your hardware, behind your firewall, with self-hosted Git and local language models. It can run with no internet connection at all.
- Nothing leaves the building — not documents, not questions, not answers.
- You own the servers, the backups and the keys. No Colleag secrets exist in the installation.
- You apply the updates, because we cannot reach the environment.
- The model choice becomes yours: whatever your hardware can run, or your own API account if you allow outbound traffic.
This is the cleanest separation and, at the same time, the option that asks the most of your own IT.
The search index¶
So that colleagues find the right passage, Colleag keeps a search index. Each document is split into sections of roughly a page, and each section gets two entries: a keyword index computed in the database, and an embedding — a list of numbers describing the content — which lets colleagues find the right section even when the words in a question differ from the words in the document.
flowchart LR
D["Document saved"] --> S["Split into sections<br/>of about a page"]
S --> K["Keyword index<br/>computed in the database"]
S --> E["Embedding<br/>from the embedding model"]
K --> DB[("Database")]
E --> DB
The embedding is computed by an embedding model that reads the section's text: Azure OpenAI within the EU in SaaS, your Azure OpenAI in your Azure, and a local model on-premises. Without an embedding model, keyword search still works.
- It lives in the database, next to everything else Colleag stores, so it follows the option you choose.
- It is a copy. Every entry is derived from your files, so the index can be dropped and rebuilt at any time. Nothing exists only in the index.
- It is current. A saved document is searchable within seconds, and only changed documents are re-embedded.
- It covers text, not originals. An imported PDF or Word file is searchable through the text extracted from it.
- It is scoped to your organisation. Search only ever sees your own documents.
Combining the options¶
Your documents are plain files in Git in all three options, so moving between them means moving the repository. Nothing is exported or converted, and the search index is rebuilt in the new place. That makes two patterns possible:
-
Step by step
Start in SaaS with a non-sensitive product, move to your own Azure when IT wants everything in the company's cloud, and put protected products on a local server.
-
Side by side
Civil products in SaaS or your Azure, protected and export-controlled products on a local server. The two installations have their own users, database and index, and no connection between them.
For Monitor, the same thinking applies within the ERP: see Limiting what Colleag sees with Monitor companies.
Who can see your data¶
Whichever option you choose, the same three levels apply inside the product.
-
Your users
Their role decides what a signed-in person reaches: read, write, administer. External participants can be invited as stakeholders with access only to what has been marked customer-visible. Every sign-in is logged.
-
Other customers: never
Data is separated per organisation in every database query and every file path. A connector to your ERP is bound to your organisation and its own port; it cannot be reached from any other customer's account.
-
Colleag
In SaaS, operations staff have technical access to the platform in order to run it. In your Azure, Colleag holds a scoped role on the resource group and no access to the content itself. On a local server, Colleag has no access at all.
-
The language model
What you ask, and the document extracts needed to answer it, go to the language model the deployment uses. In SaaS that is Anthropic, and your data is not used for training. In the other two you choose the provider yourself — or run the model locally.
What we do not have yet¶
Honesty is easier to trust than a list of ticks:
- We are not ISO 27001 or SOC 2 certified. We can describe how the system is built, but we cannot show you an audit certificate.
- Personal data inside product documentation (a reviewer's name, say) is handled as ordinary content. If you need a data processing agreement, ask — we sign one.
- SaaS data sits in Sweden (Sweden Central). If you need another region, the answer is an install in your own Azure.