Files
mesh-contracts/seats/container-image-registry/fixtures/events.json
T
jschoubben 859da7b1ce Registry seats: remove answers and says kept when a tagged version shares its digest
A store that cannot remove a tag alone (another tag names its digest) kept the tag and the holder said
removed, so the builder and every follower believed the tagged version gone while it stayed pullable:
work reported done that was not done. The shared registry part gains the outcome kept: in remove's
answer (kept, the reason shared-digest, the tags still naming the digest) and as its own event, in all
four registry seats. Regenerated with mesh-catalog's seatgen (join-mesh-catalog ccb7eaff); seatgen
-check passes; fixtures for the answer and the event in each seat.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
2026-11-04 18:12:34 +01:00

99 lines
3.4 KiB
JSON

[
{
"name": "published on the seat's subject",
"of": "event:published",
"subject": "mesh.seat.container-image-registry.event.published",
"given": {
"name": "mesh-sdk",
"version": "0.1.19",
"kind": "image",
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"fingerprint": "f1",
"commit": "cccccccccccccccccccccccccccccccccccccccc",
"holder": "distribution",
"transfer": "t1",
"reference": "container-image-registry/mesh-sdk/lib@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
{
"name": "refused on the seat's subject",
"of": "event:refused",
"subject": "mesh.seat.container-image-registry.event.refused",
"given": {
"name": "mesh-sdk",
"version": "0.1.19",
"kind": "image",
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"fingerprint": "f1",
"commit": "cccccccccccccccccccccccccccccccccccccccc",
"holder": "distribution",
"transfer": "t1",
"reference": "container-image-registry/mesh-sdk/lib@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"reason": "retention"
}
},
{
"name": "removed on the seat's subject",
"of": "event:removed",
"subject": "mesh.seat.container-image-registry.event.removed",
"given": {
"name": "mesh-sdk",
"version": "0.1.19",
"kind": "image",
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"fingerprint": "f1",
"commit": "cccccccccccccccccccccccccccccccccccccccc",
"holder": "distribution",
"transfer": "t1",
"reference": "container-image-registry/mesh-sdk/lib@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"reason": "retention"
}
},
{
"name": "kept on the seat's subject: a tagged version sharing its digest stays, naming the tags on it",
"of": "event:kept",
"subject": "mesh.seat.container-image-registry.event.kept",
"given": {
"name": "mesh-sdk",
"version": "0.1.19-feat-x.2",
"kind": "image",
"digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"fingerprint": "f1",
"commit": "cccccccccccccccccccccccccccccccccccccccc",
"holder": "distribution",
"reference": "container-image-registry/mesh-sdk/lib@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"reason": "shared-digest",
"tag": "0.1.19-feat-x.2",
"tags": [
"0.1.19"
]
}
},
{
"name": "held on the seat's subject",
"of": "event:held",
"subject": "mesh.seat.container-image-registry.event.held",
"given": {
"name": "mesh-sdk",
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"reason": "kept by the sweep's rule",
"holder": "distribution",
"by": "mesh-artifact-sweep",
"at": "2026-11-04T12:00:00Z"
}
},
{
"name": "released on the seat's subject",
"of": "event:released",
"subject": "mesh.seat.container-image-registry.event.released",
"given": {
"name": "mesh-sdk",
"digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"reason": "kept by the sweep's rule",
"holder": "distribution",
"by": "mesh-artifact-sweep",
"at": "2026-11-04T12:00:00Z"
}
}
]