> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-api/caf-api-pt-br/all-id/configuration.md).

# Configuração

Variáveis de ambiente e configuração de serviço para o All ID.

## Variáveis de ambiente do Serviço Peer

### Configuração do banco de dados

| Variável         | Descrição                                       | Exemplo                                            | Obrigatório |
| ---------------- | ----------------------------------------------- | -------------------------------------------------- | ----------- |
| `MYSQL_DATABASE` | Nome do banco de dados para este peer           | `peer-default`                                     | Sim         |
| `MYSQL_IP`       | Nome do host ou IP do banco de dados            | `database.cluster-xxx.us-east-1.rds.amazonaws.com` | Sim         |
| `MYSQL_PORT`     | Porta do banco de dados                         | `3306`                                             | Sim         |
| `MYSQL_USER`     | Nome de usuário do banco de dados (dos secrets) | `admin`                                            | Sim         |
| `MYSQL_PSWD`     | Senha do banco de dados (dos secrets)           | `***`                                              | Sim         |

{% hint style="info" %}
**Configuração multi-tenant**: Cada instância peer deve usar seu próprio banco de dados. Os nomes dos bancos de dados seguem o padrão `peer-{nome}` (por exemplo, `peer-default`, `peer-client-a`, `peer-client-b`).
{% endhint %}

{% hint style="warning" %}
`MYSQL_USER` e `MYSQL_PSWD` devem ser carregados de um sistema de gerenciamento de secrets (AWS Secrets Manager, HashiCorp Vault, Kubernetes Secrets etc.) e nunca codificados diretamente.
{% endhint %}

### Configuração da API REST

| Variável          | Descrição                              | Exemplo | Obrigatório |
| ----------------- | -------------------------------------- | ------- | ----------- |
| `REST_PORT`       | Porta HTTP para a API Peer             | `8080`  | Sim         |
| `COMMAND_TIMEOUT` | Tempo limite da requisição em segundos | `10`    | Sim         |

### Configuração do Serviço Facematch

| Variável              | Descrição                                            | Exemplo           | Obrigatório |
| --------------------- | ---------------------------------------------------- | ----------------- | ----------- |
| `FACEMATCH_IP`        | Nome do host do serviço Facematch                    | `facematch.allid` | Sim         |
| `FACEMATCH_PORT`      | Porta do serviço Facematch                           | `8080`            | Sim         |
| `FACEMATCH_THRESHOLD` | Limite de correspondência para reconhecimento facial | `1.2`             | Sim         |

{% hint style="info" %}
A `FACEMATCH_IP` usa descoberta de serviços baseada em DNS. Configure seu DNS ou sistema de descoberta de serviços para resolver este nome de host para as instâncias Facematch disponíveis.
{% endhint %}

### Configuração de anonimização em lote

| Variável                                | Descrição                                    | Exemplo                                    | Obrigatório |
| --------------------------------------- | -------------------------------------------- | ------------------------------------------ | ----------- |
| `BATCH_ANONYMIZATION_ENGINE_IMAGE_HASH` | Hash do mecanismo de processamento de imagem | `ca10aef257b96ad49fd46c5df95856486530a08f` | Sim         |
| `BATCH_ANONYMIZATION_ENGINE_MODEL_HASH` | Hash do modelo de ML para anonimização       | `adf712b1b839cc6d72f1059afb2c2b8fb68d995c` | Sim         |
| `MAX_TASKS_ENABLED_PER_PEER`            | Máximo de tarefas simultâneas por peer       | `10000`                                    | Sim         |

{% hint style="warning" %}
Os valores de hash garantem a integridade dos modelos de ML. Não modifique esses valores, a menos que a Certta forneça modelos atualizados.
{% endhint %}

### Configuração do RabbitMQ (opcional)

| Variável                                    | Descrição                         | Exemplo                 | Obrigatório   |
| ------------------------------------------- | --------------------------------- | ----------------------- | ------------- |
| `ENABLE_RABBITMQ`                           | Habilitar integração com RabbitMQ | `falso`                 | Sim           |
| `RABBITMQ_ANONYMIZATION_ERRORS_QUEUE_NAME`  | Nome da fila de erros             | `anonymization-errors`  | Se habilitado |
| `RABBITMQ_ANONYMIZED_ASSETS_QUEUE_NAME`     | Fila de ativos anonimizados       | `anonymized-assets`     | Se habilitado |
| `RABBITMQ_NON_ANONYMIZED_ASSETS_QUEUE_NAME` | Fila de ativos não anonimizados   | `non-anonymized-assets` | Se habilitado |

{% hint style="info" %}
RabbitMQ está desabilitado por padrão. Habilite apenas se você precisar de processamento assíncrono de mensagens para operações em lote.
{% endhint %}

### Configuração do cache Redis (opcional)

| Variável                  | Descrição                     | Exemplo              | Obrigatório   |
| ------------------------- | ----------------------------- | -------------------- | ------------- |
| `ENABLE_REDIS_CACHE`      | Habilitar cache do Redis      | `falso`              | Sim           |
| `ANONYMIZATION_CACHE_TTL` | TTL do cache em milissegundos | `300000` (5 minutos) | Se habilitado |

{% hint style="info" %}
O cache Redis está desabilitado por padrão. Habilite para melhorar o desempenho em cenários de alto throughput.
{% endhint %}

### Configuração do Serviço Router (obrigatório)

| Variável                      | Descrição                                | Exemplo                                                      | Obrigatório |
| ----------------------------- | ---------------------------------------- | ------------------------------------------------------------ | ----------- |
| `ENABLE_ROUTER_COMMUNICATION` | Habilitar integração com o Certta Router | `true`                                                       | Sim         |
| `ROUTER_REST_URL`             | URL do endpoint do Certta Router         | `https://mtls.us.prd.caf.io/v1/biometrics/facial-validation` | Sim         |
| `ROUTER_PRIVATE_KEY`          | Chave privada mTLS (dos secrets)         | `-----BEGIN PRIVATE KEY-----\n...`                           | Sim         |
| `ROUTER_CERTIFICATE`          | Certificado mTLS (dos secrets)           | `-----BEGIN CERTIFICATE-----\n...`                           | Sim         |

{% hint style="danger" %}
**Autenticação mTLS**: A comunicação com o Router requer TLS mútuo (mTLS). A chave privada e o certificado devem ser carregados de um sistema de gerenciamento de secrets e nunca codificados diretamente.

Entre em contato com o gerente técnico da sua conta na Certta para obter os certificados mTLS do seu ambiente.
{% endhint %}

## Variáveis de ambiente do Serviço Facematch

O Serviço Facematch requer configuração mínima.

| Variável    | Descrição    | Padrão |
| ----------- | ------------ | ------ |
| `PORT`      | Porta HTTP   | `8080` |
| `LOG_LEVEL` | Nível de log | `INFO` |

{% hint style="success" %}
O Serviço Facematch foi projetado para funcionar com configuração mínima. Ele carrega automaticamente os modelos de ML da imagem do contêiner e escuta na porta 8080.
{% endhint %}

## Descoberta de serviços

Os serviços se descobrem usando descoberta de serviços baseada em DNS.

### Nomes DNS

Configure seu sistema de descoberta de serviços (por exemplo, AWS Cloud Map, Kubernetes DNS, Consul) para fornecer estes nomes DNS:

```
facematch.biometrics → Resolve para os IPs do Serviço Facematch
peer-default.biometrics → Resolve para os IPs do peer-default
peer-client-a.biometrics → Resolve para os IPs do peer-client-a
peer-client-b.biometrics → Resolve para os IPs do peer-client-b
```

**Configuração DNS recomendada**:

* Tipo de registro DNS: A (IPv4)
* TTL: 15 segundos (para failover rápido)

## Configuração multitenant

Para implantações multitenant, cada instância peer requer:

* Exclusivo `MYSQL_DATABASE`: por exemplo, `peer-default`, `peer-client-a`, `peer-client-b`
* Certificado mTLS exclusivo do Router (carregado de secrets separados)
* Nome DNS exclusivo na descoberta de serviços
* Banco de dados independente com esquema inicializado

## Próximos passos

* Revise [Requisitos Técnicos](/caf-api/caf-api-pt-br/all-id/technical-requirements.md) para especificações de recursos
* Revise [Orientações para Produção](/caf-api/caf-api-pt-br/all-id/production-guidance.md) para as instruções de implantação
* Revise [Melhores Práticas de Segurança](/caf-api/caf-api-pt-br/all-id/security-best-practices.md) para gerenciamento de secrets
* Revise [Documentação do Facematch AI](/caf-api/caf-api-pt-br/all-id/ai-facematch-documentation.md) para mais informações sobre o modelo de IA do mecanismo


---

# 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.caf.io/caf-api/caf-api-pt-br/all-id/configuration.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.
