Skip to content

License

Every installation runs under an Axium license: a key of 40 hexadecimal characters that Axium Lab gives you.

Providing it

AXIUM_LICENSE=0123456789abcdef0123456789abcdef01234567

Leave AXIUM_LICENSE unset and mount a JSON file at /license/license.json (or point AXIUM_LICENSE_FILE elsewhere):

{ "license": "0123456789abcdef0123456789abcdef01234567" }
docker run … -v /secure/license.json:/license/license.json:ro quay.io/axiumlab/core:latest

gcp.sh asks for the license, validates it before creating anything and stores it in the AXIUM_LICENSE variable of the axium-core service. Pass AXIUM_LICENSE=… in the environment to skip the prompt.

What happens at startup

  1. The core calls GET https://meta.axium-lab.com/v1/license/check/<key> (base URL configurable with AXIUM_METASERVER).
  2. The service answers with a signed token (JWT, EdDSA/Ed25519). The core verifies the signature against a public key embedded in the binary, and checks that the product is axium, that the license is valid and that it has not expired.
  3. It logs one of:

    [license] valid — Acme Corp (enterprise), expires 2027-01-01T00:00:00.000Z
    [license] invalid — license is expired
    [license] no license configured
    

The check happens once per process start. There is no periodic re-check.

Enforcement

In the current version an absent or invalid license is logged, not enforced: the process starts and serves traffic. Treat the log line as the signal that something needs fixing before a future version starts enforcing it.

If the license service is unreachable the check fails with a network error in the log and the core starts normally.

Checking a key yourself

curl -s https://meta.axium-lab.com/v1/license/check/<key> | jq

A valid key answers {"status":true,"data":{"license":"<jwt>"}}. The token's payload (second base64url segment) carries customer_name, type, features, expires_at and revoked_at.

Renewing

Replace the value and restart the core. On Cloud Run:

gcloud run services update axium-core --region europe-west1 \
  --update-env-vars AXIUM_LICENSE=<new key>

No reinstall, no data change.