Security

Security and deployment overview.

Mission LLM runs inside your boundary. This page covers where data goes, which controls ship today, which are in development, and how to harden an install.

Last updated

Mission LLM does not hold any government certification or authorization today. Because it runs on your infrastructure, you assess it as part of your own system.

Data flow in plain language

Your network

Browser
Mission LLM server
Local model runtime
Storagedocuments, vectors, chats
Providers you configure(optional)

Stays on your server

  • Uploaded documents and the text parsed from them.
  • Embeddings, when you use the built-in embedder and the built-in LanceDB store.
  • Chat history, workspaces, users, API keys and the event log, in a SQLite database in your storage volume.

All of it lives in the storage directory you mount, so your existing backup and encryption-at-rest controls apply.

Leaves only when you configure it

  • Cloud language model: the question, recent chat history and retrieved passages go to that provider.
  • Cloud embedding engine: document text goes to that provider to be embedded.
  • Hosted vector database: vectors and passage text are stored with that service.
  • Agent skills, MCP servers and data connectors: each contacts the service you point it at, such as a search provider, a database or a Git server.

The Privacy and Data page in Settings shows how each configured provider handles your data.

Other outbound connections

ConnectionWhenWhat is sentHow to avoid it
Telemetry (the upstream project's analytics account)On boot and during use, unless disabledAnonymous usage events, such as which provider types are selectedSet DISABLE_TELEMETRY="true" before the first start
models.devAt boot, when the pricing cache is missing or older than three daysA request for public model pricing dataBlock it. The server logs the failure and keeps running.
raw.githubusercontent.comAt boot, when the context-window cache is missing or staleA request for public model context-window dataBlock it, and set token limits for local models in their provider settings
Hugging Face, then cdn.anythingllm.comFirst use of the built-in embedder or rerankerA model file downloadStage the models under storage/models
Hugging FaceFirst local audio transcriptionA Whisper model downloadStage the model under storage/models
OCR language dataFirst OCR of an image or scanned PDFA language data download by the OCR libraryStage the data under storage/models/tesseract
Community Hub (hub.external.anythingllm.com)Only when an admin browses or imports itemsBrowse and import requestsDo not open the Community Hub pages
Onboarding survey (onboarding.anythingllm.com)Only if someone fills it in and submits it, from their browserThe email, use case and comment enteredLeave the survey blank

In developmentAn offline mode switch that turns all of these off at once is in development.

Controls available today

Access

Authentication:
a single password, or multi-user mode with individual accounts. You choose during onboarding.
Roles:
admin, manager and default. Default users chat only in the workspaces they are assigned to.
Account controls:
invitations, suspension and per-user daily message limits.
Password complexity:
minimum and maximum length and required character types, set with PASSWORDMINCHAR, PASSWORDREQUIREMENTS and related variables.
Simple SSO passthrough:
sign users in with temporary tokens issued through your own identity bridge (SIMPLE_SSO_ENABLED).

Oversight

Admin event log:
sign-ins, failed sign-ins, attempts on suspended accounts, changes to users, invites and API keys, workspace and document changes, and chat exports.
Chat history export:
CSV, JSON or JSONL.
Hide chat history
from the interface: DISABLE_VIEW_CHAT_HISTORY.
Workspace deletion protection:
WORKSPACE_DELETION_PROTECTION.

Transport and runtime

Built-in HTTPS
with your certificate and key (ENABLE_HTTPS, HTTPS_CERT_PATH, HTTPS_KEY_PATH), or TLS at your own reverse proxy.
The container runs as a non-root user
(UID 1000 by default) and has a health check.
The Helm chart
keeps credentials in Kubernetes Secrets and ships with telemetry off.
Telemetry off with one setting.
Set DISABLE_TELEMETRY="true" and no usage events are sent.

Integrations

Developer API:
admin-issued API keys, OpenAPI documentation at /api/docs, and OpenAI-compatible endpoints.
Agent tools:
admins turn each agent skill and MCP server on or off.

Hardening an install today

  1. Set DISABLE_TELEMETRY="true" before the first start.

  2. Set a password or turn on multi-user mode before anyone else can reach the server. Without either, anyone who can reach the address can use the instance.

  3. Publish port 3001 only on the interface you intend. Put TLS in front of it with ENABLE_HTTPS or your reverse proxy.

  4. For disconnected use, choose local providers for chat, embeddings and vector storage, and stage the built-in models under storage/models.

  5. Set password complexity rules.

  6. Keep provider keys and secrets out of shared configuration. In Kubernetes, use Secrets.

  7. Mount storage on a volume that your backup and encryption controls already cover.

  8. To accept connections from the host machine only, bind the published port to loopback in Docker: -p 127.0.0.1:3001:3001.

In development

These items are not in the current release. They move to ‘Available today’ only when they ship. Dates are not published.

Identity and access

In development
  • Single sign-on with OIDC and SAML 2.0, with group-to-role mapping.
  • SCIM provisioning and deprovisioning.
  • Smart card (PIV and CAC) sign-in.
  • Multi-factor authentication (TOTP) and revocable sessions with idle timeout.
  • Permission-based roles, workspace-level roles and groups.
  • Sign-in protection and a lockout policy.
  • A system use notice at sign-in and a configurable classification banner.

Audit and oversight

In development
  • An attributable, tamper-evident audit trail with syslog, webhook and file forwarding.
  • Filterable, exportable event logs with a retention setting.
  • Usage and cost reporting with budgets.

Data protection

In development
  • An encrypted secrets store.
  • API key scopes, expiry and rate limits.
  • Model policy: provider allow-lists, local-only workspaces, and redaction before external calls.
  • Agent tool policy: tool profiles for each workspace and one approval policy.
  • Retention rules, legal hold and scoped eDiscovery export.
  • Backup and restore.

Disconnected operations

In development
  • An offline mode switch and an outbound connections report.
  • Telemetry off by default.
  • A model mirror setting for internal model hosting.
  • An offline distribution kit with signed release bundles.

Hardening

In development
  • Hardened HTTP defaults.
  • A loopback-only listen address for the server and the document processor.

Answer quality

In development
  • Strict grounding in Query mode, inline citations with page references, and hybrid keyword and vector search.

Accessibility

In development
  • A Section 508 and WCAG 2.2 AA conformance pass.

What we do not claim

Government certification or authorization
None held today.
Assessment
Mission LLM runs on your infrastructure, so you assess it as part of your own system.

Reporting a vulnerability

Report suspected vulnerabilities privately throughGitHub private vulnerability reporting on the Mission LLM repository. The report stays private until a fix is released. Please do not open a public issue.