Skip to content

Runtime licence et entitlements

La version 0.1.64 ajoute le premier socle runtime de licence pour transformer NFZ Docs Notion Editor en produit SaaS distribuable.

Objectif

Le principe validé reste simple :

  • DockerHub distribue les images applicatives ;
  • NFZ License Server pilote les éditions, abonnements, entitlements, quotas, tenants et périodes de grâce ;
  • l’application n’expose jamais la clé complète côté navigateur.

Page d’administration

La page /admin/license affiche :

  • l’édition active : community, starter, pro ou enterprise ;
  • le mode runtime : local, remote ou disabled ;
  • l’état licence : local, active, trialing, grace, expired, invalid, unconfigured ou unreachable ;
  • les entitlements fonctionnels ;
  • les quotas principaux ;
  • les variables serveur nécessaires au déploiement DockerHub/Portainer.

Variables serveur

ini
NFZ_PRODUCT_ID=nfz-docs-builder
NFZ_PRODUCT_DOMAIN=vitepress-buider.com
NFZ_EDITION=community
NFZ_LICENSE_MODE=local
NFZ_LICENSE_KEY=
NFZ_LICENSE_SERVER_URL=https://licence.nfz-serveur.fr
NFZ_LICENSE_VERIFY_PATH=/api/license/verify
NFZ_LICENSE_CACHE_TTL_SECONDS=900
NFZ_LICENSE_GRACE_PERIOD_HOURS=72

Modes disponibles

Mode local

Le mode local conserve une DX simple. L’édition est lue depuis NFZ_EDITION et les entitlements sont calculés localement.

Ce mode est adapté au développement, aux démonstrations et aux instances Community.

Mode remote

Le mode remote interroge NFZ License Server via NFZ_LICENSE_SERVER_URL et NFZ_LICENSE_VERIFY_PATH.

La requête serveur envoie uniquement les informations nécessaires : produit, domaine, édition demandée, clé licence et tenant courant si disponible.

Période de grâce

Si le serveur de licences devient indisponible, l’application peut rester utilisable temporairement avec l’état grace. La durée est contrôlée par NFZ_LICENSE_GRACE_PERIOD_HOURS.

Entitlements initiaux

Les droits initiaux couvrent :

  • édition documentaire ;
  • build VitePress ;
  • exports ZIP statique et projet source ;
  • connecteurs de publication ;
  • branding personnalisé ;
  • provider média RustFS/S3 ;
  • audit trail ;
  • multi-tenant ;
  • i18n avancée ;
  • support prioritaire ;
  • SSO Enterprise.

Bonne pratique de sécurité

La page d’administration est une aide opérationnelle. Les contrôles réels doivent aussi être appliqués côté hooks Feathers sur les actions sensibles : build, export, publication, média S3, audit, multi-tenant et administration.

Guards serveur 0.1.67

La version 0.1.67 ajoute l’application réelle des entitlements côté services Feathers/NFZ. L’interface désactive les actions non autorisées, mais la règle principale est désormais côté serveur.

Services protégés :

ActionServiceEntitlement
Créer/modifier/supprimer une page Markdowndocs-pagesdocsEditor
Importer un Markdowndocs-importsdocsEditor
Lancer un build VitePressdocs-buildsbuildVitePress
Exporter le projet VitePress sourcedocs-exportsexportSourceProject
Exporter le site statique buildédocs-exportsexportStaticZip
Utiliser un provider média S3/RustFSdocs-assets / docs-importsmediaS3

Le mode local conserve une DX simple. En production, utiliser NFZ_LICENSE_MODE=remote et une clé NFZ_LICENSE_KEY validée par NFZ License Server.

ini
NFZ_LICENSE_MODE=remote
NFZ_LICENSE_ENFORCEMENT=true
NFZ_LICENSE_SERVER_URL=https://licence.nfz-serveur.fr
NFZ_LICENSE_VERIFY_PATH=/api/license/verify
NFZ_LICENSE_KEY=...

NFZ_LICENSE_ENFORCEMENT=false existe uniquement comme échappatoire de développement local et ne doit pas être utilisé en production.

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