Skip to content

Contrat NFZ License Server production

Cette page documente le contrat réellement aligné sur la source production nfz-license-server-phase44-22-first-admin-bootstrap-ux-guard.

Endpoint canonique

txt
POST https://licence.nfz-serveur.fr/api/license/verify

Le service runtime license-status appelle cet endpoint côté serveur uniquement. La clé NFZ_LICENSE_KEY ne doit jamais être exposée au navigateur.

Requête envoyée par le produit

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.106",
  "tenantId": "default",
  "metadata": {
    "source": "nfz-docs-notion-editor",
    "runtime": "nuxt-feathers-zod",
    "contract": "nfz-license-server-phase44-22",
    "activationTest": false
  }
}

Réponse attendue

NFZ License Server retourne l’édition, les entitlements, les limites, le statut d’abonnement et les informations de signature :

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": "..."
}

Variables Docker/Portainer

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.106

La vérification cryptographique de la réponse est optionnelle pour ne pas bloquer les installations existantes :

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.pem

Points de contrôle

  • productId et productKey doivent rester nfz-docs-builder.
  • nfz-docs-editor, nfz-docs-notion-editor, vitepress-builder et vpb sont des alias côté serveur, mais ne doivent plus être utilisés dans les nouvelles installations.
  • instanceId doit être stable entre deux redémarrages si le conteneur est migré.
  • fingerprint sert au suivi des activations et à la limite maxInstances.
  • En indisponibilité serveur, le runtime applique la période de grâce configurée par NFZ_LICENSE_GRACE_PERIOD_HOURS.

Guide utilisateur public généré avec VitePress.