Second Brain documentation

ADR 0002 – Définitions déclaratives en fichiers YAML

← Toutes les décisions

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 champ name.
  • 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 un SimpleEvaluationContext en 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-format et ExampleDefinitionsTest.
  • Les noms d’aspects et de champs sont en camelCase sans accents, car ils servent dans les expressions.