π Camadas - ecosif-compliance
π VisΓ£o Geral
O serviΓ§o ecosif-compliance segue uma arquitetura em camadas focada em validaΓ§Γ£o de conformidade, utilizando Flask para API REST e SQLAlchemy para persistΓͺncia.
ποΈ Estrutura de Camadas
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Camada de ApresentaΓ§Γ£o (REST) β
β β
β Flask + Flask-RESTX β
β β’ starter.py β
β β’ Endpoints REST (@api.route) β
β β’ Swagger UI automΓ‘tico β
β β
β Responsabilidades: β
β β’ Receber requisiΓ§Γ΅es HTTP β
β β’ ValidaΓ§Γ£o de entrada β
β β’ SerializaΓ§Γ£o de respostas β
β β’ Tratamento de erros HTTP β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
β chama
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Camada de AplicaΓ§Γ£o (Services) β
β β
β Services β
β β’ compliance.py - ValidaΓ§Γ£o principal β
β β’ rule.py - Gerenciamento de regras β
β β’ account.py - OperaΓ§Γ΅es com contas β
β β
β Responsabilidades: β
β β’ LΓ³gica de validaΓ§Γ£o β
β β’ ExecuΓ§Γ£o de regras DSL β
β β’ Processamento de dados β
β β’ OrquestraΓ§Γ£o de operaΓ§Γ΅es β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
β usa
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Camada de PersistΓͺncia (DAOs) β
β β
β Data Access Objects β
β β’ RuleDao β
β β’ DocumentDao β
β β’ ProcessDao β
β β’ ClueTypeDao β
β β
β Responsabilidades: β
β β’ Acesso a dados β
β β’ Queries otimizadas β
β β’ Mapeamento objeto-relacional β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
β usa
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Camada de Dados (ORM) β
β β
β SQLAlchemy Entities β
β β’ RuleEntity β
β β’ DocumentEntity β
β β’ ProcessEntity β
β β’ ... β
β β
β Responsabilidades: β
β β’ Mapeamento ORM β
β β’ ValidaΓ§Γ΅es de modelo β
β β’ Relacionamentos β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββ
β
β persiste
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PostgreSQL Database β
β β’ Tabelas de regras β
β β’ Tabelas de processos β
β β’ Dados contΓ‘beis β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Fluxo de Dados: ExecuΓ§Γ£o de ValidaΓ§Γ£o
Cliente HTTP
β
βΌ
Flask Endpoint (POST /api/compliance/run)
β Valida parΓ’metros
β
βΌ
ComplianceService.run()
β Busca regras aplicΓ‘veis via RuleDao
β
βΌ
RuleDao
β Query SQLAlchemy
β
βΌ
PostgreSQL
β Dados de regras
β
βΌ
ComplianceService
β Para cada regra:
β - Compila script DSL (PLY parser)
β - Executa sobre dados contΓ‘beis
β - Coleta resultados
β
βΌ
ProcessDao
β Persiste resultados
β
βΌ
PostgreSQL
β Dados persistidos
β
βΌ
Flask
β Retorna JSON com resultados
β
βΌ
Cliente HTTP
Γltima AtualizaΓ§Γ£o: 2025-12-01