> 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/builds-artifacts-and-deployment.md).

# Versions et déploiement

Compilez, nommez et déployez les artéfacts de règles Kilo IoT — validez le diagramme, produisez un artéfact, puis lancez le traitement.

Enregistrer une règle préserve votre travail. Générer une règle la valide et produit un artefact déployable. Déployer un artefact lance le traitement de la règle à partir de son capteur ou de sa source de déclenchement sélectionné. Ce sont des étapes distinctes et délibérées — la plateforme n’exécute jamais une logique d’automatisation qui n’a pas été explicitement générée et déployée.

Cette séparation est essentielle pour les environnements de production. Elle vous permet d’itérer sur une règle au fil de plusieurs sessions d’édition sans affecter ce qui s’exécute actuellement. Lorsque la conception vous convient, vous la générez, et lorsque vous êtes prêt à la mettre en ligne, vous la déployez.

## Générer une règle

### Démarrer une génération

Depuis l’éditeur de règle, cliquez sur le **Générer** bouton dans la barre d’en-tête. Le panneau latéral des résultats de génération s’ouvre à droite de l’éditeur.

### Le panneau latéral des résultats de génération

Le panneau latéral est un formulaire où vous nommez et annotez la génération avant de la créer :

| Champ           | Description                                                                                                                                                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Nom**         | Un nom obligatoire pour cet artefact de génération. Choisissez quelque chose qui identifie le changement — par exemple, « Mise à jour du seuil d’humidité » ou « Branche d’escalade ajoutée ».                                 |
| **Commentaire** | Une zone de texte facultative pour un contexte supplémentaire. Utilisez-la pour noter pourquoi la génération a été créée, ce qui a changé depuis la dernière génération ou toute instruction de déploiement pour votre équipe. |

En bas du panneau latéral :

* **Enregistrer et générer** — Enregistre l’état actuel de la règle comme nouvelle version, puis en crée un artefact de génération.
* Un lien vers la liste des artefacts : *« Vous pouvez gérer les conteneurs dans la liste des artefacts. »* Cliquez dessus pour accéder directement à l’onglet Artefacts.

### Résultats de génération

**En cas de succès :** Une notification confirme *« Génération créée avec succès »* et le panneau latéral se ferme. L’artefact de génération apparaît dans l’onglet Artefacts, prêt à être déployé.

**En cas d’erreur :** Si la génération rencontre des erreurs de validation — comme des expressions CEL invalides, des connexions manquantes ou des problèmes structurels dans le diagramme — un retour d’erreur s’affiche directement dans le panneau latéral. Corrigez les problèmes signalés dans l’éditeur et relancez la génération. Voir [Dépannage](/kilo-docs-fr/kilo-iot-server/rules-engine/troubleshooting.md) pour une liste complète des erreurs de génération et de la manière de les résoudre.

### Ce que fait une génération

L’étape de génération :

1. Enregistre la règle actuelle comme nouvelle version (de sorte que l’état généré soit toujours capturé dans l’historique des versions)
2. Valide l’ensemble du diagramme : structure, connexions, configurations des nœuds et toutes les expressions CEL
3. Produit un artefact — un paquet déployable contenant la logique de règle validée

<figure><img src="https://3675309505-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-0e913c70375959f649cd04d37e7a8bb2db30cf39%2Frules-build-sidebar.jpg?alt=media" alt="The build sidebar with the build name and comment fields and the Save and Build action"><figcaption></figcaption></figure>

## L’onglet Artefacts

### Pour y accéder

Depuis la page Rules Engine à `/rules`, cliquez sur l’ **onglet Artefacts** (le deuxième onglet, entre Règles et Corbeille).

### Recherche

Une barre de recherche en haut de l’onglet filtre les artefacts par nom de règle. Saisissez du texte pour affiner la liste lorsque vous gérez de nombreuses règles.

### Groupement des artefacts

Les artefacts sont regroupés par définition de règle. Chaque règle ayant au moins une génération apparaît sous forme de ligne repliable affichant le nom et la description de la règle. Cliquez sur une ligne de règle pour la développer et voir toutes les générations de cette règle.

### État vide

Si aucune génération n’existe encore, l’onglet affiche : *« Aucun artefact »* avec le message *« Les artefacts apparaîtront ici lorsque les règles en généreront. »*

### Détails de génération

Chaque groupe développé répertorie les générations individuelles avec les colonnes suivantes :

| Colonne                  | Description                                                                                                                                             |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nom de la génération** | Le nom que vous avez donné à la génération. Codé par couleur selon l’état : vert pour En cours d’exécution, orange pour Arrêté, rouge pour Arrêt forcé. |
| **Source**               | Un lien qui ouvre la vue en lecture seule de la règle, afin que vous puissiez inspecter la définition de règle qui a produit cet artefact.              |
| **Date et heure**        | Moment de création de la génération, formaté comme « dd MMM yyyy, HH:mm »                                                                               |
| **ID utilisateur**       | Le membre de l’équipe qui a créé la génération. Dans l’interface actuelle, cela affiche généralement le nom de l’utilisateur résolu ainsi que son ID.   |
| **Commentaire**          | Le commentaire saisi lors de la génération. Cliquez pour modifier en ligne — appuyez sur Entrée pour enregistrer ou sur Échap pour annuler.             |

### États des artefacts

| État                     | Couleur | Signification                                                                                                                                         |
| ------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| **En cours d’exécution** | Vert    | L’artefact est déployé et attend son capteur ou sa source de déclenchement sélectionné                                                                |
| **Arrêté**               | Orange  | L’artefact a été arrêté manuellement. Il peut être redéployé.                                                                                         |
| **Arrêt forcé**          | Rouge   | Le système a automatiquement arrêté l’artefact en raison d’erreurs d’exécution persistantes. Voir [Sécurité d’urgence](#emergency-safety) ci-dessous. |

<figure><img src="https://3675309505-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtNQh1wBSHSaknslMdOXm%2Fuploads%2Fgit-blob-68ccfbef6f6b499fddc996b76964f7700bead473%2Frules-artifacts.jpg?alt=media" alt="The Artifacts tab listing each rule with its builds"><figcaption></figcaption></figure>

## Déployer un artefact

Le déploiement lance un artefact généré afin qu’il traite les données de capteur en direct en temps réel.

### Comment déployer

1. Ouvrez l’onglet **onglet Artefacts** sur la page Rules Engine.
2. Développez le groupe de règles contenant la génération que vous souhaitez déployer.
3. Cliquez sur **Déployer** sur la ligne de génération.

L’état de l’artefact passe à **En cours d’exécution** (vert). La règle évalue désormais activement chaque nouvelle lecture provenant de son capteur associé et exécute la logique d’automatisation.

### Contraintes de déploiement

* Une seule **génération par règle** peut être en cours d’exécution à la fois.
* Si une règle possède déjà un artefact en cours d’exécution et que vous déployez une génération différente, la plateforme arrête automatiquement l’artefact en cours d’exécution et démarre le nouveau en une seule opération. Il n’est pas nécessaire d’arrêter d’abord l’artefact en cours d’exécution — la transition est gérée pour vous.

## Arrêter une règle en cours d’exécution

L’arrêt est une action de pause délibérée — utilisez-la lorsque vous souhaitez qu’une règle cesse de répondre à sa source sélectionnée sans déployer une version différente.

### Comment arrêter

1. Ouvrez l’onglet **onglet Artefacts** onglet.
2. Trouvez l’artefact en cours d’exécution (état vert).
3. Cliquez sur **Arrêter**.

L’état passe à **Arrêté** (orange). La règle cesse immédiatement d’accepter de nouveaux démarrages. Les capteurs continuent à signaler et les déclencheurs continuent à surveiller, mais la règle arrêtée ne s’exécute à partir d’aucune des deux sources.

Un artefact arrêté peut être redémarré à tout moment en cliquant sur **Déployer** à nouveau.

## Supprimer un artefact de génération

Pour supprimer un artefact de génération dont vous n’avez plus besoin :

1. Ouvrez l’onglet **onglet Artefacts** onglet.
2. Trouvez l’artefact à supprimer. Il doit être en état **Arrêté** ou **Arrêt forcé** — vous ne pouvez pas supprimer un artefact en cours d’exécution.
3. Cliquez sur **Supprimer** sur la ligne de génération.

Les artefacts en cours d’exécution doivent être arrêtés avant de pouvoir être supprimés.

## Sécurité d’urgence

La plateforme surveille la santé d’exécution de chaque règle en cours d’exécution. Si une règle rencontre des erreurs persistantes pendant l’exécution — par exemple, un capteur référencé a été supprimé, une expression échoue systématiquement sur les données en direct ou une cible d’enrichissement est définitivement indisponible — le système arrête automatiquement la règle pour éviter des défaillances en cascade.

Lorsque cela se produit :

* L’état de l’artefact passe à **Arrêt forcé** (rouge) dans l’onglet Artefacts.
* La règle cesse de répondre aux nouvelles lectures de capteur ou aux activations de déclencheur.
* Aucune autre alarme ni notification n’est générée par cette règle.

### Récupération après un arrêt forcé

1. **Analysez la cause.** Passez en revue la logique de la règle dans l’éditeur. Vérifiez que les capteurs référencés sont toujours actifs, que les expressions sont valides pour les formes de données réelles et que les cibles d’enrichissement sont accessibles.
2. **Corrigez le problème.** Modifiez la règle pour traiter la cause profonde.
3. **Générez une nouvelle version.** Créez un nouvel artefact de génération à partir de la règle corrigée.
4. **Déployez la nouvelle génération.** Démarrez l’artefact corrigé depuis l’onglet Artefacts.

Ne vous contentez pas de redéployer l’artefact arrêté de force sans corriger le problème sous-jacent — les mêmes erreurs se reproduiront et la règle sera de nouveau arrêtée.

## Bonnes pratiques

* **Nommez les générations d’après le changement qu’elles contiennent.** Lorsqu’à 3 h du matin vous parcourez l’onglet Artefacts pendant un incident, « Ajout d’un repli d’humidité » est plus utile que « Génération 7 ».
* **Ajoutez des commentaires aux générations.** Les commentaires sont modifiables après création, ce qui vous permet d’annoter les générations avec des notes de déploiement, des références d’incident ou des instructions de retour arrière.
* **Déployez directement par-dessus la génération en cours d’exécution.** Une seule génération par règle s’exécute à la fois, et le déploiement d’une nouvelle remplace l’ancienne en une seule opération — il n’est pas nécessaire d’arrêter d’abord l’artefact actuel. Utilisez Arrêter lorsque vous voulez que la règle cesse complètement d’évaluer, et non comme étape avant le déploiement.
* **Considérez les arrêts forcés comme des incidents.** Une règle arrêtée de force signifie que la surveillance en direct de cette règle s’est arrêtée. Analysez et résolvez rapidement.
* **Générez à partir d’une version propre.** Si vous avez itéré sur une règle, enregistrez manuellement et nommez la version avant de générer. Cela garantit que l’artefact de génération correspond à une version clairement identifiée dans l’historique.


---

# 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/builds-artifacts-and-deployment.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.
