02 - Design Arquitetural¶
EnfaseCloud.ScanEnfaseCloud.WebApiEnfaseCloud.LibraryEnfaseCloud.VueEnfaseCloud.IDP
Draft
Baseline de produção Azure¶
A arquitetura de produção aprovada para estes specs e:
EnfaseCloud.WebApp: Azure App Service.EnfaseCloud.WebApi: Azure App Service.- GED: Azure SQL com um banco por tenant.
EnfaseCloud.IDP: Azure App Service.- Identidade: Azure SQL exclusivo do IDP, separado dos bancos GED.
- Documentos: Azure Storage Account, com pasta/prefixo por tenant.
- Processamento assíncrono: WebApi/App Service e jobs internos, sem fila externa no baseline.
Responsabilidades¶
EnfaseCloud.Scan¶
Estação operacional Windows/on-prem. Responsável por capturar do scanner, aplicar perfil de digitalização, compor PDF/A, calcular hash final, gerar manifesto local, enfileirar upload e sincronizar com a cloud.
Nao deve decidir regras globais de preservação, TTDA, perfis de usuario cloud ou politicas multi-tenant alem das configurações recebidas.
EnfaseCloud.Library¶
Nucleo compartilhado. Deve conter contratos e servicos reutilizaveis:
- composição PDF/A;
- validação PDF/A;
- hash e fixidez;
- manifesto de digitalização;
- modelos de OCR;
- resultado de assinatura;
- resultado de conformidade tecnica.
EnfaseCloud.WebApi¶
Concentradora cloud multi-tenant em Azure App Service. Deve validar upload, hash, manifesto, PDF/A, assinatura e permissoes. Deve persistir metadados e status no Azure SQL do tenant, documentos no Azure Storage Account em pasta/prefixo do tenant, indexar, auditar, executar preservação e expor APIs ao Vue.
EnfaseCloud.WebApp¶
Interface cloud em Azure App Service. Deve exibir status, pendencias e ações disponiveis. Nao deve implementar regra de conformidade de forma independente.
EnfaseCloud.IDP¶
Fronteira de identidade em Azure App Service. Deve fornecer identidade do usuario, claims, tenant/contexto e auditoria de login, usando Azure SQL exclusivo do IDP. Nao deve conter regra de digitalização nem compartilhar banco com os tenants GED.
Contratos centrais¶
DigitalizationManifest¶
Representa a evidência do ato de digitalização. Deve ser serializavel em JSON, versionado e hashavel.
Campos minimos:
schemaVersionverificationCodetenantIdclienteIdoperatorUserIdoperatorDisplayNamedigitizationResponsibledigitizationLocationscannerNamescannerDriverscannerProfiledpipaperSizeduplexpageCountblankPagePolicydocumentTypeIddocumentClassCoderetentionRuleIdfileSha256manifestSha256pdfAocrsignatureevents
PdfAValidationResult¶
Resultado formal da validação:
status:valid,invalid,not_run,not_applicable,errorprofile:PDF/A-2Bvalidator:veraPDFvalidatorVersionvalidatedAtUtcerrorswarningsrawReportPathopcional
SignatureStatus¶
Estados:
NotRequiredRequiredPendingSignedValidSignedInvalidValidationError
Fluxo de dados¶
O Scan produz arquivo e manifesto. A WebApi valida, grava o arquivo no Azure Storage Account dentro da pasta/prefixo do tenant e persiste metadados/status no Azure SQL do tenant. A Library define os contratos e servicos comuns. O Vue consome estado ja processado pela WebApi. O IDP fornece identidade para Scan, WebApi e Vue usando seu Azure SQL exclusivo.