Logo

Backend - Visão Geral

O backend LIP é uma plataforma SaaS multi-tenant para automação de WhatsApp com IA, construída com Node.js, Express, Prisma e Firebase Admin.

🚀 Stack Técnica

Core

  • Node.js 22 - Runtime JavaScript
  • TypeScript 5 - Tipagem estática (strict mode)
  • Express 4 - Framework web
  • Prisma 6 - ORM para PostgreSQL
  • Firebase Admin 12 - Auth, Firestore, Realtime DB

Integrações

  • OpenAI SDK 4 - IA para chatbots
  • Google APIs - googleapis, google-auth-library
  • WhatsApp Business API - Meta Cloud API
  • Socket.io - WebSocket para tempo real

Infraestrutura

  • Google Cloud Run - Deploy serverless
  • Kubernetes (K8s) - Orquestração de containers
  • PostgreSQL (Supabase) - Banco relacional
  • Firebase Firestore - Banco NoSQL tempo real
  • Pub/Sub - Mensageria assíncrona

Ferramentas

  • Swagger UI - Documentação interativa da API
  • Winston - Logger estruturado
  • Jest - Framework de testes
  • Ajv - Validação de schemas JSON

📁 Estrutura do Projeto

functions/
├── src/
│   ├── app.ts                    # Configuração Express, CORS, Swagger
│   ├── server.ts                 # Bootstrap do servidor
│   │
│   ├── config/                   # Configurações
│   │   ├── firebase.ts          # Firebase Admin setup
│   │   ├── cloudRunConfig.ts    # Variáveis de ambiente
│   │   ├── swagger.ts           # Geração do spec
│   │   └── index.ts             # Reexports
│   │
│   ├── routes/                   # Mapeamento de rotas
│   │   ├── index.ts             # Agregador principal
│   │   ├── auth.ts
│   │   ├── conversations.ts
│   │   ├── whatsapp.ts
│   │   ├── crm/                 # Rotas CRM
│   │   │   ├── index.ts
│   │   │   ├── contacts.ts
│   │   │   ├── deals.ts
│   │   │   └── pipelines.ts
│   │   └── webhook.ts           # WhatsApp webhooks
│   │
│   ├── controllers/              # Controladores
│   │   ├── authController.ts
│   │   ├── conversationController.ts
│   │   ├── whatsappController.ts
│   │   ├── crmController.ts
│   │   └── webhookController.ts
│   │
│   ├── services/                 # Lógica de negócio
│   │   ├── whatsappService.ts   # Integração WhatsApp
│   │   ├── openaiService.ts     # Integração OpenAI
│   │   ├── crmService.ts        # Lógica de CRM
│   │   ├── trelloService.ts     # Integração Trello
│   │   ├── googleService.ts     # Google APIs
│   │   └── aiConfiguratorService.ts
│   │
│   ├── middlewares/              # Middlewares
│   │   ├── tenantAuthGuard.ts   # Auth multi-tenant
│   │   ├── requestId.ts         # Request tracking
│   │   └── errorHandler.ts      # Tratamento de erros
│   │
│   ├── models/                   # Modelos de dados
│   ├── repositories/             # Camada de dados
│   ├── types/                    # TypeScript types
│   └── utils/                    # Utilitários
│       ├── logger.ts            # Winston logger
│       └── validation.ts        # Validators
│
├── prisma/
│   └── schema.prisma            # Schema do banco PostgreSQL
│
├── lib/                         # Build output (TypeScript compilado)
├── data/                        # Dados estáticos
├── swagger.json                 # Spec OpenAPI gerado
├── package.json
├── tsconfig.json
└── Dockerfile                   # Container para Cloud Run

🔐 Autenticação Multi-Tenant

Firebase Auth + Custom Claims

Middleware de Autenticação Multi-Tenanttypescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

Helpers de Permissão

Helpers para Controle de Permissõestypescript

🗄️ Arquitetura Híbrida de Dados

Firebase Firestore (Tempo Real)

Estrutura das Coleções Firestoretypescript

PostgreSQL via Prisma (CRM & Analytics)

Schema do Banco PostgreSQL com Prismaprisma

📡 Rotas Principais

Configuração de Rotas Principaistypescript

Exemplo de Rota CRM

Exemplo de Rotas CRM com Autenticaçãotypescript

🤖 Integração WhatsApp

Webhook Handler

Handler de Webhooks do WhatsApp Business APItypescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

🧠 Integração OpenAI

Serviço de Integração com OpenAI GPT-4typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

📊 Swagger / Documentação

Configuração do Swagger/OpenAPI para Documentação da APItypescript

🚀 Deploy

Cloud Run

Kubernetes

📝 Próximos Passos

Última atualização

26 de novembro de 2025