Frequently Asked Questions (FAQ)


Overview

What is Security Insights?

Security Insights is a single YAML file, security-insights.yml, where a project reports its security practices in a standard, machine-readable format.

This information helps:

How is this different from SECURITY.md or an SBOM?

SECURITY.md is free-form text written for humans. An SBOM is a machine-readable list of everything inside your software. Security Insights fills the gap between them: structured facts about your security practices that only maintainers can report.

Why does this specification exist?

Tools can guess some things about a project’s security, but they often guess wrong. For example, tools frequently fail to detect whether a project runs automated tests. Security Insights lets the project state such facts directly, in a format both people and tools can read.

What problems does Security Insights solve?

security-insights.yml answers questions like:

Getting Started

How do I get started as a project maintainer?

Start small — the minimum file needs little more than a security contact and the project owners. Most single-repository projects produce a useful file in about 30 minutes.

Follow the Get Started guide. It walks through both single-repo and multi-repo setups.

Where should I place the security-insights.yml file?

Place it at the repository root as security-insights.yml, or in your code host’s config directory (.github/ or .gitlab/). Tools look in these locations automatically.

How do I validate my security-insights.yml file?

Use CUE, the tool that powers this spec’s schema:

curl -LO https://raw.githubusercontent.com/ossf/security-insights/main/spec/schema.cue
cue vet -d '#SecurityInsights' schema.cue .github/security-insights.yml

No output means your file is valid.

What’s the minimum required information?

At minimum, a file identifies:

See the minimum example for the complete smallest valid file.

Trust and Reliability

How much can tools trust this file?

The file contains a project’s own claims, so treat it as self-reported. It may be out of date or even wrong. It still adds useful information a tool could not get any other way. Tools may choose to show results with and without unverified claims.

What if the information is outdated or incorrect?

The file describes the commit or release it ships with, not necessarily the project’s current state. Maintainers should update it regularly.

Versioning and Releases

How is the specification versioned?

The specification uses semantic versioning: Major.Minor.Patch.

See the versioning policy for details.

Where can I find the latest release?

Download the official schema from the latest release. The main branch may preview unreleased changes.

Usage Questions

How do I handle multi-repository projects?

Projects with many repositories can keep shared project data in one file. Each repository’s own file then points to it using the header.project-si-source field.

See the multi-repository examples:

How often should I update my security-insights.yml file?

Keep the file up to date as your project evolves. A periodic reminder (every 3 or 6 months) helps.

What tools support Security Insights?

Contributing

How can I contribute to the specification?

The specification is maintained by the Security Insights maintainers according to the governance documentation.

Get Involved:

How are changes to the specification proposed?

Schema changes start as a Security Insights Enhancement Proposal (SIEP). To file one, open a new issue and pick the SIEP template. See the governance documentation for how proposals are discussed and accepted.