Skip to content

Licensing

Kodjin is distributed as a self-hosted product. Each installation must hold a valid, Edenlab-issued license to operate. The license is validated on every API request — if the license is missing, expired, or not issued for the current installation, all API calls will be blocked until a valid license is in place.

Licenses are issued and distributed by Edenlab. To obtain or renew a license, please contact your account manager at edenlab.io.

How licensing works

Each Kodjin license is a signed JWT file issued by Edenlab. The file is cryptographically signed and tied to your specific installation. Kodjin validates the license on startup and on every inbound HTTP request.

If the license check passes, requests are processed normally. If the license is missing or invalid, Kodjin returns an HTTP 402 Payment Required response before the request reaches any handler.

Setting up your license

To activate your license, set the KODJIN_LICENSE_PATH environment variable to the file path of your license JWT on the server where Kodjin is running.

KODJIN_LICENSE_PATH: /etc/kodjin/license.jwt

Kodjin reads the license file at startup. If the path is incorrect or the file is unreadable, the service will treat it as a missing license and block all API requests.

The license file must be readable by the process running Kodjin. Ensure that file permissions are set appropriately.

Error response

When a license is missing, expired, or otherwise invalid, Kodjin returns an HTTP 402 Payment Required response with a FHIR OperationOutcome body.

{
  "resourceType": "OperationOutcome",
  "issue": [{
    "severity": "Fatal",
    "code": "forbidden",
    "details": {
      "text": "No valid Kodjin license found. Please contact your account manager at edenlab.io"
    }
  }]
}

If you receive this response, verify the following:

  • The KODJIN_LICENSE_PATH environment variable is set correctly and points to a valid file.
  • The license file has not expired (exp claim is in the future).
  • The hostname of your installation is included in the aud claim of your license.
  • The sub claim matches your configured tenant name.

If the issue persists, contact your Edenlab account manager to obtain a new license.

All API requests — including read operations — are blocked when a valid license is not present. Ensure your license is renewed before the expiry date to avoid service interruption.