O Logix-Sphere Framework é um framework modular desenvolvido em Node.js, projetado para suportar a arquitetura de microserviços do projeto Logix-Sphere. Este framework fornece uma estrutura robusta com adaptadores e funcionalidades que facilitam o gerenciamento de cache, logs, filas, segurança, e conexão com bancos de dados, permitindo uma integração segura e eficiente entre diferentes componentes do sistema.
Abaixo, uma visão geral dos principais diretórios e suas funcionalidades:
logix-sphere-framework/
├── Boilerplate # Exemplo de estrutura de microserviço para uso como base
│ └── Microservico # Exemplo de microserviço básico
├── src # Código principal do framework
│ ├── adapters # Adaptadores para diversas tecnologias e funções
│ ├── core # Implementação principal das funções de adaptação
│ ├── cross # Interfaces para objetos e funcionalidades comuns
│ ├── shortcuts # Atalhos para inicialização rápida do framework
│ └── technologies # Implementação de tecnologias específicas e conexões
└── tests # Testes unitários do framework
-
Boilerplate: Contém o exemplo
Microservico
, que fornece um ponto de partida para novos microserviços no Logix-Sphere. - src/adapters: Adaptadores para integração com tecnologias específicas, como cache, segurança, SQL e NoSQL, além de filas (queues).
- src/core: Implementação do núcleo do framework, com componentes para lidar com cache, segurança, log, SQL, NoSQL, e filas.
- src/cross: Definição de interfaces que padronizam as entradas e saídas de dados comuns, como credenciais, mensagens de log, e permissões.
- src/technologies: Conexões com tecnologias específicas, incluindo MongoDB, PostgreSQL e RabbitMQ, além de funcionalidades de cache em memória e feature toggles.
- Node.js
- Docker (para uso do Docker Compose)
-
Clone o repositório:
git clone https://github.com/seu-repositorio/logix-sphere-framework.git cd logix-sphere-framework
-
Instale as dependências:
npm install
-
Configure o ambiente de desenvolvimento, editando o arquivo
arch-dev-environment.json
com as variáveis necessárias. -
Para ambientes de desenvolvimento e testes, utilize o
docker-compose.yml
para configurar contêineres locais:docker-compose up -d
Para iniciar o framework localmente, execute:
npm start
O diretório Boilerplate/Microservico
fornece um exemplo básico de microserviço. Use-o como modelo para criar novos serviços no Logix-Sphere.
- ArchCacheAdapter: Interface para lidar com operações de cache, como armazenamento em memória.
- ArchEnvAdapter: Manipulação de variáveis de ambiente.
- ArchLogAdapter: Adaptação para diferentes métodos de logging, incluindo MongoDB e Bash.
- ArchNoSQLAdapter: Interface para bancos de dados NoSQL.
- ArchQueueAdapter: Integração com sistemas de filas como RabbitMQ.
- ArchSQLAdapter: Adaptação para bancos de dados SQL, com suporte para PostgreSQL.
- ArchSecurityAdapter: Gerenciamento de autenticação e autorização de usuários.
- ArchToggleAdapter: Controle de feature toggles para ativar/desativar funcionalidades.
Implementação das funcionalidades principais para:
- Cache: Utilização de cache em memória para dados temporários.
- Logs: Logs de auditoria e erro, armazenados de forma flexível.
- NoSQL e SQL: Conexão e manipulação de dados em MongoDB e PostgreSQL.
- Queue: Envio e recebimento de mensagens através de filas (RabbitMQ).
- Segurança: Autenticação e autorização de usuários e serviços.
- Feature Toggles: Controle dinâmico de funcionalidades do sistema.
Implementação de tecnologias e conexões:
- MongoDBConnection e PostgreeDBConnection: Conexões com bancos de dados MongoDB e PostgreSQL.
- RabbitMQConnection: Conexão com o serviço de filas RabbitMQ.
- Memória de Cache e JSON: Alternativas para armazenamento temporário e configuração.
Este framework utiliza o Jest para testes unitários. Para executar todos os testes, use:
npm test
Os testes estão organizados em tests/adapter
e tests/core
, validando a funcionalidade dos adaptadores e do core do framework.
Para contribuir com o desenvolvimento deste framework, siga as diretrizes:
- Fork o repositório e crie sua branch para a nova funcionalidade (
feature/nova-funcionalidade
). - Adicione testes para sua nova funcionalidade.
- Envie o pull request para revisão.
Este projeto é mantido sob uma licença específica da empresa, e seu acesso é restrito a colaboradores autorizados. Para mais detalhes, consulte o arquivo LICENSE
.