Digest-First Versioning

Identidad de publicación inmutable por hash de contenido

Una versión es un paquete de OCI resúmenes resueltos en el momento de la creación. Las etiquetas son alias legibles por humanos; los resúmenes son verdad criptográfica.

¿Por qué Digest-First?

Las etiquetas mutables crean ambigüedad. La misma etiqueta puede apuntar a contenido diferente a lo largo del tiempo. El primer resumen elimina esta incertidumbre.

Identidad inmutable

Los resúmenes SHA-256 garantizan que el artefacto promocionado sea idéntico en bytes al artefacto escaneado y aprobado.

Detección de manipulaciones

Cualquier modificación al artefacto cambia su resumen. Discrepancia en el tiempo de extracción = error de implementación. La manipulación es imposible de ocultar.

Pista de auditoría

Sepa exactamente qué artefacto se implementó, dónde, cuándo y por qué, con prueba criptográfica que vincula el escaneo, la aprobación y la implementación.

Reversión significativa

La reversión regresa a resúmenes exactos conocidos, no a "lo que sea que :latest indique hasta ahora". Mismos bytes, garantizados.

Estructura de lanzamiento

Una versión en Stella incluye varios componentes, cada uno identificado por su resumen OCI. La versión en sí tiene una versión semántica para legibilidad humana.

Paquete de versión de ejemplo

Release: myapp-v2.3.1

Componentes:

api: sha256:abc123...

worker: sha256:def456...

frontend: sha256:789ghi...

Cree y administre versiones desde CLI

Terminal
$ stella release create --name myapp-v2.3.1 --components api:v2.3.1,worker:v2.3.1
stella release list --environment production\nstella release show myapp-v2.3.1 --components

Resolución de etiqueta a resumen

Cuando crea una versión, Stella resuelve inmediatamente todas las etiquetas en sus resúmenes actuales. A partir de ese momento, la versión es inmutable.

  • Las etiquetas como:v2.3.1 se resuelven en sha256:abc123... en el momento de la creación
  • Si alguien inserta una nueva imagen en la misma etiqueta, su autorización es no afectado
  • Las consultas de registro siempre usan @sha256:sintaxis de resumen: sin reresolución de etiquetas

Garantía de inmutabilidad

Una vez que se crea una versión, su conjunto de resumen no puede cambiar. Se implementarán exactamente los mismos bytes en todos los entornos, en todo momento.

Artefactos generados

Cada implementación genera artefactos inmutables que permiten reproducibilidad, auditoría y reversión.

compose.stella.lock.yml

Docker Compose con todas las referencias de imágenes fijadas a resúmenes específicos. Incluye etiquetas de metadatos Stella para trazabilidad.

image: registry.example.com/myapp/api@sha256:abc123...

labels:

stella.release.id: "rel-uuid"

stella.digest: "sha256:abc123..."

stella.version.json

Archivo de metadatos JSON colocado en los objetivos de implementación que indica la versión actual, los componentes, la estrategia de implementación y la versión anterior para revertir.

"release": { "name": "myapp-v2.3.1" }

"deployment": { "strategy": "rolling" }

"previous": { "digest": "sha256:789..." }

"signature": "base64-encoded-signature"

Enlace de evidencia

Cada versión vincula la evidencia de seguridad a los resúmenes exactos que se están implementando. La evidencia viaja con el lanzamiento a través de la promoción.

Campo de evidenciaContenido
sbomDigestSHA-256 del SBOM generado para este resumen
scanVerdictResultado de aprobación/rechazo de la evaluación de políticas con referencias de evidencia
reachabilityProofCAS URI del gráfico de accesibilidad firmado para este resumen
policyHashHash de la versión de la política utilizada para la evaluación

Reproducción determinista: dada la misma versión y política hash, la reevaluación produce veredictos de bits idénticos. Los auditores pueden verificar las decisiones meses después.

¿Listo para una identidad de lanzamiento inmutable?

Instale Stella Ops e inicie el control de versiones por hash de contenido con enlace de evidencia completo.