O que é uma Central?
Uma Central é um sistema operacional interno — uma aplicação web para gerenciar entidades de negócio: clientes, pedidos, serviços, documentos, cotações, etc.
No ecossistema OonCore, uma Central é composta por dois projetos separados:
| Projeto | Responsabilidade |
|---|---|
| backend | Domínio de negócio: models, validações, triggers, integrações |
| frontend | Declaração de UI: quais views existem e como se comportam |
O que a Central declara
Backend
backend/central.config.js
module.exports = {
name: "Gestão de Clientes",
slug: "gestao-clientes",
modules: {
collections: true,
omie: true,
pipelines: false,
},
};
backend/src/models/Cliente.js
const { defineModel, fields } = require("@oondemand/oon-core-back");
defineModel({
name: "Cliente",
schema: {
nome: fields.string({ required: true, label: "Nome" }),
email: fields.string({ label: "E-mail" }),
ativo: fields.boolean({ label: "Ativo", default: true }),
},
});
Frontend
frontend/central.ui.ts
import { defineCollectionView, start } from "@oondemand/oon-core-front";
start({
app: { id: "gestao-clientes", title: "Gestão de Clientes" },
api: { baseUrl: import.meta.env.VITE_API_URL },
ui: {
views: [
defineCollectionView({ model: "Cliente", label: "Clientes" }),
],
},
});
O que o Core resolve automaticamente
- Rotas REST com paginação, busca e ordenação
- Middleware de autenticação (JWT)
- Controle de acesso por role (RBAC)
- Auditoria de mutações
- Tabelas e formulários gerados a partir da metadata
- SDK REST no frontend sem configuração manual
Estrutura de arquivos de uma Central
minha-central/
├── backend/
│ ├── central.config.js
│ ├── central.manifest.json # metadados para o Core (gerado)
│ ├── .env
│ └── src/
│ ├── models/
│ ├── validations/
│ ├── triggers/
│ ├── routes/ # rotas customizadas (opcional)
│ ├── pipelines/ # (se módulo ativo)
│ ├── documents/ # (se módulo ativo)
│ ├── integrations/
│ └── mappings/
└── frontend/
├── central.ui.ts
├── src/
│ └── main.tsx
└── .env