06 - Manifesto e Metadados e-ARQ¶
EnfaseCloud.ScanEnfaseCloud.LibraryEnfaseCloud.WebApi
Draft
Objetivo¶
Criar manifesto completo de digitalização com valor de evidência tecnica, arquivística e operacional.
Manifesto¶
O manifesto deve ser JSON versionado e canonicamente serializado para calculo de hash.
Campos obrigatorios:
- identificador unico;
- tenant, cliente e unidade;
- operador e responsável pela digitalização;
- local e data/hora UTC;
- equipamento, driver e perfil;
- resolução, tamanho de pagina, duplex e modo de cor;
- quantidade de paginas;
- tipo documental;
- classe PCDA;
- regra TTDA/temporalidade;
- destino previsto;
- hash do arquivo final;
- hash do manifesto;
- resultado PDF/A;
- resultado OCR;
- status de assinatura;
- eventos de captura, upload, validação e preservação.
XMP¶
O PDF deve conter XMP com os metadados minimos de identificação, produção, digitalização, responsabilidade, equipamento, resolução, paginas e hash.
O XMP nao substitui o manifesto; ambos devem ser consistentes.
PCDA e TTDA¶
Quando o tipo documental exigir PCDA/TTDA, o sistema deve bloquear conclusao da digitalização se os vinculos estiverem ausentes.
Aceite¶
- Manifesto e PDF final compartilham o mesmo
verificationCode. - Hash do arquivo no manifesto bate com
FileAttachment.HashFile. - Metadados obrigatorios ausentes geram erro ou pendencia conforme politica.
Implementação¶
Parcialmente entregue¶
| Requisito | Implementação | Arquivo |
|---|---|---|
| XMP com metadados mínimos Decreto 10.278/2020 | ApplyConarqXmpMetadata com namespace mcgi: — identificador, tipo, responsável, equipamento, resolução, hash, páginas |
Library/Services/PdfComplianceService.cs |
DigitalizationManifest com campos arquivísticos |
ScannerIntegrationService.CreateManifestAsync — PCDA, TTDA, operador, local, equipamento, hash |
Library/Services/ScannerIntegrationService.cs |
| Hash do manifesto | ComputeManifestSha256(manifest) |
Library/Services/ScannerIntegrationService.cs |
| verificationCode compartilhado entre PDF e manifesto | ScanCaptureResult.VerificationCode usado no XMP e no manifesto |
Scan/Scan/ScanCaptureService.cs |
Pendente (bloqueadores para Implemented)¶
| Requisito | Situação |
|---|---|
Manifesto JSON gerado pelo novo fluxo (ScanCaptureService) |
O fluxo novo gera o XMP mas não gera o manifesto JSON. O ScannerIntegrationService gera o manifesto apenas no fluxo legado (EnfaseScanForm). Lacuna: ComposePdfAsync precisa chamar CreateManifestAsync. |
| TenantKey no manifesto | DigitalizationManifest.ClienteId existe mas TenantKey está ausente. |
| Campos PCDA/TTDA/destino no novo fluxo | Disponíveis no ScannerIntegrationService mas não chegam ao ScanCaptureService. |
| Resultado PDF/A formal | UsesPdfA=true hardcoded — veraPDF não é executado no novo fluxo. |
| Eventos de captura/upload no manifesto | AuditTrailHash existe mas sem lista de eventos detalhados. |