Quickstart
Gere uma Central com o gerador oficial, rode localmente sem depender da plataforma e faça o primeiro cadastro.
Pré-requisitos
- Node.js 18 ou superior compatível com os pacotes instalados.
- MongoDB local disponível para desenvolvimento (replica set é necessário apenas para invariantes transacionais).
- npm — o scaffold usa lockfiles npm separados para raiz, backend e frontend.
Criar e rodar
-
Gere a base oficial
npx @oondemand/create-central-oon minha-central cd minha-centralPara fixar a versão do gerador e instalar manualmente:
npx --yes --package @oondemand/create-central-oon@0.7.43 create-central-oon minha-central --no-install cd minha-central npm install npm install --prefix backend npm install --prefix frontend -
Configure o ambiente local
cp backend/.env.example backend/.env cp frontend/.env.example frontend/.envAjuste
MONGO_URIembackend/.envpara um banco de desenvolvimento. -
Valide a documentação local e a conformidade
npm run checkO
checkexecuta odoctor: versões, lockfiles, manifestos, cache.ooncore/e conformance. -
Inicie backend e frontend
npm run devO orquestrador sobe o backend em
127.0.0.1:4000, o frontend em127.0.0.1:5173e abre o navegador com uma sessão local já autenticada.
O que foi gerado
minha-central/
├── central.app.json # identidade, RBAC, capabilities, compatibilidade
├── oon.deploy.json # contrato de publicação (runtime, health, recursos)
├── .ooncore/ # documentação canônica do Core (não edite à mão)
├── backend/
│ ├── central.config.js # extensões de runtime
│ └── src/{models,validations,triggers,routes,services,...}
└── frontend/
└── src/
├── main.tsx # startOonApp(app)
├── app/ # app, routes, navigation, theme
└── pages/ # suas páginas
Veja o detalhe de cada pasta em Estrutura do projeto.
Seu primeiro cadastro
Adicione as permissões em central.app.json:
{
"rbac": {
"permissions": ["pessoas.read", "pessoas.write"]
}
}
Crie a model no backend:
const { defineModel, fields } = require("@oondemand/oon-core-back");
defineModel({
name: "Pessoa", singular: "pessoa", basePath: "/pessoas", scope: "tenant",
schema: { nome: fields.string({ required: true, label: "Nome" }) },
crud: { enabled: true, permissions: { read: "pessoas.read", write: "pessoas.write" } },
});
E exiba a coleção no frontend:
import { CoreCollection } from "@oondemand/oon-core-front";
export function HomePage() {
return <CoreCollection model="Pessoa" label="Pessoas" endpoint="/pessoas" />;
}
Reinicie o npm run dev. Em Início, crie uma pessoa, consulte a lista e recarregue para confirmar a persistência. Sem nome, o backend recusa; com o perfil viewer (sem as permissões), leitura e escrita são negadas.
Exemplo integrado opcional
Em uma base limpa, instale a jornada de demonstração completa (cadastro, ação privada, esteira, integração HTTPS, segredos e recursos nativos):
npx --no-install create-central-oon example
npm run dev
Abra Primeira jornada (/jornada) e Recursos nativos (/recursos).
Próximos passos
- Primeira jornada — Página + ação + endpoint privado + permissão.
- Models e CRUD — Tudo o que defineModel oferece.
- Runtime local — Sessão, perfis e limites do desenvolvimento desconectado.
- Publicação — Do commit ao ambiente de Dev.