Backend — Instalação
Via scaffold (recomendado)
A forma mais rápida é usar o scaffold, que gera o backend já configurado:
npx @oondemand/create-central-oon minha-central
cd minha-central/backend
npm install
Instalação manual
Se preferir adicionar o Core a um projeto existente:
npm install @oondemand/oon-core-back
Crie o arquivo de entrada:
index.js
const { start } = require("@oondemand/oon-core-back");
start();
Crie o central.config.js na raiz:
central.config.js
module.exports = {
name: "Minha Central",
slug: "minha-central",
modules: {
collections: true,
},
};
Variáveis de ambiente
.env
MONGO_URI=mongodb://localhost:27017/minha-central
PORT=4000
SERVICE_NAME=Minha Central
NODE_ENV=development
MEUS_APPS_BACKEND_URL=https://meus-apps.oondemand.com.br
APP_KEY=sua-app-key
| Variável | Obrigatório | Descrição |
|---|---|---|
MONGO_URI | ✅ | URI de conexão do MongoDB |
PORT | — | Porta HTTP. Default: 4000 |
SERVICE_NAME | — | Nome exibido no log de boot |
NODE_ENV | — | development ou production |
MEUS_APPS_BACKEND_URL | ✅ | URL do provedor de autenticação (Meus Apps) |
APP_KEY | — | Chave da Central no Meus Apps (usada na ativação) |
Autenticação
O Core não implementa login próprio. Toda autenticação é delegada ao Meus Apps via bearer token. O middleware valida o token chamando MEUS_APPS_BACKEND_URL/auth/autenticar-aplicativo/ a cada requisição privada.
Scripts disponíveis
package.json
{
"scripts": {
"dev": "oonCore-back dev",
"start": "oonCore-back start",
"activate": "oonCore-back activate"
}
}
| Script | Descrição |
|---|---|
dev | Sobe com hot-reload (nodemon) |
start | Sobe em produção |
activate | Registra a Central no sistema de licenciamento |
Estrutura de pastas esperada
O Core carrega automaticamente os arquivos em src/ por convenção:
src/
├── models/ # defineModel(...)
├── validations/ # defineValidation(...)
├── triggers/ # defineTrigger(...)
├── routes/ # defineRoutes(...)
├── pipelines/ # definePipeline(...) (módulo pipelines)
├── documents/ # defineDocument(...) (módulo documents)
├── integrations/ # integrações externas
└── mappings/ # defineOmieMapping(...) (módulo omie)
Não é necessário fazer require manual — o start() varre as pastas automaticamente.