Compose a pipeline
Pick the domains you are responsible for. Every control the graph holds for them is placed into the lifecycle phase where it belongs, with the frameworks it evidences and the attacks it stops.
Domains
- Static Code Analysis20
- Dependency Management24
- Container Security×
- Exposure & Vulnerability Management15
- Endpoint Protection6
- Secrets & Identity Security24
- Build Integrity & Cryptographic Trust19
- CI/CD Pipeline Security10
- Runtime Application Validation25
- Runtime & Kubernetes Protection24
- AI Model & Agent Security16
- Identity & Access Management16
- Cloud Security Posture14
- Package Registry & Provenance Security13
- API Security12
- Detection & Response12
- SBOM & Component Visibility×
- Vendor Governance12
- Infrastructure-as-Code Security11
- Developer Security & Secure Coding10
- Secure Design & Threat Modeling10
- Governance, Risk & Compliance8
- Source Control Security8
- Data Protection2
- Email & Collaboration Security1
Maturity ceiling
Controls carry the maturity level a program needs to run them. Raising the ceiling adds depth and volume; level 3 is a realistic target for most teams.
- 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.
The figure is how many controls the field places in that cell and the wash behind it is how much of the cell you have decided — 0 targeted, 0 ignored, 333 still open, of 333. A ring means the cell is closed. Ignoring a control counts as decided and leaves the denominator, so coverage measures what you said you would do rather than everything that 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.
No controls at or below level 1 in this selection. Raise the ceiling or add a domain.
Not in this comparison
- Not modeled for these products yet
- The graph holds capabilities for every product but evaluation depth for a minority. These sections have nothing to show for this selection.
- phases · compliance · attackCoverage
- Does not apply to this kind of pipeline
- stages A composed pipeline has no authored stages; its capabilities are grouped by lifecycle phase.
- gaps Gap analysis compares a stage's capabilities against the products that stage uses, and only a client pipeline records products in use. A composed pipeline models the design, not an estate.
How this was produced
Every figure above was read from the Gantry knowledge graph, version 7.1.0, and computed when you opened this page — in 89 ms on 2026-10-27. Nothing here is a cached verdict or a dataset assembled for marketing: it is the same model our engagements run on.