Syft Queries#

Browse the dependency tree#

MATCH path = (p:SyftPackage)-[:DEPENDS_ON*1..5]->(dep:SyftPackage)
WHERE NOT exists((p)<-[:DEPENDS_ON]-())
RETURN path

Find packages that depend on a specific package#

MATCH (upstream:SyftPackage)-[:DEPENDS_ON*1..10]->(dep:SyftPackage {name: 'lodash'})
RETURN DISTINCT upstream.name

Find root packages#

MATCH (p:SyftPackage)
WHERE NOT exists((p)<-[:DEPENDS_ON]-())
RETURN p.name

Inspect how a package was discovered in an image#

MATCH (p:SyftPackage)-[d:DEPLOYED]->(i:Image)
RETURN p.id, i._ont_digest, d.found_by, d.locations

Find nested packages#

MATCH (p:SyftPackage)
WHERE exists((p)<-[:DEPENDS_ON]-())
RETURN p.name