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.
routing.organizations aceita schemaVersion 1 ou 2. Com schemaVersion 2, cada entrada de organização tem as suas próprias routes para cada fluxo e os seus ledgers, os ledgers que lançam com essas rotas. O executor então não lê routing.ledger_bindings, e uma escrita em um ledger fora de ledgers sai 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. - Com
schemaVersion2, o ledger de cada escrita está nosledgersda sua organização. Um ledger fora da lista recebe o problemaledger_not_listed, e o documento de bindings recebe o estadoignored.
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. - Com
STREAMING_ENABLEDligado, a rotação publica um eventokek.rotatedcomkeyPurposeCREDENTIALS. - Com o AWS KMS no modo
provided, o executor não rotaciona a sua chave, e a operação retorna422.
SBJ-0007/ 409: outra rotação da mesma instituição está em andamento. Envie-a novamente depois que essa rotação terminar.SBJ-0012/ 409: nada foi rotacionado, e a mesma requisição falha de novo.- 503: o gerenciador de chaves falhou antes da rotação. Envie-a novamente mais tarde.
SBJ-0013/ 500: o resultado da rotação não é conhecido. Não envie a rotação novamente.SBJ-0014/ 500: a chave foi rotacionada, mas uma etapa posterior falhou. Não envie a rotação novamente. Fale com o suporte da Lerian.
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 executor declara os papéis
viewer, operator, investigator, cross-org-reader, admin e platform-admin. Cada papel vincula o grupo plugin-br-sisbajud-<role>-group, e admin também vincula admin-group. A sua aplicação M2M tem o papel admin.
O papel admin tem todas as permissões desta tabela. Os papéis viewer, operator, investigator e cross-org-reader têm admin:read. As permissões systemplane de /system vão para platform-admin e para nenhum outro papel.
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.
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.

