Skip to content

[S1-24] Implementar campo de justificativa obrigatória ao alterar item salvo e registro no histórico de auditoria - #36

Merged
LoadCG merged 8 commits into
mainfrom
feature/s1-24-justificativa-alteracao
Sep 25, 2026
Merged

LoadCG merged 8 commits into
mainfrom
feature/s1-24-justificativa-alteracao

Conversation

@DanielDPereira

Copy link
Copy Markdown
Contributor

🚀 Resumo do Desenvolvimento

1. Configuração de Qualidade & Política da Organização

  • Atualizado o repositório e os tipos de quality_configuration para suportar a flag exigir_justificativa_item_concluido.

  • Valor padrão da flag: true.

2. Backend (backend/src/modules/)

Validação de Alteração em Itens Concluídos

  • EpicsService, FeaturesService e PbisService verificam o status do item.

  • Se o status for concluido e 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:

GET /api/v1/audit/:entidade_tipo/:entidade_id/history

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:

document.getElementById("edit-justificativa")?.focus()

Componente ItemHistoryView

Criado 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

feat(backend): add justification rule and audit history for concluded items (S1-24)
feat(frontend): add justification form and audit history view for backlog items (S1-24)

✅ Validação & Testes Automatizados

Backend

  • Unit & Integration Tests: 152 testes executados e aprovados.

    • Comando: npm test em backend/

  • Typecheck: 0 erros de tipagem TypeScript.

    • Comando: npm run typecheck

Frontend

  • Unit Tests: 86 testes executados e aprovados.

    • Comando: npx vitest run em frontend/

  • 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

Copilot AI lite review requested due to automatic review settings September 24, 2026 23:02

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@LoadCG

LoadCG commented Sep 25, 2026

Copy link
Copy Markdown
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.

@LoadCG
LoadCG merged commit ce30a2d into main Sep 25, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants