Modules
Documentation d'usage des modules officiels, gratuits sous @fraza/module-* et Pro sous @fraza-pro/module-*, installation, configuration, modèle de données et API.
Un module est un paquet npm auto-découvert qui apporte ses tables, ses permissions, ses écrans d'admin et ses routes. Si le terme est neuf, Les concepts le situe parmi les autres.
Cette section documente l'usage des modules officiels. Pour écrire son propre module, voir Créer un module ; pour comprendre comment un module est découvert et activé, voir Cycle de vie d'un module.
La documentation de chaque module vit ici, dans @fraza/core, et non dans le dépôt du module. Un projet qui installe le core dispose donc de la documentation de tout l'écosystème au même endroit, hors ligne, sous node_modules/@fraza/core/dist/docs/06-modules/.
Les modules se rangent en deux offres : les modules gratuits, sous licence MIT, et les modules Pro, sous licence Fraza Pro. Le nom du paquet le dit : @fraza/module-* pour les premiers, @fraza-pro/module-* pour les seconds. Aucun module d'usage personnel, pour une instance locale montée pour soi plutôt que pour une organisation, n'est publié à ce jour.
Gratuit
Le contenu du site public et ce qui l'alimente depuis l'admin. Ces modules s'installent sans connexion au registre : la ligne @fraza:registry que npx @fraza/start écrit dans le .npmrc suffit.
| Module | Paquet | Contenu |
|---|---|---|
| Pages | @fraza/module-pages | Pages CMS hiérarchiques rendues à la racine du site, avec BlockEditor et templates extensibles. |
| Posts | @fraza/module-posts | Types de contenu déclarés en variables d'environnement, avec taxonomies, relations et hiérarchie. |
| Médias | @fraza/module-medias | Médiathèque, téléversement, sélecteur d'image et suivi des références de contenu. |
| Formulaires | @fraza/module-forms | Constructeur de formulaires, collecte des soumissions et notifications par courriel. |
Pro
L'exploitation quotidienne d'une entreprise. L'interface reste réservée à l'administration, même quand le module ouvre une page publique : lien de partage, page de paiement.
| Module | Paquet | Contenu |
|---|---|---|
| Facturation | @fraza-pro/module-billing | Clients, factures avec taxes TPS et TVQ, paiement Stripe et Interac, récurrences et rappels. |
| Fichiers | @fraza-pro/module-drive | Envoi et réception de fichiers : navigateur de dossiers, partages par lien, dépôts externes, corbeille et historique. |
| Rendez-vous | @fraza-pro/module-booking | Agenda et calendrier, types de rendez-vous, intervenants, horaires, prise de rendez-vous en ligne et rappels. |
Le registre ne sert ces paquets qu'avec un token. Le .npmrc du projet doit porter la ligne de portée @fraza-pro:registry=https://registry.fraza.ca/ et le token du registre. Le plus simple est de se connecter avec npm login --registry=https://registry.fraza.ca/, puis de lancer npx fraza-key dans le projet : la commande écrit les deux lignes de portée et le token. Voir fraza-key.
L'utilisation en production d'un module Pro demande une licence par projet, renouvelée chaque année. Voir Licence et propriété.
Choisir entre Pages et Posts
Les deux modules de contenu se ressemblent et ne servent pas au même usage.
| Pages | Posts | |
|---|---|---|
| Structure | Fixe : titre, slug, blocs, template. | Déclarée par le projet, champ par champ. |
| URL publique | À la racine du site. | Toujours préfixée par la clé du type. |
| Priorité de résolution | 0, sert de repli. | 10, réserve son préfixe. |
| Nombre de types | Un seul. | Autant que déclaré. |
Ils sont indépendants et cohabitent sans conflit. Une page nommée blogue et un type de post nommé blogue coexistent : /blogue rend la page, /blogue/mon-article rend le post.
Version documentée
Chaque module suit son propre cycle de publication, indépendant de celui du core. La page d'accueil d'un module indique donc la version qu'elle documente.
Si la version installée est plus récente, ses notes de version sont livrées avec elle, dans node_modules/<module>/CHANGELOG.md. Elles sont donc consultables hors ligne, sans accès au dépôt. npx fraza-update les affiche automatiquement après une mise à jour.
Ce qui reste dans le dépôt du module
Le dépôt d'un module ne porte plus que son code, son README.md de présentation et ses règles d'agent. Les conventions de code, de rédaction, de commit et de publication sont communes à tout l'écosystème et vivent dans Contribution.