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.
Capabilities são recursos técnicos que o App consome sem conhecer a implementação: endpoints, credenciais e serviços de infraestrutura são resolvidos pelo Core e pela Plataforma na publicação.
Catálogo
| Capacidade | Backend | Frontend | Declaração | Local | Plataforma |
|---|---|---|---|---|---|
| Models e CRUD | defineModel, domain manifest |
CoreCollection, hooks |
models / central.domain.json |
✅ | ✅ |
| Metadata | /core/metadata |
useCoreMetadata |
models | ✅ | ✅ |
| Validações e fórmulas | defineValidation, regras |
prévia reativa | domain manifest | ✅ | ✅ |
| Esteiras | process runtime | CorePipeline |
central.process.json |
✅ | ✅ |
| Documentos | defineDocument |
CoreDocument |
UI | ✅ | ✅ |
| Dashboards | agregações | CoreDashboard |
UI | ✅ | ✅ |
| RBAC | policy, requirePermission |
Can, PermissionGate |
central.app.json |
Simulado | Identidade real |
| Tenant e escopo | access context, helpers | TenantProvider |
central.app.json |
Contexto técnico | Contexto autorizado |
| Auditoria | CRUD e request context | headers do SDK | automática | Local | Operacional |
| Rotas customizadas | defineRoutes |
useOonApi |
backend/src/routes |
✅ | ✅ |
| Arquivos | files (GridFS) |
useOonApi |
— | ✅ | ✅ |
| Métricas de uso | usage |
— | usageMetrics |
Não envia | ✅ |
| E-mail transacional | capabilities.transactionalEmail |
CoreTransactionalEmail |
capabilities + capabilitySettings |
Fail-closed | Resolvido pelo Core |
| Segredos V1 | capabilities.secrets |
Formulário do App | capabilities + capabilitySettings |
Chave local explícita | Chave por runtime/ambiente |
capabilities.pdf.render |
useOonApi (blob) |
oon.deploy.json |
Fail-closed | Resolvido pelo runtime | |
| Publicação/promoção | serviço da Plataforma | Workspace | fluxo existente | ❌ | ✅ |
| Runtime local | sessão e guardas locais | bootstrap/banner | OON_RUNTIME_MODE=local |
✅ | — |
Onde declarar
| Capability | Arquivo | Chave |
|---|---|---|
core.transactional-email |
central.app.json |
capabilities[] + capabilitySettings["core.transactional-email"] |
core.secrets |
central.app.json |
capabilities[] + capabilitySettings["core.secrets"] |
pdfRendering |
oon.deploy.json |
capabilities.pdfRendering |
O que não existe (ainda)
- Não há contrato público genérico de integration runtime (outbox/inbox, locks, retry, webhooks).
- Workers de e-mail e jobs de recálculo são específicos — não são fila genérica.
- Execução durável genérica e diagnóstico padronizado de integrações são propostas separadas.
Se uma capability não tiver contrato suficiente, registre a lacuna — não descubra o contrato lendo fonte privada.
- E-mail transacional — Templates, envio idempotente, fila e painel.
- Renderização de PDF — HTML → PDF sem conhecer a infraestrutura.
- Segredos (core.secrets) — Credenciais cifradas por App, ambiente e tenant.
- Arquivos — GridFS por tenant, compartilhado entre réplicas.