Versões e changelog
Versão atual: 0.7.43 (linha 0.7.x).
0.7.43 — READMEs do npm apresentam a Plataforma Oon
. Quem chega pelo npm encontra o caminho para ir além do SDK: infraestrutura, governança, store e licenciamento em oonapps.com. Sem mudança de código.
- melhoria: Seção "Vá além do SDK: a Plataforma Oon" nos READMEs dos três pacotes, com links para oonapps.com, o cadastro de organização e a store do Meus Apps.
0.7.42 — Nginx da imagem serve páginas pré-renderizadas
. O frontend estático passa a servir dist/<rota>/index.html e dist/<rota>.html sem redirect, com charset UTF-8 e redirects relativos.
- novo: try_files $uri $uri/index.html $uri.html /index.html: Apps que pré-renderizam páginas (buscadores e IAs) têm cada rota servida com 200, sem afetar o fallback da SPA.
- correção: Um diretório em dist/ (como /assets) respondia 301 para http://<host>:8080/<dir>/, endereço inacessível atrás do ingress. Com absolute_redirect off, os redirects do nginx ficam relativos.
- melhoria: Arquivos de texto do frontend (.txt, .md, HTML, JS) saem com charset=utf-8. /api/ e /health/live não mudam.
0.7.41 — Pacotes no npm apontam para o site do SDK
. READMEs reescritos para quem chega pelo npm e homepage dos três pacotes em sdk.oonapps.com. Sem mudança de código.
- melhoria: READMEs de create-central-oon, oon-core-back e oon-core-front com proposta, início rápido, exemplos curtos e links para este site.
- melhoria: homepage, descrições e palavras-chave dos pacotes no npm atualizadas; o link Homepage leva a sdk.oonapps.com.
0.7.40 — Promoção com banco retido sem falhas
. A recriação do usuário MongoDB numa nova promoção espera a exclusão anterior terminar.
- correção: Ao promover de novo um App cuja Produção foi excluída, a criação do usuário MongoDB é repetida (a cada 5 s, até 2 min) enquanto a exclusão anterior ainda está em andamento, em vez de falhar.
0.7.39 — Menu do usuário por seção
. O menu do avatar agrupa itens por seção, e o App pode reposicionar os itens das páginas do Core.
- novo: Itens com action: "user-menu" são agrupados por section no menu do usuário, com título e separador; dentro do grupo vale order.
- novo: Um item de navegação do App com o mesmo href de uma página do Core (/usuarios-acessos, /configuracoes/email-transacional) substitui o item padrão — por exemplo, para levar Usuários e Acessos ao menu do usuário.
0.7.38 — Promoção reaproveita banco de Produção retido
. Promover de novo um App cuja Produção foi excluída reaproveita o banco retido sem tocar nos dados.
- correção: O usuário MongoDB existente é excluído e recriado com a mesma ACL e senha nova, em vez de uma atualização que o MongoDB gerenciado recusava; o banco e os dados não são alterados.
0.7.37 — Login sem sessão fica no próprio App
. Sem sessão, o App mostra a própria tela de login em vez de redirecionar para o Meus Apps.
- melhoria: Abrir a URL do ambiente direto ou expirar a sessão leva para /login?redirect=… do próprio App, que autentica pela Central.
- breaking: Login externo só quando declarado em auth.loginUrl; api.meusAppsUrl passa a ser apenas o endereço do Meus Apps.
- melhoria: A abertura por oon_launch (login único a partir do Meus Apps/Workspace) não muda.
0.7.36 — CoreTabs no tema escuro
. CoreTabs passa a usar só tokens semânticos, funciona sem controle externo e ganha semântica de acessibilidade.
- correção: Aba ativa legível no tema escuro: sublinhado brand.solid e texto text.primary no lugar do botão sólido cinza.
- correção: Sem value/onChange, o CoreTabs guarda a aba selecionada em estado interno (antes o clique não trocava de aba).
- melhoria: Acessibilidade: tablist/tab/tabpanel, aria-selected, aria-controls e navegação por setas, Home e End.
0.7.35 — Shell no tema escuro
. Menu lateral, cabeçalho e tela de carregamento passam a usar somente tokens semânticos, com valores escuros no tema padrão.
- melhoria: Shell (menu, cabeçalho, carregamento) sem cores fixas — acompanha temas escuros.
- novo: Tokens semânticos do tema padrão ganham valor _dark e o novo token surface.hover.
- correção: Teste impede cores fixas nos componentes do shell.
0.7.18 – 0.7.34 — Operação em escala: réplicas, arquivos, uso e acessos
. A linha 0.7 amadurece para Apps com várias réplicas, comercialização por consumo e gestão de acessos pela Central.
- novo: Usuários e Acessos configurável: systemPages.usersAccess substitui ou remove a página padrão; endpoints documentados.
- novo: auth.invitations: "central" no manifesto — convites, cadastro e concessão pela Central de Ativações.
- novo: files: arquivos em GridFS por tenant, compartilhados entre réplicas (25 MB por padrão).
- novo: usageMetrics + usage.record/assertAvailable/limit: métricas de uso com outbox resiliente e bloqueio no limite do plano.
- novo: Runtime com 1 a 10 réplicas, rollout sem indisponibilidade, PodDisruptionBudget e desligamento sem perda.
- novo: Fila de recálculo assíncrono persistida (oon_process_jobs) com lease, retomada entre réplicas e deduplicação.
- novo: Domínios personalizados com certificado automático e modo de performance por ambiente (pool 4/8/16).
- novo: Menu do usuário (action: "user-menu") e slot layoutSlots.topbarEnd à direita do avatar.
- novo: Kit ui-v2: CoreStatusBadge, CoreKpiGrid, CoreDataTable, CoreDetailDrawer, CoreConfirmDialog, CoreTechnicalDetails, CoreFormSection, CoreEmpty.
- melhoria: Aceite de convite com mensagens legíveis e "Código · Protocolo · Central".
- melhoria: Índices no boot só criam os faltantes, sem remover os não declarados (OON_SYNC_INDEXES=drop para o comportamento anterior).
- melhoria: Exclusão automática dos dados de licenças encerradas há mais de 30 dias, com trava entre réplicas.
- correção: Abertura de Apps sem novo login: a sessão fica em loading enquanto a ativação é consultada.
- correção: E-mail transacional: assunto e texto sem escape HTML; CR/LF removidos do assunto.
- segurança: Token de integração admin só em Dev/HML, no mesmo ambiente e com validade máxima de 24 h.
- segurança: Rotas de gestão de usuários aplicam users.read/users.invite e recusam escalada de perfil também com convites pela Central.
0.7.17 — Diagnóstico de manifestos e compatibilidade
. Erros de manifesto legíveis no boot e na imagem; compatibilidade gerada pela release.
- melhoria: oonCore-back start lista cada issue do manifesto como " - <path>: <mensagem>", sem stack.
- melhoria: Template gera compatibility.core com minVersion da release e maxVersionExclusive da próxima minor.
- correção: _base/oon.deploy.json usa readyPath /api/health/ready.
- breaking: Removido examples/central-exemplo e scripts dev:exemplo — use create-central-oon example.
0.7.10 — Governança de ambientes licenciados
. Login direto e launch validam a nova sessão sem reutilizar o tenant selecionado.
- segurança: Token e tenant persistidos somente após validação; falha, logout ou outro login invalidam resultados pendentes.
- melhoria: Documentação distingue tenant de dados, autorização comercial, deployment e revisão por ambiente.
0.7.6 — core.secrets V1
. Credenciais de integrações cifradas por App, ambiente e tenant.
- novo: capabilities.secrets.put/status/use/remove com AES-256-GCM e chave por runtime dedicado.
- novo: Provisionamento automático do Secret oon-core-secrets na publicação; chave independente na promoção.
0.7.4 — Contratos públicos verificados
. Piso verificado dos exemplos por tarefa, doctor, exemplo integrado e validação de rotas.
- novo: create-central-oon doctor e create-central-oon example (jornada integrada e /recursos).
- novo: TASK_INDEX por intenção com API, versão mínima, exemplo e limite.
- segurança: router.private recusa middleware na posição de opções (OON_ROUTE_REGISTRATION_INVALID).
- novo: Contenção de carga do MongoDB (pool, maxTimeMS) com DATABASE_POOL_BUSY e DATABASE_OPERATION_TIMEOUT.
0.7.1 — Permissões comerciais no catálogo
. O catálogo público de perfis publica commercialPermissions.
- novo: roles[].commercialPermissions em GET /core/role-catalog, sem wildcards nem namespaces reservados.
0.7.0 — Novo Ecossistema Oon
. Marco de compatibilidade com identidade operacional por deployment e autorização comercial single-tenant.
- breaking: Identidade operacional por deployment; licenciamento nunca no domínio do App.
- segurança: oon_launch adota token e tenant somente após validação da Central.
0.6.0 — Frontend code-first
. defineOonApp e startOonApp substituem o bootstrap por manifesto.
- novo: Bootstrap code-first com rotas, menus, páginas, componentes e temas tipados.
- novo: Subpaths públicos ui, routing, theme, hooks e testing.
- novo: Capabilities de PDF e e-mail transacional resolvidas pela Plataforma.
- breaking: central.app.json schemaVersion 2; scaffold único _base; removidos templates, Omie e engine genérica de integrações.
0.5.0 — Runtime local desconectado
. Desenvolvimento em loopback com sessão automática de até 30 dias e documentação canônica para Agents.
- novo: npm run dev único, códigos de bootstrap independentes, cookies HttpOnly + CSRF.
- novo: Documentação canônica .ooncore/ com docs check determinístico.
- segurança: Bind, Host, Origin e CORS limitados a loopback; bearer local removido.
0.4.18 – 0.4.20 — Portais globais
. Sessão de ecossistema sem tenant, páginas públicas declarativas e tenant explícito em portais.
- novo: auth.sessionScope = ecosystem e páginas públicas declarativas.
- novo: Troca server-side de autorização opaca e single-use por sessão do App de destino.
- melhoria: Tenant do contexto da operação prevalece sobre a seleção global do shell.
0.3.41 — Manifesto declarativo de domínio
. central.domain.json com fórmulas e validações sem JavaScript arbitrário.
- novo: Campos calculados, ordenação de dependências, readonly protegido e validações entre campos.
0.3.0 — Ativação de instâncias
. A Central de Ativações passa a ser a raiz de confiança do Ecossistema Oon.
- novo: Fluxo de ativação para Apps root e member, tela /ativacao e identidade própria de instância.
- novo: Campos ref renderizados como seletores pesquisáveis.
- segurança: Separação entre token humano e credencial da instância; timeouts e bloqueio de redirects no provedor.
0.1.0 — Primeira publicação
. Os três pacotes do OonCore chegam ao npm.
- novo: oon-core-back, oon-core-front e create-central-oon publicados de forma coordenada.