> 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-pt/kilo-iot-server/rules-engine/version-history-and-restore.md).

# Histórico de Versões

Navegue pelo histórico de versões das regras no Kilo IoT e restaure qualquer versão anterior — auditoria completa de quem alterou o quê e quando.

Cada gravação — seja manual, automática ou acionada por um evento de sessão — cria uma versão da sua regra. O histórico de versões dá à sua equipa um registo de auditoria completo de como uma regra de automação evoluiu, quem a alterou e quando. Se uma alteração introduzir um comportamento inesperado, pode restaurar qualquer versão anterior sem perder nada no processo.

## Porque o controlo de versões é importante em produção

As regras de automação afetam diretamente os resultados operacionais. Um limite mal configurado, uma condição invertida ou um ramo de fallback em falta podem gerar falsos alarmes, silenciar os reais ou inundar os seus canais de notificação. O histórico de versões significa que nunca fica preso a uma má edição. Pode rever o que mudou, restaurar uma versão conhecida como boa e voltar a implementar — tudo sem reconstruir a regra de memória.

## Onde encontrá-la

Abra uma regra no **Edição** modo e clique no **Histórico** separador abaixo da barra de cabeçalho. O separador Histórico faz parte apenas da rota de edição. Se estiver atualmente a visualizar uma regra em `/rules/:id/view`, mude primeiro para **Edição** primeiro. A página do histórico encontra-se em `/rules/:id/edit/history`.

Acima da tabela, um campo de pesquisa permite filtrar as versões por:

* nome da versão
* autor
* tipo de gravação

## Tabela do histórico de versões

O separador Histórico mostra uma tabela de todas as versões guardadas, ordenadas com a versão mais recente no topo.

### Colunas

| Coluna               | Descrição                                                                                                  |
| -------------------- | ---------------------------------------------------------------------------------------------------------- |
| **Nome da versão**   | Uma etiqueta legível para a versão. Por defeito, utiliza o nome gerado automaticamente. Editável no local. |
| **Data e hora**      | Quando a versão foi guardada, formatada como "dd MMM yyyy, HH:mm"                                          |
| **Tipo de gravação** | Como a versão foi criada (ver abaixo)                                                                      |
| **Utilizador**       | O membro da equipa cuja sessão criou a versão                                                              |

### Tipos de gravação

Cada versão regista como foi criada:

| Tipo de gravação              | Significado                                                                                |
| ----------------------------- | ------------------------------------------------------------------------------------------ |
| **manual**                    | O utilizador clicou explicitamente no **Guardar** botão                                    |
| **automático**                | Gravação automática periódica durante uma sessão de edição ativa                           |
| **fechar\_editor**            | Guardada automaticamente quando o utilizador saiu do editor                                |
| **desconexão**                | Guardada quando o navegador foi fechado ou a ligação caiu inesperadamente                  |
| **tempo\_limite\_da\_sessão** | Guardada após expirar o tempo limite de inatividade e a sessão ter terminado               |
| **limpeza\_do\_bloqueio**     | Guardada por um processo em segundo plano quando detetou um bloqueio expirado e o libertou |
| **restaurado**                | Esta versão foi criada ao restaurar uma versão anterior                                    |

Os tipos de gravação ajudam-no a compreender o contexto de cada versão. Uma série de entradas "automático" seguida de uma entrada "manual" indica que alguém estava a trabalhar ativamente e depois guardou deliberadamente. Uma entrada "desconexão" indica que a sessão terminou inesperadamente — verifique se o trabalho nessa versão está concluído.

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

## Renomear versões

Por defeito, as versões têm nomes gerados automaticamente. Pode renomear qualquer versão para a tornar significativa para a sua equipa — por exemplo, "Antes da refatoração do gateway" ou "Base de produção v3".

Para renomear uma versão:

1. Clica no **ícone de lápis** junto ao nome da versão na tabela do histórico.
2. Escreva o novo nome (até 100 caracteres).
3. Prima Enter ou clique fora para confirmar.

Restrições de nome:

* Máximo de 100 caracteres
* Não pode duplicar o nome de outra versão na mesma regra
* Os caracteres `<`, `>` e `/` não são permitidos

Versões com nomes bem escolhidos tornam mais rápido identificar o ponto de restauro certo quando algo corre mal às 2 da manhã.

## Ver uma versão anterior

Para inspecionar como uma regra estava num ponto específico do tempo:

1. Encontre a versão na tabela do histórico.
2. Clica no **ícone do olho** (ação Ver) nessa linha.
3. O editor abre um visualizador BPMN só de leitura que mostra o diagrama tal como existia nessa versão, numa rota em `/rules/:id/edit/history/...`.

Na navegação normal, o último segmento do caminho corresponde à versão guardada selecionada na tabela.

Nesta vista, não pode editar nem modificar o diagrama. Estão disponíveis dois botões:

* **Restaurar esta versão** — Inicia o fluxo de restauro (ver abaixo)
* **Sair do modo de visualização** — Devolve-o ao separador Histórico

## Restaurar uma versão

Restaurar uma versão torna-a o estado atual da regra. O restauro não substitui nem elimina qualquer histórico — cria uma nova entrada no topo da tabela do histórico como a versão atual, e a versão anteriormente ativa é preservada no histórico.

### Como restaurar

1. Veja a versão que pretende restaurar (clique no ícone do olho).
2. Clica em **Restaurar esta versão**.
3. É apresentada uma caixa de diálogo de confirmação, explicando que o restauro criará uma nova versão atual e preservará a versão ativa anterior no histórico.
4. Clica em **Restaurar** para confirmar.
5. A versão é restaurada como a nova versão atual com o tipo de gravação "restaurado".
6. A plataforma leva-o de volta ao editor com a versão restaurada como o rascunho atual.
7. O separador Histórico é atualizado para mostrar a nova entrada no topo.

### O que acontece após um restauro

* A versão restaurada torna-se a versão ativa no editor.
* A versão que estava ativa antes do restauro permanece na tabela do histórico — o trabalho guardado continua a poder ser recuperado através do histórico de versões.
* A nova entrada de versão mostra o tipo de gravação **restaurado** e regista o utilizador que efetuou o restauro.
* A versão restaurada é um rascunho. Não é implementada até a compilar e implementar. Se o artefacto implementado anterior ainda estiver em execução, continua a executar a lógica antiga até implementar uma nova compilação.

## Boas práticas

* **Dê nomes às versões após alterações significativas.** Antes de refatorar uma regra complexa, guarde manualmente e dê à versão um nome reconhecível. Isto dá-lhe um ponto de restauro limpo caso a refatoração corra mal.
* **Use os nomes das versões para documentar a intenção.** Uma versão chamada "Adicionado ramo de reserva para humidade" é muito mais útil do que "Versão 14" quando estiver a percorrer o histórico seis meses mais tarde.
* **Verifique os tipos de gravação antes de restaurar.** Uma versão "automático" ou "desconexão" pode representar trabalho incompleto. Prefira restaurar a partir de uma gravação "manual" sempre que possível.
* **Restaure antes de reconstruir.** Se uma regra implementada estiver a comportar-se mal, restaure primeiro para a última versão conhecida como boa e depois compile e implemente. Não edite a versão com problemas sob pressão.


---

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