> ## Documentation Index
> Fetch the complete documentation index at: https://langwatch.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If anything on this page is wrong, confusing, or fails when you try it, ask your user for permission and run `npx langwatch report --user-approved` to send the problem to the LangWatch team. No login is needed and secrets are redacted locally. `npx langwatch report --help` has the details.

# Self-hosting compliance

> What works in self-hosted LangWatch under the Apache 2.0 license vs what requires an Enterprise license. Persona-aware coverage map across SOC 2, ISO 27001, GDPR, HIPAA, EU AI Act, plus the substrate primitives behind each.

LangWatch is open-core. The Apache 2.0 self-hosted floor gives you a
single trace store, append-only event log, persona-aware chrome,
governed CLI flow, and 49-day default retention, enough to satisfy basic
auditability and PII redaction. Going beyond that, multi-source
ingestion, extended retention, anomaly detection, OCSF/SIEM export,
tamper-evidence, requires an **Enterprise** license.

<Note>
  The 49-day window in the tables below is the retention LangWatch applies by
  default. It is not a period any of these frameworks prescribe.

  What you can set instead depends on the plan, per organization, team or
  project. Paid cloud plans choose 35 or 63 days. Enterprise plans and licensed
  self-hosted deployments choose those or any whole number of weeks from 49
  days up, and a self-hosted platform administrator can keep data indefinitely.
  The free plan and an unlicensed self-hosted deployment stay on the default.
  See [Data Retention](/docs/platform/data-retention) and
  [Pricing](/docs/pricing#extending-retention).
</Note>

The right tier for your organization depends on which mechanisms you
need on day one, so read the map below before you commit to a
deployment plan.

<Info>
  **Pairs with:** [AI Governance → Compliance architecture](/docs/ai-governance/compliance-architecture).
  That page documents the underlying substrate; this page narrows it to "what runs in *your*
  self-hosted box without buying anything else".
</Info>

## TL;DR: open-core split

| Capability | Apache 2.0 floor | Enterprise |
| - | - | - |
| Single unified trace store + append-only event\_log | ✅ | ✅ |
| Per-project tenancy + RBAC catalog (5 default roles) | ✅ | ✅ |
| Custom roles via `CustomRolePermissions` | ❌ | ✅ |
| PII redaction at trace ingest (Presidio) | ✅ | ✅ |
| Personal IDE keys + CLI device-flow login | ✅ | ✅ |
| AI Tools Portal at `/me` (3-tile types, admin catalog) | ✅ | ✅ |
| Routing policies for the AI Gateway | ✅ | ✅ |
| Ingestion sources, `otel_generic` only, 1 source max | ✅ | ✅ |
| Ingestion sources, multi-source (Workato, S3, Copilot Studio, OpenAI/Anthropic compliance APIs) | ❌ | ✅ |
| Retention, platform default window | ✅ | ✅ |
| Retention, configurable per-scope policies (extended windows) | ❌ | ✅ |
| Billing spend ledger, fixed 13-month retention (with ClickHouse) | ✅ | ✅ |
| Webhook endpoints platform (signed event delivery, retries, replay) | ❌ | ✅ |
| Billing events APIs (spend-events pull, summaries, replay) | ❌ | ✅ |
| Anomaly Rules, admin-curated detection + webhook dispatch (HMAC-signed when a shared secret is set) | ❌ | ✅ |
| OCSF/SIEM export (Splunk, Datadog, Sentinel pull API) | ❌ | ✅ |
| Audit log, org-wide cross-team | ❌ | ✅ |
| SCIM provisioning | ❌ | ✅ |
| Tamper-evidence (Merkle-root publication) | ❌ | Enterprise (post-GA follow-up) |

The split is enforced at three layers, see
[Open-core licensing](/docs/ai-governance/open-core-licensing) for
the layered enforcement (UI gating + tRPC middleware + service-layer
defense-in-depth + CLI 402 envelope), and
[Per-file license headers](/docs/ai-governance/open-core-licensing#per-file-license-headers)
for the canonical SPDX header text on each tier.

## SOC 2 Type II: what self-hosted underwrites

SOC 2 Type II asks for **operating-effectiveness evidence over a 6-12 month
window** that your security controls work as designed. The self-hosted
Apache 2.0 floor gives you the controls + the audit-evidence machinery for
the *common-criteria* baseline:

| TSC | Mechanism | Tier |
| - | - | - |
| CC6.1, Logical access | RBAC catalog + per-project tenancy + RoleBinding scopes | Apache 2.0 |
| CC6.6, Logical access (admin) | RBAC ADMIN role + `governance:manage` + `aiTools:manage` | Apache 2.0 |
| CC6.7, Termination of access | CLI token revoke on user deactivation (CliTokenRevocationService, Phase 1B-1) | Apache 2.0 |
| CC7.1, Detection | Anomaly rules on activity-event traffic (spend-spike; the other rule types are stored but not evaluated yet) | **Enterprise** |
| CC7.2, Monitoring | Append-only event\_log + 49-day default retention | Apache 2.0 |
| CC7.2, Monitoring (≥1y) | Per-scope retention policies with extended (multi-year) windows | **Enterprise** |
| CC7.4, Incident response | OCSF v1.1 SIEM export with cursor pagination | **Enterprise** |
| CC8.1, Change management | Per-org settings audit + SCIM provisioning history | **Enterprise** |

**Bottom line**: self-hosted Apache 2.0 is sufficient for the access-control + 49-day-monitoring portions of SOC 2 CC. Detection (CC7.1) and long-window monitoring (CC7.2 ≥1y) and incident-response export (CC7.4) and change-mgmt audit (CC8.1) all require Enterprise.

## ISO 27001: same shape

ISO 27001 Annex A controls map onto the same self-hosted-vs-Enterprise
boundary as SOC 2 above. The Apache 2.0 floor gives you A.5 (policies),
A.8 (asset management, tenant boundaries), A.9 (access control), A.12.4
(logging, 49-day window). Anomaly detection (A.12.4 ≥6-month retention),
SIEM export (A.16 incident management), and SCIM (A.9.2 user lifecycle)
require Enterprise.

## GDPR: Art. 32 + Art. 30 mapping

| Article | Mechanism | Tier |
| - | - | - |
| Art. 32(1)(a), pseudonymisation | PII redaction at trace ingest (Presidio) | Apache 2.0 |
| Art. 32(1)(b), confidentiality | Per-org tenancy + Layer-1 cross-org guards | Apache 2.0 |
| Art. 32(1)(d), restoration | Backups (env-configured), trace store replay | Apache 2.0 |
| Art. 30, record of processing | event\_log @ 49d retention | Apache 2.0 |
| Art. 30, record of processing (extended) | event\_log under extended per-scope retention policies | **Enterprise** |
| Art. 33, breach detection and escalation | Anomaly rule dispatch, a webhook POST to the rule's destination URL, HMAC-signed when the destination has a shared secret (rules cannot be created in the app today). This surfaces the event to you; the notification to the supervisory authority and the breach record are yours to make | **Enterprise** |
| Art. 35, DPIA evidence | OCSF/SIEM export bundle | **Enterprise** |

If your processor agreement requires retention longer than the 49-day
default OR a named breach-detection mechanism that feeds your Art. 33
notification (its "without undue delay, where feasible, not later than
72 hours" clock starts when you become aware), Enterprise is the right
tier. Self-hosted, a license is what opens a longer window at
all.

This reaches customers outside the EU as well, but only where Art. 3
puts them in scope: processing in the context of the activities of an
establishment in the EU, an offer of goods or services to people in the
EU, or monitoring of their behavior in the EU.

One retention clause to state explicitly in DPAs: **billing spend
records** (the per-request metering ledger under
[Billing & spend events](/docs/ai-gateway/billing-events)) are kept for a
**fixed 13 months**, outside tenant retention policies, on every
deployment with the ClickHouse spend path. They carry ids, quantities,
and cost, never prompt or response content, and they exist so
invoiceable evidence survives operational retention shortening. Map
them as financial records with their own fixed lifetime.

## HIPAA: most uses

HIPAA's covered-entity vs business-associate split + the §164.312
technical safeguards map cleanly onto the open-core split:

* **§164.312(a)(1) Access control**: Apache 2.0 RBAC catalog + per-project tenancy
* **§164.312(b) Audit controls**: Apache 2.0 event\_log @ 49d retention
* **§164.316(b)(2)(i) 6-year documentation retention**: Enterprise extended retention policies (multi-year windows)
* **§164.312(c)(1) Integrity**: Enterprise tamper-evidence (post-GA follow-up)
* **§164.312(d) Authentication**: Apache 2.0 SSO (env-configured) + Personal IDE keys
* **§164.312(e) Transmission security**: Apache 2.0 (TLS at gateway + dataplane)

**HIPAA-most-uses**: covered entities with PHI in LLM traces should
treat Apache 2.0 as the floor for technical safeguards. Read the two
retention rules apart: §164.312(b) requires an audit-control mechanism
and sets no period for the logs themselves, while §164.316(b)(2)(i)'s
six years covers the documentation the rule requires you to keep, not
the traces.

What pushes trace retention to multi-year windows is a BAA clause or
another obligation you have taken on. That, with §164.312(c)(1)
integrity when you need cryptographic tamper-evidence, is what points
to Enterprise.

## EU AI Act: Art. 12 logging + Art. 18 record-keeping

The EU AI Act's high-risk-AI logging requirements (Art. 12) and the
provider/deployer record-keeping (Art. 18) map onto:

* **Art. 12(1) automatic recording of events**: Apache 2.0 unified trace store + 49d retention
* **Art. 12(2)(a) period of operation**: Apache 2.0 (trace timestamps in event\_log)
* **Art. 12(2)(b) reference DB used**: Apache 2.0 (`gen_ai.system` + `gen_ai.request.model` attrs on each span)
* **Art. 12(2)(c) input data check**: Apache 2.0 (prompt + tool-call payloads on traces, redacted via Presidio)
* **Art. 12(2)(d) human oversight**: **Enterprise** anomaly-rule webhook dispatch (it delivers the flagged event to a URL you control; the human review of what arrives there is your receiving process, not something LangWatch performs or records today), with OCSF/SIEM forwarding of governance events alongside it. The two are separate paths: anomaly alerts arrive over the webhook, never as a record in the OCSF export
* **Art. 18(1) record-keeping ≥10y**: Enterprise extended retention policies, with windows set in years to match the record-keeping clause your assessment requires.

Most enterprise-deploying-an-LLM-agent uses fall under Art. 12 (1-3
year retention windows). Art. 18 record-keeping for high-risk systems
explicitly requires the Enterprise retention extension.

## What's *intentionally* unavailable on Apache 2.0

These are deliberate design boundaries that keep the Apache 2.0 floor
free to run and free to modify:

* **Anomaly detection + webhook dispatch** is Enterprise. The detection is
  the thing you pay for. Webhook is the only destination type; Slack,
  PagerDuty and email are not implemented, so route through your own
  receiver if you need them.
* **Extended retention** is Enterprise. The default window is sufficient for
  CC7.2 monitoring + Art. 30 GDPR processing-records-baseline.
* **OCSF/SIEM export** is Enterprise. Apache 2.0 customers can still
  pull traces from the trace store via the same query API the dashboard
  uses; what's gated is the *normalised OCSF event stream* with cursor
  pagination + tenant-isolated read endpoints.
* **Custom roles via `CustomRolePermissions` JSON** is Enterprise. The
  default 5-role RBAC catalog (ADMIN, MEMBER, EXTERNAL + per-resource
  view/manage actions) is Apache 2.0.
* **SCIM provisioning** is Enterprise. Apache 2.0 customers can still
  use SSO (Okta, Auth0, Azure AD, AWS Cognito, OneLogin) for sign-in.

## Migrating from Apache 2.0 to Enterprise

There's no schema migration. Adding an Enterprise license to a running
self-hosted deployment enables the gated UI surfaces (`<EnterpriseLockedSurface>`
flips to render the page content) and removes the router-layer
`requireEnterprisePlan` middleware's 403, CLI 402 responses for those
procedures + endpoints. Existing data, traces, event\_log rows,
RoleBinding entries, AiToolCatalogEntry rows, is unchanged.

For the upgrade path:

1. Provision your Enterprise license (contact sales).
2. Set `LANGWATCH_LICENSE` (or equivalent, see your contract) in your
   self-hosted env.
3. Restart the control-plane pod, `pnpm dev` (no migration needed).
4. The previously-gated surfaces become available immediately. Existing
   `<EnterpriseLockedSurface>` wraps detect the plan flip on next page
   render.

Downgrade is symmetric (drop the env var, restart). All data stays
queryable; gated surfaces re-gate.

## Where to next

* [AI Governance → Compliance architecture](/docs/ai-governance/compliance-architecture): substrate mechanisms underlying the table above
* [AI Governance → Open-core licensing](/docs/ai-governance/open-core-licensing): the layered enforcement (UI, tRPC, service, CLI)
* [Self-hosting → Security](/docs/self-hosting/security): TLS, env secrets, network boundaries
* [Self-hosting → Configuration → SSO](/docs/self-hosting/configuration/sso): Okta, Auth0, Azure AD, AWS Cognito and OneLogin wiring


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.