Ir para o conteúdo

07 - Upload, WebApi e Multi-tenant

EnfaseCloud.ScanEnfaseCloud.WebApi

Draft

Objetivo

Garantir upload seguro, retomavel e verificavel entre estações on-prem, Vue e WebApi multi-tenant.

Baseline de produção

  • WebApi executa em Azure App Service.
  • Arquivos/documentos definitivos ficam no Azure Storage Account, em pasta/prefixo por tenant.
  • Metadados, status, hashes, auditoria funcional e vinculos ficam no Azure SQL do tenant.
  • Cada tenant GED usa um banco Azure SQL proprio.
  • Processamento assíncrono relacionado ao upload usa WebApi/App Service e jobs internos, sem fila externa no baseline.

Upload chunked

  • Cada upload deve ter uploadId, nome, tamanho, total de chunks, hash esperado e algoritmo.
  • A WebApi deve validar hash antes de aceitar merge.
  • Se houver conversao ou mutação server-side, a WebApi deve recalcular hash final.
  • Chunks recebidos devem ser isolados por tenant e cliente.
  • Sessao de upload deve suportar retomada e aborto.

Diferenca entre origens

  • Origem scan: exige manifesto, contexto de digitalização e validações arquivisticas.
  • Origem webapp: upload comum, pode receber validação tecnica, mas nao representa ato de digitalização.
  • Origem sync: preserva compatibilidade com sincronização existente.

Persistência

O arquivo final aprovado deve ser persistido no Azure Storage Account dentro da pasta/prefixo do tenant. O Azure SQL do tenant deve manter apenas metadados, status, referencias ao objeto armazenado, hashes e informações necessarias para auditoria, busca e preservação.

FileAttachment deve armazenar:

  • hash final;
  • algoritmo;
  • origem;
  • page count;
  • verification code;
  • manifest JSON ou referência ao manifesto;
  • status PDF/A;
  • status OCR;
  • status assinatura;
  • status preservação.
  • referência ao objeto no Azure Storage Account, incluindo pasta/prefixo do tenant.

Auditoria

Eventos minimos:

  • inicio de upload;
  • chunk recebido;
  • merge solicitado;
  • hash divergente;
  • validação tecnica;
  • persistência;
  • falha;
  • cancelamento;
  • conclusao.

Aceite

  • Upload com hash divergente nao cria documento.
  • Upload Vue existente continua funcionando.
  • Upload Scan persiste manifesto e evidência.
  • Dados de um tenant nao aparecem em outro.