# API oon-core-back > Todos os exports públicos de @oondemand/oon-core-back, agrupados por finalidade. Importe exclusivamente de `@oondemand/oon-core-back`. Caminhos internos não têm estabilidade garantida. ```javascript const { start, defineModel, fields, defineRoutes, GenericError } = require("@oondemand/oon-core-back"); ``` ## Boot | Export | Descrição | |---|---| | `start({ cwd, listen, handleSignals })` | Carrega o backend do `cwd`, conecta Mongo, inicializa capabilities e inicia HTTP. `listen: false` → `{ app }`; com escuta → `{ app, server }`. Trata `SIGTERM`/`SIGINT` salvo `handleSignals: false` | | `createApp()` | Monta o Express protegido a partir do registry; não carrega domínio nem conecta banco | | `activate()` | Fluxo legado de ativação | | `defineCentral(config)` | Configuração de runtime (em `central.config.js`) | ## Definição de domínio | Export | Descrição | |---|---| | `defineModel(definition)` | Model + schema + metadata + CRUD. Retorna `{ definition, mongooseModel, … }` | | `fields` | `string`, `number`, `boolean`, `date`, `ref`, `enum`, `currency`, `currencyCode`, `currencyConverted` | | `defineValidation(model, fn)` | Validação do estado consolidado | | `defineTrigger(model, { before, after })` | Efeitos de mutação | | `defineRoutes(basePath, builder)` | Rotas `router.private` / `router.public` | | `defineCollection`, `defineDocument`, `definePipeline` | Registro de coleções, documentos e esteiras | | `registry` | Registry do processo (use as APIs `define*`) | ## Segurança, RBAC e tenant | Export | Descrição | |---|---| | `requirePermission(permission)` | Middleware Express de autorização | | `CORE_PERMISSIONS` | `users.read`, `users.invite`, `users.update`, `users.disable`, `roles.read` | | `rbacPolicy`, `roleByCode`, `permissionGranted` | Leitura e avaliação da política declarada | | `TENANT_HEADER`, `TENANCY_MODELS`, `DATA_SCOPES` | Constantes canônicas | | `createAccessContext` | Estrutura uma identidade já verificada | | `readRequestedTenantId(req)` | Lê a seleção solicitada (não autentica) | | `scopeFilter`, `mergeScopedFilter`, `scopedIdFilter`, `scopeMutation` | Isolamento de dados | ## Manifesto do App `APP_MANIFEST_FILENAME`, `APP_MANIFEST_SCHEMA_VERSION`, `SUPPORTED_APP_KINDS`, `SUPPORTED_APP_MODULES`, `AppManifestError`, `validateAppManifest`, `resolveAppManifestPath`, `appManifestToConfig`, `registerAppManifest`, `loadAppManifest`, `appArchitecture` (`resolveAppArchitecture`). ## Manifesto de domínio `DOMAIN_MANIFEST_FILENAME`, `DOMAIN_MANIFEST_SCHEMA_VERSION`, `SUPPORTED_DOMAIN_FIELD_KINDS`, `DOMAIN_EXPRESSION_OPERATORS`, `DomainManifestError`, `DomainRuleError`, `validateDomainManifest`, `domainManifestToDefinitions`, `registerDomainManifest`, `loadDomainManifest`, `evaluateDomainExpression`, `applyDomainMutation`, `validateDomainRecord`, `detectChangedFields`. ## Manifesto de processo `PROCESS_MANIFEST_FILENAME`, `PROCESS_MANIFEST_SCHEMA_VERSION`, `ProcessManifestError`, `validateProcessManifest`, `registerProcessManifest`, `loadProcessManifest`, `prepareProcessMutation`, `resolveProcessBindings`, `assertReferencePolicies`, `assertAtomicInvariants`, `assertDeleteAllowed`, `recalculateDependents`, `drainProcessJobs`. ## Capabilities | Export | Descrição | |---|---| | `capabilities.pdf.render(input, context)` | HTML → `Buffer` PDF (alias `capabilities.pdfRendering.render`) | | `capabilities.transactionalEmail.send(input, context)` | Envio idempotente + operações administrativas | | `capabilities.secrets.put/status/use/remove` | Segredos cifrados | | `PdfRenderingError`, `TransactionalEmailError` | Erros específicos | | `operationalRequestHeaders(options)` | Headers de identidade do Deployment (falha no runtime local) | ## Arquivos e uso | Export | Descrição | |---|---| | `files` | `saveFile`, `getFileInfo`, `openFile`, `readFile`, `listFiles`, `deleteFile`, `sendFile`, `forRequest`, `BUCKET`, `DEFAULT_MAX_BYTES` | | `usage` | `record`, `assertAvailable`, `limit`, `state`, `flush`, `deliverPending`, `stop` | ## Runtime local | Export | Descrição | |---|---| | `localDevelopment` | Detecção, validação de loopback e utilitários de teste/integração | | `localExecutionPolicy` | Política de execução local (prazo da sessão) | ## Erros `GenericError(message, { statusCode, code, details })` — erro operacional base. Veja [Erros](/docs/backend/erros). Fonte: https://sdk.oonapps.com/docs/referencia/api-backend