Configuração da instituição
Registre cada instituição na Mensageria e no executor, com o mesmo
institutionId. Operando o Lerian SISBAJUD descreve a requisição da Mensageria.
POST /v1/institutions registra uma instituição no executor. O corpo tem estes campos:
A requisição também cria o keyset de tokenização e o keyset de auditoria da instituição. Uma segunda requisição com o mesmo
institutionId retorna 409.
O executor se registra como dono da instituição, a partir da sua própria identidade M2M (EXECUTOR_M2M_SUBJECT). Nenhum campo de requisição define o dono, e um PATCH não o altera.
Metadados do conector
Ledger do executor
O executor recusa uma requisição de instituição cujo
executorLedger está presente e não é válido, com 400. Na inicialização, o executor deixa fora do seu roteamento do ledger uma instituição que não tem executorLedger válido.
Credenciais do conector
PUT /v1/institutions/{institutionId}/connector-credentials grava as credenciais do Midaz da instituição:
ledger_client_ideledger_client_secretsão sempre obrigatórios.crm_client_idecrm_client_secretsão obrigatórios comcrmModelegacy. Comembedded, não os envie.
PATCH /v1/institutions/{institutionId} recusa um corpo com credenciais. Uma nova credencial não revoga a anterior no Access Manager, então revogue-a lá.
O executor obtém o token do Midaz da instituição em {authAddress}/v1/login/oauth/access_token. Quando a instituição não tem credenciais gravadas, o executor não envia header Authorization ao Midaz.
Alterar a configuração
PATCH /v1/institutions/{institutionId}altera os campos da instituição. UmconnectorMetadatano corpo substitui o pacote inteiro, exceto as credenciais gravadas.PUT /v1/institutions/{institutionId}/connector-configsubstituiconnectorTypeeconnectorMetadata. Ele mantém as credenciais gravadas e recusa um corpo com credenciais.GET /v1/institutions/{institutionId}retorna a configuração sem as credenciais.
Roteamento do ledger
Com
SYSTEMPLANE_ENABLED ligado, o executor serve os documentos de tenant das suas rotas contábeis em /tenant-system. O executor lê dois deles: routing.organizations liga as rotas contábeis de cada organização, e routing.ledger_bindings guarda as rotas. Com SYSTEMPLANE_ENABLED desligado, o executor escreve sem rotas.
GET /v1/admin/ledger-routing/preflight verifica a configuração de roteamento em relação ao ledger da instituição. Ele não escreve nada. Um executor single-tenant precisa do parâmetro de consulta institutionId. O relatório cobre estas verificações:
- As rotas de transação e as rotas de operação existem e correspondem às escritas do executor.
- Um ledger que valida tipos de conta tem
sisbajud_blockregistrado. - A conta de depósito judicial em
executorLedgerexiste no ledger e não está bloqueada.
ready informa se a configuração está pronta. O relatório mostra o executorLedger gravado. O executor em execução usa a configuração que leu na inicialização.
Ordens que precisam de atenção
Cada decisão humana tem um
humanDisposition:
GAVE_UP: o executor não tentou nenhuma escrita no ledger e respondeuEXECUTOR_GAVE_UP.HELD_MONEY_MOVED: o executor tentou uma escrita. O dinheiro pode ter se movido, e o executor não enviou resposta.
Rotação da chave de credenciais
POST /v1/institutions/{institutionId}/security/credential-kek:rotate rotaciona a chave que envolve as credenciais do Midaz gravadas da instituição. Essa chave não é a chave de dados da instituição que a Mensageria rotaciona.
- A rotação move as credenciais gravadas para a nova versão da chave. Os valores das credenciais não mudam. Para substituir uma credencial, use
PUT /v1/institutions/{institutionId}/connector-credentials. - A resposta mostra a versão anterior e a nova versão da chave.
- Uma instituição sem credenciais gravadas retorna
404. - Enquanto outra rotação da mesma instituição está em andamento, uma rotação retorna
409. - Com o HashiCorp Vault como provedor de chaves e
STREAMING_ENABLEDligado, a rotação publica um eventokek.rotatedcomkeyPurposeCREDENTIALS.
PLUGIN_AUTH_ENABLED desligado, o executor não serve esta operação.
Verificação de auditoria
GET /v1/admin/audit/verify verifica um intervalo do log de auditoria da instituição, de fromIndex a toIndex. Ele não descriptografa nenhum payload. Ele informa adulterações e entradas apagadas.
Papéis
Cada operação precisa de uma permissão:
O papel
admin tem todas as permissões desta tabela. Os papéis operator, investigator e compliance-officer têm admin:read. As permissões systemplane de /system vão para o papel M2M editor, e para nenhum papel de negócio.
O executor na Mensageria
O executor chama a API de execução da Mensageria com o seu próprio cliente M2M. Defina o cliente emMENSAGERIA_CLIENT_ID e MENSAGERIA_CLIENT_SECRET. O executor obtém o seu token do Access Manager em PLUGIN_AUTH_HOST. Na Mensageria, o cliente tem o papel br-sisbajud-executor-role. Integrando com o Lerian SISBAJUD descreve as suas permissões.
Listeners
O executor tem dois listeners:
- API principal, em
SERVER_ADDRESS. Defina-o como:4029, a porta que a imagem expõe. Ela serve as operações da referência da API. Ela também serve/health,/readyze/version. ComSYSTEMPLANE_ENABLEDligado, ela serve/systeme/tenant-system. ComSWAGGER_ENABLEDligado, ela serve/swagger. - Listener de webhook, em
EXECUTOR_HUB_WEBHOOK_ADDRESS. O padrão é:9082. Ele tem uma rota,POSTemEXECUTOR_HUB_WEBHOOK_PATH, cujo padrão é/v1/webhooks/hub. Exponha essa porta ao Streaming Hub e use o endereço do seu ingress mais esse caminho como URL da assinatura.
DEPLOYMENT_MODE=local, o listener precisa do seu próprio certificado TLS. Como alternativa, termine o TLS na frente dele e defina EXECUTOR_HUB_WEBHOOK_UPSTREAM_TLS_VALIDATED=true.
/readyz inclui duas verificações do executor:
hub_webhook: o listener de webhook.executor_institutions: o número de instituições das quais o executor é dono e quantas delas têm roteamento do ledger. Esta verificação não reprova a prontidão.
Restrições de deploy
- Um tenant por processo. O executor não inicia quando a sua lista de tenants tem mais de um tenant.
- O seu próprio banco de dados. O executor roda no seu próprio banco PostgreSQL vazio. As suas migrações recusam um banco que já tem outro histórico de migrações.
- Reinício após mudanças de configuração. O executor lê as suas instituições na inicialização.
- Período de encerramento. Defina o
terminationGracePeriodSecondsdo pod como pelo menos 90.

