Skip to content

[TASK] Contrato: validar fingerprint e probe autoritativo da API #179

Description

@elson-vinicius-lopes

PBI pai

#178

Entrega esperada na LayoutParserApi

  • fingerprint versionado por layout e cache invalidado por hash/versão;
  • relatório de colisões no refresh do catálogo;
  • probe estrito sem aprendizado, transformação ou persistência;
  • POST /api/parse/auto (ou contrato aceito equivalente) com unique, ambiguous e not_found;
  • layout resolvido internamente por layoutGuid, sem XML descriptografado no navegador;
  • códigos de evidência/conflito sanitizados e correlationId preservado.

Gates duros mínimos

Formato físico, largura explícita, marcadores/segmentos, ordem/hierarquia, cardinalidade validada e discriminadores cadastrados. Nome/extensão/score não autorizam seleção.

Critérios de aceite

  • Parse atual não é reutilizado como booleano de match: success=true tolera linhas desconhecidas.
  • Metadados legados de MinimalOccurrence são migrados ou excluídos da prova dura.
  • Colisões MQSeries Marelli/Comau permanecem ambíguas sem discriminador explícito.
  • Testes cobrem concorrência, timeout, limites e ausência de efeitos colaterais.

Bloqueio

Dependência externa ao LayoutParserReact; deve ser espelhada/implementada no backlog da API.

Aceite adicional do contrato Top 5

@lp-contract-qa deve validar que o contrato da API:

  • entrega até cinco rankedCandidates nos resultados não únicos, com total e indicador de truncamento;
  • separa candidato compatível de mera sugestão aproximada;
  • fornece ranking explicável e determinístico, incluindo empates, evidências, conflitos e limitações;
  • não popula selectedLayout nem inicia parse em ambiguous/not_found;
  • aceita escolha explícita por layoutGuid e devolve identificador de auditoria;
  • preserva status original, origem da escolha, rank/score apresentado, versões do algoritmo/catálogo e correlationId na proveniência;
  • não registra payload documental nem identidade legível desnecessária.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: integrationContrato e dependências entre repositóriosblockedImpedido por dependência ou autorização externapriority: p0Crítico, ação imediatatype: taskEntrega técnica verificável

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions