Documentation — Référentiels

Tables de codes partagées (devises, pays, taux de TVA, unités de mesure) : modèle de données, gouvernance, versionnage et diffusion aux applications.

Modèle d'une entrée de référentiel

Toute entrée partage un socle commun — code (identifiant métier, unique dans le référentiel, format contrôlé), libelle, actif et utilisations (nombre d'enregistrements applicatifs qui la référencent). Les attributs spécifiques (symbole, decimales, taux,famille…) dépendent du référentiel et pilotent les colonnes affichées.

{
  "referentiel": "devises",
  "code": "EUR",              // unique, format imposé (ex. devise = 3 lettres majuscules)
  "libelle": "Euro",
  "actif": true,              // false = masqué dans les formulaires, données conservées
  "utilisations": 42,         // > 0 => suppression refusée, désactivation recommandée
  "champs": {                 // attributs propres au référentiel
    "symbole": "€",
    "decimales": 2
  }
}

Gouvernance — qui modifie quoi

  • Administrateur référentiels — crée les tables de codes, définit le format des codes et les attributs ; seul habilité à supprimer une entrée (jamais une entrée utilisée : la désactivation est la voie normale).
  • Responsables métier — proposent ajouts et corrections de libellés sur leur périmètre (la DAF pour les taux de TVA, la logistique pour les unités…) ; les modifications sont tracées nominativement dans l'historique.
  • Applications consommatrices — accès en lecture seule ; elles ne modifient jamais un référentiel directement.

Versionnage

Chaque référentiel porte un numéro de version incrémenté à chaque modification (ajout, édition, bascule actif/inactif, suppression). L'historique conserve l'auteur, l'action, l'entrée touchée et l'horodatage — c'est l'équivalent du flux « Historique des modifications » du simulateur. Les anciennes valeurs ne sont jamais écrasées physiquement : une entrée obsolète (ex. l'ancien taux normal de TVA à 19,6 %) reste consultable à l'état inactif pour relire les documents historiques.

Diffusion aux applications

  • API de lectureGET /referentiels/{id}?version=… ; les formulaires ne consomment que les entrées actif: true.
  • Cache et invalidation — les applications mettent en cache la version courante et se resynchronisent quand le numéro de version change (webhook ou polling).
  • Export CSV — extraction ponctuelle pour audit ou import dans un outil tiers ; c'est le bouton « Exporter en CSV » du simulateur.

Intégration en production

Le simulateur fonctionne en local (état React seedé). Pour brancher un vrai backend : persister les entrées dans une table reference_entries (contrainte d'unicité referentiel + code), calculer utilisations via les clés étrangères des applications, journaliser chaque action dans reference_audit et exposer l'API de lecture versionnée décrite ci-dessus.

Ouvrir le simulateur