Production NFZ License Server contract
This page documents the runtime contract aligned with the production nfz-license-server-phase44-22-first-admin-bootstrap-ux-guard source.
Canonical endpoint
txt
POST https://licence.nfz-serveur.fr/api/license/verifyThe runtime license-status service calls this endpoint on the server side only. NFZ_LICENSE_KEY must never be exposed to the browser.
Request sent by the product
json
{
"productId": "nfz-docs-builder",
"productKey": "nfz-docs-builder",
"productDomain": "vitepress-buider.com",
"edition": "pro",
"licenseKey": "NFZ-...",
"instanceId": "nfz-docs-...",
"fingerprint": "sha256:...",
"hostname": "container-hostname",
"version": "0.1.108",
"tenantId": "default",
"metadata": {
"source": "nfz-docs-notion-editor",
"runtime": "nuxt-feathers-zod",
"contract": "nfz-license-server-phase44-22",
"activationTest": false
}
}Expected response
NFZ License Server returns the edition, entitlements, limits, subscription status and signature metadata:
json
{
"allow": true,
"state": "active",
"status": "active",
"productId": "nfz-docs-builder",
"productKey": "nfz-docs-builder",
"edition": "pro",
"features": {
"docsEditor": true,
"buildVitePress": true,
"exportStaticZip": true,
"exportSourceProject": true,
"publishingConnectors": true,
"customBranding": true,
"mediaS3": true,
"auditTrail": true,
"multiTenant": true,
"advancedI18n": true,
"prioritySupport": true,
"sso": false
},
"limits": {
"maxTenants": 10,
"maxDocsSpaces": null,
"maxEditors": 25,
"maxStorageMb": 10240,
"maxBuildsPerMonth": 2000,
"auditRetentionDays": 180
},
"signatureAlgorithm": "ed25519",
"keyId": "nfz-docs-builder...",
"signature": "..."
}Docker/Portainer variables
ini
NFZ_PRODUCT_ID=nfz-docs-builder
NFZ_PRODUCT_DOMAIN=vitepress-buider.com
NFZ_LICENSE_MODE=remote
NFZ_LICENSE_KEY=<clé-client>
NFZ_LICENSE_SERVER_URL=https://licence.nfz-serveur.fr
NFZ_LICENSE_VERIFY_PATH=/api/license/verify
NFZ_LICENSE_INSTANCE_ID=<id-stable-instance>
NFZ_LICENSE_HOSTNAME=<nom-hote-ou-client>
NFZ_APP_VERSION=0.1.108Cryptographic response verification is optional to avoid breaking existing deployments:
ini
NFZ_LICENSE_VERIFY_SIGNATURE=true
NFZ_LICENSE_SERVER_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----..."
# ou
NFZ_LICENSE_SERVER_PUBLIC_KEY_FILE=/run/secrets/nfz_license_public_key.pemControl points
productIdandproductKeymust remainnfz-docs-builder.nfz-docs-editor,nfz-docs-notion-editor,vitepress-builderandvpbare server-side aliases, but new deployments must no longer use them.instanceIdmust stay stable across restarts when the container is migrated.fingerprintis used for activation tracking and themaxInstanceslimit.- When the server is unavailable, the runtime applies the grace period configured by
NFZ_LICENSE_GRACE_PERIOD_HOURS.