____12DS — El esquema gcpn-container-2.7: descripción general
Disparador S6
El primer proceso de firma real (firma GVB) generó inicialmente
archivos .json independientes en el directorio res/ — una
forma de trabajar que infla el repositorio Git (hallazgo de AP: "esto infla innecesariamente el repositorio Git"). El hallazgo llevó a la corrección: Todos los artefactos JSON en UN solo documento contenedor (.gcpn.md, extensión permanente), y el propio contenedor se convierte en el esquema JSON normativo —
gcpn-container-2.7.
El esquema en resumen
{
"$schema": "https://gitcover.org/schemas/gcpn-container-2.7.schema.json",
"container_id": "GCPN-SIG-YYMMDD-NNN",
"docUid": "<deterministisch aus ts + doc-sha256>",
"kind": "signature-process",
"tenant": { … },
"referenced_doc": { … },
"actor": { … },
"attendees": [ … ],
"persons": { … },
"retention": { … },
"signature": { … },
"events": { "flags_set": { … }, "events_result": 0, "enum_ref": "<uuidV7>" },
"summary": { … },
"prev_container": null,
"next_container": null
}
Delimitación: El GCPN no es un documento original y no es un sidecar; ya no se necesita un
.gcpn.md.gc.mdseparado. El documento fuente lleva su propio<artefakt>.<orig-ext>.gc.md; el contenedor lo referencia mediantereferenced_doc(sha256) y lleva su propio GCPN-docUid.
Unicidad de artefactos (hallazgo AP1)
Cada entidad se describe exactamente una vez:
| Artefacto | Cardinalidad | Mecanismo de referencia |
|---|---|---|
referenced_doc |
1× | Todas las demás referencias basadas en sha256 (sin repetición de título/ruta) |
actor |
1× (por cada parte implicada) | Los eventos/la firma remiten mediante actor_ref → actor_id |
retention |
1× | Por contenedor, no repetido por artefacto |
attendees |
n× | Referencias (actor_ref/tenant_ref), no personas |
persons |
n× | Puente de PII pseudonimizada |
signature |
1× | actor_ref + referencias de evidencia |
events |
1× (objeto de flags) | Bits + events_result |
summary |
1× | reemplaza repeticiones de texto en MD |
Las reglas que se derivan del hallazgo
- JSON siempre embebido (bloque de código MD en el contenedor) — ningún archivo
.jsonindependiente en el árbol del repositorio (evitar el inflado). - Añadir en lugar de crear nuevos: Cada nuevo paso del proceso establece un flag,
embebe el nuevo artefacto, actualiza
summary— los artefactos JSON ya embebidos permanecen inmutables. - Seguridad de auditoría mediante Git: El historial del contenedor está en el historial de Git del repositorio (hash de commit = prueba de integridad).
- Documento mutable, artefactos JSON inmutables: El MD del contenedor es editable (crece con el proceso); los contenidos JSON son inmutables — cambio = nuevo artefacto con nuevo SHA.
- Commits solo mediante E1 (NO-AUTO-COMMIT).
El documento fuente está catalogado mediante el esquema sidecar
Un «esquema de documento original» separado no es necesario: El esquema
v7g-sidecar-2.0 (.gc.md) es el verdadero esquema JSON para un
documento original/fuente digital — cataloga el documento fuente mediante
sha256 (ID de documento, identifica siempre y en todas partes, incluso al migrar),
locations (historial UNC), v7g_taxonomy (clase) y obsolescence/
retención. El contenedor (referenced_doc) remite a él — dos
niveles de esquema, sin redundancia: Sidecar = catalogación del documento fuente,
Contenedor = trámite/proceso.
Para qué sirven las dos identificaciones — V7GUID como registro de tipo de documento, uuidV7 como Ref-Doc-UID
Con esto también queda más claro para qué se necesita cada una de las dos identificaciones:
| Identificación | Rol en el registro | Propósito (determinismo) |
|---|---|---|
| V7GUID | Registro de tipo de documento | Clasificar (¿qué tipo de artefacto?), encuadrar (en taxonomía/ámbito), determinar flujos de trabajo y metodología — la clase determina qué procedimientos se aplican |
| uuidV7 | Ref-Doc-UID (seguridad de auditoría temporal) | Identificador de instancia del acto de catalogación con marca de tiempo de 48 bits — cuándo se clasificó, ordenable cronológicamente |
Esta aparente complejidad a primera vista (dos identificaciones en lugar de una) es precisamente la palanca para cumplimiento basado en repositorios Git sin Vendor Lock-In: Todo se puede derivar de los repositorios (determinar de forma determinista) — no solo los estados del documento (cadena SHA-256, expresión de flags), sino también el historial y los cambios (historial Git del contenedor: qué pasos se añadieron y cuándo; historial del sidecar: actos de clasificación con marcas de tiempo). Ningún sistema propietario almacena el estado — el propio repositorio es el estado, y cualquier verificador puede repetir la derivación con herramientas abiertas.
Verificación sin redundancia
La rutina de verificación (DS04) permanece — trabaja con el manifiesto
en el contenedor: sha256sum por artefacto contra events.flags_set[].sha256
o referenced_doc.sha256; cadena mediante chain_valid; SHA del facsímil
contra la tabla en SIGNATURE_BLOCK.md.
Protocolo de hallazgos de investigación (AP)
| AP | Hallazgo | Característica del esquema |
|---|---|---|
| AP1 | Inflado del repositorio por archivos individuales | Inserción de bloques JSON; referenced_doc (sin campo sidecar separado) |
| AP2 | Redundancia en participantes repetidos | Mecánica de referencia actor_ref |
| AP3 | Retención/obsolescencia múltiple | retention 1× por contenedor |
| AP4 | Repeticiones de texto en MD | Artefacto summary |
Creado: 260913 | Parte III, artículo ____12DS | Serie: digital-signage