Repository navigation
v0.5.0 - Inventory system with security fixes
Inventory mapping. A dedicated, scanner-independent function that maps everything deployed (or default) in a cloud estate and how it interlinks. It answers what exists and how it is wired together; the scanners keep answering what is wrong.
Added:
cloudg mapCLI command: deep-collects the complete infrastructure across AWS, Azure and GCP without running any scanner, links it into an interconnected map, and writesinventory-map.json,inventory-map.graphmlandinventory-graph.json.--findingsmerges previously generated scanner findings intoasset-map.json(asset → risk) andcompliance-map.json(framework → affected assets).cloudg.inventorypackage, all public API:AWSDeepInventoryCollectoradds route tables, internet/NAT gateways, network interfaces, EBS volumes, Elastic IPs, NACLs, VPC peering, transit gateways and customer-managed IAM policies on top of the standard collector, plus a catch-all sweep of the Resource Groups Tagging API so every taggable resource appears on the map.AzureDeepInventoryCollectoradds NICs, public IPs, managed disks, load balancers and route tables, plus a full-subscription ARMresources.list()sweep covering every service.GCPDeepInventoryCollectorbrings a richer Cloud Asset Inventory type taxonomy and IAM policy bindings as attachment edges.RelationshipLinkerderives interconnection edges purely from asset metadata (attachment, containment, routing, peering, and a generic cross-service reference pass) and works on anylist[CloudAsset].InventoryMapper/InventoryResult: orchestration, summaries, exports, and thebuild_asset_map()/build_compliance_map()/export_merged()merge helpers.
CloudGEngine.map_inventory()/map_inventory_sync()for embedders.inventory:config section (tagging_sweep,link_references).- New schema values:
AssetType.NETWORK_INTERFACE,EdgeType.ATTACHED_TO,EdgeType.REFERENCES. MultiAccountCollectoraccepts per-provider collector class overrides.- Documentation: inventory mapping is covered in the README, the handbook (
cloudg map, the inventory mapping API) and the docs site; a new "deeper toolkit" chapter documents the standalone programmatic APIs (GraphBuilder, CloudOntology, RAGExporter, TerraformExporter, FindingsNormaliser, parsers).
Fixed (pre-release hardening, folded in before publish):
- The engine's Checkov path passed
framework=to a constructor that takesframeworks=(a list) and raised TypeError; it now forwards the configured framework list. - The GCP identifier checks in the inventory linker and mapper are anchored regexes, so
.googleapis.cominside an unrelated ARN no longer classifies an asset as GCP (CodeQL py/incomplete-url-substring-sanitization). - The Pages deploy artifact carries the run attempt in its name; re-running the workflow no longer fails on "Multiple artifacts named github-pages".
- install.sh no longer uses
A && B || Cas if-then-else anywhere; every step is an explicit if/else, with apip_toolhelper for the repeated pip installs. - Dockerfile pins parliament to 1.6.4.
- Codacy complexity findings: the long CLI commands (
run,scan,ingest), the engine phases (scan,analyze,run_pipeline), the SVG/HTML renderers, the ontology relation inference, the RAG exporters, credentials, registry discovery and the Prowler/IAM-linter scanners were split into focused helpers; behavior is unchanged and the CLIruncommand no longer takes 27 named parameters. - Codacy file-length findings: the four oversized modules were split along their natural seams, with every import path preserved — the CLI helpers moved to
cli_helpers.py/cli_run_helpers.pyand theruncommand tocli_commands.py; the AWS per-service collectors moved toaws_services.py/aws_services_extended.pymixins; the ontology relation-inference layer moved toontology_rules.py(re-exported fromontology); the SVG hierarchical layout moved tosvg_layout.py. The SVG output is byte-identical and the whole suite passes unchanged.
What's Changed
- Add a report viewer to the docs site by @morpheuslord in #11
- Feat/inventory mapping by @morpheuslord in #12
- Anchor GCP identifier checks and fix Pages re-run deploys by @morpheuslord in #13
- Fix/codacy findings by @morpheuslord in #14
- Format the inventory modules to satisfy ruff format by @morpheuslord in #15
Full Changelog: v0.4.1...v0.5.0