Before moving on, please consider giving us a GitHub star ⭐️. Thank you!
BitBom Minefield is a tool that uses roaring-Bitmaps to graph SBOMs FAST.
Caching 10,000 SBOMs packages transitive dependents in 30 seconds.
- Quickstart Guide
- Example
- To Start Using Minefield
- How Minefield Works
- Custom Query Commands
- Visualization of a Query
- Star History
- Acknowledgements
View Minefield demo on asciinema
- Ingest some data:
minefield ingest sbom <sbom_file or sbom_dir>
- Cache the data:
minefield cache
- Run a query:
minefield query <query_string>
Redis must be running at localhost:6379
, if not please use make docker-up
to start Redis.
- Ingest the
test
SBOM directory:minefield ingest sbom test
- Cache the data:
minefield cache
- Run the leaderboard custom with "dependents PACKAGE":
- This command generates a ranked list of packages, ordered by the number of other packages that depend on them
minefield leaderboard custom "dependents PACKAGE"
- Run a query on the top value from the leaderboard:
- This command is now querying the dependents for a specific package, in this case dep2
minefield query "dependents PACKAGE pkg:generic/dep2@1.0.0"
- Run queries to see the shared dependencies of lib-A and dep1, and lib-A and lib-B
- These queries output the intersection of two queries, in this case we are finding package dependencies do each of the packages share between each other.
minefield query "dependencies PACKAGE pkg:generic/dep1@1.0.0 and dependencies PACKAGE pkg:generic/lib-A@1.0.0"
minefield query "dependencies PACKAGE pkg:generic/lib-B@1.0.0 and dependencies PACKAGE pkg:generic/lib-A@1.0.0"
- Run queries with the visualizer
minefield query "dependents PACKAGE pkg:generic/dep2@1.0.0 --visualize"
docker pull ghcr.io/bitbomdev/minefield:latest
docker run -it ghcr.io/bitbomdev/minefield:latest
git clone https://github.com/bitbomdev/minefield.git
cd minefield
go build -o minefield main.go
./minefield
The design decisions and architecture of Minefield can be found here.
For detailed information on available query commands and their usage, please refer to the Custom Query Commands documentation.