@fraza/module-forms
v0.4.1
Published
Module de formulaires pour Fraza : constructeur au glisser-déposer, soumissions, courriels de notification et bloc à embarquer.
Readme
Le module ajoute des formulaires à l'admin de Fraza. Composez-les au glisser-déposer, affichez-les sur le site et recevez les soumissions dans l'admin, avec une notification par courriel.
npm i @fraza/module-formsDocumentation · Installation · Affichage
[!WARNING] Fraza est en version
0.x. Une nouvelle version mineure peut contenir un changement cassant.
Points forts
- Un constructeur sans code. Texte, courriel, choix, consentement, fichier, champ caché : chaque champ se pose au glisser-déposer, sur une ligne entière, une demie ou un tiers.
- Contre les robots, sans captcha. Un champ piège et un délai minimal signé arrêtent les robots, sans service externe.
- Chaque valeur vérifiée deux fois. Dans le navigateur, puis sur le serveur, selon le type de son champ.
- La confidentialité par défaut. Durée de conservation par formulaire, adresse IP réduite à son réseau, fichiers retirés du stockage avec leur soumission.
Prérequis
- Un projet créé par
npx @fraza/start, avec@fraza/coreinstallé. NEXT_PUBLIC_URLrenseignée. Le core vérifie l'origine de toute requête qui modifie des données : sans cette variable, toute soumission est rejetée en 403.@fraza/startla remplit dans.env.local.- Aucun compte : le paquet est publié sur npmjs.
Installation
npm i @fraza/module-formsAjoutez la variable d'activation à .env.local, et aux variables de la plateforme en production :
FRAZA_MODULE_FORMS=trueRégénérez ensuite les manifestes, puis créez les tables :
npx fraza-modules sync
npx fraza-db initfraza-modules sync se lance aussi au postinstall. fraza-db init crée fraza_forms_form, fraza_forms_submission et fraza_forms_storage_deletion, la file des fichiers à retirer du stockage. Sur un projet où le module est déjà installé, npx fraza-db migrate applique ses migrations.
Trois fonctions demandent une configuration du core. Sans elle, le reste du module fonctionne :
| Fonction | Demande |
|---|---|
| Courriels de notification et de confirmation | La configuration courriel du projet, Resend ou SMTP, et la table fraza_email_outbox, créée par npx fraza-db migrate. |
| Champs de type fichier | Les variables FRAZA_STORAGE_*. |
| Délai minimal anti-robots | FRAZA_ENCRYPTION_KEY, que @fraza/start remplit. Sans elle, le délai n'est pas vérifié. |
La tâche planifiée forms-retention tourne chaque heure : elle supprime les soumissions arrivées au bout de leur durée de conservation et retire leurs fichiers du stockage. Comme toute tâche du core, elle demande un serveur qui reste allumé, pas une plateforme serverless.
Le détail est dans Installation.
Documentation
| Page | Contenu |
|---|---|
| Installation | Installer le module, créer les tables, vérifier les dépendances. |
| Configuration | Variables d'environnement, permissions, entrées d'admin. |
| Champs | Catalogue des types de champs et validation appliquée. |
| Administration | Constructeur, liste des formulaires et boîte de réception. |
| Soumissions | Traitement d'une soumission, anti-robots, fichiers, courriels, rétention. |
| Affichage | Les trois façons de rendre un formulaire sur le site. |
| Modèle de données | Tables fraza_forms_form, fraza_forms_submission et fraza_forms_storage_deletion. |
| API | Routes HTTP et fonctions serveur importables. |
La documentation est aussi livrée avec le core, lisible hors ligne depuis un projet : node_modules/@fraza/core/dist/docs/06-modules/forms/.
Licence
MIT. Copyright (c) 2026 Fraza. Voir LICENSE. Les dépendances tierces sont listées dans THIRD-PARTY-NOTICES.md.
Ce paquet fait partie de Fraza Libre.
