Pular para conteúdo

Variáveis de Ambiente

TL;DR (copie para .env)

# --- Core ---
DATABASE_URL="postgresql://<user>:<pass>@<host>:<port>/<db>?schema=public"
JWT_SECRET="<string-aleatoria-bem-grande>"

# --- Criptografia de segredos em repouso ---
ENCRYPTION_KEY="<base64-32-bytes>"   # 32 bytes (256 bits) em Base64
CRYPTO_IV="<hex-16-bytes>"           # 16 bytes (128 bits) em hex

# --- Integrações Saipos ---
SAIPOS_BASE="https://order-api.saipos.com"   # ou https://homolog-order-api.saipos.com
SAIPOS_IDPARTNER="<id-partner>"
SAIPOS_SECRET="<secret-partner>"
LOG_SAIPOS_BODY="false"   # true para logar payload do pedido
LOG_SAIPOS_CALLS="false"  # true para logar chamadas HTTP

# --- Webhook Nayax ---
NAYAX_BEARER_TOKEN="<token-compartilhado-com-nayax>"

# --- Outbox / Jobs ---
PROCESSING_TTL_MS="120000"   # 2 min: tempo máximo em PROCESSING antes do reaper
COD_STORE="<cod_loja_saipos_padrao>"  # ex.: "123"

# --- App ---
NODE_ENV="development"
PORT="3000"

Campos e Regras de Negócio

Variável Obrigatório Exemplo Descrição
DATABASE_URL postgresql://postgres:postgres@localhost:5432/restaurantes_db?schema=public String de conexão do Postgres usada pelo Prisma. Inclua ?schema=public se usar schemas.
JWT_SECRET 199ed65a5c97e5b6147f63d2dd2d57be Secret para assinar tokens JWT de autenticação. Use 32+ chars.
ENCRYPTION_KEY ExSuPUv0uQk8TXP2V2K01OAJKzC2DXn3Oako57/Ituw= Chave 32 bytes (Base64) para criptografar segredos em repouso.
CRYPTO_IV e4f8687a38a637c92399f909e701ec12 Vetor de inicialização 16 bytes em hex.
SAIPOS_BASE https://order-api.saipos.com Base URL da API Saipos. Em homolog: https://homolog-order-api.saipos.com.
SAIPOS_IDPARTNER 9a9954c0... Credencial do parceiro (Saipos).
SAIPOS_SECRET e64bf327... Secret do parceiro (Saipos).
LOG_SAIPOS_BODY true/false Loga o body dos pedidos enviados (cuidado em prod).
LOG_SAIPOS_CALLS true/false Loga cada chamada HTTP à Saipos.
NAYAX_BEARER_TOKEN -ni5nCLy... Token Bearer validado no guard do webhook Nayax.
PROCESSING_TTL_MS 120000 TTL para jobs travados em PROCESSING antes do reaper reclassificar.
COD_STORE 123 Código default de loja Saipos usado no Outbox (fallback).
NODE_ENV development/production Ambiente Node.
PORT 3000 Porta HTTP do app.

Geração de Segredos

# 32 bytes (256 bits) em Base64 para ENCRYPTION_KEY:
openssl rand -base64 32

# 16 bytes (128 bits) em hex para CRYPTO_IV:
openssl rand -hex 16

# JWT secret robusto (hex 32 bytes):
openssl rand -hex 32