Safeguard
Security Guides•

What is a service catalog and why does vulnerability work need one?

A service catalog lists each service with owner, repo, tier and runtime locations. It turns a component finding into a named team and a rollout list.

Safeguard Security Team
3 min read

A service catalog is a list of the services your organisation runs, each with an owner, source repository, importance tier and the places it runs. Vulnerability management needs one because a finding about a component is useless until you can say which service it belongs to and who fixes it.

Definition

Service catalog: one record per service, kept current, readable by engineers and security.

Service record: the row for one service with a short set of fields.

It is not a document library or a diagram collection. It is a table that tools can read.

The fields that matter for security

FieldUse in vulnerability work
Service nameThe key joining everything else
Owner team and contact routeWhere findings go
Source repositoriesWhere code changes happen
TierSets the fix deadline
Environments and locationsWhere the fix must roll out
ArtifactsImage names, function packages, machine images
Data classes handledRaises priority when sensitive
Dependencies on other servicesShows blast radius

Kubernetes recommends labels such as app.kubernetes.io/name, app.kubernetes.io/part-of and app.kubernetes.io/component, which map neatly onto service, application and part. Using those names in the catalog lets runtime data join cleanly.

How it changes daily work

Without a catalog, a new advisory triggers a search in chat for who owns what. With one, the matching component list resolves to services, services resolve to teams, and tickets go out the same day.

Build it small

  1. Start from what runs. Take the list of deployed artifacts and group them into services.
  2. Add owners. Put a team on every service. Services with no owner go on a visible list.
  3. Link repositories. Use source annotations on images where available. The OCI spec defines org.opencontainers.image.source for this.
  4. Assign tiers. Three levels are enough.
  5. Keep it near the code. A small metadata file in each repository, collected by a job, goes stale less often than a spreadsheet.
  6. Review each quarter. Remove retired services and check owners still exist.

Pitfalls

  • Catalogs that need manual updates after every deploy. Let automation fill in locations and versions.
  • Owner fields that name people. Use teams.
  • Too many fields. Each field needs a user and a refresh process.

An example record

Service: checkout-api. Owner: payments-platform, with a channel alias. Repository: one source URL. Tier: high. Environments: production in two accounts and one data centre, staging in one account. Artifacts: one image and one scheduled function. Data classes: payment references. Depends on: the identity service. With that record, an advisory about a library in the image resolves in minutes to a team, a deadline and a three place rollout list.

Quick check

Is a CMDB the same thing?

It can serve the purpose, but many are built around infrastructure. What you need is a record per service with software details.

Who should maintain the catalog?

Service teams own their records, and a platform or security group owns the structure and checks for gaps.

Safeguard's asset discovery and compliance and evidence automation help keep inventory and ownership current. A free scan is at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.