Documentação Técnico-Comercial

MCGI

Documentação consolidada da plataforma EnfaseCloud, composta pela aplicação web EnfaseCloud WebApp, implementada no projeto técnico EnfaseCloud.Vue, e pelo backend EnfaseCloud.WebApi, elaborada a partir de análise completa dos artefatos dos projetos.

Plataforma
EnfaseCloud
Data do Documento
16/04/2026
Baseline Técnica
Vue 3.5 · .NET 8
Empresa
Ênfase Sistemas
02

Sumário Executivo

Visão comercial e funcional do produto

O MCGI é uma plataforma corporativa orientada à gestão documental digital e física. A solução cobre o ciclo completo de documentos — captura, upload, digitalização, validação técnica, indexação, pesquisa, assinatura e auditoria — e inclui o módulo WebGed para operação de acervo físico, solicitações e balcão.

GED digital WebGed físico Multi-tenant Web + Desktop Auth centralizada
📋

O que o sistema resolve

Centraliza o ciclo de vida de documentos: recebimento, upload, digitalização, validação técnica, indexação, busca, visualização, assinatura, sincronização e rastreabilidade operacional — tudo em ambiente multi-tenant controlado.

👥

Público-alvo

Áreas administrativas, operações de GED, equipes de acervo e atendimento, gestores, administradores da plataforma e clientes que consomem documentos e solicitações por perfis controlados.

Benefícios principais

Padronização do processo documental, redução de retrabalho, controle por tenant e por perfil, rastreabilidade por logs, integração com operação física e suporte a cenários distribuídos com sincronização em tempo real.

🔍

Escopo identificado

Módulos ativos para login OIDC, pesquisa documental, upload em lote e por partes, scanner, dashboards, auditoria, cadastros, monitoramento de pastas, WebGed e serviços auxiliares de segurança e conformidade.

03

Visão Geral do Sistema

Arquitetura, tecnologias e modelo de implantação

A arquitetura adota separação entre camada de apresentação em Vue 3, backend em ASP.NET Core 8, serviços de autenticação externos baseados em OpenID Connect e armazenamento híbrido, combinando SQL Server, sistema de arquivos por tenant, comunicação em tempo real via SignalR e integração com Microsoft Graph.

USUÁRIOS Clientes Navegador / Desktop Operadores / Gestores FRONTEND EnfaseCloud WebApp Vue 3 + Vite + PrimeVue Pinia + OIDC + Axios Upload, busca, auditoria WebGed e painéis Tauri (desktop opcional) BACKEND EnfaseCloud.WebApi ASP.NET Core 8 Controllers + Services + Hubs EF Core + SQL + File System Conformidade, sync, WebGed Swagger + Health Checks EnfaseCloud.Library IDP / OIDC OpenIddict BANCO DE DADOS SQL Server INFRAESTRUTURA Storage · SignalR · Graph

Tecnologias identificadas

CamadaTecnologiasVersõesObservações
Frontend Vue 3, Vite, Vue Router, Pinia, PrimeVue, Tailwind CSS, Axios Vue 3.5.13 · Vite 6.3.5 · PrimeVue 4.3.4 SPA com OIDC, roteamento protegido, persistência local e suporte desktop via Tauri.
Backend ASP.NET Core Web API, EF Core, Swagger, Serilog, SignalR .NET 8 · EF Core 8.0.14 · Serilog 8.0.3 API com validação OpenIddict, health checks, middleware multi-tenant e serviços especializados.
Banco de dados SQL Server, ADO.NET, Stored Procedures, Full Text Search EF Core.SqlServer 8.0.14 EF Core para entidades e ADO.NET/SQL nativo para busca, merge e relatórios.
Autenticação OpenID Connect, JWT Bearer, OpenIddict Validation, oidc-client-ts OpenIddict 7.1.0 · oidc-client-ts 3.3.0 Login centralizado, refresh token, políticas por perfil e validação de tenant via claim.
Integrações Microsoft Graph, scanner local, SignalR, sistema de arquivos @microsoft/signalr 8.0.7 Graph para notificações WebGed; scanner, hubs e storage para captura e sincronização.
Modelo de implantação
SaaS / Cloud Multi-tenant
Configuração por subdomínio com API centralizada e resolução dinâmica de tenant.
Operação híbrida
Web + Desktop opcional
Dependências e flags para empacotamento Tauri indicam cliente desktop complementar.
Configuração operacional
Subdomínio + Tenant
Combinação de subdomínio com resolução dinâmica de tenant, conexão e identidade visual.
04

Módulos e Funcionalidades

Visão funcional consolidada a partir da análise de rotas, controllers e componentes

Os módulos abaixo consolidam a visão funcional obtida a partir das rotas do frontend, controllers do backend, serviços de negócio e componentes reutilizáveis efetivamente encontrados.

MóduloDescriçãoFuncionalidades identificadasPerfisReferências
Autenticação e sessão Entrada, renovação de token, seleção de tenant. Login OIDC, callback, refresh token, verificação de sessão, tenants disponíveis. Todos os usuários /login /callback /session/me
Consulta e dashboard GED Pesquisa de documentos e indicadores operacionais. Pesquisa textual e inteligente, filtros, painéis de volumes, uso de disco, relatórios. Usuários; dashboards gerenciais restritos a admins /home /painel /File/Search
Gestão de arquivos Exploração, visualização, download, exclusão e assinatura. Estrutura de pastas, preview PDF/imagem, download, deleção, assinatura digital, manipulação de páginas. Usuários com permissão por tipo documental /filemanager /FileUpload/*
Upload e importação Recebimento de arquivos unitários, múltiplos e por partes. Upload simples, múltiplo, chunk upload, merge, consulta de status, abort, limpeza. Usuários autenticados /FileUpload/file /FileUpload/chunk /FileUpload/merge
Indexação e metadados Registro de atributos e classificação documental. Indexação unitária e em lote, validação de unicidade, sugestão por código, vínculos automáticos. Usuários com permissão de escrita /File/index /File/index-batch /FileAttributes/*
Digitalização Integração com scanner e verificação pública. Listagem de scanners, início de digitalização, DPI e duplex, prévia de páginas, verificação de autenticidade. Operadores; verificação pública anônima /Scan/* /verify/:code
Sincronização e monitoramento Integração entre web e clientes locais. Init de sync, upload sincronizado, monitoramento de diretórios, progresso em tempo real, relatórios de falha. Usuários; painéis restritos a admins /Sync/* /synchub /foldermonitorhub
Cadastros e permissões Clientes, departamentos, tipos documentais e perfis. CRUD genérico, pesquisa, exclusão lógica, listagem ativo/inativo, atribuição de permissões por tipo. Administradores /Cliente /TipoDocumental /ClientePerfil
Auditoria Consulta paginada e exportação de logs. Filtro por usuário, paginação, exportação CSV, detalhe de evento, listagem de providers. Administradores /audit-logs/* /app/audit
WebGed Dashboard Visão gerencial do acervo físico. Resumo, gráficos, visão temporal, detalhamento, filtros persistidos por cliente/estado. Administradores /Webged/Dashboard/* /webged/dashboard
WebGed Caixas e Kits Cadastro e operação de caixas do acervo físico. CRUD de caixas, paginação, opções de seleção, detalhamento, requisição de serviços. Administradores /Webged/Box/* /webged/boxes
WebGed Balcão Controle de solicitações operacionais do acervo. CRUD do balcão, resumo, caixas abertas, envio de solicitações, atendimento múltiplo, notificação por e-mail. Administradores /Webged/Balcao/* /webged/balcao
Configurações e contexto visual Personalização visual e tema por tenant. Troca de tema, logo por tenant, seleção de tenant. Usuários autenticados /config /Tenant/current /Tenant/logo
05

Arquitetura Técnica

Organização em camadas, padrões e responsabilidades

O backend opera no padrão Controller → Service → DbContext / SqlService / File System / Integrações. O frontend se organiza por rotas, serviços de API, stores Pinia e componentes reutilizáveis. Ambos compartilham uma biblioteca comum via EnfaseCloud.Library.

Camada 1

Apresentação

Controllers REST, Hubs SignalR, endpoints de health e Swagger.

Camada 2

Aplicação

Services de negócio, DTOs, regras de permissão, conformidade e sincronização.

Camada 3

Dados

AppDbContext, WebgedDbContext, SqlService, stored procedures.

Camada 4

Infraestrutura

SQL Server, file system por tenant, IDP OIDC, Microsoft Graph, scanner e logging.

5.1

Backend — EnfaseCloud.WebApi

ASP.NET Core 8 · EF Core · OpenIddict · SignalR · Serilog

API ASP.NET Core 8 com autenticação baseada em tokens validados por OpenIddict, organização multi-tenant, suporte a SignalR, logging estruturado com Serilog e dependência principal de SQL Server com armazenamento em arquivos por tenant.

ASP.NET Core 8 EF Core + SQL Server OpenIddict Validation SignalR Serilog Swagger / OpenAPI

Stack tecnológica detalhada

CategoriaItens identificadosObservações
Framework principalASP.NET Core Web API em net8.0Projeto principal EnfaseCloud.WebApi.csproj.
Persistência e ORMEntity Framework Core 8.0.14, SQL Server provider, Dynamic LINQUso combinado com ADO.NET e stored procedures para busca, merge e relatório.
AutenticaçãoJwtBearer, OpenIdConnect, OpenIddict.Validation.AspNetCoreValidação ativa via OpenIddict com issuer configurável; Identity disponível como dependência complementar.
ObservabilidadeSerilog.AspNetCore, Sinks Console/File/MapMiddlewares próprios para log de acesso e erro por tenant.
Documentos e imagemitext 9.2.0, ImageSharp 3.1.11Manipulação de PDF, assinatura e verificações técnicas de arquivo.
Tempo real e saúdeSignalR, HealthChecks EF CoreHubs /synchub e /foldermonitorhub; endpoints /health e /healthz.
DocumentaçãoSwashbuckle 8.1.0Swagger ativo; contrato OpenAPI gerado automaticamente.
Comunicação e e-mailMicrosoft Graph, MailKit 4.12.1Graph é o canal principal de notificação no WebGed; MailKit presente como dependência alternativa.

Controllers identificados

ControllerRota baseObjetivo
AccountController/sessionConsulta de sessão autenticada.
AuditLogsController/audit-logsAuditoria funcional, exportação e filtros.
ClienteController/ClienteCRUD de clientes — derivado de base genérica.
ClienteDepartamentoController/ClienteDepartamentoCRUD de departamentos por cliente.
ClientePerfilController/ClientePerfilCRUD de perfis por cliente.
DashboardController/dashboardIndicadores do GED.
DebugController/debugDiagnóstico do token corrente.
FileAttachmentController/FileAttachmentCRUD de metadados de anexos/arquivos.
FileAttributesController/FileAttributesCRUD e rotinas adicionais de atributos indexados.
FileController/FileIndexação, busca, download e assinatura.
FileUploadController/FileUploadUpload, preview, merge de chunks e operações sobre arquivo.
InstancePerfilController/instanceConsulta de perfis/instâncias disponíveis ao usuário.
ScanController/ScanOperações de scanner e verificação pública.
SearchGenericController/SearchGenericPesquisa genérica parametrizada.
SyncController/SyncSincronização entre cliente e servidor.
TenantController/TenantContexto e identidade visual do tenant.
TipoDocumentalController/TipoDocumentalCRUD de tipos documentais.
TipoDocumentalCampoController/TipoDocumentalCampoCRUD e exclusão lógica de campos documentais.
TipoDocumentalClientePerfilController/TipoDocumentalClientePerfilAssociação de permissões por perfil e tipo documental.
TiposController/TiposCRUD de tipos auxiliares.
BOXController/Webged/BoxCadastro e consulta de caixas no WebGed.
BalcaoController/Webged/BalcaoSolicitações de balcão e serviços operacionais.
WebGed DashboardController/Webged/DashboardIndicadores do acervo físico.
ServiceController/Webged/ServiceCRUD de tipos de serviço WebGed.
UsersController/UsersGestão de usuários do módulo WebGed.

Padrão CRUD genérico

MétodoRotaDescrição
GET/{Controller}Lista registros do recurso.
GET/{Controller}/{id}Obtém item por identificador.
POST/{Controller}Cria novo registro.
PUT/{Controller}Atualiza registro existente.
DELETE/{Controller}/{id}Exclui registro; alguns com exclusão lógica.
GET/{Controller}/searchPesquisa específica do recurso.
GET/{Controller}/FormFieldsMetadados de campos para telas dinâmicas.
GET/{Controller}/searchGenericPesquisa genérica do recurso.

Endpoints especializados — Sessão, auditoria e infraestrutura

MétodoRotaDescrição
GET/session/meRetorna dados da sessão autenticada.
GET/audit-logs/pagedConsulta paginada de logs com filtros.
GET/audit-logs/usersLista usuários presentes nos logs.
GET/audit-logs/{id}Detalhe de evento de auditoria.
GET/audit-logs/export-csvExporta resultados da auditoria em CSV.
GET/debug/tokenExpõe informações do token atual para diagnóstico.
GET/instance/perfisLista perfis/instâncias acessíveis ao usuário.
GET/Tenant/currentRetorna o tenant corrente resolvido pela API.
GET/Tenant/logoFornece identidade visual configurada para o tenant.
GET/healthHealth check principal da API.
GET/healthzHealth check simplificado, consumido pelo frontend.

Endpoints especializados — GED, upload, scanner e sincronização

MétodoRotaDescrição
GET/dashboard/resumoResumo executivo do GED.
GET/dashboard/arquivosIndexadospordiaSérie diária de indexação.
GET/dashboard/discoIndicadores de uso de disco.
GET/dashboard/pagesCountQuantidade de páginas processadas.
GET/dashboard/relatorioRelatório analítico do GED.
POST/File/indexIndexa documento individual.
POST/File/index-batchIndexa documentos em lote.
GET/FileBaixa arquivo com validações de integridade e permissão.
GET/File/SearchExecuta pesquisa de documentos.
GET/File/SearchPreviewPrévia de resultados de pesquisa.
POST/File/assinarRealiza assinatura digital do documento.
GET/FileAttributes/verify-indexVerifica consistência de indexação.
GET/FileAttributes/auto-extracted-codesLista códigos extraídos automaticamente.
POST/FileAttributes/validarUnicoValida unicidade de atributo antes da indexação.
POST/FileUpload/fileUpload de arquivo unitário.
POST/FileUpload/multi-fileUpload múltiplo de arquivos.
POST/FileUpload/chunkRecebe parte de upload fatiado.
POST/FileUpload/chunk/abortAborta upload fatiado em andamento.
POST/FileUpload/mergeConsolida chunks em arquivo final.
GET/FileUpload/chunk-status/{uploadId}Status de um upload particionado específico.
GET/FileUpload/armazenado-paginatedLista paginada do repositório armazenado.
GET/FileUpload/preview/{*fileName}Preview de arquivo por nome/rota relativa.
GET/FileUpload/downloadDownload de arquivo gerenciado.
DELETE/FileUpload/delete-fileRemove arquivo do repositório.
POST/FileUpload/manipulatePdfRotação, exclusão e reordenação em PDF.
GET/Scan/ListarScannersLista scanners disponíveis.
POST/Scan/startScanInicia processo de digitalização.
GET/Scan/verify/{verificationCode}Valida publicamente código de verificação.
POST/Sync/initInicializa sessão de sincronização.
POST/SyncExecuta sincronização principal.
POST/Sync/uploadEnvia lote de arquivos no fluxo de sync.

Endpoints especializados — WebGed

MétodoRotaDescrição
GET/Webged/Box/pagedLista paginada de caixas.
POST/Webged/BoxCria caixa.
PUT/Webged/Box/{id}Atualiza caixa.
DELETE/Webged/Box/{id}Exclui caixa.
GET/Webged/Balcao/pagedLista paginada do balcão.
GET/Webged/Balcao/summaryResumo operacional do balcão.
POST/Webged/Balcao/serviceBoxSolicita serviço para uma caixa.
POST/Webged/Balcao/serviceBoxMultipleSolicita serviço para múltiplas caixas.
POST/Webged/Balcao/service-kitSolicita serviço para um kit.
POST/Webged/Balcao/send-requestsEnvia solicitações para processamento e notificação.
GET/Webged/Dashboard/summaryResumo principal do WebGed.
GET/Webged/Dashboard/chartDados gráficos do WebGed.
GET/Webged/Dashboard/temporalVisão temporal do WebGed.
POST/Webged/Dashboard/clientes/selectionPersiste seleção de clientes para análise.
POST/Webged/Dashboard/periodo/selectionPersiste seleção de período para análise.
POST/Webged/ServiceCria tipo de serviço WebGed.
PUT/Webged/Service/{id}Atualiza serviço.
POST/UsersCria usuário WebGed.
PUT/Users/{username}Atualiza usuário WebGed.
DELETE/Users/{username}Exclui usuário WebGed.

Serviços e regras de negócio

ServicePapel funcionalRegras observadas
TenantServiceResolve tenant, connection string, paths de storage e parâmetros da instância.Exige tid em cenários protegidos e valida tenant nas claims.
TipoDocumentalPermissionServiceCalcula permissões por tipo documental.Admin tem bypass; demais dependem da associação ClientePerfil + TipoDocumentalClientePerfil.
TechnicalComplianceServiceValida conformidade técnica de documentos.Restringe extensões, verifica DPI mínimo, páginas PDF e qualidade de imagem.
AutoCodeExtractionServiceExtrai QR Code e código de barras.Dependente de configuração do tenant; grava em FileAttachment e retorna opções de tipificação.
DocumentoVinculoServiceMantém vínculos entre documentos relacionados.Auto-vinculação para CTE e Canhoto CTE.
SqlServiceExecuta operações SQL de alto volume e busca.Inclui merge de anexos, busca padrão/inteligente, relatórios e manutenção por hash.
FileSyncServiceSincroniza arquivos entre cliente e servidor.Integra conformidade, movimentação de diretórios e feedback em tempo real via SignalR.
FileTreeServiceMonta estrutura navegável de arquivos.Suporta lazy loading, paginação e múltiplas árvores de navegação.
BalcaoNotificationService / GraphMailServiceNotifica solicitações WebGed.Usa OAuth client credentials para Microsoft Graph sendMail.
AuditLogQueryServiceConsulta trilhas de auditoria.Provider padrão em arquivo; Azure Log Analytics registrado mas sem implementação completa identificada.

Banco de dados e entidades principais

Contextos EF Core

O backend usa dois contextos: AppDbContext para dados do GED e regras documentais por tenant, e WebgedDbContext para dados do acervo físico e balcão. Há ainda uso direto de SqlConnection, stored procedures e scripts SQL.

Objetos SQL identificados

Scripts de tabelas para DocumentoVinculo, FileAttachment e FileAttachment_Stage. Stored procedures pr_mergeFileAttachment e pr_searchFile. Scripts de índices Full Text.

Entidade / ConjuntoContextoDescrição funcional
ClienteAppDbContextBase de segregação operacional do GED; referenciada por departamentos, perfis e documentos.
ClienteDepartamentoAppDbContextDepartamento vinculado ao cliente, usado como filtro e organização documental.
ClientePerfilAppDbContextPerfil de acesso que influencia leitura, escrita e download.
TipoDocumentalAppDbContextClasse documental com regras, validade e associação a cliente/departamento.
TipoDocumentalCampoAppDbContextCampos de metadados com obrigatoriedade, unicidade e formatação.
TipoDocumentalClientePerfilAppDbContextMatriz de permissão por tipo documental e perfil de cliente.
FileAttachmentAppDbContext / SQLMetadados do arquivo: caminho, extensão, tamanho, páginas, hash, origem e código extraído.
FileAttributesAppDbContext / SQLValores indexados por campo documental para cada arquivo.
DocumentoVinculoSQL / GEDRelaciona documentos pai e filho por regra de negócio.
Box, BoxStatus, BoxTypeWebgedDbContextModelagem de caixas do acervo físico e seus estados/tipos.
Balcao, ServiceWebgedDbContextSolicitações operacionais e catálogo de serviços do WebGed.
Owner, OwnerDep, OwnerPlacesWebgedDbContextProprietários, áreas, localizações e contatos do acervo.
AssinaturaDigitalDomínio arquivosMetadados da assinatura digital aplicada ao documento.

Dependências NuGet principais

PacoteVersãoUso
Elastic.Clients.Elasticsearch8.17.3Dependência declarada no projeto backend.
itext9.2.0Manipulação e assinatura de PDFs.
MailKit4.12.1Biblioteca de e-mail; fluxo principal usa Microsoft Graph.
Microsoft.AspNetCore.Authentication.JwtBearer8.0.14Validação de tokens JWT.
Microsoft.AspNetCore.SignalR1.2.0Hubs em tempo real.
Microsoft.EntityFrameworkCore.SqlServer8.0.14Provider SQL Server.
OpenIddict.Validation.AspNetCore7.1.0Validação dos tokens do provedor de identidade.
Serilog.AspNetCore8.0.3Logging estruturado principal.
SixLabors.ImageSharp3.1.11Manipulação e validação de imagens.
Swashbuckle.AspNetCore8.1.0Documentação Swagger/OpenAPI.
System.Data.SqlClient4.9.0Acesso ADO.NET ao SQL Server.
5.2

Frontend — EnfaseCloud WebApp

Vue 3 · Vite · Pinia · PrimeVue · OIDC · Tauri (opcional)

SPA em Vue 3 com Vite, Vue Router, Pinia e PrimeVue, implementada no projeto técnico EnfaseCloud.Vue e estruturada em torno de rotas protegidas, integração OIDC, serviços Axios centralizados, componentes de GED e módulo WebGed especializado.

Vue 3.5 Vite 6 Vue Router 4 Pinia 3 PrimeVue 4 Tailwind CSS 4

Rotas e páginas identificadas

RotaViewAcessoDescrição funcional
/loginLoginViewPúblicaEntrada principal via OIDC.
/callbackCallbackViewPúblicaConclusão do fluxo OIDC e inicialização da sessão local.
/verify/:code?VerificationViewPúblicaVerificação pública de autenticidade de digitalizações.
/homeHomeViewPrivadaBusca documental, filtros e dashboard resumido.
/filemanagerFileManagerViewPrivadaExploração de arquivos, preview, indexação, upload e scanner.
/painelPainelViewAdminPainéis operacionais, monitoramento de pastas e sincronização.
/cadastrosCadastrosViewAdminCadastro de clientes, departamentos, tipos, campos e perfis.
/app/auditAuditLogViewerAdminConsulta de auditoria paginada com exportação.
/configConfigViewPrivadaConfigurações — implementação funcional limitada identificada.
/webged/dashboardDashboardView (webged)AdminPainel gerencial do acervo físico.
/webged/boxesBoxesViewAdminConsulta e operação de caixas e kits.
/webged/balcaoBalcaoViewAdminSolicitações operacionais do acervo físico.

Gerenciamento de estado — Stores Pinia

StoreResponsabilidadePersistência
authStoreSessão OIDC, tokens, claims, refresh token, permissões, tenants e usuário corrente.SessionStorage + persistedstate
clienteStoreCliente selecionado e lista de clientes visíveis ao usuário.LocalStorage
fileStoreÁrvore de arquivos, nó selecionado, paginação e estado do explorador.Pinia + persistência pontual
syncStoreProgresso, erro e resultado do fluxo de sincronização.Em memória
themeStoreTema visual claro/escuro.Persistida
progressStoreMensagens de progresso e feedback operacional.Em memória
uploadUiStoreEstado da interface de upload.Em memória

Componentes reutilizáveis principais

ComponentePapel funcionalObservações
AppDrawer, UserInfoNavegação, identidade do tenant e atalhos de módulo.Controla acesso por permissão, exibe contagem do WebGed Balcão.
TenantSelectModal, SessionWarningModalGestão de contexto do tenant e sessão.Apoiam troca de tenant, alerta de sessão e ausência de contexto.
UploadImportComponentUpload unitário, múltiplo e em chunks com retomada.Exibe feedback de progresso, erros e conformidade técnica.
FileExplorer, PreviewComponent, SimplePreviewExploração de árvore, preview e operações do GED.Integram download, exclusão, preview, assinatura e ações sobre PDF/imagem.
IndexationComponent, DocumentLinkagePanel, SignatureModalIndexação, vínculo documental e assinatura digital.Suportam os fluxos de classificação e rastreabilidade.
ScanComponentIntegração com scanner e configuração da digitalização.Opções de DPI, cor, lote, reordenação e sugestão por código extraído.
CrudTableInlinePV, AdvancedFilterModalCRUD genérico e filtros avançados.Reutilizados nos cadastros administrativos.
Dashboard, RelatorioDash, FolderMonitorPainéis operacionais e monitoramento.Suportam o módulo /painel.
AuditFilters, AuditLogDetailAuditoria funcional.Filtros, paginação e detalhe de eventos.
BoxFormDialog, BoxDetailsDialog, ServiceDialog, KitServiceDialogOperações modais do WebGed.Cadastro, detalhamento e requisição de serviços.

Dependências de frontend

DependênciaVersãoPapel identificado
vue3.5.13Framework principal.
vue-router4.5.1Roteamento SPA.
pinia3.0.3Gerenciamento de estado.
primevue4.3.4Biblioteca de componentes UI.
tailwindcss4.1.7Base utilitária de estilo.
axios1.9.0Cliente HTTP principal.
oidc-client-ts3.3.0Autenticação OIDC.
@microsoft/signalr8.0.7Comunicação em tempo real com hubs.
pdfjs-dist5.4.54Preview de documentos PDF.
chart.js / echarts4.4.9 / 5.6.0Gráficos e visualizações analíticas.
jspdf3.0.4Geração de PDF no cliente.
xlsx0.18.5Exportação/importação de planilhas.
sortablejs1.15.6Reordenação em listas e páginas digitalizadas.
@tauri-apps/api2.0.0Suporte a cliente desktop opcional.
vite6.3.5Ferramenta de build e desenvolvimento.
pinia-plugin-persistedstate4.5.0Persistência local das stores.
06

Fluxos Principais

Caminhos funcionais mais relevantes identificados nos artefatos

1Login, sessão e seleção de tenant
Usuário acessa /login
Redirecionamento ao IDP OIDC
Callback em /callback
Stores recebem tokens e claims
Tenant selecionado e validado
Módulos privados liberados
Depende de authService, authStore, endpoint /session/me e validação de tenant por tid no backend.
2Upload, validação técnica e disponibilização
Arquivo entra via upload ou scanner
Envio simples, múltiplo ou por chunks
Validação de conformidade técnica
Código automático extraído
Arquivo gravado em storage por tenant
Disponível para preview e indexação
Envolve UploadImportComponent, ScanComponent, FileUploadController, TechnicalComplianceService e AutoCodeExtractionService.
3Indexação, vínculo documental e pesquisa
Operador abre documento no explorador
Metadados preenchidos por tipo documental
Unicidade e permissões validadas
Indexação grava FileAttachment e FileAttributes
Vínculos automáticos reconciliados
Busca e dashboards refletem o documento
Usa IndexationComponent, FileController, TipoDocumentalPermissionService e DocumentoVinculoService.
4Sincronização operacional e monitoramento
Cliente inicia sessão de sync
API prepara contexto via /Sync/init
Arquivos enviados por /Sync ou /Sync/upload
Serviço move arquivos entre diretórios
SignalR divulga progresso e falhas
Painel administrativo acompanha a operação
Depende de syncService, syncStore, FileSyncService, FolderMonitorService e hubs protegidos.
5Operação WebGed — caixas e solicitações
Admin consulta caixas e kits
Seleciona serviço no módulo Balcão
API registra solicitação e resumo operacional
Solicitações enviadas para processamento
Notificação por e-mail (Microsoft Graph)
Dashboard WebGed consolida indicadores
Usa BoxesView, BalcaoView, /Webged/Box/*, /Webged/Balcao/* e BalcaoNotificationService.
07

Segurança e Autenticação

Autenticação federada, segregação multi-tenant e controle de acesso

A segurança combina autenticação federada, segregação multi-tenant, políticas por perfil, limitações de taxa, logging estruturado e validações de integridade sobre documentos.

🔐

Modelo de autenticação

O frontend usa OpenID Connect com oidc-client-ts e fluxo authorization code. A API valida tokens JWT via OpenIddict.Validation.AspNetCore. Há uso de refresh token no cliente para renovação transparente da sessão.

🛡️

Controle de acesso

Dois níveis: políticas globais da API (AdminOnly, UserAccess) e permissões documentais baseadas em ClientePerfil e TipoDocumentalClientePerfil. Tenant validado por claim e header tid.

ControleImplementaçãoObservação
OIDC / JWTTokens validados pela API e consumidos pelo frontend.Base do login centralizado.
Segregação por tenantHeader/query tid, middlewares dedicados, resolução dinâmica de conexão.Evita acesso indevido entre instâncias.
Permissão por perfilPolíticas globais e matriz de acesso por tipo documental.Bypass administrativo disponível.
Rate limitingRegras específicas para login, refresh e chamadas gerais.Reduz abuso operacional.
CORS por tenantOrigens globais e por instância configuráveis.Adequado ao modelo multi-tenant.
Logs de acesso e erroMiddlewares próprios integrados ao Serilog.Suporte à auditoria e diagnóstico operacional.
Conformidade técnicaVerificação de extensão, DPI, estrutura PDF e características de imagem.Assegura qualidade do acervo digital.
Integridade documentalHash MD5 em entidades de arquivo e validações em download/assinatura.Rastreabilidade e consistência.
Hubs autenticadosSignalR protegido para sync e monitoramento.Não expostos publicamente.
08

Integrações

Sistemas e serviços externos com evidência nos artefatos analisados

IntegraçãoCategoriaUso identificado
IDP Enfase / OpenIddictIdentidadeAutenticação OIDC, validação de token e refresh token.
SQL ServerBanco de dadosPersistência principal do GED e WebGed.
Sistema de arquivos por tenantStorageDiretórios de entrada, armazenado, upload e stage por instância.
Microsoft GraphComunicaçãoEnvio de notificações de e-mail no fluxo WebGed Balcão.
SignalRTempo realProgresso de sincronização e monitoramento de pastas.
Scanner localCapturaListagem de scanners disponíveis e início de digitalização.
09

Requisitos do Sistema

Ambiente, dependências e configurações observadas nos projetos

Requisitos de servidor e backend

ItemRequisitoObservação
Runtime.NET 8Definido em TargetFramework.
Banco de dadosSQL Server acessível pela APINecessário para AppDbContext e WebgedDbContext.
ArmazenamentoLeitura e escrita nos diretórios de storage, upload e stageEssencial para GED, upload em chunks e sincronização.
Rede externaSaída HTTPS para IDP e, quando habilitado, Microsoft GraphNecessária para autenticação e notificações.
Proxy / HTTPSRecomendado com suporte a forwarded headersTratamento explícito no Program.cs.
ObservabilidadeAcesso a diretórios de log ou infraestrutura equivalenteSerilog grava em arquivo e console.

Requisitos de ambiente frontend

ItemRequisitoObservação
Build toolVite com plugin Vue e integração TailwindConfigurado em vite.config.js.
Configuração por ambienteArquivos /assets/config.{subdominio}.jsonDeterminantes para API, IDP, clientId e modo desktop.
Desktop opcionalTauri 2 quando aplicávelPresença de dependências indica build alternativo desktop.
Browsers suportadosNavegadores modernos com suporte a ES2020+Baseado no target de build Vite e uso de APIs modernas.
10

Glossário

Termos técnicos e de negócio relevantes no contexto do sistema

TermoDefinição no contexto do sistema
MCGINome do sistema documentado, operacionalizado pela plataforma EnfaseCloud.
EnfaseCloudNome da plataforma composta por frontend, backend e biblioteca compartilhada.
TenantInstância lógica de cliente/ambiente com conexão, storage e configurações próprias.
GEDGestão eletrônica de documentos — cobrindo captura, indexação, pesquisa e guarda digital.
WebGedMódulo voltado ao acervo físico: caixas, kits, balcão e serviços operacionais.
Tipo documentalCategoria documental que define campos, regras e permissões associadas.
ClientePerfilPerfil de acesso associado a um cliente, usado para autorização documental.
FileAttachmentRegistro de metadados do arquivo armazenado: caminho, hash, tamanho, páginas e origem.
FileAttributesConjunto de atributos indexados e valores de campos documentais para cada arquivo.
StageÁrea intermediária usada em cargas, merge de chunks e sincronização.
ArmazenadoÁrea final de guarda permanente dos documentos por tenant.
OIDCProtocolo de autenticação entre frontend, usuário e provedor de identidade.
JWTToken portador usado para autenticação e autorização na API.
SignalRTecnologia para feedback em tempo real — usada principalmente em sincronização e monitoramento.
BalcãoMódulo de solicitações operacionais do acervo físico.
Box / CaixaUnidade física de armazenamento gerenciada no WebGed.
ServiceTipo de serviço operacional aplicável a caixas, kits ou solicitações do WebGed.
Conformidade técnicaValidação de extensão, DPI, características de PDF e critérios de qualidade documental.