O OmniNexus é uma plataforma de Monitoramento e Gerenciamento Remoto (RMM) de alta performance, projetada para escala horizontal e telemetria eficiente. O OmniNexus Backend atua como o motor de processamento central do ecossistema, utilizando o runtime Bun e o framework Fastify para entregar um processamento reativo de ultra-baixa latência.
Integrado ao OmniNexus Agent (escrito em Rust) e ao Apache Kafka, o backend é capaz de receber, validar e persistir grandes volumes de dados com isolamento multi-tenant e baixo consumo de recursos, garantindo resiliência e escalabilidade para parques tecnológicos de qualquer tamanho.
Manter parques tecnológicos exige visibilidade proativa. O OmniNexus cura as seguintes dores:
- Falta de Visibilidade em Tempo Real: Monitoramento constante de saúde de hardware e software.
- Sobrecarga de Infraestrutura: Ingestão via Kafka para processar métricas sem travar o banco principal.
- Custo de Operação: Agente em Rust que consome < 5MB de RAM, ideal para máquinas legadas.
- Sincronização Diferencial: Separação inteligente entre Inventário e Telemetria.
O backend do OmniNexus é totalmente internacionalizado utilizando i18next. Todas as respostas de erro, mensagens de sucesso e validações respeitam a localidade do usuário.
O sistema detecta automaticamente o idioma preferido através do header padrão HTTP:
- Header:
Accept-Language - Idiomas Suportados:
pt-BR(Português),en(English - Fallback). - Injection: O backend responde com o header
Content-Languagepara confirmar o idioma da resposta.
Exemplo de uso:
GET / HTTP/1.1
Host: api.omninexus.com.br
Accept-Language: pt-BRGarantimos a estabilidade do ecossistema através de uma pipeline de Integração Contínua (CI) robusta.
- Linting: Utilizamos o Biome para análise estática de código e formatação ultrarrápida.
- Automated Tests: Suíte de testes funcionais e integrados rodando sobre o Bun Test.
- GitHub Actions: Cada Pull Request é validado automaticamente. O merge só é permitido se o lint e os testes passarem (Green Build).
# Rodar todos os testes uma vez
bun test
# Rodar em modo watch (desenvolvimento)
bun test --watch- Runtime: Bun
- Framework: Fastify (Zod Type Provider)
- Segurança: Rate Limiting por IP/Token.
- Doc: Scalar (Interface moderna para OpenAPI/Swagger)
- ORM: Drizzle ORM
- Agent: Rust
-
Clone o repositório:
git clone https://github.com/Stivan-Lucas/backend.git cd backend -
Configure o ambiente:
cp .env.example .env
-
Inicie a infraestrutura:
docker-compose up -d
-
Instale e rode:
bun install bun run dev
Acesse a documentação em: http://localhost:3000/docs
Nota: Utilize as credenciais definidas no seu
.env(SAGGER_USER/SAGGER_PASS) para acessar.
O OmniNexus utiliza o Drizzle ORM para garantir máxima performance e Type Safety. O gerenciamento do banco de dados (PostgreSQL) é feito através do Bun, utilizando os seguintes comandos:
Sempre que você alterar o arquivo src/database/schema.ts, utilize os comandos abaixo de acordo com a sua necessidade:
| Comando | Descrição | Quando usar? |
|---|---|---|
bun run db:push |
Sincroniza o schema diretamente com o banco. | Durante o desenvolvimento rápido (Prototipagem). |
bun run db:generate |
Gera arquivos SQL de migração na pasta /drizzle. |
Antes de realizar um Commit para versionar o banco. |
bun run db:migrate |
Aplica as migrações SQL pendentes no banco. | Em ambientes de Produção ou CI/CD. |
bun run db:studio |
Abre uma interface técnica para visualizar os dados. | Sempre que precisar validar registros manualmente. |
- Altere uma coluna em
src/database/schema.ts. - Execute
bun run db:pushpara testar imediatamente no Docker. - Após validar, execute
bun run db:generatepara criar o histórico de migração. - Faça o commit dos arquivos gerados na pasta
/drizzle.
Adoramos contribuições! Para manter a rastreabilidade e o histórico limpo, utilizamos Conventional Commits.
| Tipo | Descrição |
|---|---|
feat: |
Nova funcionalidade. |
fix: |
Correção de bug. |
docs: |
Alterações na documentação. |
refactor: |
Refatoração que não altera comportamento. |
test: |
Adição ou correção de testes. |
Exemplo: git commit -m "feat(telemetry): implementa schema de ingestão via kafka"
- Faça um Fork.
- Crie sua Branch (
git checkout -b feature/minha-feature). - Abra um Pull Request.
Distribuído sob a licença Apache-2.0. Veja LICENSE para mais informações.
Desenvolvido com ☕ por Stivan Lucas.