Ambiente de Desenvolvimento Local e Worker Service

Este tutorial orienta o setup local do cluster Temporal, o provisionamento de segredos multi-domínio via Infisical e a inicialização do worker service.

1. Topologia de Segredos Multi-Domínio (Infisical)

O yzex-worker-service opera como um orquestrador multi-tenant e multi-domínio executando workers para os domínios yzex-mse e yzex-conect. Em conformidade com a política de Menor Privilégio (PoLP) e o princípio Secret Zero, nenhuma credencial é gravada em arquivos .env. Todos os segredos são injetados em memória via Infisical CLI.

Matriz de Segredos Canônicos por Domínio

Variável de Ambiente Domínio Descrição e Propósito

MSE_DATABASE_URL

MSE

Connection string PostgreSQL direta/pooler para o banco de dados do Mercado Santa Edwiges.

MSE_SUPABASE_URL

MSE

URL base da instância Supabase do MSE.

MSE_SUPABASE_SERVICE_ROLE_KEY

MSE

Chave de serviço (bypass RLS) do Supabase MSE.

CONNECT_DATABASE_URL

Connect

Connection string PostgreSQL (modo Transaction Pooler na porta 6543) do Yzex Connect.

CONNECT_SUPABASE_URL

Connect

URL base da instância Supabase do Yzex Connect.

CONNECT_SUPABASE_SERVICE_ROLE_KEY

Connect

Chave de serviço do Supabase Connect (com schema default connect).

TEMPORAL_ADDRESS

Global

Endereço do cluster Temporal Server (ex: localhost:7233 ou yzex-temporal:7233).

RABBITMQ_URL

Global

AMQP URI para os brokers de mensageria (ex: amqp://user:pass@localhost:5672).

2. Inicialização do Temporal Server Local

Utilize o Temporal CLI para iniciar um servidor de desenvolvimento efêmero:

temporal server start-dev --namespace yzex-mse --namespace yzex-conect

A interface gráfica de gerenciamento ficará disponível em http://localhost:8233.

3. Execução do Worker com Injeção de Segredos em Memória

# Instalação limpa de dependências
npm ci

# Inicialização do daemon com injeção segura via Infisical
infisical run --env=dev -- npm run dev
Em ambiente de testes (NODE_ENV === 'test'), stubs automáticos são fornecidos para permitir a execução de testes unitários isolados sem requerer conexão externa ativa.