Licensing
What licence each part of OGuardAI carries, how the proprietary runtime is licensed, and which licences the models and dependencies bring with them
OGuardAI is licensed by path. The runtime and platform are proprietary software, the property of Oronts GmbH; using them requires a written agreement with Oronts. The client SDKs and integration tooling are Apache-2.0, so adding an OGuardAI client to your application carries no licensing friction.
The boundary
| Scope | Licence | SPDX | Paths |
|---|---|---|---|
| Runtime and platform: the protection engine, server, CLI, proxy, detector service, platform UI | Oronts GmbH proprietary | LicenseRef-Oronts-Proprietary | every path not in the Apache row, including crates/**, apps/server/**, apps/cli/**, apps/proxy/**, apps/detector-py/**, apps/platform-web/**, python/detector-core/** |
| Client SDKs, integration tooling, MCP server, examples, schemas, documentation | Apache License 2.0 | Apache-2.0 | sdks/**, packages/**, apps/mcp-server/**, examples/**, schemas/**, docs/** |
docs/** is the repository-root docs directory. The documentation site source, including this
page, lives under apps/platform-web/content/** and is part of the runtime and platform row above,
so it is proprietary. The machine-readable, exhaustive form of this table is REUSE.toml at the
repository root, and it is validated during release.
The split is deliberate. The runtime is where raw values live, so it is the part worth protecting, and its use is governed by an agreement with Oronts. The SDKs are what your application imports, so they are permissive: adding an OGuardAI client to your dependency tree should never require a licensing conversation.
The proprietary runtime
The runtime is proprietary software owned by Oronts GmbH. The LICENSE file in the repository is a
notice, not an agreement: it grants no rights on its own.
Any use of the runtime, including evaluation, self-hosting, internal use, and commercial use, is under a written agreement with Oronts. That agreement, not this page, sets out what you may do. This page is orientation, not legal advice, and it is not itself a licence.
To request a licence, an evaluation, or commercial terms, contact office@oronts.com.
The licence file
A deployment can optionally point the server at a signed licence file with GUARDAI_LICENSE_FILE.
Not operative in this release. No verifying key is compiled into the binary, so the server cannot check a licence file at all. One present at startup is reported as
malformed, with a reason naming the missing key, and the deployment runs as the developer edition. That is a defect in the release rather than in the file you were issued, so it never refuses a start. The rest of this section is the mechanism the runtime carries and what it reports once a release ships the key.
Once operative, verification is local: the server checks an Ed25519 signature against a compiled-in key and never contacts Oronts. There is no licence server and no phone-home, so an air-gapped deployment behaves identically.
Nothing is gated by the licence. No capability is withheld, no limit is applied, and no request takes a different path because of it. The licence records who the deployment belongs to and which releases the subscription covers; it does not decide anything about data.
The resolved licence is logged at startup and reported in the license block on
GET /v1/health:
| Field | Meaning |
|---|---|
status | absent, valid, version_cutoff, or malformed |
edition | The edition in effect. Anything unusable resolves DOWN to the developer edition, never up |
release_date | This binary's compiled-in release date, the value updates_until is compared against |
reason | Why the licence is unusable (present only when status is malformed) |
license_id, customer_id, customer_name | Identity recorded in the licence, once its claims have survived verification |
updates_until | The last release date the subscription covers |
declared_edition | The edition the licence claims, reported alongside edition so a downgrade is legible |
contract | Recorded contract terms (deployment allowance, support level, reference) |
The block never reports the signature, key material, or entitlement flags.
Three start behaviours follow from status:
absent. No licence configured. The server starts and runs as the developer edition.version_cutoff. The running binary was released afterupdates_until. The server starts and runs as the developer edition, with a warning naming the remedy: renew, or roll back to a release published on or beforeupdates_until. Enforcement is on the VERSION axis, comparing the binary's compiled-in release date againstupdates_until, never a wall clock, so no running process ever changes behaviour because a date passed.malformed. A licence file is present but unreadable, oversized, or not verifiable. Outsideauth.mode: devthe server refuses to start, the same way it refuses a malformed credential file. Replace it, unsetGUARDAI_LICENSE_FILE, or use dev mode. One exception: when the reason names a defect in the build rather than in your file, the server reports it and starts as the developer edition, because there is nothing you could fix. The missing verifying key in this release is that case, so today only an unreadable or oversized file refuses a start.
Third-party models and dependencies
OGuardAI's licence is not the only one that applies to a deployment. The detection sidecar runs third-party NER models, and those models carry different licences and different redistribution requirements, including some that restrict commercial use.
Read Model licences for the current inventory before you enable a language in a commercial deployment.
The bundled models are defaults, not requirements. Detection is a replaceable layer: you may configure alternative models, supply your own detection backend, or route detection to an external service you already operate. A deployment can also run with no third-party model at all, using built-in pattern detection together with your own detector, in which case none of those model licences apply to you. See Bring your own detection.
When using third-party or custom models, you are responsible for ensuring you hold the necessary rights to use and distribute them.
Attribution for the models bundled in the detector image, and the full inventory, is in Model licences.
Commercial terms, support, and OEM
Use of the runtime is under a written agreement with Oronts, and the same conversation covers support and OEM:
- Licensing and evaluation for a production or an evaluation deployment.
- Commercial support, an SLA, or support for a security and compliance review of a production deployment.
- OEM. Embedding OGuardAI in a product you distribute is covered by an OEM agreement that sets out distribution rights, support commitments, indemnities, and terms for your use case.
Contact office@oronts.com.
Frequently asked questions
Can I self-host OGuardAI? Yes, under a written agreement with Oronts. The runtime is designed to run on your own infrastructure, including air-gapped.
Can I deploy it in an air-gapped environment? Yes. There is no phone-home and no licence server.
Can I embed the SDK in my application? Yes. The SDKs are Apache-2.0.
Can I offer OGuardAI itself as a hosted service to third parties? That is an OEM or hosting arrangement. Contact us.
Do I need an agreement to use the runtime commercially? Yes. The runtime is proprietary; commercial use is under a written agreement with Oronts.
Do the third-party models change any of this? They can. The models carry their own licences, independent of OGuardAI's. See Model licences.
Contributing
Contributions are accepted under the licence of the component you change: the runtime under the Oronts GmbH proprietary terms, and the SDKs, examples, schemas, and documentation under Apache-2.0. See Contributing.
The runtime licence changed twice. Revisions before commit 3cf3b644 (2026-07-24) were distributed
under Apache-2.0. From 3cf3b644 (2026-07-24) up to but not including commit d6c5e69a
(2026-09-24), the runtime was source-available under the Elastic License 2.0 while the SDK,
integration, example, and docs/ paths were Apache-2.0. From d6c5e69a (2026-09-24) onward, the
runtime is proprietary, those paths remain Apache-2.0, and the schemas/ path is Apache-2.0 from
that commit on.