Open Source Software Bill of Materials

Published
Length
3 min read

Luis Felipe Dias

All posts

An open source software bill of materials lists every code package inside your app. Teams build this list by running automated scanners during each software build step. Most teams set up a scanner in their build pipeline to check lock files. Still, broad build permissions often let developers or runners pull unchecked packages into production. When roles are too wide, teams lose track of what runs on live servers. How an open source software bill of materials works A build pipeline starts by

Software Bill of Materials (SBOM) + Snyk Open Source: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

An open source software bill of materials lists every code package inside your app. Teams build this list by running automated scanners during each software build step. Most teams set up a scanner in their build pipeline to check lock files. Still, broad build permissions often let developers or runners pull unchecked packages into production. When roles are too wide, teams lose track of what runs on live servers.

How an open source software bill of materials works

A build pipeline starts by reading the source code and package manifest files. The scanner checks direct dependencies and also maps all nested sub-packages in the tree. Next, the tool writes out a standard file format like CycloneDX or SPDX. This file records package names, exact version numbers, license types, and cryptographic hashes. Teams store these catalog files in a central registry alongside the compiled container images. Security tools then read the catalog and match package versions against known bug lists. If a bad version appears, the build system flags the release for the team. Engineers can then update the broken package before the app ships to users.

Where build-time tracking falls short at runtime

Static package lists solve a big problem by showing what went into a build. They help teams spot known code flaws and track open source license rules fast. Yet a static list only shows what existed when the build pipeline ran. It cannot see what happens after a user or automated service logs in live. A build scan decides which code ships, not what live commands do in flight. Once an app runs, engineers still need to log in to fix live issues. They run database queries, check server logs, and run admin tasks on live hosts. If a team shares broad admin keys, static package lists will not stop bad commands. A query can still return raw emails, phone numbers, card numbers, or national IDs. Without runtime checks, teams have no record of who ran which query in production.

How to pair package tracking with runtime controls

To keep systems safe, teams must link build checks with live session rules. First, lock down the build runner so only signed images move to live hosts. Next, remove shared static keys from developer laptops and build scripts right away. Require every engineer and tool to log in with their own work identity. Set up strict role rules that inspect each command or query before it runs. Add data masking to rewrite matched fields like card numbers or emails in results. Keep a full log of every action taken against live databases and cloud hosts. This gives your team clear visibility from the first code build to live operation.

Software Bill of Materials (SBOM) + Snyk Open Source: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

Govern statements and responses across databases and APIs

Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev runs beside each supported service as an open-source proxy, a sidecar for your database or API.

First, hoop.dev guardrails block banned queries before they run. Then hoop.dev data masking rewrites matched sensitive values in responses in memory. The audit trail records every statement and verdict per resource. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.

Frequently asked questions

What formats are most common for software bills of materials?

Most engineering teams use either the SPDX format or the CycloneDX standard format. Both formats store package names, versions, licenses, and hashes in machine-readable text files.

When should a team generate a new package inventory?

Teams should generate a fresh list during every single automated build in the pipeline. This ensures the file always matches the exact code running in each new release.

Does a package list protect live databases from bad queries?

No, a package list only tracks code components at build time before deployment. You still need runtime access controls and data masking to protect live database queries.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.