Skip to content

Versions documentaires

NFZ Docs Notion Editor 0.1.70 consolide une fondation de versioning documentaire pour sécuriser les opérations de sauvegarde, suppression et restauration des pages Markdown.

Objectif

Le service docs-versions conserve des snapshots Markdown associés au tenant courant. Il est conçu pour préparer un usage SaaS commercial : auditabilité, restauration contrôlée, support client et preuve de modification.

Fonctionnement

Des snapshots sont créés automatiquement :

  • après la création d’une page Markdown ;
  • avant une sauvegarde complète ;
  • avant un patch de contenu ;
  • avant une suppression ;
  • avant une restauration.

Chaque version contient :

  • le chemin de la page ;
  • le contenu Markdown ;
  • un hash SHA-256 ;
  • la taille ;
  • le numéro de version ;
  • l’action source ;
  • l’auteur si disponible ;
  • le tenant ;
  • la date de création.

Page d’administration

La page /admin/versions permet de :

  • filtrer l’historique par page ;
  • filtrer par action ;
  • rechercher dans les métadonnées ;
  • prévisualiser le Markdown d’une version ;
  • copier le contenu ;
  • restaurer une version antérieure ;
  • comparer deux versions avec l’onglet Diff visuel ;
  • identifier rapidement les lignes ajoutées, supprimées ou modifiées.

Sécurité

La consultation et la restauration sont protégées par :

ini
NFZ_LICENSE_ENFORCEMENT=true
auditTrail=true

La création directe de versions depuis le client est interdite. Les snapshots sont générés côté serveur par les hooks NFZ/Feathers.

Verrou optimiste

La sauvegarde depuis /admin/docs-editor utilise maintenant un hash contentHash chargé avec la page. Lors de docs-pages.patch(), l’éditeur transmet expectedHash. Si le contenu a changé entre le chargement et la sauvegarde, le serveur renvoie une erreur 409 Conflict au lieu d’écraser silencieusement la page.

Ce mécanisme est indispensable pour une offre SaaS multi-utilisateurs : il protège contre les pertes de modifications concurrentes et pousse l’administrateur à recharger ou comparer les versions avant de continuer.

Restauration

Une restauration remplace le contenu Markdown courant par le snapshot choisi. Avant l’écrasement, le contenu courant est lui-même snapshoté, afin de pouvoir revenir en arrière.

Limites actuelles

Cette itération pose la fondation. Les évolutions recommandées sont :

  • affichage diff visuel ligne à ligne ;
  • politique de rétention automatique par édition ;
  • export de l’historique ;
  • comparaison entre deux versions ;
  • verrou optimiste avec hash côté éditeur.

Guide utilisateur public généré avec VitePress.