Documentação

Documentação do OonCore

Guias, conceitos e referência para construir, testar e publicar Centrais com o OonCore.

Introdução

  • O que é o OonCore — A base para criar Centrais operacionais sob demanda — padronizadas, seguras e evolutivas — em que o seu código é apenas o domínio.
  • Quickstart — Gere uma Central com o gerador oficial, rode localmente sem depender da plataforma e faça o primeiro cadastro.
  • Estrutura do projeto — O que cada arquivo e pasta da Central gerada faz, o que é seu e o que pertence ao Core.
  • Arquitetura — Como a Central, o oon-core-back, o oon-core-front e a Plataforma Oon dividem responsabilidades — e por que a fonte de verdade é sempre o backend.
  • Primeira jornada — Uma pessoa abre uma página, executa uma ação e vê o resultado ou um erro útil — com endpoint privado, permissão e tratamento de erro.
  • Desenvolvimento com IA/Agents — O OonCore distribui documentação canônica versionada em .ooncore/ para que Codex, Claude, ChatGPT, Kimi, Manus e outros Agents codifiquem dentro dos contratos.

Tutoriais

  • Tutorial: central de compras com aprovação — Do zero a uma central de compras com fornecedores, pedidos com total calculado, esteira de aprovação com campos bloqueados e permissões por perfil — só com manifestos e duas páginas.
  • Tutorial: do commit à Produção — O caminho completo de uma Central na Plataforma Oon — criar o App no Workspace, publicar em Desenvolvimento, homologar, promover para Produção, reverter e evoluir com novas versões.
  • Tutorial: um App ao lado do ERP (clean core) — Mantenha o ERP no padrão e leve o processo específico para um App Oon — despesas com aprovação, credencial cifrada com core.secrets e lançamento idempotente no ERP por uma rota privada.

Fundamentos

  • Manifesto central.app.json — Referência completa do manifesto do App (schemaVersion 2) — identidade, arquitetura, módulos, capabilities, compatibilidade, ativação, autenticação, RBAC e métricas de uso.
  • Tipos de App e tenancy — appKind, disponibilidade, modo de acesso e tenancy — a matriz canônica de arquiteturas do Ecossistema Oon.
  • Runtime local — Desenvolvimento desconectado em loopback, com sessão automática de até 30 dias, simulação de perfis e nenhuma dependência da Plataforma.
  • Modos de runtime — As diferenças entre o runtime local desconectado e o runtime publicado na Plataforma.
  • Ativação de instâncias — Como uma Central publicada se torna ativa na Plataforma Oon — estados, fluxo de ativação, campos de parametrização e variáveis injetadas pela publicação.
  • Recursos nativos — O que usar do Core para cada necessidade, o que continua no App e os limites reais de isolamento, auditoria e execução — com o exemplo instalável /recursos.

Backend

  • Models e CRUD — defineModel registra schema Mongoose, metadata, permissões e um router REST completo — listagem paginada, busca, leitura, criação, atualização, exclusão, import e export.
  • Campos (fields) — As factories de campo do oon-core-back e os tipos equivalentes do manifesto de domínio, com metadata para o frontend.
  • Manifesto de domínio — central.domain.json declara models, campos, fórmulas e validações sem um arquivo JavaScript por model — o Core constrói schema, metadata, CRUD e regras protegidas.
  • Fórmulas e validações — Campos computed, a AST de expressões, validações entre campos e a prévia reativa nos formulários — uma única declaração, autoridade no backend.
  • Esteiras e processos — central.process.json declara workflow, transições, bloqueios por etapa, bindings cross-model, proteção de exclusão e invariantes atômicas — executados pelo backend.
  • Rotas privadas — defineRoutes registra endpoints próprios autenticados, com permissão declarada, auditoria opcional e omissão de corpo sensível nos logs.
  • Validations e triggers — defineValidation valida o estado consolidado antes de persistir; defineTrigger registra efeitos antes e depois da mutação.
  • Escopo e accessContext — req.accessContext carrega a identidade verificada; os helpers de escopo aplicam isolamento de tenant e usuário em consultas e mutações próprias.
  • Erros — GenericError, o envelope de erro de domínio e como tratá-lo no frontend sem confundir 404 de proxy com sucesso vazio.
  • Arquivos (GridFS) — files grava arquivos no MongoDB do App (bucket oon_files), isolados por tenant e compartilhados entre réplicas.
  • Métricas de uso — Declare métricas no manifesto, registre consumo em lote com outbox resiliente e bloqueie operações quando o limite do plano for atingido.

Frontend

  • defineOonApp e bootstrap — O contrato code-first do frontend — defineOonApp valida identidade, API, rotas, navegação e segurança; startOonApp monta providers, autenticação, tenant, shell e router.
  • Rotas e navegação — defineOonRoutes e defineOonNavigation — rotas com guards de permissão, lazy loading, layouts por rota, rotas públicas, rotas reservadas e menu por seções.
  • Shell e layouts — Variações do shell do Core, slots de layout, layouts por rota e páginas por blocos declarativos.
  • Temas — createOonTheme, tokens semânticos, densidade, contraste e troca de tema em runtime com useOonTheme.
  • Hooks e cliente HTTP — useOonApi, useOonResource, useCoreMetadata, useModelSchema, useOonAuth, useOonTenant e o gating de permissões com Can.
  • Coleções (CoreCollection) — Grid, busca, filtros, formulário derivado da metadata, ações por linha, import/export e modal de detalhe — como componente ou como view declarativa.
  • Modal de detalhe e grids — detailModal com abas summary, form, relatedGrid, readonlyGrid e customComponent; edição inline por linha; rowActions com interpolação, condições e refresh entre abas.
  • Formulários e overrides — Formulários derivados da metadata com overrides pontuais — checkbox com valores de domínio, grupos, opções remotas dependentes e filtros de referência.
  • Esteiras (CorePipeline) — Quadro kanban e lista para models com etapas — filtros, inclusão, modal de ticket com abas, ações padrão de aprovação e status de trabalho, e ações próprias.
  • Documentos e dashboards — CoreDocument em modo CRUD ou biblioteca, e CoreDashboard com agregações count, sum, groupCount e groupSum executadas no backend.
  • UI Kit (Core*) — Os componentes de interface do OonCore — status com vocabulário único, KPIs, tabela de dados responsiva, drawer de detalhe, confirmação, seções de formulário, estados e mais.

Segurança e acesso

  • Autenticação e RBAC — Como o backend autentica, resolve tenant e acesso, aplica o RBAC declarado e publica o catálogo de perfis — e o que o frontend faz (e não faz) com isso.
  • Usuários e Acessos — A gestão de usuários e convites que todo App member-central já traz — permissões nativas, quem convida, convites pela Central, página própria e endpoints.
  • Fronteira de segurança local — As garantias do runtime local — loopback, cookies HttpOnly, CSRF, códigos de uso único — e suas limitações explícitas.
  • Boas práticas — Regras obrigatórias de segurança, o checklist para Agents e o "faça / não faça" do OonCore.

Capabilities

  • Visão geral — O catálogo de capacidades do OonCore — o que é declarado em manifesto, o que roda localmente e o que é resolvido pela Plataforma.
  • E-mail transacional — core.transactional-email — configuração protegida, templates versionados, preview, envio idempotente, fila com retentativas e painel administrativo.
  • Renderização de PDF — capabilities.pdf.render transforma HTML em PDF sem conhecer endpoint, credencial ou implementação — com limites, cancelamento e erros com retryable.
  • Segredos (core.secrets) — Credenciais de integrações cifradas com AES-256-GCM, com chave por runtime e ambiente — put, status, use e remove a partir do contexto autorizado.

Operação

  • Testes, doctor e conformance — Uma entrada de checks para o App — doctor reúne versões, lockfiles, manifestos, cache de docs e conformance — e o que cada prova cobre (e não cobre).
  • Empacotamento da imagem — O que vai (e o que não vai) para a imagem do Oon-App, como assets e dependências devem ser declarados e como a imagem é validada antes do deploy.
  • Publicação e ambientes — Do commit ao ambiente de Dev pelo Workspace e pela Central de Ativações; promoção para HML e Produção, réplicas, domínios personalizados e diagnóstico.
  • Atualizando o Core — Atualização coordenada de oon-core-back, oon-core-front e create-central-oon — sempre juntos, com cache de docs, compatibilidade e validação.
  • Contenção do MongoDB — A política interna de pool e tempo de execução do Core, os erros DATABASE_POOL_BUSY e DATABASE_OPERATION_TIMEOUT e como recuperar sem repetir escritas.
  • Troubleshooting — Sintomas comuns no desenvolvimento local e na publicação, com a verificação e a correção de cada um.

Referência

  • CLI — Referência dos comandos de create-central-oon, oonCore-back e oonCore-front.
  • API oon-core-back — Todos os exports públicos de @oondemand/oon-core-back, agrupados por finalidade.
  • API oon-core-front — Todos os exports públicos de @oondemand/oon-core-front e de seus subpaths ui, routing, theme, hooks e testing.
  • Endpoints /core — As rotas HTTP fornecidas pelo backend do Core — status, autenticação, ativação, runtime local, metadata, acesso e e-mail transacional.
  • Códigos de erro — Todos os códigos de erro públicos do OonCore, agrupados por origem, com status HTTP e significado.
  • Variáveis de ambiente — As variáveis lidas pelo backend e pelo frontend — quais você configura localmente e quais são injetadas pela Plataforma.
  • Glossário — Os termos do OonCore e da Plataforma Oon.