[S1-24] Implementar campo de justificativa obrigatória ao alterar item salvo e registro no histórico de auditoria - #36
Merged
Conversation
…klog items (S1-24)
Contributor
|
Correções QA da S1-24 publicadas na branch desta PR. Foram tratadas as validações transacionais de justificativa, preservação da configuração, histórico com erro/retry e paginação, autorização alinhada à política atual, e exibição segura de diffs/snapshots.\n\nVerificação: build e testes locais do backend (164 aprovados) e frontend (93 aprovados); todos os checks da CI passaram, inclusive o teste PostgreSQL da regra S1-24 (19 aprovados) e compatibilidade S1-05.\n\nPeço uma nova revisão das alterações. Não fiz merge. |
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.
🚀 Resumo do Desenvolvimento
1. Configuração de Qualidade & Política da Organização
Atualizado o repositório e os tipos de
quality_configurationpara suportar a flagexigir_justificativa_item_concluido.Valor padrão da flag:
true.2. Backend (
backend/src/modules/)Validação de Alteração em Itens Concluídos
EpicsService,FeaturesServiceePbisServiceverificam o status do item.Se o status for
concluidoe a política da organização estiver ativa:A gravação é bloqueada caso a justificativa não seja fornecida.
É retornado um erro
ValidationError.Se o item estiver em status
rascunho:A gravação ocorre normalmente.
Não é solicitada nem exigida justificativa.
Auditoria e Versionamento
Toda alteração gera um registro de auditoria contendo:
Autor (
usuario_id);Data e hora;
Tipo e ID da entidade;
Ação realizada;
Dados das alterações;
Justificativa fornecida.
Para PBIs:
São gerados registros em
pbi_versao;A versão é incrementada automaticamente;
É salvo um snapshot contendo:
Autor;
Data;
Justificativa.
Endpoint de Histórico
Criado o endpoint:
Responsável pela recuperação estruturada do histórico de auditoria e das justificativas, incluindo o nome do autor.
3. Frontend (
frontend/src/)Edição de Itens
Ao abrir o formulário de edição de Épico (
EpicsView), Feature (FeaturesView) ou PBI (PbisView) em estado concluído:É exibido o campo "Justificativa da alteração (obrigatória)".
Caso o usuário tente salvar sem fornecer uma justificativa:
O envio é bloqueado;
Um alerta é exibido;
O foco é direcionado automaticamente para o campo de justificativa:
Componente
ItemHistoryViewCriado o componente
ItemHistoryView, responsável por exibir a linha do tempo de auditoria do item, contendo:Autor;
Data e hora formatadas;
Tipo de ação;
Bloco destacado com a justificativa.
O componente diferencia claramente:
Justificativas de alteração;
Decisões de Negócio/Técnicas (S1-18).
🛠️ Commits Semânticos Realizados
✅ Validação & Testes Automatizados
Backend
Unit & Integration Tests: 152 testes executados e aprovados.
Comando:
npm testembackend/Typecheck: 0 erros de tipagem TypeScript.
Comando:
npm run typecheckFrontend
Unit Tests: 86 testes executados e aprovados.
Comando:
npx vitest runemfrontend/Production Build: compilação estática realizada com sucesso.
Comando:
npm run build📊 Resultado
Área | Status -- | -- Política de justificativa | ✅ Implementada Validação de itens concluídos | ✅ Implementada Auditoria de alterações | ✅ Implementada Versionamento de PBIs | ✅ Implementado Endpoint de histórico | ✅ Implementado Formulário de justificativa | ✅ Implementado ItemHistoryView | ✅ Implementado Backend — 152 testes | ✅ Aprovados Backend TypeScript | ✅ 0 erros Frontend — 86 testes | ✅ Aprovados Frontend Production Build | ✅ Sucesso