# Configuration des formulaires

La configuration des formulaires Formerie est gérée côté serveur. Les interfaces
publiques soumettent des valeurs; elles ne contrôlent ni la livraison, ni les
fournisseurs, ni les destinataires, ni les gabarits, ni les règles de validation.

## Exemple de structure

```json
{
  "enabled": true,
  "formHandle": "contact",
  "schemaId": "fm_p6dr8wq2j7tkan",
  "workspaceHandle": "example",
  "metadata": {
    "label": "Contact Form",
    "schemaVersion": "1.0.0"
  },
  "allowedOrigins": ["https://example.com"],
  "verification": {
    "provider": "turnstile",
    "required": true
  },
  "fields": {
    "contact": {
      "type": "object",
      "fields": {
        "name": {
          "type": "string",
          "required": true,
          "max": 120,
          "trim": true
        },
        "email": {
          "type": "email",
          "required": true,
          "max": 254,
          "trim": true,
          "normalizeEmail": true
        }
      }
    },
    "message": {
      "type": "textarea",
      "required": true,
      "max": 5000,
      "trim": true
    }
  }
}
```

## Projection du schéma public

Le point de terminaison du schéma public expose seulement la configuration sans
danger pour l’interface :

- les libellés et les types des champs
- les indicateurs de champs obligatoires
- les indications de validation
- les métadonnées publiques
- l’exigence d’un fournisseur de vérification
- les définitions d’étapes, que les interfaces personnalisées peuvent utiliser
  pour des parcours en plusieurs étapes (les pages hébergées et les intégrations
  affichent les étapes sous forme de sections sur une seule page)

Il n’expose pas les destinataires, les identifiants des fournisseurs, les
fournisseurs de relève, les règles de livraison, les gabarits de courriel, les
origines autorisées, les règles de limite de débit ni les métadonnées
opérationnelles non publiques.

## Vérification humaine

Les formulaires peuvent exiger un fournisseur de vérification. Les clients
soumettent le jeton du fournisseur dans `verificationToken`.
