Secure Pipeline Builder
A pipeline is an argument about what you will not ship.
Open one of our reference designs and read it stage by stage: every gate, what it blocks, the framework controls it lets you evidence, and the attack techniques it closes. Then follow any control to the products that provide it.
The field, and the two places it narrows
Supply chain security is not one pipeline. It is seven streams of work running across eight lifecycle phases, and 43 of the 56 places where those cross hold controls. Everything your pipeline produces passes through the same two boundaries on the way in and on the way out.
- GOV Governance and assurance
- The stream that decides what blocks, and proves it blocked.
- SUP Open source and third-party supply
- Everything you did not write, arriving faster than you can review it.
- DEV Design and development
- Where the cost of a fix is lowest and the attention is shortest.
- DEL Build and delivery
- The machine that makes the thing, and the largest single target in the chain.
- VER Testing and validation
- The stream that finds out whether any of the others worked.
- OPS Runtime and platform
- The last place to stop something, and the most expensive.
- OBS Detection and continuous observation
- The only stream whose answer changes while nothing else does.
Each block is how many controls the field places in that stream at that phase — 333 placements across 43 of 56 cells. A hairline means the stream has no control that can act at that phase, which is the nature of the work rather than a gap: runtime protection cannot run before a workload exists.
The dashed rules are the two boundaries every pipeline has, whatever its platform: intake at build and release at release. Both default open — nothing is refused unless something was configured to refuse it.
The columns are drawn as a row here and as a loop elsewhere, and the same eight phases are the eight color groups a player walks around the DevSecOpoly board, in these same colors. The shape is a convenience. What is real is that each phase is a set of activities, and an activity is only worth doing because it enables a capability.
IN · on the way in · at build
Intake
Do you know what came in, and could you have stopped it?
Everything entering the pipeline that nobody in the organization wrote: open-source packages, base images, models, datasets and vendor code.
Defaults open A component nobody reviewed executes with the credentials of whoever installed it.
Closed by DEPS · SBOM · REGISTRY · VENDOR · AI
OUT · on the way out · at release
Release
Can you prove what is leaving was built from what you reviewed?
Everything leaving the pipeline: container images, binaries, packages, infrastructure definitions and the attestations that travel with them.
Defaults open An artifact with no provenance is admitted because nothing downstream was configured to require one.
Closed by CICD · BUILD · REGISTRY · CONTAINER · IAC
Reference pipelines
5 designs we have modeled end to end. Each one is a position, not a menu — the sovereign supply chain enforces both choke points, the hardened container path trades breadth for depth at the image boundary.
AI Application and Agent Delivery
Any CI/CD5 stages · 17 controls
Dependency defense line (Socket at four control points)
GitHub Actions5 stages · 25 controls
Hardened container delivery (Chainguard from base image to admission)
GitHub Actions6 stages · 25 controls
Secure Software Factory (GitHub Actions to Kubernetes)
GitHub Actions9 stages · 46 controls
Sovereign supply chain (both choke points, fully enforced)
GitHub Actions8 stages · 57 controls
Or compose your own
Choose the capability domains you care about and a maturity ceiling, and the graph places every matching control into the lifecycle phase it belongs to — then tells you which frameworks that selection evidences and which modeled attacks it leaves open. Nothing is saved; the selection lives in the URL.
Compose a pipelineOr load the complete modern pipeline
The complete template starts you with every control the graph holds, at every maturity level, in every stream — nothing pre-removed. It is the long way round on purpose: deciding a control is out of scope is a decision worth making once, deliberately, rather than one made for you by a template that quietly left it out.