Skip to main content

Comprehensive SBOM generation and auditing tool for Firefly Open Banking Platform

Project description

Firefly SBOM Tool 🔒

License Python Version GitHub Stars Docker Pulls

A comprehensive Software Bill of Materials (SBOM) generation and security auditing tool for modern multi-technology stacks

Quick InstallationQuick StartKey FeaturesDocumentationContributing


🎯 Overview

The Firefly SBOM Tool is an enterprise-grade solution for generating Software Bill of Materials (SBOM) documents and performing comprehensive security audits across multiple programming languages and frameworks.

🆕 NEW: GitHub Organization Scanning with parallel processing and advanced filtering!

⭐ Key Features

  • 🐙 GitHub Organization Scanning - Scan entire organizations with filtering by language, topics, type
  • 🚀 Parallel Processing - High-performance scanning with configurable workers
  • 📦 Multi-Language Support - Python, Java, Node.js, Go, Ruby, Rust, Flutter/Dart, and more
  • 🛡️ Security Auditing - Vulnerability scanning using NVD, OSV, and GitHub Security Advisories
  • 📊 Rich Reports - Interactive HTML, CycloneDX, SPDX, Markdown formats
  • High Performance - Efficient caching and batch processing
  • 🐳 Container Ready - Full Docker support
  • ⚙️ CI/CD Integration - GitHub Actions, GitLab CI, Jenkins ready

📦 Quick Installation

# Quick install (recommended)
curl -sSL https://raw.githubusercontent.com/firefly-oss/sbom-tool/main/install.sh | bash

# From PyPI
pip install firefly-sbom-tool

# From source
git clone https://github.com/firefly-oss/sbom-tool.git && cd sbom-tool && pip install -e .

# Docker
docker pull ghcr.io/firefly-oss/sbom-tool:latest

🚀 Quick Start

CI: GitHub Actions (Quick Example)

Add this workflow to .github/workflows/sbom.yml in your repository to run the scan on every push/PR:

name: SBOM Scan

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  workflow_dispatch:

jobs:
  sbom:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.10'
      - name: Install Firefly SBOM Tool
        run: pip install firefly-sbom-tool
      - name: Run SBOM scan (current repo)
        run: firefly-sbom scan --path . --audit --format cyclonedx-json --format html --output sbom-report
      - name: Upload artifacts
        uses: actions/upload-artifact@v4
        with:
          name: sbom-reports
          path: sbom-report*

For advanced CI usage, see the dedicated guide: docs/ci/github-actions.md.

Single Repository Scan

# Basic scan
firefly-sbom scan --path ./my-project

# With security audit
firefly-sbom scan --path ./my-project --audit --format html

🆕 GitHub Organization Scan

# Set GitHub token
export GITHUB_TOKEN="your_token_here"

# Scan entire organization
firefly-sbom scan-org --org firefly-oss --parallel 8 --audit

# Advanced filtering
firefly-sbom scan-org --org firefly-oss \
  --languages Python JavaScript \
  --topics microservice api \
  --include-private --no-forks --no-archived \
  --format html --format cyclonedx-json

Technology Detection

# Detect tech stack
firefly-sbom detect --path ./my-project

🛠️ Supported Technologies

Language Package Managers Lock Files Status
Python pip, Poetry, Pipenv requirements.txt, poetry.lock ✅ Full support
Java Maven pom.xml ✅ Multi-module support, improved license extraction
Node.js npm, yarn, pnpm package-lock.json, yarn.lock ✅ Framework detection
Go go modules go.mod, go.sum ✅ Replace directives
Ruby Bundler Gemfile.lock ✅ Group dependencies
Rust Cargo Cargo.lock ✅ Workspace support
Flutter/Dart pub pubspec.lock ✅ SDK version tracking

📚 Documentation

Comprehensive documentation is available in the docs/ directory:

Quick Links

🐳 Docker Usage

# Scan current directory
docker run --rm -v $(pwd):/workspace ghcr.io/firefly-oss/sbom-tool:latest scan --path /workspace

# Organization scan with GitHub token
docker run --rm -e GITHUB_TOKEN=$GITHUB_TOKEN -v $(pwd)/reports:/reports \
  ghcr.io/firefly-oss/sbom-tool:latest scan-org --org firefly-oss --output-dir /reports

🤝 Contributing

We welcome contributions! See our Contributing Guide for details.

# Development setup
git clone https://github.com/firefly-oss/sbom-tool.git
cd sbom-tool
python -m venv venv && source venv/bin/activate
pip install -e ".[dev]"
pytest

📄 License

Licensed under the Apache License, Version 2.0. See LICENSE for details.


Made with ❤️ by the Firefly OSS Team

📚 Documentation🐛 Issues💬 Discussions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firefly_sbom_tool-1.0.0.tar.gz (79.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firefly_sbom_tool-1.0.0-py3-none-any.whl (87.6 kB view details)

Uploaded Python 3

File details

Details for the file firefly_sbom_tool-1.0.0.tar.gz.

File metadata

  • Download URL: firefly_sbom_tool-1.0.0.tar.gz
  • Upload date:
  • Size: 79.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for firefly_sbom_tool-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a736ad0860b0ef6c18ba7b8cb41270691e1590562593c1266cbfccc01a58ebda
MD5 66d352a8ec8c054ac9086310ddb4fbd2
BLAKE2b-256 fb40c79a7da8053f470737bd27477b8ef06ed9d4535e11a6a9fffd23710ad577

See more details on using hashes here.

File details

Details for the file firefly_sbom_tool-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for firefly_sbom_tool-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 abac94beeaa8498238936b141bf0c7df10317ab3dc8942291d33bd74bc86a68e
MD5 c3aa299cfcba618a85f7146e5cd25923
BLAKE2b-256 eac7a9ad5a695db548aa069b6fd9c57eb912865b245282ace17772a37420f858

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page