> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/kilo-docs-fr/kilo-iot-server/rules-engine/version-history-and-restore.md).

# Historique des versions

Parcourez l’historique des versions des règles dans Kilo IoT et restaurez n’importe quelle version précédente — audit complet de qui a changé quoi et quand.

Chaque enregistrement — qu’il soit manuel, automatique ou déclenché par un événement de session — crée une version de votre règle. L’historique des versions offre à votre équipe une piste d’audit complète de l’évolution d’une règle d’automatisation, des personnes qui l’ont modifiée et du moment où elles l’ont fait. Si une modification introduit un comportement inattendu, vous pouvez restaurer n’importe quelle version précédente sans rien perdre au passage.

## Pourquoi le versionnement est important en production

Les règles d’automatisation ont un impact direct sur les résultats opérationnels. Un seuil mal configuré, une condition inversée ou une branche de repli manquante peuvent générer de fausses alertes, faire taire les vraies ou inonder vos canaux de notification. L’historique des versions signifie que vous n’êtes jamais coincé avec une mauvaise modification. Vous pouvez revoir ce qui a changé, restaurer une version connue comme fiable, puis redéployer — le tout sans reconstruire la règle de mémoire.

## Où le trouver

Ouvrez une règle en **Édition** mode et cliquez sur le **Historique** onglet sous la barre d’en-tête. L’onglet Historique fait partie uniquement du parcours d’édition. Si vous consultez actuellement une règle à l’adresse `/rules/:id/view`, passez d’abord à **Édition** Le lien de l’historique se trouve à `/rules/:id/edit/history`.

Au-dessus du tableau, un champ de recherche vous permet de filtrer les versions par :

* nom de version
* auteur
* type d’enregistrement

## Tableau de l’historique des versions

L’onglet Historique affiche un tableau de toutes les versions enregistrées, triées avec la version la plus récente en haut.

### Colonnes

| Colonne                   | Description                                                                                                               |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| **Nom de version**        | Un libellé lisible pour la version. Par défaut, il s’agit du nom généré automatiquement. Modifiable directement en ligne. |
| **Date et heure**         | Moment où la version a été enregistrée, au format « dd MMM yyyy, HH:mm »                                                  |
| **Type d’enregistrement** | Comment la version a été créée (voir ci-dessous)                                                                          |
| **Utilisateur**           | Le membre de l’équipe dont la session a créé la version                                                                   |

### Types d’enregistrement

Chaque version indique comment elle a été créée :

| Type d’enregistrement   | Signification                                                                                            |
| ----------------------- | -------------------------------------------------------------------------------------------------------- |
| **manuel**              | L’utilisateur a cliqué explicitement sur le **Enregistrer** bouton                                       |
| **auto**                | Enregistrement automatique périodique pendant une session d’édition active                               |
| **fermeture\_editeur**  | Enregistré automatiquement lorsque l’utilisateur a quitté l’éditeur                                      |
| **déconnexion**         | Enregistré lorsque le navigateur s’est fermé ou que la connexion a été interrompue de manière inattendue |
| **expiration\_session** | Enregistré après l’expiration du délai d’inactivité et la fermeture de la session                        |
| **nettoyage\_verrou**   | Enregistré par un processus d’arrière-plan lorsqu’il a détecté un verrou expiré et l’a libéré            |
| **restauré**            | Cette version a été créée en restaurant une version précédente                                           |

Les types d’enregistrement vous aident à comprendre le contexte de chaque version. Une série d’entrées « auto » suivie d’une entrée « manuel » vous indique que quelqu’un travaillait activement puis a enregistré volontairement. Une entrée « disconnect » vous indique que la session s’est terminée de façon inattendue — vérifiez si le travail contenu dans cette version est terminé.

<figure><img src="https://3675309505-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-a5ccddd6c8e057512d1c9ff6877a80f35b00a868%2Frules-version-history.jpg?alt=media" alt="The History tab listing saved versions with their date, save type and author"><figcaption></figcaption></figure>

## Renommer des versions

Par défaut, les versions portent des noms générés automatiquement. Vous pouvez renommer n’importe quelle version pour qu’elle ait du sens pour votre équipe — par exemple, « Avant la refonte de la passerelle » ou « Version de base production v3. »

Pour renommer une version :

1. Cliquez sur le **icône de crayon** à côté du nom de la version dans le tableau d’historique.
2. Saisissez le nouveau nom (jusqu’à 100 caractères).
3. Appuyez sur Entrée ou cliquez en dehors pour confirmer.

Contraintes de nommage :

* 100 caractères maximum
* Ne peut pas dupliquer le nom d’une autre version dans la même règle
* Les caractères `<`, `>`, et `/` ne sont pas autorisés

Des versions bien nommées permettent d’identifier plus rapidement le bon point de restauration lorsque quelque chose tourne mal à 2 h du matin.

## Afficher une version précédente

Pour inspecter à quoi ressemblait une règle à un moment précis :

1. Trouvez la version dans le tableau d’historique.
2. Cliquez sur le **icône en forme d’œil** (Action Afficher) sur cette ligne.
3. L’éditeur ouvre une visionneuse BPMN en lecture seule affichant le diagramme tel qu’il existait dans cette version, à une route sous `/rules/:id/edit/history/...`.

Dans la navigation normale, le dernier segment du chemin correspond à la version enregistrée sélectionnée dans le tableau.

Dans cette vue, vous ne pouvez pas modifier le diagramme. Deux boutons sont disponibles :

* **Restaurer cette version** — Lance le flux de restauration (voir ci-dessous)
* **Quitter le mode affichage** — Vous ramène à l’onglet Historique

## Restaurer une version

Restaurer une version la rend actuelle pour la règle. La restauration n’écrase ni ne supprime aucun historique — elle crée une nouvelle entrée en haut du tableau d’historique comme version actuelle, et la version précédemment active est conservée dans l’historique.

### Comment restaurer

1. Affichez la version que vous souhaitez restaurer (cliquez sur l’icône en forme d’œil).
2. Cliquez sur **Restaurer cette version**.
3. Une boîte de dialogue de confirmation apparaît, expliquant que la restauration créera une nouvelle version courante et conservera la version active précédente dans l’historique.
4. Cliquez sur **Restaurer** pour confirmer.
5. La version est restaurée comme nouvelle version courante avec le type d’enregistrement « restauré ».
6. La plateforme vous ramène à l’éditeur avec la version restaurée comme brouillon actuel.
7. L’onglet Historique se met à jour pour afficher la nouvelle entrée en haut.

### Ce qui se passe après une restauration

* La version restaurée devient la version active dans l’éditeur.
* La version qui était active avant la restauration reste dans le tableau d’historique — le travail enregistré demeure récupérable grâce à l’historique des versions.
* La nouvelle entrée de version affiche le type d’enregistrement **restauré** et indique l’utilisateur qui a effectué la restauration.
* La version restaurée est un brouillon. Elle n’est pas déployée tant que vous ne la construisez pas et ne la déployez pas. Si l’artefact déployé précédent est toujours en cours d’exécution, il continue d’exécuter l’ancienne logique jusqu’à ce que vous déployiez une nouvelle version.

## Bonnes pratiques

* **Nommez les versions après des modifications importantes.** Avant de refactoriser une règle complexe, enregistrez manuellement et donnez à la version un nom reconnaissable. Cela vous offre un point de restauration propre si la refonte se passe mal.
* **Utilisez les noms de version pour documenter l’intention.** Une version nommée « Ajout de la branche de repli pour l’humidité » est bien plus utile que « Version 14 » lorsque vous parcourez l’historique six mois plus tard.
* **Vérifiez les types d’enregistrement avant de restaurer.** Une version « auto » ou « disconnect » peut représenter un travail incomplet. Préférez restaurer à partir d’un enregistrement « manuel » lorsque c’est possible.
* **Restaurez avant de reconstruire.** Si une règle déployée se comporte mal, revenez d’abord à la dernière version connue comme fiable, puis construisez et déployez. Ne modifiez pas la version cassée sous la pression.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kiloiot.io/kilo-docs-fr/kilo-iot-server/rules-engine/version-history-and-restore.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
