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

  1. Gere a base oficial

    npx @oondemand/create-central-oon minha-central
    cd minha-central
    

    Para 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
    
  2. Configure o ambiente local

    cp backend/.env.example backend/.env
    cp frontend/.env.example frontend/.env
    

    Ajuste MONGO_URI em backend/.env para um banco de desenvolvimento.

  3. Valide a documentação local e a conformidade

    npm run check
    

    O check executa o doctor: versões, lockfiles, manifestos, cache .ooncore/ e conformance.

  4. Inicie backend e frontend

    npm run dev
    

    O orquestrador sobe o backend em 127.0.0.1:4000, o frontend em 127.0.0.1:5173 e 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