> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plug4ia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurando o Integrador Local

> Entenda os campos de configuração do Integrador Local do Plug4ia e como preencher dados de banco, limites e token da empresa.

O Integrador Local usa um arquivo chamado `config.yaml` para guardar as informações necessárias para conectar a empresa ao Plug4ia e acessar os dados do ERP.

Em instalações Windows, esse arquivo é criado pelo assistente de instalação. Em instalações Linux, ele é criado pelo script de instalação.

<Warning>
  O `config.yaml` contém token da empresa e credenciais de acesso ao banco. Proteja esse arquivo no servidor do cliente.
</Warning>

## Exemplo básico

```yaml theme={null}
token_empresa: "token-gerado-no-portal"

database:
  host: "127.0.0.1"
  port: 3306
  user: "usuario_leitura"
  password: "senha"
  database: "erpdb"

limits:
  max_rows: 1000
  max_payload_kb: 512
  query_timeout_s: 15
```

## Token da empresa

| Campo           | Descrição                                            |
| --------------- | ---------------------------------------------------- |
| `token_empresa` | Token gerado no Portal Administrativo para a empresa |

Esse token identifica a empresa durante a conexão do integrador.

Para gerar:

1. Acesse **Empresas** no Portal Administrativo.
2. Edite a empresa.
3. Abra a aba **Integração**.
4. Clique em **Gerar Token**.
5. Copie o token para a instalação do integrador.

<Note>
  O token é específico da empresa. Não reutilize o token de uma empresa em outra instalação.
</Note>

## Configuração para MySQL

Use a seção `database` quando o ERP usa MySQL ou MariaDB.

```yaml theme={null}
database:
  host: "127.0.0.1"
  port: 3306
  user: "usuario_leitura"
  password: "senha"
  database: "erpdb"
```

| Campo               | Descrição                           |
| ------------------- | ----------------------------------- |
| `database.host`     | IP ou endereço do servidor do banco |
| `database.port`     | Porta do banco, normalmente `3306`  |
| `database.user`     | Usuário de acesso                   |
| `database.password` | Senha do usuário                    |
| `database.database` | Nome do banco                       |

## Configuração para SQL Server

Use a seção `sqlserver` quando o ERP usa Microsoft SQL Server.

```yaml theme={null}
sqlserver:
  host: "127.0.0.1"
  port: 1433
  user: "usuario_leitura"
  password: "senha"
  database: "erpdb"
  driver: "ODBC Driver 17 for SQL Server"
```

| Campo                | Descrição                               |
| -------------------- | --------------------------------------- |
| `sqlserver.host`     | IP ou endereço do SQL Server            |
| `sqlserver.port`     | Porta do SQL Server, normalmente `1433` |
| `sqlserver.user`     | Usuário de acesso                       |
| `sqlserver.password` | Senha do usuário                        |
| `sqlserver.database` | Nome do banco                           |
| `sqlserver.driver`   | Driver ODBC instalado no servidor       |

<Info>
  No Linux com Docker, a imagem do integrador já inclui suporte ao driver ODBC usado pelo SQL Server.
</Info>

## Configuração para PostgreSQL

Use a seção `postgres` quando o ERP usa PostgreSQL.

```yaml theme={null}
postgres:
  host: "127.0.0.1"
  port: 5432
  user: "usuario_leitura"
  password: "senha"
  database: "erpdb"
```

| Campo               | Descrição                               |
| ------------------- | --------------------------------------- |
| `postgres.host`     | IP ou endereço do PostgreSQL            |
| `postgres.port`     | Porta do PostgreSQL, normalmente `5432` |
| `postgres.user`     | Usuário de acesso                       |
| `postgres.password` | Senha do usuário                        |
| `postgres.database` | Nome do banco                           |

## Limites de consulta

Os limites ajudam a evitar respostas grandes demais ou consultas demoradas.

```yaml theme={null}
limits:
  max_rows: 1000
  max_payload_kb: 512
  query_timeout_s: 15
```

| Campo                    | Descrição                                         |
| ------------------------ | ------------------------------------------------- |
| `limits.max_rows`        | Quantidade máxima de linhas retornadas            |
| `limits.max_payload_kb`  | Tamanho máximo do resultado enviado               |
| `limits.query_timeout_s` | Tempo máximo de execução da consulta, em segundos |

<Tip>
  Para uso normal pelo WhatsApp, prefira consultas objetivas e resultados resumidos. Respostas muito grandes são difíceis de ler no celular.
</Tip>

## Boas práticas

| Prática                                      | Motivo                                |
| -------------------------------------------- | ------------------------------------- |
| Use usuário de leitura                       | Reduz risco sobre os dados do cliente |
| Proteja o arquivo de configuração            | Ele contém credenciais sensíveis      |
| Evite compartilhar o token                   | O token identifica a empresa          |
| Valide o acesso ao banco antes da instalação | Facilita a implantação                |
| Confira o status no portal após salvar       | Confirma que o integrador conectou    |

<Warning>
  Não armazene o `config.yaml` em repositórios, pastas públicas ou locais acessíveis por usuários sem autorização.
</Warning>
