{
  "id": "testbed_storage",
  "title": "Test bed data and cloud",
  "description": "Data ownership, camera clips, receiver logs and the staging cloud connection.",
  "scope": "Architecture, not live health. Evidence and status belong to inventory records.",
  "nodes": [
    {
      "id": "sn7d_jetnpd",
      "title": "Edge appliance sn7d-jetnpd",
      "kind": "host",
      "inventory_id": "host-sn7d-jetnpd",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn7d-jetnpd.md",
      "page": "/hosts/sn7d-jetnpd/"
    },
    {
      "id": "sn7d_jetnpd.search_engine",
      "title": "search-engine",
      "kind": "service",
      "inventory_id": "service-nvr-search-engine",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn7d-jetnpd.md",
      "page": "/hosts/sn7d-jetnpd/"
    },
    {
      "id": "sn7d_jetnpd.cloud_link",
      "title": "Cloud link",
      "kind": "service",
      "inventory_id": "service-nvr-cloud-link",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn7d-jetnpd.md",
      "page": "/hosts/sn7d-jetnpd/"
    },
    {
      "id": "sn1_1f0ccb",
      "title": "Build server sn1-1f0ccb",
      "kind": "host",
      "inventory_id": "host-sn1-1f0ccb",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn1-1f0ccb.md",
      "page": "/hosts/sn1-1f0ccb/"
    },
    {
      "id": "spot_cloud",
      "title": "Spot cloud (staging)",
      "kind": "external"
    },
    {
      "id": "sn7d_jetnpd.identity",
      "title": "Appliance identity",
      "kind": "resource",
      "inventory_id": "resource-nvr-identity",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn7d-jetnpd.md",
      "page": "/hosts/sn7d-jetnpd/"
    },
    {
      "id": "sn1_1f0ccb.simulator",
      "title": "Camera simulator",
      "kind": "service",
      "inventory_id": "service-camera-simulator",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn1-1f0ccb.md",
      "page": "/hosts/sn1-1f0ccb/"
    },
    {
      "id": "sn1_1f0ccb.receiver",
      "title": "Webhook receiver",
      "kind": "service",
      "inventory_id": "service-webhook-receiver",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn1-1f0ccb.md",
      "page": "/hosts/sn1-1f0ccb/"
    },
    {
      "id": "sn7d_jetnpd.config",
      "title": "Config files",
      "kind": "resource",
      "inventory_id": "resource-nvr-config",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn7d-jetnpd.md",
      "page": "/hosts/sn7d-jetnpd/"
    },
    {
      "id": "sn1_1f0ccb.videos",
      "title": "Video library copy",
      "kind": "resource",
      "inventory_id": "resource-video-library-copy",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn1-1f0ccb.md",
      "page": "/hosts/sn1-1f0ccb/"
    },
    {
      "id": "sn1_1f0ccb.received",
      "title": "Receiver log",
      "kind": "resource",
      "inventory_id": "resource-webhook-log",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn1-1f0ccb.md",
      "page": "/hosts/sn1-1f0ccb/"
    },
    {
      "id": "sn7d_jetnpd.videos",
      "title": "Original video library",
      "kind": "resource",
      "inventory_id": "resource-nvr-video-library",
      "status": "observed",
      "evidence": [
        "test-bed-discovery",
        "test-bed-runs"
      ],
      "source_page": "src/content/docs/hosts/sn7d-jetnpd.md",
      "page": "/hosts/sn7d-jetnpd/"
    }
  ],
  "edges": [
    {
      "source": "sn1_1f0ccb.simulator",
      "target": "sn1_1f0ccb.videos",
      "label": "Clips and path state",
      "relationships": [
        {
          "source": "sn1_1f0ccb.simulator",
          "target": "sn1_1f0ccb.videos",
          "kind": "reads",
          "label": "Clips and path state"
        }
      ]
    },
    {
      "source": "sn1_1f0ccb.receiver",
      "target": "sn1_1f0ccb.received",
      "label": "One JSON line per request",
      "relationships": [
        {
          "source": "sn1_1f0ccb.receiver",
          "target": "sn1_1f0ccb.received",
          "kind": "writes",
          "label": "One JSON line per request"
        }
      ]
    },
    {
      "source": "sn7d_jetnpd.search_engine",
      "target": "sn1_1f0ccb.receiver",
      "label": "HTTP 8090 webhook actions",
      "relationships": [
        {
          "source": "sn7d_jetnpd.search_engine",
          "target": "sn1_1f0ccb.receiver",
          "kind": "connects",
          "label": "HTTP 8090 webhook actions"
        }
      ]
    },
    {
      "source": "sn7d_jetnpd.cloud_link",
      "target": "spot_cloud",
      "label": "Tunnel; certificate renewal",
      "relationships": [
        {
          "source": "sn7d_jetnpd.cloud_link",
          "target": "spot_cloud",
          "kind": "connects",
          "label": "Tunnel; certificate renewal"
        }
      ]
    },
    {
      "source": "sn7d_jetnpd.cloud_link",
      "target": "sn7d_jetnpd.identity",
      "label": "Certificates",
      "relationships": [
        {
          "source": "sn7d_jetnpd.cloud_link",
          "target": "sn7d_jetnpd.identity",
          "kind": "reads",
          "label": "Certificates"
        }
      ]
    },
    {
      "source": "spot_cloud",
      "target": "sn7d_jetnpd.config",
      "label": "Cameras and agents on every product change",
      "relationships": [
        {
          "source": "spot_cloud",
          "target": "sn7d_jetnpd.config",
          "kind": "writes",
          "label": "Cameras and agents on every product change"
        }
      ]
    },
    {
      "source": "sn7d_jetnpd.search_engine",
      "target": "sn7d_jetnpd.config",
      "label": "iot-config.json, ai-config.json",
      "relationships": [
        {
          "source": "sn7d_jetnpd.search_engine",
          "target": "sn7d_jetnpd.config",
          "kind": "reads",
          "label": "iot-config.json, ai-config.json"
        }
      ]
    }
  ]
}
