Container manifest reads for the UI: detail by digest, per-manifest tags, referrers count, and platform triple (S17 container-redesign fast-follow)
Closed Beta blocker: Must exist before the first customer (UI)
There is no way to fetch a single container manifest, and list rows lack tags and platform data. For the user: the Docker/OCI version detail page, one of the UI's core screens, cannot exist.
Problem
The Docker and OCI version detail page and the container rows of the version list need reads the management API does not serve. The manifest path .../images/{image_id}/manifests/{digest} has a DELETE and no GET, and the manifests list withholds three things the design renders per row.
| Design element | Missing from the contract | State in the tree |
|---|---|---|
| Manifest detail page | GET .../manifests/{digest} |
No route. S17's "Artifact resources (Phase 3)" records the addressing intent: by digest, not by UUID. |
| Tags column, tag badges, pull-by-tag snippet | tags per manifest |
Tags are readable per image only, through listContainerTags, so a Tags column costs up to 10 extra requests per page at the 1,000-tag cap. |
| Referrers column and tab | A referrers count per manifest, and a management referrers endpoint | The list carries subject_digest per row and nothing aggregates it. |
| Platforms column and block | architecture, os, and os_variant per manifest |
Stored on container_manifests since the image-config reader landed, withheld by the serializer. The doc-only fix that closed the earlier issue left the serialization untracked. |
S17 records all of this as the "Container-redesign fast-follow" in its Follow-ups, together with annotations on the detail, a raw manifest payload endpoint, and an index's child digests. monolith/S06 asks S17 to give that entry a work item. This is it.
Ask
An S17 contract patch and its implementation:
GET .../images/{image_id}/manifests/{digest}: the list element plusannotations.tagson each manifest, on the list and the detail.- A referrers count on each manifest, and
GET .../manifests/{digest}/referrerslisting direct referrers. architecture,os, andos_varianton each manifest.- Child digests on an index, for the Platforms block.
- A raw manifest payload endpoint.
S17 fixes the fetch mechanism: page-bounded reads (a batched per-page query or a lateral subquery, chosen by profiling, never table-wide), with a denormalized counter as the documented fallback.
Out of scope here: a source field on manifests or images. No column exists, and S17 puts it behind a schema decision.
Impact
While the detail route is missing, the Docker and OCI version detail page cannot render. While the list fields are missing, every container row of the version list shows empty Tags, Platforms, and Referrers columns.
Related
- Umbrella filed from the frontend report: Management API contract gaps block the version ... (#1149 - closed) • Hayley Swimelar
- Spec:
docs/specs/S17-rest-management-api.md, Follow-ups, "Container-redesign fast-follow" - Consumers:
docs/specs/monolith/S14-version-list.md(Phase 2) anddocs/specs/monolith/S06-version-detail.md(Phase 2, "Required S17 amendments") - Design: Artifact Registry UX: Artifact detail (gitlab-org/gitlab#598785) • Bonnie Tsang
- The image-config reader that stores the platform triple: feat(oci): extract image-config platform metada... (!929 - merged) • Hayley Swimelar • 19.3
- The doc-only fix for the platform gating sentence: Two container-manifest doc statements describe ... (#594 - closed) • Unassigned
Workstream status (2026-09-16 08:31 UTC)
graph TD