Configuration

Variable d'activation, dépendances d'origine, de courriel et de stockage, réglages par formulaire, permissions et entrées d'admin.

Le module ne déclare qu'une seule variable d'environnement. Tout le reste de sa configuration vit par formulaire, en base, et se règle dans l'onglet Réglages du constructeur.

En revanche, trois services du core conditionnent son fonctionnement. Les ignorer produit des pannes silencieuses.

Variables du module

VariableRequiseEffet
LRVO_MODULE_FORMSouitrue active le module. Absente ou fausse, le module est ignoré : aucune table, aucune route, aucune entrée d'admin.

LRVO_MODULE_FORMS est déclarée required: true dans le manifeste du module. Son absence produit un avertissement au boot sans faire tomber le serveur.

Dépendances au core

VariableSans elle
NEXT_PUBLIC_URLToute soumission est rejetée en 403.
NEXT_PUBLIC_URL_DEVIdem, en développement.
La variable du fournisseur courriel actif : LRVO_EMAIL_RESEND_APIKEY sous Resend, LRVO_EMAIL_SMTP_HOST sous SMTPAucun courriel ne part. Les soumissions sont enregistrées.
LRVO_EMAIL_FROM_ADDRESSIdem.
LRVO_STORAGE_*Les champs de type fichier échouent. Le reste du formulaire fonctionne.
LRVO_NAME, LRVO_LOGO_URL, LRVO_SITE_URLLa page publique dédiée s'affiche sans marque : ni logo dans la barre, ni nom en pied de page. Le formulaire lui même fonctionne.

La première ligne mérite d'être répétée : c'est la panne la plus fréquente de ce module, et la moins lisible. Le routeur du core compare l'en-tête Origin de la requête à l'origine déclarée. Sans variable, il n'y a rien à comparer et la protection refuse tout.

NEXT_PUBLIC_URL sert aussi à construire le lien vers la soumission dans le courriel de notification. Sans elle, le courriel part sans lien.

Ces variables appartiennent au core. Leur documentation de référence est dans Variables d'environnement.

Réglages par formulaire

L'onglet Réglages du constructeur porte cinq cartes, dont tout le contenu est stocké en base avec le formulaire.

La première, Général, porte le titre, le slug, la description et le statut. Les quatre suivantes portent les réglages ci-dessous.

RéglageDéfautEffet
Libellé du boutonEnvoyerTexte du bouton d'envoi.
Après envoiMessageMessage de remerciement, ou redirection vers une URL.
NotificationDésactivéeDestinataires et sujet du courriel envoyé à l'équipe.
Accusé de réceptionDésactivéChamp courriel à utiliser, sujet et message envoyés au visiteur.
Délai minimal3 secondesDurée sous laquelle une soumission est considérée robotisée. 0 désactive.

Le mode « redirection » remplace le message par une navigation vers l'URL donnée, exécutée par le navigateur après la réponse du serveur.

Voir Soumissions pour l'effet exact de chacun de ces réglages sur le pipeline.

Statut d'un formulaire

Un formulaire est active ou inactive. Créé actif par défaut, il devient inactif en un clic.

Un formulaire inactif :

  • n'est plus servi par la route publique de lecture ni par sa page publique, qui renvoie une page introuvable ;
  • refuse toute nouvelle soumission avec « Ce formulaire n'accepte plus de soumissions » ;
  • reste modifiable dans l'admin, et ses soumissions restent consultables.

C'est la voie recommandée pour fermer une campagne sans perdre ses réponses.

Une copie de formulaire est toujours créée inactive, pour éviter qu'un duplicata parte en production par inadvertance.

Permissions

CléNomPortée
forms.viewVoir les formulairesAccès en lecture aux formulaires et aux soumissions dans l'admin.
forms.manageGérer les formulairesCréation, modification, duplication et suppression de formulaires et de soumissions.

Les deux sont groupées sous Formulaires dans /admin/roles. Elles sont attribuées au rôle admin au moment du lrvo-db init, et distribuables ensuite à d'autres rôles.

Elles ne suffisent pas seules : les routes et les écrans d'admin exigent d'abord admin.access, la permission d'entrer dans l'administration. Un rôle qui reçoit forms.view sans admin.access n'atteint rien.

forms.view suffit à lire le contenu des soumissions, y compris les données personnelles qu'elles portent et les pièces jointes. Ce n'est pas une permission de simple consultation de structure, à garder en tête au moment de la distribuer.

Le point de soumission public, lui, n'exige aucune permission. Voir Soumissions.

Entrées d'admin

Le module enregistre une section contenant deux items.

ÉlémentValeur
SectionFormulaires, icône CheckListIcon, ordre 75.
Item 1Formulaires, /admin/forms, icône CheckListIcon, permission forms.view.
Item 2Soumissions, /admin/forms/submissions, icône InboxIcon, permission forms.view.

L'ordre 75 place la section après les modules de contenu. Voir Étendre l'admin.

Notes

  • Aucune variable du module ne contient de secret. Les secrets de courriel et de stockage sont ceux du core, lisibles côté serveur uniquement.
  • Les réglages vivant en base, les changer ne demande aucun redémarrage, contrairement à @lrvo/module-posts.
  • Changer LRVO_MODULE_FORMS à false désactive le module mais laisse les tables et leurs données en place. Les pièces jointes déjà téléversées restent dans le stockage objet.

Sur cette page