Skip to content

docs: add container image inventory page#1392

Open
pbanerji-sn wants to merge 5 commits into
mainfrom
docs/container-image-inventory
Open

docs: add container image inventory page#1392
pbanerji-sn wants to merge 5 commits into
mainfrom
docs/container-image-inventory

Conversation

@pbanerji-sn

@pbanerji-sn pbanerji-sn commented Jun 23, 2026

Copy link
Copy Markdown

New documentation page for the Container Image Inventory feature (GA).

Covers:

  • What the inventory is and what problems it solves
  • Setup steps for CLI, registry, and Kubernetes users
  • Grouped and flat views, filtering, search
  • Asset detail tabs (Overview, Issues, Fix Recommendations, Related Projects)
  • Workflow impact by persona
  • Prerequisites, known limitations, and FAQs

Screenshot placeholders use .gitbook/assets/container-inventory-*.png paths — images to be added before merge.

cc @snyk/docs for review


Note

Low Risk
Documentation-only addition with no application or security code changes.

Overview
Introduces docs/manage-assets/container-image-inventory.md, a new GitBook page for the Container Image Inventory feature at GA.

The page explains the unified Registry + Repository + Config Digest asset model, deduplicated issues, and how Org vs Group navigation works (Org-only new inventory; Group banner to try the new experience alongside legacy Asset Inventory). It documents setup for CLI (≥1.1303.0 + re-monitor), registry imports/retests, and Kubernetes (snyk-monitor upgrade), plus grouped/flat views, filters, prefix search, and the asset drawer tabs (Overview, Issues, Fix Recommendations, Related Projects). Persona workflows, Enterprise prerequisites, known limitations, and FAQs are included.

Screenshot references point to .gitbook/assets/container-inventory-*.png placeholders called out in the PR as still to be added before merge. This diff does not update SUMMARY.md or other nav files to link the page.

Reviewed by Cursor Bugbot for commit f8b5d71. Bugbot is set up for automated code reviews on this repo. Configure here.

Introduced a comprehensive guide on container image inventory, detailing features, benefits, and usage instructions.
@pbanerji-sn
pbanerji-sn requested a review from a team as a code owner June 23, 2026 15:27
@snyk-io

snyk-io Bot commented Jun 23, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Updated image paths in the container image inventory documentation to reflect the correct directory structure.
Updated the section to clarify how the container image inventory works and what challenges it addresses.

Container image inventory is a unified view in the Snyk platform that consolidates all of your container images into a single, manageable list, regardless of where they were scanned.

Instead of navigating a fragmented set of per-scan Projects, you get one authoritative inventory of unique container image assets, each identified by **Registry + Repository + Config Digest**. A single image scanned from a registry import, from the CLI, and a Kubernetes workload all appear as **one asset** with a single, deduplicated issue count.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have identified that an assets true identity is actually: "registry+ rep+ manifest digest+ config digest. We have a ticket to make this change! If we call this out, will it confuse customers ?

I trust your expertise here @pbanerji-sn !

| **Unified asset list** | View all unique container images across your Organization or Group in one place |
| **Deduplicated issue counts** | Issues from multiple scan sources are merged — no more inflated counts |
| **Version grouping** | Group images by repository to explore the full version history of an image |
| **Search and filter** | Filter by registry, image repository, tag, image labels, digest, class, and more |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe split up search and filter since they support different fields?


Container image inventory identifies each unique image by its **Registry + Repository + Config Digest**. Because this identity is based on the immutable config digest rather than a mutable tag, one image scanned from the CLI, a container registry, and a Kubernetes workload appears as a single asset — not three separate Projects.

Issues from all scan sources are merged and deduplicated, so you see one count per unique vulnerability rather than inflated totals from overlapping scans. Images are grouped by repository, giving you a version history view where you can compare build dates, risk scores, and issue counts across digests and spot regressions over time. Each asset also surfaces key metadata — tags, inferred base image, test surface, and last scan date — in one place.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically images are grouped by registry/repo... unsure if it is important to call this out though as the language we use in the UX is group by: image repository


![The ungrouped flat view showing individual assets with all columns.](../.gitbook/assets/container-inventory-flat-view.png)

You can sort the flat view by build date, score, issue count, last scan, class, discovered, or updated — in ascending or descending order — using the sort control in the top-right corner.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add that this will be extended to the grouped view in the future ?


![The filter panel showing all available filter dimensions.](../.gitbook/assets/container-inventory-filter-panel.png)

A **search bar** is also available in the top-right corner. Search matches across asset name, image tags, registry, repository, and digests.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably be more specific here since customers have already raised this. Right now the search feature only does prefix matching, it matches from the start of a string, so typing the middle of a string will not find a match.

A **search bar** is also available in the top-right corner. Search matches across asset name, image tags, registry, repository, and digests.

{% hint style="info" %}
The search bar matches from the beginning of the asset name field. If you cannot find a specific image, try using the **Repository** or **Image tag** filters instead.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jk!

@bdemeo12 bdemeo12 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Just a few nits!!!


Depending on how you scan containers, you may need to take the following steps to ensure your images appear in the inventory:

- **CLI users** — Upgrade to the latest Snyk CLI (which bundles an updated snyk-docker-plugin) and re-run `snyk container monitor` for your images.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed CLI version 1.1303.0 and onwards supports assets

Depending on how you scan containers, you may need to take the following steps to ensure your images appear in the inventory:

- **CLI users** — Upgrade to the latest Snyk CLI (which bundles an updated snyk-docker-plugin) and re-run `snyk container monitor` for your images.
- **Container Registry integrations** — Newly imported images automatically populate the inventory. For existing Projects, assets appear when a new image digest is pushed to a monitored tag.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assets will appear when they are retested - manually via the UI or on recurring tests

- **Last seen** — When Snyk last confirmed the asset exists in your environment
- **Last tested** — When Snyk last scanned the asset
- **Source** — The origin of the asset
- **Tags** — Snyk asset tags

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might remove Snyk asset tags + snyk asset labels - if so, we should remove these as well

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tags + labels!


![The default grouped inventory view. Each repository row shows the number of images, latest build date, risk score, and issue severity breakdown.](../.gitbook/assets/container-inventory-grouped-view.png)

Groups are sorted alphabetically by image name by default. You can expand any group to reveal the individual image assets within it. Each asset row within the group displays:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Groups are sorted alphabetically by image name by default

Small thing, but we changed this to be sorted by -built_at, most recent build date, in response to sort by name being slower

| :--- | :--- |
| **Asset name** | Registry, repository, and a short config digest identifier (for example, `alpine-base@a23a90a4`) |
| **Image tags** | The distinct set of tags seen across all discovery sources for this asset |
| **Build date** | The date the image was built |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: assuming we keep asset class, we also display that in the table. Maybe worth bringing up briefly and mentioning that it's configurable?


![The ungrouped flat view showing individual assets with all columns.](../.gitbook/assets/container-inventory-flat-view.png)

You can sort the flat view by build date, score, issue count, last scan, class, discovered, or updated — in ascending or descending order — using the sort control in the top-right corner. Sorting currently applies to the flat view; support for sorting the grouped view is planned for a future release.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

support for sorting the grouped view is planned for a future release.

Going to see how complicated the dual sort component would be to implement. I think it would just be UI work. If it can be done relatively easily, I can make a PR for it

| **Manifest digest** | Filter by manifest digest |
| **Registry** | Filter by container registry hostname |
| **Repository** | Filter by image repository |
| **Type** | Filter by asset type |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: recently removed Type from the filter options because the way SBOM was implemented, asset types are split into different tabs entirely


![The filter panel showing all available filter dimensions.](../.gitbook/assets/container-inventory-filter-panel.png)

A **search bar** is also available in the top-right corner. Search uses prefix matching against the asset name field: it matches only from the beginning of the string, so entering text that appears in the middle of an asset name will not return a match.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Search uses prefix matching against the asset name field

nit: might be worth clarifying here that the name field includes the asset's registry/repository if they exist. For example, in Kate's org, if I search for "docker.io/snyk/kubernetes" then the "kubernetes-monitor" asset shows up. But if I just search for "kubernetes," nothing shows up


### Asset details

Click any asset row to open a side drawer with detailed information. The drawer contains four tabs: **Overview**, **Issues**, **Fix Recommendations**, and **Related Projects**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this also contain "Image content" after the provenance attestation UI changes are merged in?

- **Asset ID** — The unique identifier for this asset
- **Type** — The asset type (Container Image)
- **Class** — The risk classification (A through E)
- **Discovered** — When Snyk first identified this asset

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very small nit: also added "Test Surface" in this section recently

| Column | Description |
| :--- | :--- |
| **Severity** | The severity level (critical, high, medium, low) |
| **Score** | The risk/priority score for this specific issue |

@jcambier jcambier Jul 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're only using risk score now, and it will only show up (both in the asset table and issues table) if the customer has explicitly enabled risk score for their group/org under the "Snyk Preview" settings and their projects get re-scanned. Maybe worth bringing this up, since we mention risk score a lot in these docs?

| **Target Reference** | The target reference associated with the Project |
| **Actions** | Links to the Project details page |

You can sort the list by highest date last tested, and use **Modify columns** to customize which columns are displayed.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can sort the list by highest date last tested

What do you think of "highest" -> "newest," or just "You can sort the list by date last tested or issue count?"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants