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.