License¶
Every installation runs under an Axium license: a key of 40 hexadecimal characters that Axium Lab gives you.
Providing it¶
Leave AXIUM_LICENSE unset and mount a JSON file at
/license/license.json (or point AXIUM_LICENSE_FILE elsewhere):
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¶
- The core calls
GET https://meta.axium-lab.com/v1/license/check/<key>(base URL configurable withAXIUM_METASERVER). - 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. -
It logs one of:
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¶
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.