Infrastructure asset graph — the Joern for cloud. Discovers, maps, and graphs CSP resources.
Project description
Bona
Infrastructure asset graph — the Joern for cloud.
Discovers, maps, and graphs CSP resources via AWS Config. Produces nodes + edges that feed into Neptune for compliance analysis, impact assessment, and risk scoring.
Standalone package. No dependency on graphrag-toolkit.
Installation
pip install bona
Dependencies
Bona has minimal dependencies:
boto3>=1.35.0— AWS SDK for resource discoverypydantic>=2.0— Data validation and schema models
Bona is a standalone package. It does not depend on graphrag-document-graph, graphrag-codeproperty-graph, or graphrag-toolkit-lexical-graph.
Quick Start
# Discover all resources in an account
bona discover --account 123456789012 --region us-east-1
# Enumerate AWS services (for recipe generation)
bona services
# Check compliance state
bona compliance --account 123456789012
Python API
from bona import AWSProvider, DiscoveryPipeline
provider = AWSProvider(account_id="123456789012", region="us-east-1")
result = provider.discover()
print(result.summary())
# → Discovered 142 resources, 287 relationships, 3 findings in 4521ms
for resource in result.resources:
print(f"{resource.resource_type}: {resource.name}")
for edge in result.relationships:
print(f"{edge.source_id} --{edge.edge_type}--> {edge.target_id}")
Architecture
AWS Config (already running) → Bona reads → normalizes → outputs graph schema
↓
Neptune (via AI-LENS)
Bona is thin. AWS Config does the heavy lifting. Bona just transforms the output into a graph schema compatible with the GraphRAG Toolkit ecosystem.
Package Structure
bona/
├── providers/ AWS, Azure, GCP, Application adapters
│ └── aws/ AWS Config + Resource Explorer + Inspector
├── pipeline/ discover → transform → load → enrich
├── schema/ AssetNode, AssetEdge, DiscoveryResult
├── query/ graph traversal, compliance, impact analysis
└── cli.py standalone CLI tool
Dependency Chain
bona (standalone)
├── boto3>=1.35.0
└── pydantic>=2.0
Bona is independent. It produces graph-compatible output but does not import or require any graphrag packages.
Contributing
See CONTRIBUTING.md for development setup, testing, and PR guidelines.
License
MIT — see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bona-0.1.1.tar.gz.
File metadata
- Download URL: bona-0.1.1.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f8b455d4a70acfd3109dade160f7730f9df800587d3351d63064d2d2d75262d
|
|
| MD5 |
bb62c751d91634522f829328f5f39e04
|
|
| BLAKE2b-256 |
70248a46baf11c0049aea57901a3dbd7eadd5860cc0c2b7dfe02124b8122de41
|
File details
Details for the file bona-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bona-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
681fd12ce619379cc709386b1d6307719faf5b0d48f0e5a7b128c0a78da7bcb1
|
|
| MD5 |
2969d4f7a60aa1b5c8aadfd8efe8e749
|
|
| BLAKE2b-256 |
384acdeeab2ffb064ea2e642d108d5224d4927c0cc769f880a676ffbda9df98c
|