Data Model

Before you call the API, it helps to know how Interlynk organizes data. Four levels nest inside your organization.

Organization
└── Product            (a piece of software you track)
    └── Environment    (default, development, production, ...)
        └── Version    (one uploaded SBOM)
            └── Component   (a dependency inside that SBOM)

The four levels

Level
What it is

Product

A piece of software you track, for example payments-service.

Environment

A stage within a product. Every product starts with default, development, and production.

Version

A single SBOM uploaded to an environment. Each upload creates a new version.

Component

One dependency listed inside a version's SBOM.

When you upload an SBOM, you upload it to a product and an environment. The upload becomes a new version.

Dashboard names vs API names

The GraphQL schema uses different names than the dashboard. They mean the same things. You will see the API names in queries and responses.

Dashboard
GraphQL schema

Product

projectGroup

Environment

project

Version

sbom

Component

component

So a product's ID is the id of a projectGroup, an environment's ID is the id of a project, and a version's ID is the id of an sbom.

Two field names trip people up. A version ID is called sbomId in most queries. An environment ID is called projectId. Keep that in mind when you read the download and upload guides.

Identifiers

Every object has a UUID id, for example 4e423fe0-d089-4025-b1e4-8fe9608138d6. Most calls need one or more of these IDs.

You can refer to objects two ways:

  • By ID. Pass the UUID directly. This is exact and fast.

  • By name. Some calls accept a product name and environment name instead. Useful when you do not have IDs yet, for example in a build script.

To find IDs, see List Products and Versions.

Last updated