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.
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.
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.
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.
Tecnologias identificadas
| Camada | Tecnologias | Versões | Observaçõ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. |
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ódulo | Descrição | Funcionalidades identificadas | Perfis | Referê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 |
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.
Apresentação
Controllers REST, Hubs SignalR, endpoints de health e Swagger.
Aplicação
Services de negócio, DTOs, regras de permissão, conformidade e sincronização.
Dados
AppDbContext, WebgedDbContext, SqlService, stored procedures.
Infraestrutura
SQL Server, file system por tenant, IDP OIDC, Microsoft Graph, scanner e logging.
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.
Stack tecnológica detalhada
| Categoria | Itens identificados | Observações |
|---|---|---|
| Framework principal | ASP.NET Core Web API em net8.0 | Projeto principal EnfaseCloud.WebApi.csproj. |
| Persistência e ORM | Entity Framework Core 8.0.14, SQL Server provider, Dynamic LINQ | Uso combinado com ADO.NET e stored procedures para busca, merge e relatório. |
| Autenticação | JwtBearer, OpenIdConnect, OpenIddict.Validation.AspNetCore | Validação ativa via OpenIddict com issuer configurável; Identity disponível como dependência complementar. |
| Observabilidade | Serilog.AspNetCore, Sinks Console/File/Map | Middlewares próprios para log de acesso e erro por tenant. |
| Documentos e imagem | itext 9.2.0, ImageSharp 3.1.11 | Manipulação de PDF, assinatura e verificações técnicas de arquivo. |
| Tempo real e saúde | SignalR, HealthChecks EF Core | Hubs /synchub e /foldermonitorhub; endpoints /health e /healthz. |
| Documentação | Swashbuckle 8.1.0 | Swagger ativo; contrato OpenAPI gerado automaticamente. |
| Comunicação e e-mail | Microsoft Graph, MailKit 4.12.1 | Graph é o canal principal de notificação no WebGed; MailKit presente como dependência alternativa. |
Controllers identificados
| Controller | Rota base | Objetivo |
|---|---|---|
| AccountController | /session | Consulta de sessão autenticada. |
| AuditLogsController | /audit-logs | Auditoria funcional, exportação e filtros. |
| ClienteController | /Cliente | CRUD de clientes — derivado de base genérica. |
| ClienteDepartamentoController | /ClienteDepartamento | CRUD de departamentos por cliente. |
| ClientePerfilController | /ClientePerfil | CRUD de perfis por cliente. |
| DashboardController | /dashboard | Indicadores do GED. |
| DebugController | /debug | Diagnóstico do token corrente. |
| FileAttachmentController | /FileAttachment | CRUD de metadados de anexos/arquivos. |
| FileAttributesController | /FileAttributes | CRUD e rotinas adicionais de atributos indexados. |
| FileController | /File | Indexação, busca, download e assinatura. |
| FileUploadController | /FileUpload | Upload, preview, merge de chunks e operações sobre arquivo. |
| InstancePerfilController | /instance | Consulta de perfis/instâncias disponíveis ao usuário. |
| ScanController | /Scan | Operações de scanner e verificação pública. |
| SearchGenericController | /SearchGeneric | Pesquisa genérica parametrizada. |
| SyncController | /Sync | Sincronização entre cliente e servidor. |
| TenantController | /Tenant | Contexto e identidade visual do tenant. |
| TipoDocumentalController | /TipoDocumental | CRUD de tipos documentais. |
| TipoDocumentalCampoController | /TipoDocumentalCampo | CRUD e exclusão lógica de campos documentais. |
| TipoDocumentalClientePerfilController | /TipoDocumentalClientePerfil | Associação de permissões por perfil e tipo documental. |
| TiposController | /Tipos | CRUD de tipos auxiliares. |
| BOXController | /Webged/Box | Cadastro e consulta de caixas no WebGed. |
| BalcaoController | /Webged/Balcao | Solicitações de balcão e serviços operacionais. |
| WebGed DashboardController | /Webged/Dashboard | Indicadores do acervo físico. |
| ServiceController | /Webged/Service | CRUD de tipos de serviço WebGed. |
| UsersController | /Users | Gestão de usuários do módulo WebGed. |
Padrão CRUD genérico
| Método | Rota | Descriçã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}/search | Pesquisa específica do recurso. |
| GET | /{Controller}/FormFields | Metadados de campos para telas dinâmicas. |
| GET | /{Controller}/searchGeneric | Pesquisa genérica do recurso. |
Endpoints especializados — Sessão, auditoria e infraestrutura
| Método | Rota | Descrição |
|---|---|---|
| GET | /session/me | Retorna dados da sessão autenticada. |
| GET | /audit-logs/paged | Consulta paginada de logs com filtros. |
| GET | /audit-logs/users | Lista usuários presentes nos logs. |
| GET | /audit-logs/{id} | Detalhe de evento de auditoria. |
| GET | /audit-logs/export-csv | Exporta resultados da auditoria em CSV. |
| GET | /debug/token | Expõe informações do token atual para diagnóstico. |
| GET | /instance/perfis | Lista perfis/instâncias acessíveis ao usuário. |
| GET | /Tenant/current | Retorna o tenant corrente resolvido pela API. |
| GET | /Tenant/logo | Fornece identidade visual configurada para o tenant. |
| GET | /health | Health check principal da API. |
| GET | /healthz | Health check simplificado, consumido pelo frontend. |
Endpoints especializados — GED, upload, scanner e sincronização
| Método | Rota | Descrição |
|---|---|---|
| GET | /dashboard/resumo | Resumo executivo do GED. |
| GET | /dashboard/arquivosIndexadospordia | Série diária de indexação. |
| GET | /dashboard/disco | Indicadores de uso de disco. |
| GET | /dashboard/pagesCount | Quantidade de páginas processadas. |
| GET | /dashboard/relatorio | Relatório analítico do GED. |
| POST | /File/index | Indexa documento individual. |
| POST | /File/index-batch | Indexa documentos em lote. |
| GET | /File | Baixa arquivo com validações de integridade e permissão. |
| GET | /File/Search | Executa pesquisa de documentos. |
| GET | /File/SearchPreview | Prévia de resultados de pesquisa. |
| POST | /File/assinar | Realiza assinatura digital do documento. |
| GET | /FileAttributes/verify-index | Verifica consistência de indexação. |
| GET | /FileAttributes/auto-extracted-codes | Lista códigos extraídos automaticamente. |
| POST | /FileAttributes/validarUnico | Valida unicidade de atributo antes da indexação. |
| POST | /FileUpload/file | Upload de arquivo unitário. |
| POST | /FileUpload/multi-file | Upload múltiplo de arquivos. |
| POST | /FileUpload/chunk | Recebe parte de upload fatiado. |
| POST | /FileUpload/chunk/abort | Aborta upload fatiado em andamento. |
| POST | /FileUpload/merge | Consolida chunks em arquivo final. |
| GET | /FileUpload/chunk-status/{uploadId} | Status de um upload particionado específico. |
| GET | /FileUpload/armazenado-paginated | Lista paginada do repositório armazenado. |
| GET | /FileUpload/preview/{*fileName} | Preview de arquivo por nome/rota relativa. |
| GET | /FileUpload/download | Download de arquivo gerenciado. |
| DELETE | /FileUpload/delete-file | Remove arquivo do repositório. |
| POST | /FileUpload/manipulatePdf | Rotação, exclusão e reordenação em PDF. |
| GET | /Scan/ListarScanners | Lista scanners disponíveis. |
| POST | /Scan/startScan | Inicia processo de digitalização. |
| GET | /Scan/verify/{verificationCode} | Valida publicamente código de verificação. |
| POST | /Sync/init | Inicializa sessão de sincronização. |
| POST | /Sync | Executa sincronização principal. |
| POST | /Sync/upload | Envia lote de arquivos no fluxo de sync. |
Endpoints especializados — WebGed
| Método | Rota | Descrição |
|---|---|---|
| GET | /Webged/Box/paged | Lista paginada de caixas. |
| POST | /Webged/Box | Cria caixa. |
| PUT | /Webged/Box/{id} | Atualiza caixa. |
| DELETE | /Webged/Box/{id} | Exclui caixa. |
| GET | /Webged/Balcao/paged | Lista paginada do balcão. |
| GET | /Webged/Balcao/summary | Resumo operacional do balcão. |
| POST | /Webged/Balcao/serviceBox | Solicita serviço para uma caixa. |
| POST | /Webged/Balcao/serviceBoxMultiple | Solicita serviço para múltiplas caixas. |
| POST | /Webged/Balcao/service-kit | Solicita serviço para um kit. |
| POST | /Webged/Balcao/send-requests | Envia solicitações para processamento e notificação. |
| GET | /Webged/Dashboard/summary | Resumo principal do WebGed. |
| GET | /Webged/Dashboard/chart | Dados gráficos do WebGed. |
| GET | /Webged/Dashboard/temporal | Visão temporal do WebGed. |
| POST | /Webged/Dashboard/clientes/selection | Persiste seleção de clientes para análise. |
| POST | /Webged/Dashboard/periodo/selection | Persiste seleção de período para análise. |
| POST | /Webged/Service | Cria tipo de serviço WebGed. |
| PUT | /Webged/Service/{id} | Atualiza serviço. |
| POST | /Users | Cria usuário WebGed. |
| PUT | /Users/{username} | Atualiza usuário WebGed. |
| DELETE | /Users/{username} | Exclui usuário WebGed. |
Serviços e regras de negócio
| Service | Papel funcional | Regras observadas |
|---|---|---|
| TenantService | Resolve tenant, connection string, paths de storage e parâmetros da instância. | Exige tid em cenários protegidos e valida tenant nas claims. |
| TipoDocumentalPermissionService | Calcula permissões por tipo documental. | Admin tem bypass; demais dependem da associação ClientePerfil + TipoDocumentalClientePerfil. |
| TechnicalComplianceService | Valida conformidade técnica de documentos. | Restringe extensões, verifica DPI mínimo, páginas PDF e qualidade de imagem. |
| AutoCodeExtractionService | Extrai QR Code e código de barras. | Dependente de configuração do tenant; grava em FileAttachment e retorna opções de tipificação. |
| DocumentoVinculoService | Mantém vínculos entre documentos relacionados. | Auto-vinculação para CTE e Canhoto CTE. |
| SqlService | Executa operações SQL de alto volume e busca. | Inclui merge de anexos, busca padrão/inteligente, relatórios e manutenção por hash. |
| FileSyncService | Sincroniza arquivos entre cliente e servidor. | Integra conformidade, movimentação de diretórios e feedback em tempo real via SignalR. |
| FileTreeService | Monta estrutura navegável de arquivos. | Suporta lazy loading, paginação e múltiplas árvores de navegação. |
| BalcaoNotificationService / GraphMailService | Notifica solicitações WebGed. | Usa OAuth client credentials para Microsoft Graph sendMail. |
| AuditLogQueryService | Consulta 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 / Conjunto | Contexto | Descrição funcional |
|---|---|---|
Cliente | AppDbContext | Base de segregação operacional do GED; referenciada por departamentos, perfis e documentos. |
ClienteDepartamento | AppDbContext | Departamento vinculado ao cliente, usado como filtro e organização documental. |
ClientePerfil | AppDbContext | Perfil de acesso que influencia leitura, escrita e download. |
TipoDocumental | AppDbContext | Classe documental com regras, validade e associação a cliente/departamento. |
TipoDocumentalCampo | AppDbContext | Campos de metadados com obrigatoriedade, unicidade e formatação. |
TipoDocumentalClientePerfil | AppDbContext | Matriz de permissão por tipo documental e perfil de cliente. |
FileAttachment | AppDbContext / SQL | Metadados do arquivo: caminho, extensão, tamanho, páginas, hash, origem e código extraído. |
FileAttributes | AppDbContext / SQL | Valores indexados por campo documental para cada arquivo. |
DocumentoVinculo | SQL / GED | Relaciona documentos pai e filho por regra de negócio. |
Box, BoxStatus, BoxType | WebgedDbContext | Modelagem de caixas do acervo físico e seus estados/tipos. |
Balcao, Service | WebgedDbContext | Solicitações operacionais e catálogo de serviços do WebGed. |
Owner, OwnerDep, OwnerPlaces | WebgedDbContext | Proprietários, áreas, localizações e contatos do acervo. |
AssinaturaDigital | Domínio arquivos | Metadados da assinatura digital aplicada ao documento. |
Dependências NuGet principais
| Pacote | Versão | Uso |
|---|---|---|
Elastic.Clients.Elasticsearch | 8.17.3 | Dependência declarada no projeto backend. |
itext | 9.2.0 | Manipulação e assinatura de PDFs. |
MailKit | 4.12.1 | Biblioteca de e-mail; fluxo principal usa Microsoft Graph. |
Microsoft.AspNetCore.Authentication.JwtBearer | 8.0.14 | Validação de tokens JWT. |
Microsoft.AspNetCore.SignalR | 1.2.0 | Hubs em tempo real. |
Microsoft.EntityFrameworkCore.SqlServer | 8.0.14 | Provider SQL Server. |
OpenIddict.Validation.AspNetCore | 7.1.0 | Validação dos tokens do provedor de identidade. |
Serilog.AspNetCore | 8.0.3 | Logging estruturado principal. |
SixLabors.ImageSharp | 3.1.11 | Manipulação e validação de imagens. |
Swashbuckle.AspNetCore | 8.1.0 | Documentação Swagger/OpenAPI. |
System.Data.SqlClient | 4.9.0 | Acesso ADO.NET ao SQL Server. |
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.
Rotas e páginas identificadas
| Rota | View | Acesso | Descrição funcional |
|---|---|---|---|
/login | LoginView | Pública | Entrada principal via OIDC. |
/callback | CallbackView | Pública | Conclusão do fluxo OIDC e inicialização da sessão local. |
/verify/:code? | VerificationView | Pública | Verificação pública de autenticidade de digitalizações. |
/home | HomeView | Privada | Busca documental, filtros e dashboard resumido. |
/filemanager | FileManagerView | Privada | Exploração de arquivos, preview, indexação, upload e scanner. |
/painel | PainelView | Admin | Painéis operacionais, monitoramento de pastas e sincronização. |
/cadastros | CadastrosView | Admin | Cadastro de clientes, departamentos, tipos, campos e perfis. |
/app/audit | AuditLogViewer | Admin | Consulta de auditoria paginada com exportação. |
/config | ConfigView | Privada | Configurações — implementação funcional limitada identificada. |
/webged/dashboard | DashboardView (webged) | Admin | Painel gerencial do acervo físico. |
/webged/boxes | BoxesView | Admin | Consulta e operação de caixas e kits. |
/webged/balcao | BalcaoView | Admin | Solicitações operacionais do acervo físico. |
Gerenciamento de estado — Stores Pinia
| Store | Responsabilidade | Persistência |
|---|---|---|
authStore | Sessão OIDC, tokens, claims, refresh token, permissões, tenants e usuário corrente. | SessionStorage + persistedstate |
clienteStore | Cliente 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 |
syncStore | Progresso, erro e resultado do fluxo de sincronização. | Em memória |
themeStore | Tema visual claro/escuro. | Persistida |
progressStore | Mensagens de progresso e feedback operacional. | Em memória |
uploadUiStore | Estado da interface de upload. | Em memória |
Componentes reutilizáveis principais
| Componente | Papel funcional | Observações |
|---|---|---|
| AppDrawer, UserInfo | Navegação, identidade do tenant e atalhos de módulo. | Controla acesso por permissão, exibe contagem do WebGed Balcão. |
| TenantSelectModal, SessionWarningModal | Gestão de contexto do tenant e sessão. | Apoiam troca de tenant, alerta de sessão e ausência de contexto. |
| UploadImportComponent | Upload unitário, múltiplo e em chunks com retomada. | Exibe feedback de progresso, erros e conformidade técnica. |
| FileExplorer, PreviewComponent, SimplePreview | Exploração de árvore, preview e operações do GED. | Integram download, exclusão, preview, assinatura e ações sobre PDF/imagem. |
| IndexationComponent, DocumentLinkagePanel, SignatureModal | Indexação, vínculo documental e assinatura digital. | Suportam os fluxos de classificação e rastreabilidade. |
| ScanComponent | Integraçã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, AdvancedFilterModal | CRUD genérico e filtros avançados. | Reutilizados nos cadastros administrativos. |
| Dashboard, RelatorioDash, FolderMonitor | Painéis operacionais e monitoramento. | Suportam o módulo /painel. |
| AuditFilters, AuditLogDetail | Auditoria funcional. | Filtros, paginação e detalhe de eventos. |
| BoxFormDialog, BoxDetailsDialog, ServiceDialog, KitServiceDialog | Operações modais do WebGed. | Cadastro, detalhamento e requisição de serviços. |
Dependências de frontend
| Dependência | Versão | Papel identificado |
|---|---|---|
vue | 3.5.13 | Framework principal. |
vue-router | 4.5.1 | Roteamento SPA. |
pinia | 3.0.3 | Gerenciamento de estado. |
primevue | 4.3.4 | Biblioteca de componentes UI. |
tailwindcss | 4.1.7 | Base utilitária de estilo. |
axios | 1.9.0 | Cliente HTTP principal. |
oidc-client-ts | 3.3.0 | Autenticação OIDC. |
@microsoft/signalr | 8.0.7 | Comunicação em tempo real com hubs. |
pdfjs-dist | 5.4.54 | Preview de documentos PDF. |
chart.js / echarts | 4.4.9 / 5.6.0 | Gráficos e visualizações analíticas. |
jspdf | 3.0.4 | Geração de PDF no cliente. |
xlsx | 0.18.5 | Exportação/importação de planilhas. |
sortablejs | 1.15.6 | Reordenação em listas e páginas digitalizadas. |
@tauri-apps/api | 2.0.0 | Suporte a cliente desktop opcional. |
vite | 6.3.5 | Ferramenta de build e desenvolvimento. |
pinia-plugin-persistedstate | 4.5.0 | Persistência local das stores. |
Fluxos Principais
Caminhos funcionais mais relevantes identificados nos artefatos
/login/callbackauthService, authStore, endpoint /session/me e validação de tenant por tid no backend.UploadImportComponent, ScanComponent, FileUploadController, TechnicalComplianceService e AutoCodeExtractionService.IndexationComponent, FileController, TipoDocumentalPermissionService e DocumentoVinculoService./Sync/init/Sync ou /Sync/uploadsyncService, syncStore, FileSyncService, FolderMonitorService e hubs protegidos.BoxesView, BalcaoView, /Webged/Box/*, /Webged/Balcao/* e BalcaoNotificationService.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.
| Controle | Implementação | Observação |
|---|---|---|
| OIDC / JWT | Tokens validados pela API e consumidos pelo frontend. | Base do login centralizado. |
| Segregação por tenant | Header/query tid, middlewares dedicados, resolução dinâmica de conexão. | Evita acesso indevido entre instâncias. |
| Permissão por perfil | Políticas globais e matriz de acesso por tipo documental. | Bypass administrativo disponível. |
| Rate limiting | Regras específicas para login, refresh e chamadas gerais. | Reduz abuso operacional. |
| CORS por tenant | Origens globais e por instância configuráveis. | Adequado ao modelo multi-tenant. |
| Logs de acesso e erro | Middlewares próprios integrados ao Serilog. | Suporte à auditoria e diagnóstico operacional. |
| Conformidade técnica | Verificação de extensão, DPI, estrutura PDF e características de imagem. | Assegura qualidade do acervo digital. |
| Integridade documental | Hash MD5 em entidades de arquivo e validações em download/assinatura. | Rastreabilidade e consistência. |
| Hubs autenticados | SignalR protegido para sync e monitoramento. | Não expostos publicamente. |
Integrações
Sistemas e serviços externos com evidência nos artefatos analisados
| Integração | Categoria | Uso identificado |
|---|---|---|
| IDP Enfase / OpenIddict | Identidade | Autenticação OIDC, validação de token e refresh token. |
| SQL Server | Banco de dados | Persistência principal do GED e WebGed. |
| Sistema de arquivos por tenant | Storage | Diretórios de entrada, armazenado, upload e stage por instância. |
| Microsoft Graph | Comunicação | Envio de notificações de e-mail no fluxo WebGed Balcão. |
| SignalR | Tempo real | Progresso de sincronização e monitoramento de pastas. |
| Scanner local | Captura | Listagem de scanners disponíveis e início de digitalização. |
Requisitos do Sistema
Ambiente, dependências e configurações observadas nos projetos
Requisitos de servidor e backend
| Item | Requisito | Observação |
|---|---|---|
| Runtime | .NET 8 | Definido em TargetFramework. |
| Banco de dados | SQL Server acessível pela API | Necessário para AppDbContext e WebgedDbContext. |
| Armazenamento | Leitura e escrita nos diretórios de storage, upload e stage | Essencial para GED, upload em chunks e sincronização. |
| Rede externa | Saída HTTPS para IDP e, quando habilitado, Microsoft Graph | Necessária para autenticação e notificações. |
| Proxy / HTTPS | Recomendado com suporte a forwarded headers | Tratamento explícito no Program.cs. |
| Observabilidade | Acesso a diretórios de log ou infraestrutura equivalente | Serilog grava em arquivo e console. |
Requisitos de ambiente frontend
| Item | Requisito | Observação |
|---|---|---|
| Build tool | Vite com plugin Vue e integração Tailwind | Configurado em vite.config.js. |
| Configuração por ambiente | Arquivos /assets/config.{subdominio}.json | Determinantes para API, IDP, clientId e modo desktop. |
| Desktop opcional | Tauri 2 quando aplicável | Presença de dependências indica build alternativo desktop. |
| Browsers suportados | Navegadores modernos com suporte a ES2020+ | Baseado no target de build Vite e uso de APIs modernas. |
Glossário
Termos técnicos e de negócio relevantes no contexto do sistema
| Termo | Definição no contexto do sistema |
|---|---|
| MCGI | Nome do sistema documentado, operacionalizado pela plataforma EnfaseCloud. |
| EnfaseCloud | Nome da plataforma composta por frontend, backend e biblioteca compartilhada. |
| Tenant | Instância lógica de cliente/ambiente com conexão, storage e configurações próprias. |
| GED | Gestão eletrônica de documentos — cobrindo captura, indexação, pesquisa e guarda digital. |
| WebGed | Módulo voltado ao acervo físico: caixas, kits, balcão e serviços operacionais. |
| Tipo documental | Categoria documental que define campos, regras e permissões associadas. |
| ClientePerfil | Perfil de acesso associado a um cliente, usado para autorização documental. |
| FileAttachment | Registro de metadados do arquivo armazenado: caminho, hash, tamanho, páginas e origem. |
| FileAttributes | Conjunto 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. |
| OIDC | Protocolo de autenticação entre frontend, usuário e provedor de identidade. |
| JWT | Token portador usado para autenticação e autorização na API. |
| SignalR | Tecnologia para feedback em tempo real — usada principalmente em sincronização e monitoramento. |
| Balcão | Módulo de solicitações operacionais do acervo físico. |
| Box / Caixa | Unidade física de armazenamento gerenciada no WebGed. |
| Service | Tipo de serviço operacional aplicável a caixas, kits ou solicitações do WebGed. |
| Conformidade técnica | Validação de extensão, DPI, características de PDF e critérios de qualidade documental. |