ADR 0002 – Définitions déclaratives en fichiers YAML
ADR 0002 – Définitions déclaratives en fichiers YAML
Contexte
L’utilisateur veut ajouter un aspect, une vue ou un dashboard en écrivant un fichier, sans éditeur graphique, et pouvoir le faire aussi par API.
Décision
- Les définitions vivent dans
config/<kind>/<name>.yaml, versionnées dans git. Le nom du fichier est égal au champname. - Chaque fichier est validé contre un méta-schéma JSON Schema (
backend/src/main/resources/definitions/meta/), puis vérifié pour ses références croisées. - Un fichier invalide est ignoré et signalé (
GET /api/definitions/status) ; au rechargement, la version précédente valide est conservée. - Les schémas de données des aspects sont en JSON Schema 2020-12 standard, ce qui permet de générer les formulaires côté front (Formly) sans format propriétaire.
- Les expressions (
when,where) utilisent SpEL avec unSimpleEvaluationContexten lecture seule. - La future API des définitions (V2) écrira ces mêmes fichiers : le fichier reste la source de vérité.
Alternatives écartées
- Définitions en base : perd le versionnement git, la revue de diff et l’édition au clavier.
- Format maison pour les champs : réinventerait JSON Schema et priverait de l’outillage existant.
Conséquences
- Tout changement du format passe par le méta-schéma, le skill
definitions-formatetExampleDefinitionsTest. - Les noms d’aspects et de champs sont en camelCase sans accents, car ils servent dans les expressions.