Aller au contenu

Installation

Installer le module de licences, créer les tables, donner un quota aux offres de Facturation et monter l'espace client.

Cette page installe @fraza-pro/module-licenses dans un projet où Facturation est déjà installé, abonnements activés. Le module est découvert au boot comme les autres, voir Cycle de vie d'un module.

Prérequis

  • @fraza-pro/module-billing installé et activé, avec FRAZA_MODULE_BILLING_SUBSCRIPTIONS_ENABLED=true. Le manifeste du module le déclare dans requiresModules : sans Facturation activée, le site refuse de démarrer.
  • Des comptes clients : la section « Projets » vit dans l'espace client du core, et une fiche de facturation s'y relie par son compte.
  • La clé du projet dans le .npmrc du projet, pour installer le module lui-même. Voir Modules Pro.

Installer

npm i @fraza-pro/module-licenses

Dans .env.local, et dans les variables de la plateforme en production :

#------ MODULE - LICENSES ------#
FRAZA_MODULE_LICENSES=true
FRAZA_MODULE_LICENSES_CONNECTOR=verdaccio
FRAZA_MODULE_LICENSES_REGISTRY_URL=https://registry.exemple.ca/
FRAZA_MODULE_LICENSES_REGISTRY_SCOPES=@mon-scope
FRAZA_MODULE_LICENSES_REGISTRY_SECRET=

REGISTRY_URL est l'adresse de votre registre Verdaccio, celui dont vous vendez l'accès, et REGISTRY_SCOPES le scope des paquets que vous y vendez. Les deux forment les lignes .npmrc données au client. Les autres réglages du registre sont dans Configuration.

Le secret se génère une fois, et se recopie dans la configuration du plugin Verdaccio :

node -e "console.log(require('node:crypto').randomBytes(32).toString('base64url'))"

Régénérer les manifestes, puis créer les tables :

npx fraza-modules sync    # déclenché automatiquement au postinstall
npx fraza-db init         # crée les cinq tables fraza_licenses_*, après celles de Facturation

Donner un quota aux offres

Une offre de Facturation ne donne une licence que si elle a un quota. Dans l'admin, Licences, puis Quotas : une ligne par offre.

ChampEffet
Donne une licenceChaque abonnement à l'offre reçoit une licence.
Quota de projetsLe nombre de projets actifs permis. Vide : illimité.
Seuil d'usage raisonnableAu-delà de ce nombre de projets actifs, une notification part aux détenteurs de licenses.manage, une fois par licence, sans rien bloquer. Vide : aucune alerte.

Pour Fraza Pro : « Développeur », 30 projets ; « Agence », illimité, avec un seuil à 500.

Un quota se règle avant les premières souscriptions. Un abonnement souscrit à une offre qui n'a pas encore de quota reçoit sa licence au premier paiement suivant, s'il en a un entre-temps.

Monter l'espace client

La section « Projets » paraît dans l'espace client, à /compte/projets par défaut, pour un compte dont la fiche de facturation a une licence. Si la route de l'espace client n'existe pas encore dans le projet, la créer : voir Ajouter un espace client.

Brancher le registre

Avec le connecteur verdaccio, il reste à installer le plugin sur le serveur du registre : voir Le plugin Verdaccio.

Vérifier

  1. Souscrire à une offre qui a un quota, avec un compte connecté.
  2. Ouvrir /compte/projets et créer un projet : la clé fzk_… et les lignes à coller dans le .npmrc s'affichent une fois.
  3. Coller ces lignes dans le .npmrc d'un projet de test : npm view @mon-scope/<paquet> répond.
  4. Dans l'admin, Licences : la licence est « Active », avec un projet.
  5. Terminer l'abonnement depuis Facturation (« Terminer maintenant ») : la licence passe « Suspendue », et le registre refuse la clé une fois le cache du plugin expiré.

Sur cette page