O Ayla Painel é um monorepo gerenciado com pnpm workspaces, contendo três pacotes independentes que se comunicam por meio de tipos compartilhados. O backend expõe uma API REST consumida pelo frontend, ambos rodando em containers Docker separados com infraestrutura de banco de dados e fila.
ayla-painel/
├── packages/
│ ├── backend/ # API REST em NestJS
│ ├── frontend/ # Aplicação web em Next.js 15
│ └── shared/ # Tipos TypeScript compartilhados
├── docker-compose.dev.yml # Infraestrutura local (Postgres, Redis)
├── pnpm-workspace.yaml # Configuração do workspace
└── package.json # Scripts raiz (dev, build)
| Comando | Descrição |
|---|---|
pnpm dev |
Roda frontend + backend simultaneamente |
pnpm dev:backend |
Apenas o backend |
pnpm dev:frontend |
Apenas o frontend |
pnpm build:backend |
Build de produção do backend |
pnpm build:frontend |
Build de produção do frontend |
Authorization: Bearer.X-Projeto-Id para filtrar dados no contexto correto.idEmpresa (multi-tenancy).O backend segue um padrão de três camadas:
Controller → Service → Prisma
idEmpresa como parâmetro.idEmpresa.O sistema é multi-tenant por projeto:
X-Projeto-Id.idEmpresa extraído do JWT.seguranca, operacional, inteligencia, financeiro, marketing, entre outros.O docker-compose.dev.yml sobe os serviços necessários para desenvolvimento:
| Serviço | Imagem | Porta |
|---|---|---|
| Banco de Dados | postgres:14-alpine | 5432 |
| Fila | redis:7-alpine | 6379 |
| Backend | NestJS (Dockerfile) | 9002 |
| Frontend | Next.js (Dockerfile) | 3002 |
docker compose -f docker-compose.dev.yml up postgres redis -d
docker compose -f docker-compose.dev.yml up
O pacote @ayla/shared centraliza todos os tipos TypeScript usados por backend e frontend,
garantindo consistência e evitando duplicação de interfaces.
| Módulo | Conteúdo |
|---|---|
auth.ts |
DTOs e respostas de autenticação |
agente.ts |
Tipos do agente de IA (CoTipoAgente, AgenteDto) |
habilidade.ts |
Habilidades/capacidades dos agentes |
rotina.ts |
Rotinas de automação (cron, timezone, config) |
execucao.ts |
Registros de execução (status, tokens, latência) |
resultado.ts |
Resultados de execução (status de aprovação) |
aprovacao.ts |
Trilha de auditoria de aprovações |
integracao.ts |
Credenciais de integrações externas |
documento.ts |
Documentos da base de conhecimento |
chat.ts |
Tipos de mensagens do chat |
empresa.ts |
Modelos de empresa |