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.

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
PDF 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.