Regras de negócio · Controladoria Jurídica

RN-CONTROLADORIA-001 · A CJUR publica; a Function trata

Condição: a CJUR captura um fato que deve seguir pela automação.

Resultado: a CJUR captura, preserva e publica o evento. Classificação, atribuição, distribuição, avisos e as demais regras de tratamento pertencem à Function cjur-processador; o Hub não assume essas regras.


RN-CONTROLADORIA-002 · O webhook só é aceito quando autenticado e dentro da janela de replay

Condição: a Function recebe um webhook da CJUR.

Resultado: a Function confere o HMAC sobre o corpo bruto, em comparação de tempo constante, antes de interpretar o JSON. Assinatura inválida recebe 401; corpo inválido recebe 400; evento com instante fora de cinco minutos é recusado como proteção contra replay.


RN-CONTROLADORIA-003 · Reentregas não repetem o efeito lógico

Condição: a CJUR reenvia um evento ou a Function recebe a mesma identidade de evento outra vez.

Resultado: a identidade do evento é a chave de idempotência. Evento já concluído ou ignorado recebe sucesso sem repetir o tratamento; falha transitória recebe 5xx para que a CJUR possa tentar novamente.


RN-CONTROLADORIA-004 · O Hub recebe efeitos pela sua API

Condição: a Function produz um efeito que o Hub deve conservar ou apresentar.

Resultado: a Function usa a credencial de serviço e a chave de idempotência definidas no contrato do nead-hub-api. O Hub consome sua própria API; nem o navegador nem o Hub integram diretamente com a CJUR ou com a Function.


RN-CONTROLADORIA-005 · Configurações dependem de proprietário e contrato

Condição: uma Configuração da Controladoria deve aparecer ou ser alterada pelo Hub.

Resultado: a interface só usa famílias, comandos, autorização, autoria e concorrência que tenham proprietário e contrato aprovados para a fronteira CJUR, Function e Hub. A definição dessas interfaces permanece pendente nas issues #212 e #367.

Camadas do domínio