Skip to content

inventory-graph.json

Section 15 · From docs/INVENTORY_REFERENCE.md on GitHub

D3 force-layout data from GraphBuilder.to_d3_json(), built from the same assets and edges. Consumed by docs/viewer.html and any D3 / vis.js / Cytoscape front end.

The graph holds one edge per source and target, so links[] is not one-to-one with the map's edges[]. SECURITY_GROUP_RULE, NACL_RULE and INTERNET_EXPOSED edges between the same two nodes with the same cidr and direction are merged into one link: port_range becomes the comma-separated union of their ports without repeats ("22,443"; a TCP, UDP or all-protocol rule with no ports adds "0-65535", an ICMP rule adds none when the protocols differ), protocol lists each protocol once ("TCP,ICMP"), and description joins the descriptions with "; ". Any other edge that shares a source and target with an earlier one replaces it. Count edges in inventory-map.json, not here.

nodes[]:

Key Type Meaning
id str Asset id, or the raw endpoint string for non-asset endpoints.
name str Asset name.
type str asset_type, or EXTERNAL.
provider str AWS / AZURE / GCP, or EXTERNAL.
region str Region, "" for externals.
arn str Identifier, "" when none.
account_id str Account, "" when none.
is_internet_exposed bool From the asset.
is_external bool true for nodes created from non-asset endpoints (0.0.0.0/0 and other CIDRs, Azure service tags). External accounts are real assets and have is_external: false; check type == "CLOUD_ACCOUNT" and the map's metadata.external for those.

links[]:

Key Type Meaning
source, target str Node IDs.
type str edge_type.
relationship str relationship, "" when none.
description str "" when none.
direction, protocol, port_range, cidr str Network attributes, "" when none.

properties and ports are not in the D3 export; use inventory-map.json for them.

{
  "nodes": [
    {"id": "1f289833-14df-4772-a9b3-470736dfe58d", "name": "organization o-1wietecbs4",
     "type": "ORGANIZATION", "provider": "AWS", "region": "global",
     "arn": "arn:aws:organizations::123456789012:organization/o-1wietecbs4",
     "account_id": "123456789012", "is_internet_exposed": false, "is_external": false},
    {"id": "0.0.0.0/0", "name": "0.0.0.0/0", "type": "EXTERNAL", "provider": "EXTERNAL",
     "region": "", "arn": "", "account_id": "", "is_internet_exposed": false, "is_external": true}
  ],
  "links": [
    {"source": "1f289833-14df-4772-a9b3-470736dfe58d", "target": "a2fdd0e9-6feb-45c0-8cfe-ab092649fb3f",
     "type": "CONTAINS", "relationship": "", "description": "", "direction": "ingress",
     "protocol": "", "port_range": "", "cidr": ""}
  ]
}