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,proouenterprise; - le mode runtime :
local,remoteoudisabled; - l’état licence :
local,active,trialing,grace,expired,invalid,unconfiguredouunreachable; - les entitlements fonctionnels ;
- les quotas principaux ;
- les variables serveur nécessaires au déploiement DockerHub/Portainer.
Variables serveur
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=72Modes 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 :
| Action | Service | Entitlement |
|---|---|---|
| Créer/modifier/supprimer une page Markdown | docs-pages | docsEditor |
| Importer un Markdown | docs-imports | docsEditor |
| Lancer un build VitePress | docs-builds | buildVitePress |
| Exporter le projet VitePress source | docs-exports | exportSourceProject |
| Exporter le site statique buildé | docs-exports | exportStaticZip |
| Utiliser un provider média S3/RustFS | docs-assets / docs-imports | mediaS3 |
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.
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.