Des parcours pilotés par schéma avec la configuration comme code
Une plateforme d’interface pilotée par la configuration, avec du config-as-code sous Git, pour que les changements de règles soient livrés en quelques heures sans déploiement frontend.
- Stack
- TypeScript · jsonform · Git · CI/CD · Schema validation
Le problème
Des parcours pour de nombreux marchés signifiaient du code dupliqué et un ticket d’ingénierie chaque fois que le produit ou la conformité voulait changer une règle régionale.
L’approche
- Générer les formulaires depuis un schéma. L’interface lit une configuration JSON ou YAML via jsonform : le schéma génère les champs et les règles de validation. Les actions personnalisées, comme le lancement d’un pont natif, restent dans le code.
- Une étape, des issues différentes. La configuration décide de ce que fait une étape pour chaque marché et chaque plateforme. Là où une capacité native est prise en charge, l’étape affiche un guidage et un bouton de scan ; sinon elle affiche les champs de formulaire habituels et un bouton Continuer. Le produit modifie cela dans la configuration, pas dans le code.
- La configuration comme code. Les changements passent par Git. Chaque changement ouvre une pull request automatique et lance une CI avec une validation de schéma stricte appuyée sur les types TypeScript, si bien qu’une configuration mal formée échoue avant la production.
Deux décisions qui méritent une explication
jsonform pour le rendu, du code pour les actions. Une interface entièrement pilotée par le serveur qui exécute une logique arbitraire envoyée par celui-ci s’expose à des risques d’exécution de code à distance et à des problèmes de performance. Un rendu piloté par les données, avec des actions liées à des gestionnaires précompilés, garde la souplesse sans cette exposition.
Git plutôt qu’un formulaire d’administration. Des modifications faciles sans gouvernance cassent les parcours en production. Les pull requests, les vérifications de types et la CI rendent chaque changement attribuable, relu et facile à annuler.
Le résultat
Les livraisons de configuration ne dépendent plus des déploiements frontend : les mises à jour multi-marchés sont passées de plusieurs semaines à quelques heures, et la duplication de code régional a cessé de croître.