# 5. Instalação no Cliente e Acesso aos Dados

<p class="callout warning">Atenção: Este artigo foi inteiramente gerado por IA e ainda não passou por revisão humana. Prossiga com cuidado.</p>

Este artigo explica como a Ema.IA passa a ser instalada diretamente no ambiente do cliente, o que muda no processo de implantação, e como os aplicativos (celular, desktop e navegador) conseguem consultar os dados do ERP sem que a TI do cliente precise abrir portas ou expor o servidor na internet.

<p class="callout info">Este artigo descreve o novo modelo de instalação, com registro automático. Clientes configurados pelo modelo anterior (token gerado no Painel Administrador) continuam funcionando normalmente e serão migrados aos poucos.</p>

---

### Como a Ema.IA acessa os dados do cliente

Os dados do cliente estão no banco de dados do ERP, dentro da rede dele. Já o usuário pode estar em qualquer lugar — inclusive no celular, usando os dados móveis. A pergunta que a TI do cliente sempre faz é:

**"Então vocês precisam que eu abra uma porta ou exponha o servidor na internet?"**

<span style="white-space: pre-wrap;">Não. E o motivo é simples: </span>**invertemos o sentido da conexão**.

<span style="white-space: pre-wrap;">Junto com a Ema.IA é instalado no servidor do cliente um componente chamado </span>**Runtime Local**<span style="white-space: pre-wrap;">. Assim que ele sobe, é </span>**ele**<span style="white-space: pre-wrap;"> quem liga para o servidor da Ema — e deixa essa ligação aberta o tempo todo. Quando a Ema precisa de alguma informação, ela apenas fala na linha que já está aberta.</span>

Pense assim: em vez de a Ema tocar a campainha da casa do cliente (e para isso precisar do endereço e de alguém para abrir o portão), é o cliente que liga para a Ema quando acorda e deixa o telefone fora do gancho.

<span style="white-space: pre-wrap;">Para o firewall do cliente, isso é apenas uma </span>**saída HTTPS**<span style="white-space: pre-wrap;"> — o mesmo tipo de tráfego de um navegador abrindo um site. Praticamente toda rede corporativa já libera isso por padrão.</span>

##### - O caminho de uma pergunta

Quando o usuário pergunta algo no celular, acontece o seguinte:

- O Runtime Local, no servidor do cliente, já está conectado ao servidor da Ema desde que o serviço subiu.
- <span style="white-space: pre-wrap;">O celular envia a pergunta </span>**apenas para o servidor da Ema**, pela internet normal.
- O servidor da Ema repassa o pedido pela conexão que já estava aberta.
- O Runtime Local consulta o banco do ERP ali mesmo, dentro da rede do cliente.
- O resultado volta pelo mesmo caminho até o celular.

<span style="white-space: pre-wrap;">O ponto que resolve tudo: </span>**o celular nunca fala com o servidor do cliente**. Ele nem sabe onde esse servidor fica. Os dois lados falam com a Ema, e a Ema faz a ponte. Isso vale igualmente para o aplicativo desktop e para o navegador — nenhum deles precisa estar dentro da rede do cliente.

##### - O que o Runtime Local pode e não pode fazer

<span style="white-space: pre-wrap;">A conexão aberta não dá acesso livre ao servidor. O Runtime Local só sabe executar aquilo que veio programado dentro dele, e hoje isso é uma coisa só: </span>**consulta de leitura no banco de dados**.

- Ele recusa qualquer comando que não seja uma consulta. Não existe caminho para alterar, apagar ou incluir dados.
- O volume de linhas retornado por consulta é limitado.
- Não existe pasta onde seja possível "soltar" uma função nova: ampliar o que o runtime faz exige uma nova versão do programa, assinada e distribuída pela Ema.
- Cada cliente tem sua própria credencial, e o pedido de um cliente nunca alcança o runtime de outro.

<p class="callout info">Para interromper o acesso a qualquer momento, basta parar o serviço no servidor do cliente ou revogar a credencial daquele cliente no Painel Administrador.</p>

---

### O que muda na implantação: o registro é automático

<span style="white-space: pre-wrap;">No modelo anterior era necessário gerar um token no Painel Administrador e colá-lo no assistente de configuração dentro do Ema ERP. </span>**Isso não é mais necessário.**

Agora, na primeira vez que sobe, o Runtime Local se registra sozinho:

- Ele lê a chave de registro que já existe na base do cliente e identifica de qual cliente Ema se trata.
- Consulta o servidor da Ema, que confere se a licença é válida e se o cliente tem a Ema.IA contratada.
- Recebe a credencial, grava na própria base e já conecta.

Se o processo for interrompido no meio (queda de internet, por exemplo), ele simplesmente tenta de novo na próxima vez, sem duplicar nada e sem perder a credencial já criada.

<p class="callout warning">O registro automático depende da licença do cliente estar em dia e com a Ema.IA contratada. Se o cliente não aparecer no Painel Administrador depois da instalação, verifique a licença antes de acionar o suporte.</p>

---

### Onde a Ema.IA é instalada

A instalação varia conforme o ambiente do cliente:

##### - Cliente com Ema ERP em servidor

<span style="white-space: pre-wrap;">É o caso mais comum. A Ema.IA e o Runtime Local são instalados na pasta do Contas ERP, e o Runtime Local é registrado como um </span>**serviço do Windows**, para subir sozinho junto com o servidor, sem depender de alguém estar logado na máquina.

##### - Estação de trabalho

Nas máquinas dos usuários é instalado apenas o aplicativo da Ema.IA, na pasta do próprio usuário, sem necessidade de permissão de administrador. Essas máquinas não têm Runtime Local — elas usam o que está no servidor.

##### - Cliente sem Ema ERP

Apenas o aplicativo, com atalho no menu iniciar. Não existe Runtime Local nesse caso, pois não há banco do ERP para consultar.

As atualizações são automáticas nos três casos. Quando o Runtime Local é atualizado, ele espera as consultas em andamento terminarem antes de reiniciar, e se a nova versão falhar ao subir ele volta sozinho para a versão anterior.

---

### O que precisa ser liberado na rede do cliente

<span style="white-space: pre-wrap;">Somente a </span>**saída**<span style="white-space: pre-wrap;"> para o domínio </span>`<span class="editor-theme-code">ema.ia.br</span>`, em HTTPS. Nada de entrada.

<span style="white-space: pre-wrap;">Para conferir se está liberado, no servidor do cliente abra o link </span>[https://ema.ia.br/api/v1/](https://ema.ia.br/api/v1/)<span style="white-space: pre-wrap;"> no navegador. Se estiver tudo certo, aparece:</span>

```json
{"status":"Running"}
```

Ou, se preferir, pelo PowerShell:

```powershell
(Invoke-WebRequest https://ema.ia.br/api/v1/).StatusDescription
```

<span style="white-space: pre-wrap;">Se a resposta for diferente de </span>`<span class="editor-theme-code">OK</span>`, existe algo bloqueando a conexão — normalmente o firewall ou o proxy da rede.

---

### Conferindo se a instalação deu certo

- O serviço do Runtime Local está em execução no servidor (Serviços do Windows).
- O cliente aparece no Painel Administrador Ema.IA.
- Uma pergunta feita no aplicativo que dependa de dados do ERP é respondida com os dados corretos.

<span style="white-space: pre-wrap;">Se algo não funcionar, os registros de funcionamento ficam na pasta </span>`<span class="editor-theme-code">runtime\logs</span>`, dentro da pasta de instalação da Ema.IA no servidor, organizados por data. Eles são o primeiro lugar a olhar e o que o suporte vai pedir.

##### - Situações comuns

- **O serviço sobe e fica tentando conectar:**<span style="white-space: pre-wrap;"> normal enquanto o banco de dados ainda está subindo. Ele tenta sozinho, esperando um pouco mais a cada tentativa.</span>
- **O serviço sobe e para logo em seguida:**<span style="white-space: pre-wrap;"> normalmente configuração de banco incorreta ou credencial recusada. Nesses casos ele para de propósito, para não mascarar o problema — confira o log.</span>
- **O cliente não aparece no Painel Administrador:**<span style="white-space: pre-wrap;"> o registro não foi concluído. Confira a licença e a chave de registro na base.</span>
- **A conexão cai quando a máquina hiberna ou troca de rede:**<span style="white-space: pre-wrap;"> esperado. O runtime percebe sozinho e reconecta, sem precisar de intervenção.</span>

---

### Perguntas frequentes da TI do cliente

**Precisa abrir porta no firewall?**<span style="white-space: pre-wrap;"> Não. Apenas saída HTTPS para </span>`<span class="editor-theme-code">ema.ia.br</span>`.

**Precisa de IP fixo, DNS público ou VPN?**<span style="white-space: pre-wrap;"> Não.</span>

**O banco de dados fica exposto na internet?**<span style="white-space: pre-wrap;"> Não. Só o Runtime Local, de dentro da rede, conversa com o banco.</span>

**A Ema consegue alterar dados no sistema?**<span style="white-space: pre-wrap;"> Não. A única operação disponível é consulta de leitura.</span>

**Como interromper o acesso?**<span style="white-space: pre-wrap;"> Parando o serviço no servidor ou revogando a credencial do cliente no Painel Administrador.</span>

---

### Ficou alguma dúvida?

Entre em contato com o suporte da Ema.IA. Se a dúvida for recorrente, atualizaremos este artigo — sugestões são bem-vindas.