Repository navigation
T-305 - Implementar na API a consulta de auditoria - #423
Merged
Merged
Conversation
- cria a fatia auditoria com GET /auditoria/jobs e GET /auditoria/jobs/{id}, exclusivas do papel auditor e sem conferência de posse
- expõe na fatia job a interface NomesDeJobs, para a auditoria usar o mesmo nome resolvido de GET /jobs
- deriva a simulação de cada etapa pelo código do resultado e a submissão das extrações pela resposta do modelo ou pela rodada de correção
- lê as seções do registro numa transação somente leitura com um único instantâneo do banco
Review: auto
- loga em warn o parâmetro de tipo inválido (pagina, tamanho e id), que o Spring recusa antes do controller e, por isso, ficava sem registro; o log leva só o nome do parâmetro - cobre com teste o warn da paginação fora do limite e do tipo inválido, validado contra o schema de log - prova com Postgres real que as seções do registro e a listagem rodam em transação somente leitura com um único instantâneo, mesmo com escrita concorrente Review: auto
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
O que muda
As duas rotas de leitura do auditor definidas na T-304 passam a existir na
api:GET /auditoria/jobseGET /auditoria/jobs/{id}.synapse.api.auditoria, com controller, política de acesso, serviço, repositório, DTOs e tratamento de erro próprios. Ela lê as tabelas com consultas próprias e não usa classes da fatiajob.jobexpõe a interface públicaNomesDeJobs, para a auditoria resolver o nome de exibição com a mesma SQL deGET /jobs. É a única mudança fora da fatia nova.Acesso
/auditoria/**chamaUsuarioAtual.obter()antes de interpretar parâmetros ou ler dados. Só o papelauditorpassa, sem conferência de posse.403 sem_permissao. Sessão ausente continua recebendo 401 pela cadeia de segurança.404 job_nao_encontrado. Id malformado recebe400 requisicao_invalida. A paginação tem os mesmos padrões, limites e mensagens deGET /jobs.Registro do job
submissoes.binarionemresultados_simulacao.linhas. Os camposjsonbsaem como o banco os devolve e os decimais preservam a precisão.etapas.simulacao_idvem da linha quando ela o traz e, senão, do código do resultado apontado, porquesimulacoes.codigo_gerado_idé único.etapas.submissao_idnas linhas de extração:regra_idda linha. Quando várias rodadas analisaram a mesma versão (depois de uma reextração que falhou), vale a última correção enviada até a conclusão da linha.versoes.representacaoé o artefato completo quando a versão o tem, e o núcleo com as especificações nas versões anteriores à coluna.Observabilidade
CorrelationContextcom ojob_ide o id do usuário auditor; a listagem abre só com o usuário. O contexto fecha ao terminar, inclusive em erro.info, a consulta e a listagem concluídas, com a página e o tamanho na listagem;warn, a recusa de acesso, o job inexistente e a paginação inválida;error, a falha inesperada.Fora do escopo
GET /auditoria/jobs/{id}no contrato põe na linha de reextração a versão corrigida emregra_id, mas ocodegengrava a versão analisada. A implementação segue o que ocodegengrava.Verificação
make checknaapi, com JDK 21: 1614 testes, 0 falhas, 6 pulados. Os pulados são testes condicionais já existentes (fim a fim e transcrição real).AcessoAuditoriaTests(22 testes):log.schema.json, sem dados do token, com a correlação limpa ao terminar.AuditoriaPersistenciaTests(11 testes), com Postgres real, token assinado e o usuário de banco daapi:GET /jobs; paginação inválida com o mesmo corpo deGET /jobs;resultadostraz as execuções candidatas;linhas, validada contraRegistroAuditoriaePaginaJobsAuditoria, e nenhuma escrita nas tabelas do job;job_ide sem conteúdo;/metricscomhttp_server_requestspara/auditoria/jobse/auditoria/jobs/{id}.Closes #379