ObjectOS
Recursos

Registro de cambios y versionado

Cómo se versiona ObjectOS, qué cambia entre versiones y qué tiene soporte.

Registro de cambios y versionado

Política de versionado

ObjectOS sigue el Versionado semántico: MAJOR.MINOR.PATCH.

Incremento de versiónQué significaQué hacer
Parche (9.7.0 → 9.7.1)Corrección de errores, sin cambios de comportamientoActualiza, no se requieren cambios en la aplicación
Menor (9.6 → 9.7)Nuevas funciones, compatible con versiones anterioresActualiza y, opcionalmente, adopta las nuevas funciones
Mayor (8 → 9)Cambios incompatibles documentados en las notas de versiónLee la guía de migración antes de actualizar

Todos los paquetes @objectstack/* se publican juntos con un número de versión sincronizado: se prueban como una matriz, no de forma independiente.

Matriz de compatibilidad

ComponenteRegla de compatibilidad
Imagen de ObjectOS ↔ artefacto compiladoMisma versión menor. Una imagen 9.7.x ejecuta un artefacto 9.7.x; un artefacto 9.7 puede usar funciones no disponibles en una imagen 9.6.
ObjectOS ↔ CLISe recomienda la misma versión menor. La CLI en npm i -g genera andamiajes fijados a su propia versión.
ObjectOS ↔ controlador de base de datosEl controlador queda fijado por la compilación de la imagen; verifica Postgres ≥ 13 / MongoDB ≥ 5 / Turso (cualquiera actual).
Node.js20 LTS o posterior. Se recomienda 22 LTS para nuevos despliegues.

Ventanas de soporte

RamaEstadoHasta
9.x (actual)Desarrollo activo; nuevas funciones y correccionesAl menos 12 meses después del lanzamiento de 10.0
8.xSolo correcciones de seguridadEOL en el lanzamiento de 10.0
≤ 7.xSin soporteYa en EOL

Las correcciones de seguridad críticas se retroportan a la versión mayor actual y a la anterior. Todo lo demás se incorpora en main.

Notas de versión

Las versiones publicadas de ObjectOS y sus entradas de CHANGELOG se publican en:

Suscríbete a las versiones en GitHub para recibir notificaciones.

Aspectos destacados recientes

9.x — tren de versiones actual

ObjectOS One y el servidor incluido ahora se ejecutan sobre @objectstack 9.7.0. El contrato de arranque del runtime no cambia respecto a 8.0 — createStandaloneStack sigue tomando el mismo artefacto, entorno y ajustes de base de datos—, por lo que un despliegue 8.0 actualiza sin cambios de configuración. Lo que se movió es la superficie orientada al autor:

  • Los datasets de analítica son la única superficie de autor (9.0, cambio incompatible): los widgets de panel, los informes y los gráficos de lista ahora vinculan un dataset semántico (defineDataset(...)) y seleccionan dimensiones/medidas por nombre. Se eliminaron los antiguos campos de consulta en línea (object/valueField/aggregate en widgets, objectName/columns/groupingsDown en informes, xAxisField/yAxisFields en gráficos de lista). Migración: mueve la consulta en línea a un defineDataset y refiérete a él por nombre. ChartTypeSchema también eliminó 8 tipos de variante que solo se renderizaban como su base (stacked-barbar, splineline, bubblescatter, …).
  • Validación más estricta en tiempo de compilación (9.6–9.7): os compile ahora falla ante referencias de campo sin prefijo (amount en lugar de record.amount), funciones CEL desconocidas y sintaxis de interpolación de valores de flujo incorrecta, cada una con una sugerencia «quizás quisiste decir». Un stack que antes «compilaba pero estaba silenciosamente mal» ahora falla de forma visible: vuelve a ejecutar os compile tras actualizar y corrige lo que señale.
  • Las fórmulas de campos numéricos calculan aritmética mixta (9.7): record.amount / 100 y record.price * 2 ahora se evalúan en lugar de producir silenciosamente null; ya no se necesita el truco del literal flotante / 100.0.
  • Control de REST a nivel de objeto, ahora aplicado (ADR-0049): el apiEnabled: false de un objeto lo retira de la superficie REST, y una lista blanca apiMethods restringe qué operaciones son accesibles. Antes se analizaba pero no se aplicaba.
  • Documentación de paquetes como metadatos + navegación book (9.3–9.6): los src/docs/*.md se registran como metadatos doc; el elemento book (ADR-0046) declara una espina de navegación de pertenencia derivada, servida en GET /api/v1/meta/book/:name/tree con control por audiencia.
  • os package install (9.3): instala un paquete en un runtime en ejecución desde un id de catálogo o un artefacto en línea aislado de la red, autenticándose con --email / --password.
  • Aprobaciones (9.3): devolución para revisión (maxRevisions, predeterminado 3), autoescalada de SLA respaldada por jobs, búsqueda/paginación de listas y enlaces de confirmación de aprobar/rechazar bilingües y sin sesión.
  • Disparadores de flujo por webhook entrante (9.3): un flujo type: 'api' monta un endpoint POST /api/v1/automation/hooks/:flowName/:hookId verificado con HMAC, con ingesta idempotente y respaldada por cola.
  • Retención de notificaciones activada por defecto (9.5): el historial de notificaciones se poda automáticamente a los 90 días; pon retentionDays: 0 en la mensajería para conservar el historial para siempre.
  • La CLI incluye los SDK de proveedores de IA (9.0): los proveedores compatibles con OpenAI (DeepSeek, DashScope, SiliconFlow, OpenRouter, Cloudflare) funcionan de inmediato en una CLI instalada globalmente.

Un cambio de comportamiento en la autoría de flujos a tener en cuenta: el outputVariable de un nodo create_record ahora contiene el objeto de registro creado (antes era el id sin más), así que actualiza las referencias {var} que esperaban un id a {var.id}.

8.0.x

ObjectOS One y el servidor incluido se ejecutaban sobre @objectstack 8.0.1.

  • MCP sobre Streamable HTTP: cada despliegue puede actuar como un servidor Model Context Protocol accesible por red. Actívalo con OS_MCP_SERVER_ENABLED=true; el endpoint se sirve en /api/v1/mcp con autenticación fail-closed (las solicitudes anónimas se rechazan). El plugin pasó a llamarse de @objectstack/plugin-mcp-server a @objectstack/mcp.
  • Claves de API autoservicio: POST /api/v1/keys genera una sys_api_key que se muestra una sola vez. Las API REST de datos y metadatos (/api/v1/data, /api/v1/meta) ahora autentican las claves de API con el mismo verificador que MCP, ejecutándose bajo los permisos y la seguridad a nivel de registro del propietario de la clave.
  • Reglas condicionales por campo: visibleWhen, readonlyWhen y requiredWhen se aplican en el servidor mediante ObjectQL, no solo en la UI del formulario.
  • Filtro de lectura RLS reutilizable: security.getReadFilter(object, context) expone el alcance de lectura del acceso a registros; los datasets de analítica, los paneles y los informes se conectan a él y fallan en cerrado cuando el alcance no puede aplicarse de forma segura.
  • Stack de host autónomo: el runtime incluye un host createStandaloneStack de inquilino único; se eliminó el wrapper createObjectOSStack de 7.x, conectado a la nube y enrutado por hostname. Un despliegue en la nube ahora apunta OS_ARTIFACT_FILE a una URL de artefacto publicada.

5.0 — cambio de nombre de project a environment (publicado)

El concepto de runtime antes llamado Project pasó a llamarse Environment en todo el sistema. Afectó a:

  • Indicadores de CLI: --environment / -e
  • Rutas HTTP: /api/v1/environments/:environmentId/...
  • Cabeceras: X-Environment-Id
  • Variables de entorno: OS_ENVIRONMENT_ID (OS_PROJECT_ID se mantiene como alias obsoleto)
  • Columnas de BD: environment_id
  • Esquemas JSON: EnvironmentArtifact

Actualización

Consulta Actualización y reversión para los pasos mecánicos. Comprobaciones previas:

  1. Lee la entrada del CHANGELOG de cada versión menor entre tu versión actual y la de destino.
  2. Ejecuta os diff <old-artifact> <new-artifact> para detectar cambios de esquema incompatibles.
  3. Ejecuta os doctor contra la versión de destino.
  4. Pon en marcha una instancia canary antes de desplegar en toda la flota.
  5. Ten un plan de reversión tanto para la etiqueta de la imagen como para la versión del artefacto (se revierten de forma independiente).

Informar regresiones

Si un parche o una versión menor rompe algo que antes funcionaba, abre un informe de error en github.com/objectstack-ai/objectos/issues indicando la versión desde la que actualizaste y a la que actualizaste. Tratamos las regresiones como la clase de error de máxima prioridad.

On this page