> 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-es/kilo-iot-server/rules-engine/builds-artifacts-and-deployment.md).

# Compilaciones y despliegue

Compila, nombra y despliega artefactos de reglas de Kilo IoT — valida el diagrama, genera un artefacto y luego inicia el procesamiento.

Guardar una regla preserva tu trabajo. Compilar una regla la valida y produce un artefacto desplegable. Desplegar un artefacto inicia el procesamiento de la regla de su sensor o fuente de activación seleccionada. Estos son pasos deliberados y separados: la plataforma nunca ejecuta lógica de automatización que no haya sido compilada y desplegada explícitamente.

Esta separación es crítica para los entornos de producción. Significa que puedes iterar sobre una regla en varias sesiones de edición sin afectar lo que está ejecutándose actualmente. Cuando estés satisfecho con el diseño, la compilas, y cuando estés listo para que entre en funcionamiento, la despliegas.

## Compilar una regla

### Iniciando una compilación

Desde el editor de reglas, haz clic en el **Compilar** botón en la barra de encabezado. La barra lateral de resultados de compilación se abre en el lado derecho del editor.

### La barra lateral de resultados de compilación

La barra lateral es un formulario donde nombras y anotas la compilación antes de crearla:

| Campo          | Descripción                                                                                                                                                                                       |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nombre**     | Un nombre obligatorio para este artefacto de compilación. Elige algo que identifique el cambio; por ejemplo, "Actualización del umbral de humedad" o "Se añadió una rama de escalado."            |
| **Comentario** | Un área de texto opcional para contexto adicional. Úsala para anotar por qué se creó la compilación, qué cambió desde la última compilación o cualquier instrucción de despliegue para tu equipo. |

En la parte inferior de la barra lateral:

* **Guardar y compilar** — Guarda el estado actual de la regla como una nueva versión y luego crea a partir de él un artefacto de compilación.
* Un enlace a la lista de artefactos: *"Puedes gestionar contenedores en la lista de artefactos."* Haz clic aquí para navegar directamente a la pestaña Artefactos.

### Resultados de la compilación

**Si tiene éxito:** Una notificación confirma *"Artefacto creado correctamente"* y la barra lateral se cierra. El artefacto de compilación aparece en la pestaña Artefactos, listo para desplegarse.

**Si hay un error:** Si la compilación encuentra errores de validación — como expresiones CEL inválidas, conexiones faltantes o problemas estructurales en el diagrama — se muestran directamente en la barra lateral. Corrige los problemas informados en el editor e intenta compilar de nuevo. Consulta [Solución de problemas](/kilo-docs-es/kilo-iot-server/rules-engine/troubleshooting.md) para obtener una lista completa de los errores de compilación y cómo resolverlos.

### Qué hace una compilación

El paso de compilación:

1. Guarda la regla actual como una nueva versión (de modo que el estado compilado quede siempre registrado en el historial de versiones)
2. Valida todo el diagrama: estructura, conexiones, configuraciones de nodos y todas las expresiones CEL
3. Produce un artefacto: un paquete desplegable que contiene la lógica de la regla validada

<figure><img src="https://3373664356-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>

## La pestaña Artefactos

### Cómo llegar

Desde la página del motor de reglas en `/rules`, haz clic en la pestaña **Artefactos**  (la segunda pestaña, entre Reglas y Papelera).

### Buscar

Una barra de búsqueda en la parte superior de la pestaña filtra los artefactos por nombre de regla. Escribe para acotar la lista cuando gestiones muchas reglas.

### Agrupación de artefactos

Los artefactos se agrupan por definición de regla. Cada regla que tiene al menos una compilación aparece como una fila desplegable que muestra el nombre y la descripción de la regla. Haz clic en una fila de regla para expandirla y ver todas las compilaciones de esa regla.

### Estado vacío

Si aún no existen compilaciones, la pestaña muestra: *"No hay artefactos"* con el mensaje *"Los artefactos aparecerán aquí cuando las reglas los generen."*

### Detalles de la compilación

Cada grupo expandido lista las compilaciones individuales con las siguientes columnas:

| Columna                      | Descripción                                                                                                                                                       |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nombre de la compilación** | El nombre que le diste a la compilación. Codificado por colores según el estado: verde para En ejecución, naranja para Detenido, rojo para Detenido forzosamente. |
| **Origen**                   | Un enlace que abre la vista de solo lectura de la regla, para que puedas inspeccionar la definición de la regla que produjo este artefacto.                       |
| **Fecha y hora**             | Cuándo se creó la compilación, con el formato "dd MMM yyyy, HH:mm"                                                                                                |
| **ID de usuario**            | El miembro del equipo que creó la compilación. En la interfaz actual, esto normalmente muestra el nombre de usuario resuelto junto con el ID de usuario.          |
| **Comentario**               | El comentario introducido durante la compilación. Haz clic para editarlo en línea; pulsa Enter para guardar o Escape para cancelar.                               |

### Estados de los artefactos

| Estado                    | Color   | Significado                                                                                                                                               |
| ------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **En ejecución**          | Verde   | El artefacto está desplegado y esperando su sensor o fuente de activación seleccionada                                                                    |
| **Detenido**              | Naranja | El artefacto se detuvo manualmente. Puede volver a desplegarse.                                                                                           |
| **Detenido forzosamente** | Rojo    | El sistema detuvo automáticamente el artefacto debido a errores de ejecución sostenidos. Consulta [Seguridad de emergencia](#emergency-safety) más abajo. |

<figure><img src="https://3373664356-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>

## Desplegando un artefacto

Desplegar inicia un artefacto compilado para que procese datos en tiempo real del sensor en vivo.

### Cómo desplegar

1. Abre la **Artefactos** pestaña en la página del Motor de Reglas.
2. Expande el grupo de reglas que contiene la compilación que quieres desplegar.
3. Haz clic en **Desplegar** en la fila de la compilación.

El estado del artefacto cambia a **En ejecución** (verde). Ahora la regla evalúa activamente cada nueva lectura de su sensor vinculado y ejecuta la lógica de automatización.

### Restricciones del despliegue

* Solo **una compilación por regla** puede estar en ejecución a la vez.
* Si una regla ya tiene un artefacto en ejecución y despliegas una compilación diferente, la plataforma detiene automáticamente el artefacto en ejecución e inicia el nuevo en una sola operación. No es necesario detener primero el artefacto en ejecución; la transición se gestiona por ti.

## Detener una regla en ejecución

Detener es una acción deliberada de pausa: úsala cuando quieras que una regla deje de responder a su fuente seleccionada sin desplegar una versión diferente.

### Cómo detener

1. Abre la **Artefactos** pestaña.
2. Busca el artefacto en ejecución (estado verde).
3. Haz clic en **Detener**.

El estado cambia a **Detenido** (naranja). La regla deja de aceptar nuevos inicios inmediatamente. Los sensores siguen informando y los disparadores continúan supervisando, pero la regla detenida no se ejecuta desde ninguna de las dos fuentes.

Un artefacto detenido puede reiniciarse en cualquier momento haciendo clic en **Desplegar** de nuevo.

## Eliminar un artefacto de compilación

Para eliminar un artefacto de compilación que ya no necesitas:

1. Abre la **Artefactos** pestaña.
2. Busca el artefacto que quieres eliminar. Debe estar en estado **Detenido** o **Detenido forzosamente** : no puedes eliminar un artefacto en ejecución.
3. Haz clic en **Eliminar** en la fila de la compilación.

Los artefactos en ejecución deben detenerse antes de poder eliminarlos.

## Seguridad de emergencia

La plataforma supervisa la salud de ejecución de cada regla en ejecución. Si una regla encuentra errores sostenidos durante la ejecución — por ejemplo, se eliminó un sensor referenciado, una expresión falla de forma consistente con los datos en vivo, o un destino de enriquecimiento deja de estar disponible de forma permanente — el sistema detiene automáticamente la regla para evitar fallos en cascada.

Cuando esto sucede:

* El estado del artefacto cambia a **Detenido forzosamente** (rojo) en la pestaña Artefactos.
* La regla deja de responder a nuevas lecturas de sensores o activaciones de disparadores.
* Esa regla no genera más alarmas ni notificaciones.

### Recuperación de una detención forzosa

1. **Investiga la causa.** Revisa la lógica de la regla en el editor. Comprueba si los sensores referenciados siguen activos, si las expresiones son válidas para las formas reales de los datos y si los destinos de enriquecimiento son accesibles.
2. **Corrige el problema.** Edita la regla para abordar la causa raíz.
3. **Compila una nueva versión.** Crea un nuevo artefacto de compilación a partir de la regla corregida.
4. **Despliega la nueva compilación.** Inicia el artefacto corregido desde la pestaña Artefactos.

No vuelvas a desplegar simplemente el artefacto detenido forzosamente sin corregir el problema subyacente: los mismos errores se repetirán y la regla volverá a detenerse.

## Buenas prácticas

* **Nombra las compilaciones según el cambio que contienen.** Cuando revisas la pestaña Artefactos a las 3 de la mañana durante un incidente, "Se añadió un respaldo para la humedad" es más útil que "Compilación 7."
* **Añade comentarios a las compilaciones.** Los comentarios se pueden editar después de crearlos, así que puedes anotar las compilaciones con notas de despliegue, referencias a incidentes o instrucciones de reversión.
* **Despliega directamente sobre la compilación en ejecución.** Solo una compilación por regla se ejecuta a la vez, y desplegar una nueva la sustituye en una sola operación: no es necesario detener primero el artefacto actual. Usa Detener cuando quieras que la regla deje de evaluarse por completo, no como un paso previo al despliegue.
* **Trata las detenciones forzosas como incidentes.** Una regla detenida forzosamente significa que la supervisión en vivo de esa regla se ha detenido. Investiga y resuélvelo con prontitud.
* **Compila a partir de una versión limpia.** Si has estado iterando sobre una regla, guárdala manualmente y nombra la versión antes de compilar. Esto garantiza que el artefacto de compilación se asigne a una versión claramente identificada en el historial.


---

# 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-es/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.
