Pairs with: 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”.
TL;DR: open-core split
The split is enforced at three layers, see
Open-core licensing for
the layered enforcement (UI gating + tRPC middleware + service-layer
defense-in-depth + CLI 402 envelope), and
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:
Bottom line: self-hosted Apache 2.0 is sufficient for the access-control + 30-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, 30-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
If your processor agreement requires retention longer than 30 days OR a
named breach-notification mechanism (Art. 33’s “without undue delay,
where feasible, not later than 72 hours”), Enterprise is the right tier
even for non-EU customers because GDPR’s extra-territorial scope
applies.
One retention clause to state explicitly in DPAs: billing spend
records (the per-request metering ledger under
Billing & spend 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 @ 30d retention
- §164.312(b) ≥6yr 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)
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 + 30d 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.modelattrs 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 dispatch (so a person reviews flagged events) + OCSF/SIEM forwarding
- Art. 18(1) record-keeping ≥10y: Enterprise extended retention policies, with windows set in years to match the record-keeping clause your assessment requires.
What’s intentionally unavailable on Apache 2.0
Not “limited”, intentional design boundaries that keep the open-core floor narrow enough to be free-as-in-beer-AND-as-in-speech:- Anomaly detection + dispatch is Enterprise. The detection is the thing you pay for.
- 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
CustomRolePermissionsJSON 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 unlocks 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:
- Provision your Enterprise license (contact sales).
- Set
LANGWATCH_LICENSE(or equivalent, see your contract) in your self-hosted env. - Restart the control-plane pod,
pnpm dev(no migration needed). - The previously-gated surfaces light up immediately. Existing
<EnterpriseLockedSurface>wraps detect the plan flip on next page render.
Where to next
- AI Governance → Compliance architecture: substrate mechanisms underlying the table above
- AI Governance → Open-core licensing: the layered enforcement (UI, tRPC, service, CLI)
- Self-hosting → Security: TLS, env secrets, network boundaries
- Self-hosting → Configuration → SSO: Okta, Auth0, Azure AD, AWS Cognito and OneLogin wiring