# Modos de runtime > As diferenças entre o runtime local desconectado e o runtime publicado na Plataforma. O OonCore tem dois modos de execução. No frontend, o modo é passado em `defineOonApp({ runtimeMode })`; no backend, por `OON_RUNTIME_MODE`. | Contrato | `local` | `platform` | |---|---|---| | Configuração | `NODE_ENV=development`, `OON_RUNTIME_MODE=local` | ambiente publicado | | Bind | somente loopback | contrato da infraestrutura | | Identidade | principal técnico local | usuário, tenant e Deployment reais | | Ativação | `ativa_local` | estados da plataforma | | Sessão | cookie HttpOnly, TTL de até 30 dias | auth/SSO configurado | | RBAC | simula somente papéis do manifesto | acessos reais | | Plataforma | nenhuma chamada obrigatória | conforme capability | | Publicar/promover | bloqueado | por contratos autorizados | ```tsx title="frontend/src/app/app.tsx" export const app = defineOonApp({ // ... runtimeMode: import.meta.env.DEV ? "local" : "platform", }); ``` > [!IMPORTANT] > `local` **não é** o ambiente publicado `desenvolvimento`. Ele não possui `deploymentId`, `instanceId`, `bindingId`, `entitlementId`, licença ou credencial operacional. ## Ambientes publicados Na plataforma, `APP_ENVIRONMENT` é a fonte canônica do ambiente lógico — `desenvolvimento`, `homologacao` ou `producao` — e é o valor exposto em `/health/version` (`deployment.environment`). `NODE_ENV=production` não indica, por si só, um ambiente de produção. ## Estados da instância (platform) | Estado | Comportamento do frontend | |---|---| | `ativa` | Acesso normal | | `configurando` | Fluxo de configuração | | `suspensa` | `/instancia-suspensa` | | `revogada` | `/instancia-revogada` | | não ativada | `/ativacao` | Essas rotas são reservadas pelo Core e não podem ser declaradas pelo App. Fonte: https://sdk.oonapps.com/docs/fundamentos/modos-de-runtime