Documentos de Asset Core

Documentación del motor de estado mundial determinista y referencias de API.

Documentos de Decision Gate

Espacios de nombres y límites de identidad

Los espacios de nombres son el límite de aislamiento en Asset Core. Definen dónde comienza y termina la identidad, quién puede actuar y cómo razonar sobre la corrección a gran escala. Este concepto explica el modelo mental: qué es un espacio de nombres, cómo se delimitan las identidades y cómo los roles y las clases de políticas establecen los límites de acceso en los que se puede confiar.

Problema que este concepto resuelve

Cuando ejecutas motores de estado deterministas en producción, necesitas límites estrictos. Sin ellos, los sistemas multi-tenant filtran estado, los IDs colisionan y la gobernanza es un desastre. Los problemas no son sutiles:

  • Fugas de estado entre inquilinos cuando los mismos IDs numéricos significan cosas diferentes en diferentes mundos.
  • Identidad ambigua cuando un contenedor o clase se referencia sin contexto.
  • Rastros de auditoría poco fiables cuando las decisiones de acceso son implícitas o inconsistentes.
  • Automatización insegura cuando los agentes pueden llamar a operaciones fuera de su ámbito previsto.

Los espacios de nombres resuelven esto al hacer que la aislamiento sea explícito, la identidad esté delimitada y el acceso esté controlado.

Ideas principales

Los espacios de nombres son mundos

Cada espacio de nombres es un mundo completamente aislado con su propio espacio de identidad, historial de confirmaciones y estado de proyección. El demonio de escritura trata el espacio de nombres como una clave de enrutamiento; el demonio de lectura materializa proyecciones por espacio de nombres. Este es el modelo de escalado: un escritor por espacio de nombres, espacios de nombres infinitos en total.

Dentro de un espacio de nombres, estos son específicos e independientes:

  • Registro de clases (IDs de clase, reglas de comportamiento y formas)
  • Identificadores y ubicaciones de contenedores
  • IDs de instancia y jerarquía de propiedad
  • Registro de compromisos y números de secuencia mundial

La identidad es local, no global

La identidad en Asset Core es local del espacio de nombres. Un class_id o container_id solo tiene significado dentro de su espacio de nombres. La verdadera identidad es el par (namespace_id, local_id). Esto te proporciona un aislamiento limpio sin forzar identificadores únicos globales.

Ejemplo: class_id = 42 puede significar “Tubo de Muestra” en el espacio de nombres 1001 y “Engranaje” en el espacio de nombres 2002. No hay conflicto porque viven en mundos diferentes.

Esto se aplica en el momento de la ejecución. Las operaciones que hacen referencia a IDs del espacio de nombres incorrecto son rechazadas. El tiempo de ejecución nunca intenta reconciliar la identidad entre espacios de nombres porque eso sería un error de integridad de datos, no una característica.

Roles, clases de políticas y control de acceso

Los espacios de nombres también definen quién puede actuar. Asset Core utiliza un modelo de autorización por defecto que niega el acceso:

  • Un principal debe ser autenticado y asignado a roles.
  • Los roles otorgan acceso a operaciones específicas (por dominio y acción).
  • Las clases de políticas restringen operaciones arriesgadas en espacios de nombres de mayor confianza.
  • Los ACL de espacio de nombres pueden agregar o denegar permisos para principales específicos.

Así es como mantienes la automatización segura. Una herramienta que puede mover instancias en un espacio de nombres de laboratorio no debería tener permiso para eliminar instancias en un espacio de nombres de producción a menos que se le otorgue explícitamente. La reversión de compromiso es un permiso propio; el acceso de compromiso no implica derechos de deshacer.

El ciclo de vida y la línea de descendencia son explícitos

Los espacios de nombres tienen estados de ciclo de vida explícitos (provisionado, deshabilitado, eliminando). Pueden ser congelados o configurados como de solo lectura durante incidentes. Los espacios de nombres bifurcados llevan metadatos de linaje (padre, punto de bifurcación) para que puedas modelar ramificaciones sin reescribir la historia.

Esto convierte la gobernanza en una superficie explícita y auditable en lugar de una propiedad emergente.

El espacio de secuencia es por espacio de nombres

Los números de secuencia del mundo aumentan de manera monótona dentro de un espacio de nombres. Son el orden estable para la reproducción, auditoría y la semántica de leer tus escrituras. Los números de secuencia no tienen significado entre espacios de nombres. Si necesitas un orden entre mundos, lo haces en la capa de tu aplicación.

Cómo encaja en el sistema

Los espacios de nombres aparecen en cada ruta crítica:

  • Ruta de escritura: Todos los commits se dirigen por namespace_id. La garantía de un solo escritor se aplica por espacio de nombres.
  • Ruta de lectura: Las proyecciones se construyen y se sirven por espacio de nombres, con metadatos de frescura limitados a ese mundo.
  • Ruta de gobernanza: El ciclo de vida del espacio de nombres, la clase de política y las ACL determinan si se acepta una solicitud.

En la práctica, esto significa que tú:

  1. Crear o provisionar un espacio de nombres.
  2. Asignar roles y puertas de clase de política.
  3. Registre clases y contenedores dentro de ese espacio de nombres.
  4. Utilice números de secuencia mundial para razonar sobre la consistencia y la reproducción.

Invariantes clave y garantías

Aislamiento

  • No se permiten referencias entre espacios de nombres.
  • Cada registro e índice está limitado al espacio de nombres.

Estabilidad de identidad

  • Un ID local no tiene sentido sin su espacio de nombres.
  • El mismo ID numérico se puede reutilizar de manera segura en diferentes espacios de nombres.

Ordenamiento determinista

  • Los números de secuencia del mundo son monótonos por espacio de nombres.
  • La reproducción preserva el mismo orden y resultados dentro de ese mundo.

Acceso por defecto denegado

  • Los espacios de nombres, roles o clases de políticas desconocidos deniegan el acceso.
  • El acceso nunca se infiere; debe ser concedido.

Ver también