Pular para o conteúdo

Configuração

O Agent é configurado inteiramente por variáveis de ambiente. Nenhuma credencial tem valor padrão — um Agent que sobe com chave de exemplo é um Agent que assina com chave de exemplo — então as variáveis marcadas como obrigatórias precisam estar presentes, ou o boot falha com erro de configuração (código de saída 2).

Esta página é a referência completa. Se você só quer colocar o processo no ar, comece por Instalação; se ainda não tem as credenciais, elas vêm do provisionamento.

VariávelObrigatóriaDefaultPropósito
LOOTFY_BASE_URLsimBase da API, com o prefixo de versão (ex.: https://api.lootfy.gg/v1). Uma barra final é removida automaticamente.
LOOTFY_SERVICE_API_KEYsimSua API key de serviço, enviada no header x-service-api-key. Não participa das rotas transportadas pelo client (signature-only).
LOOTFY_JWS_KIDsimO kid da sua chave de assinatura, como a plataforma a conhece. Vai no header do JWS.
LOOTFY_JWS_PRIVATE_KEY_FILEver nota— (o .env.example sugere /etc/lootfy/server-key.pem)Caminho para o arquivo PEM da sua chave privada de assinatura. Caminho preferido.
LOOTFY_JWS_PRIVATE_KEYver notaAlternativa inline: o PEM na própria variável. Desencorajado (ver abaixo).
VariávelObrigatóriaDefaultPropósito
LOOTFY_CONTROL_HOSTnão127.0.0.1Endereço em que a porta de controle escuta. Deve ser loopback — ver o aviso abaixo.
LOOTFY_CONTROL_PORTnão8899Porta em que a porta de controle escuta.
VariávelObrigatóriaDefaultPropósito
LOOTFY_SPOOL_DIRnão— (desligado)Diretório de spool da interface C. Quando ausente, o modo spool fica desligado. Também é pré-requisito da porta de webhook.
VariávelObrigatóriaDefaultPropósito
LOOTFY_PLATFORM_PUBLIC_KEY_FILEver “regra dos três”Caminho para o PEM da chave pública da plataforma, usada para verificar os webhooks.
LOOTFY_PLATFORM_PUBLIC_KEYver “regra dos três”Alternativa inline à chave pública da plataforma.
LOOTFY_PLATFORM_KIDver “regra dos três”O kid que a plataforma põe no header dos webhooks.
LOOTFY_WEBHOOK_HOSTnão127.0.0.1Endereço em que a porta de webhook escuta.
LOOTFY_WEBHOOK_PORTnão8898Porta em que a porta de webhook escuta.
LOOTFY_WEBHOOK_PATHnão/lootfy/webhookPath exato onde a plataforma faz o POST. Precisa casar com o webhookUrl registrado no provisionamento.
LOOTFY_JWS_MAX_AGEnão300Janela de frescor, em segundos, do envelope recebido no webhook.
LOOTFY_JWS_CLOCK_SKEWnão60Tolerância de desvio de relógio, em segundos, na verificação do webhook.
VariávelObrigatóriaDefaultPropósito
LOOTFY_ENVELOPE_TTLnão120Validade, em segundos, do envelope que o Agent assina. Curto de propósito. Precisa ser um número ≥ 5, ou o boot falha.
LOOTFY_LOG_LEVELnãoinfoNível de log: debug, info ou error.

A porta de webhook não sobe sozinha. Ela só é ativada quando os três pré-requisitos estão presentes ao mesmo tempo: a chave pública da plataforma (LOOTFY_PLATFORM_PUBLIC_KEY_FILE ou LOOTFY_PLATFORM_PUBLIC_KEY), o kid da plataforma (LOOTFY_PLATFORM_KID) e um diretório de spool (LOOTFY_SPOOL_DIR). O diretório de spool entra porque é por ele que o evento verificado chega ao seu servidor — o canal de eventos vive no spool.

Faltando qualquer um dos três, a porta de webhook fica desligada e o Agent segue funcionando normalmente para as chamadas de saída. Isso é intencional: uma instalação que só faz chamadas de saída (assinar e enviar) não precisa receber webhook, e não faria sentido recusar o boot por causa disso. O Agent registra no log que a porta de webhook está desligada e diz qual dos três está faltando.

Um arquivo de ambiente típico, com placeholders no lugar dos segredos, para uma instalação que faz chamadas de saída e recebe webhooks:

# Plataforma e credenciais
LOOTFY_BASE_URL=https://api.lootfy.gg/v1
LOOTFY_SERVICE_API_KEY=<sua-api-key>
LOOTFY_JWS_KID=<seu-kid>
LOOTFY_JWS_PRIVATE_KEY_FILE=/etc/lootfy/server-key.pem
# Porta de controle (assina — mantenha em loopback)
LOOTFY_CONTROL_HOST=127.0.0.1
LOOTFY_CONTROL_PORT=8899
# Interface C (spool) — também necessária para o webhook
LOOTFY_SPOOL_DIR=/home/server/lootfy-spool
# Porta de webhook (verifica) — a regra dos três
LOOTFY_PLATFORM_PUBLIC_KEY_FILE=/etc/lootfy/platform-key.pub
LOOTFY_PLATFORM_KID=<kid-da-plataforma>
LOOTFY_WEBHOOK_HOST=127.0.0.1
LOOTFY_WEBHOOK_PORT=8898
LOOTFY_WEBHOOK_PATH=/lootfy/webhook
# Envelope e log
LOOTFY_ENVELOPE_TTL=120
LOOTFY_LOG_LEVEL=info