{
  "type": "excalidraw",
  "version": 2,
  "source": "infra-field-guide local editable architecture",
  "elements": [
    {
      "id": "client-zone",
      "type": "rectangle",
      "x": 40,
      "y": 140,
      "width": 355,
      "height": 440,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 3,
      "version": 1,
      "versionNonce": 3,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "访问者",
        "responsibility": "浏览器或获准客户端",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "cloud-zone",
      "type": "rectangle",
      "x": 435,
      "y": 140,
      "width": 630,
      "height": 440,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 6,
      "version": 1,
      "versionNonce": 6,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "Cloudflare",
        "responsibility": "域名记录、访问策略、edge",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "origin-zone",
      "type": "rectangle",
      "x": 1105,
      "y": 140,
      "width": 455,
      "height": 930,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 9,
      "version": 1,
      "versionNonce": 9,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "你控制的 origin",
        "responsibility": "VPS 或 NAT 后的本机；此图二选一",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "acceptance",
      "type": "rectangle",
      "x": 40,
      "y": 625,
      "width": 1025,
      "height": 445,
      "angle": 0,
      "strokeColor": "#a9d4e6",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 45,
      "version": 1,
      "versionNonce": 45,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "按路径验收 · 一层的成功不能替下一层作证",
        "responsibility": "检查来自获准用户，也检查不该获准的用户。",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "dns-lookup",
      "type": "arrow",
      "x": 220,
      "y": 375,
      "width": 260,
      "height": 100,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "dotted",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 26,
      "version": 1,
      "versionNonce": 26,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -100
        ],
        [
          260,
          -100
        ]
      ],
      "startBinding": {
        "elementId": "client",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "dns-record",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "client",
        "destination": "dns-record",
        "payload": "DNS 查询与记录结果定位入口",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "client-https",
      "type": "arrow",
      "x": 365,
      "y": 445,
      "width": 115,
      "height": 0,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 29,
      "version": 1,
      "versionNonce": 29,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          115,
          0
        ]
      ],
      "startBinding": {
        "elementId": "client",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "access",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "client",
        "destination": "access",
        "payload": "HTTPS 请求进入 Access 策略",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "policy-allow",
      "type": "arrow",
      "x": 715,
      "y": 445,
      "width": 55,
      "height": 0,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 32,
      "version": 1,
      "versionNonce": 32,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          55,
          0
        ]
      ],
      "startBinding": {
        "elementId": "access",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "edge",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "access",
        "destination": "edge",
        "payload": "获准后转交请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "connect-tunnel",
      "type": "arrow",
      "x": 1335,
      "y": 375,
      "width": 440,
      "height": 35,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "dashed",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 33,
      "version": 1,
      "versionNonce": 33,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          -35
        ],
        [
          -440,
          -35
        ],
        [
          -440,
          0
        ]
      ],
      "startBinding": {
        "elementId": "cloudflared",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "edge",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "cloudflared",
        "destination": "edge",
        "payload": "cloudflared 主动建立到 edge 的持久连接",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "forward-request",
      "type": "arrow",
      "x": 1015,
      "y": 460,
      "width": 125,
      "height": 0,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 36,
      "version": 1,
      "versionNonce": 36,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          125,
          0
        ]
      ],
      "startBinding": {
        "elementId": "edge",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "cloudflared",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "edge",
        "destination": "cloudflared",
        "payload": "在已经建立的 Tunnel 中传入请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "forward-origin",
      "type": "arrow",
      "x": 1332,
      "y": 515,
      "width": 0,
      "height": 160,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 39,
      "version": 1,
      "versionNonce": 39,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          160
        ]
      ],
      "startBinding": {
        "elementId": "cloudflared",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "app-origin",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "cloudflared",
        "destination": "app-origin",
        "payload": "向本地应用转发 HTTP 请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "origin-write",
      "type": "arrow",
      "x": 1332,
      "y": 815,
      "width": 0,
      "height": 110,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2.5,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 42,
      "version": 1,
      "versionNonce": 42,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          110
        ]
      ],
      "startBinding": {
        "elementId": "app-origin",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "origin-data",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "app-origin",
        "destination": "origin-data",
        "payload": "应用执行自己授权的数据读写",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "title",
      "type": "text",
      "x": 40,
      "y": 28,
      "width": 1520,
      "height": 45.900000000000006,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 1,
      "version": 1,
      "versionNonce": 1,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 34,
      "fontFamily": 2,
      "text": "公网入站 · DNS 定位入口，Access 决定谁可进入",
      "originalText": "公网入站 · DNS 定位入口，Access 决定谁可进入",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false,
        "guide": {
          "title": "公网入站 · DNS 定位入口，Access 决定谁可进入",
          "description": "参考：example.com → Cloudflare Access / edge → Tunnel → origin；家庭侧无需开放公网入站端口。",
          "width": 1600,
          "height": 1190,
          "evidence": [
            "../07-network-and-proxies.md",
            "../09-private-access.md",
            "../05-vps-to-vps.md"
          ],
          "state": {
            "canonical": "origin 应用自己的用户权限与正式数据",
            "writers": "通过应用授权的请求与独立后台 writer",
            "receipts": "DNS、Access拒绝/允许、connector、origin与真实client分别验收"
          },
          "question": "cloudflared 向外建立连接时，请求如何向内到达应用？",
          "status": "reference-model"
        }
      }
    },
    {
      "id": "subtitle",
      "type": "text",
      "x": 40,
      "y": 82,
      "width": 1520,
      "height": 25.650000000000002,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 2,
      "version": 1,
      "versionNonce": 2,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 19,
      "fontFamily": 2,
      "text": "参考：example.com → Cloudflare Access / edge → Tunnel → origin；家庭侧无需开放公网入站端口。",
      "originalText": "参考：example.com → Cloudflare Access / edge → Tunnel → origin；家庭侧无需开放公网入站端口。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "client-zone-heading",
      "type": "text",
      "x": 60,
      "y": 155,
      "width": 315,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 4,
      "version": 1,
      "versionNonce": 4,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "访问者",
      "originalText": "访问者",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "client-zone-sub",
      "type": "text",
      "x": 60,
      "y": 189,
      "width": 315,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 5,
      "version": 1,
      "versionNonce": 5,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "浏览器或获准客户端",
      "originalText": "浏览器或获准客户端",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "cloud-zone-heading",
      "type": "text",
      "x": 455,
      "y": 155,
      "width": 590,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 7,
      "version": 1,
      "versionNonce": 7,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "Cloudflare",
      "originalText": "Cloudflare",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "cloud-zone-sub",
      "type": "text",
      "x": 455,
      "y": 189,
      "width": 590,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 8,
      "version": 1,
      "versionNonce": 8,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "域名记录、访问策略、edge",
      "originalText": "域名记录、访问策略、edge",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "origin-zone-heading",
      "type": "text",
      "x": 1125,
      "y": 155,
      "width": 415,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 10,
      "version": 1,
      "versionNonce": 10,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "你控制的 origin",
      "originalText": "你控制的 origin",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "origin-zone-sub",
      "type": "text",
      "x": 1125,
      "y": 189,
      "width": 415,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 11,
      "version": 1,
      "versionNonce": 11,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "VPS 或 NAT 后的本机；此图二选一",
      "originalText": "VPS 或 NAT 后的本机；此图二选一",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "client",
      "type": "rectangle",
      "x": 70,
      "y": 375,
      "width": 295,
      "height": 140,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 12,
      "version": 1,
      "versionNonce": 12,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "client-text",
          "type": "text"
        },
        {
          "id": "dns-lookup",
          "type": "arrow"
        },
        {
          "id": "client-https",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "浏览器 / 客户端",
        "responsibility": "先查询 DNS / 随后发 HTTPS 请求",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "client-text",
      "type": "text",
      "x": 88,
      "y": 402.5,
      "width": 259,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 13,
      "version": 1,
      "versionNonce": 13,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "浏览器 / 客户端\n先查询 DNS\n随后发 HTTPS 请求",
      "originalText": "浏览器 / 客户端\n先查询 DNS\n随后发 HTTPS 请求",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "client",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "dns-record",
      "type": "rectangle",
      "x": 480,
      "y": 230,
      "width": 535,
      "height": 90,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 14,
      "version": 1,
      "versionNonce": 14,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "dns-record-text",
          "type": "text"
        },
        {
          "id": "dns-lookup",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "DNS 记录 · example.com",
        "responsibility": "定位 edge；DNS 记录不承载网页请求",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "dns-record-text",
      "type": "text",
      "x": 498,
      "y": 246.0,
      "width": 499,
      "height": 54.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 15,
      "version": 1,
      "versionNonce": 15,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "DNS 记录 · example.com\n定位 edge；DNS 记录不承载网页请求",
      "originalText": "DNS 记录 · example.com\n定位 edge；DNS 记录不承载网页请求",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "dns-record",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "access",
      "type": "rectangle",
      "x": 480,
      "y": 375,
      "width": 235,
      "height": 140,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 16,
      "version": 1,
      "versionNonce": 16,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "access-text",
          "type": "text"
        },
        {
          "id": "client-https",
          "type": "arrow"
        },
        {
          "id": "policy-allow",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "Access 策略",
        "responsibility": "身份 / service token / 明确允许或拒绝",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "access-text",
      "type": "text",
      "x": 498,
      "y": 402.5,
      "width": 199,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 17,
      "version": 1,
      "versionNonce": 17,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "Access 策略\n身份 / service token\n明确允许或拒绝",
      "originalText": "Access 策略\n身份 / service token\n明确允许或拒绝",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "access",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "edge",
      "type": "rectangle",
      "x": 770,
      "y": 375,
      "width": 245,
      "height": 140,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 18,
      "version": 1,
      "versionNonce": 18,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "edge-text",
          "type": "text"
        },
        {
          "id": "policy-allow",
          "type": "arrow"
        },
        {
          "id": "connect-tunnel",
          "type": "arrow"
        },
        {
          "id": "forward-request",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "Cloudflare edge",
        "responsibility": "经已建立的 Tunnel / 转发获准请求",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "edge-text",
      "type": "text",
      "x": 788,
      "y": 402.5,
      "width": 209,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 19,
      "version": 1,
      "versionNonce": 19,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "Cloudflare edge\n经已建立的 Tunnel\n转发获准请求",
      "originalText": "Cloudflare edge\n经已建立的 Tunnel\n转发获准请求",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "edge",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "cloudflared",
      "type": "rectangle",
      "x": 1140,
      "y": 375,
      "width": 385,
      "height": 140,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 20,
      "version": 1,
      "versionNonce": 20,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "cloudflared-text",
          "type": "text"
        },
        {
          "id": "connect-tunnel",
          "type": "arrow"
        },
        {
          "id": "forward-request",
          "type": "arrow"
        },
        {
          "id": "forward-origin",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "cloudflared connector",
        "responsibility": "origin 主动向 edge 建立连接 / Tunnel 不自动创建 Access 策略",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "cloudflared-text",
      "type": "text",
      "x": 1158,
      "y": 402.5,
      "width": 349,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 21,
      "version": 1,
      "versionNonce": 21,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "cloudflared connector\norigin 主动向 edge 建立连接\nTunnel 不自动创建 Access 策略",
      "originalText": "cloudflared connector\norigin 主动向 edge 建立连接\nTunnel 不自动创建 Access 策略",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "cloudflared",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "app-origin",
      "type": "rectangle",
      "x": 1140,
      "y": 675,
      "width": 385,
      "height": 140,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 22,
      "version": 1,
      "versionNonce": 22,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "app-origin-text",
          "type": "text"
        },
        {
          "id": "forward-origin",
          "type": "arrow"
        },
        {
          "id": "origin-write",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "应用 origin · loopback",
        "responsibility": "仍要验证应用身份与操作权限 / 同机本地 HTTP 是独立一跳",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "app-origin-text",
      "type": "text",
      "x": 1158,
      "y": 702.5,
      "width": 349,
      "height": 81.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 23,
      "version": 1,
      "versionNonce": 23,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "应用 origin · loopback\n仍要验证应用身份与操作权限\n同机本地 HTTP 是独立一跳",
      "originalText": "应用 origin · loopback\n仍要验证应用身份与操作权限\n同机本地 HTTP 是独立一跳",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "app-origin",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "origin-data",
      "type": "rectangle",
      "x": 1140,
      "y": 925,
      "width": 385,
      "height": 110,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#e9f7fc",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 24,
      "version": 1,
      "versionNonce": 24,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "origin-data-text",
          "type": "text"
        },
        {
          "id": "origin-write",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "数据库 / 附件",
        "responsibility": "只有应用授予的操作可写入",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "origin-data-text",
      "type": "text",
      "x": 1158,
      "y": 951.0,
      "width": 349,
      "height": 54.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 25,
      "version": 1,
      "versionNonce": 25,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "数据库 / 附件\n只有应用授予的操作可写入",
      "originalText": "数据库 / 附件\n只有应用授予的操作可写入",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "origin-data",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "dns-lookup-label-bg",
      "type": "rectangle",
      "x": 251,
      "y": 236,
      "width": 217,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 27,
      "version": 1,
      "versionNonce": 27,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "dns-lookup-label",
      "type": "text",
      "x": 256,
      "y": 238,
      "width": 207,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 28,
      "version": 1,
      "versionNonce": 28,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "查询 / 解析",
      "originalText": "查询 / 解析",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "client-https-label-bg",
      "type": "rectangle",
      "x": 365,
      "y": 398,
      "width": 115,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 30,
      "version": 1,
      "versionNonce": 30,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "client-https-label",
      "type": "text",
      "x": 370,
      "y": 400,
      "width": 105,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 31,
      "version": 1,
      "versionNonce": 31,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "HTTPS",
      "originalText": "HTTPS",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "connect-tunnel-label-bg",
      "type": "rectangle",
      "x": 1035,
      "y": 282,
      "width": 360,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 34,
      "version": 1,
      "versionNonce": 34,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "connect-tunnel-label",
      "type": "text",
      "x": 1040,
      "y": 284,
      "width": 350,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 35,
      "version": 1,
      "versionNonce": 35,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "连接建立：origin → edge",
      "originalText": "连接建立：origin → edge",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "forward-request-label-bg",
      "type": "rectangle",
      "x": 1020,
      "y": 481,
      "width": 114,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 37,
      "version": 1,
      "versionNonce": 37,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "forward-request-label",
      "type": "text",
      "x": 1025,
      "y": 483,
      "width": 104,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 38,
      "version": 1,
      "versionNonce": 38,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "请求 →",
      "originalText": "请求 →",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "forward-origin-label-bg",
      "type": "rectangle",
      "x": 1193,
      "y": 577,
      "width": 277,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 40,
      "version": 1,
      "versionNonce": 40,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "forward-origin-label",
      "type": "text",
      "x": 1198,
      "y": 579,
      "width": 267,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 41,
      "version": 1,
      "versionNonce": 41,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "在 origin 内转交请求",
      "originalText": "在 origin 内转交请求",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "origin-write-label-bg",
      "type": "rectangle",
      "x": 1190,
      "y": 851,
      "width": 285,
      "height": 26.950000000000003,
      "angle": 0,
      "strokeColor": "#ffffff",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 43,
      "version": 1,
      "versionNonce": 43,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "origin-write-label",
      "type": "text",
      "x": 1195,
      "y": 853,
      "width": 275,
      "height": 22.950000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 44,
      "version": 1,
      "versionNonce": 44,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "应用权限约束读写",
      "originalText": "应用权限约束读写",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "acceptance-heading",
      "type": "text",
      "x": 60,
      "y": 640,
      "width": 985,
      "height": 29.700000000000003,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 46,
      "version": 1,
      "versionNonce": 46,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 22,
      "fontFamily": 2,
      "text": "按路径验收 · 一层的成功不能替下一层作证",
      "originalText": "按路径验收 · 一层的成功不能替下一层作证",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "acceptance-sub",
      "type": "text",
      "x": 60,
      "y": 674,
      "width": 985,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 47,
      "version": 1,
      "versionNonce": 47,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "检查来自获准用户，也检查不该获准的用户。",
      "originalText": "检查来自获准用户，也检查不该获准的用户。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "checks",
      "type": "rectangle",
      "x": 70,
      "y": 715,
      "width": 965,
      "height": 140,
      "angle": 0,
      "strokeColor": "#6ab9db",
      "backgroundColor": "#ffffff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 48,
      "version": 1,
      "versionNonce": 48,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "checks-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "DNS → Access → Tunnel → origin → client",
        "responsibility": "DNS 是否指向预期入口？未获准身份是否被拒？ / connector 在线只是中间证据；检查应用返回与真实客户端操作。 / 不要用一次 edge HTTP 200 推断数据库、后台任务或账号都正常。",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "checks-text",
      "type": "text",
      "x": 88,
      "y": 729.0,
      "width": 929,
      "height": 108.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 49,
      "version": 1,
      "versionNonce": 49,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "DNS → Access → Tunnel → origin → client\nDNS 是否指向预期入口？未获准身份是否被拒？\nconnector 在线只是中间证据；检查应用返回与真实客户端操作。\n不要用一次 edge HTTP 200 推断数据库、后台任务或账号都正常。",
      "originalText": "DNS → Access → Tunnel → origin → client\nDNS 是否指向预期入口？未获准身份是否被拒？\nconnector 在线只是中间证据；检查应用返回与真实客户端操作。\n不要用一次 edge HTTP 200 推断数据库、后台任务或账号都正常。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "checks",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "ingress-limit",
      "type": "rectangle",
      "x": 70,
      "y": 890,
      "width": 965,
      "height": 145,
      "angle": 0,
      "strokeColor": "#e7c979",
      "backgroundColor": "#fff5d9",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": {
        "type": 3
      },
      "seed": 50,
      "version": 1,
      "versionNonce": 50,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "ingress-limit-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "入站能力与出站能力独立",
        "responsibility": "本方案用公开 hostname 加身份门禁；无需家庭公网 IP。 / 直接公开 VPS 端口是另一种入口，需分别配置云防火墙和主机防火墙。 / 添加 Tunnel 不会改变应用访问第三方 API 的一般出站 IP。",
        "evidence": [
          "../07-network-and-proxies.md",
          "../09-private-access.md",
          "../05-vps-to-vps.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "ingress-limit-text",
      "type": "text",
      "x": 88,
      "y": 906.5,
      "width": 929,
      "height": 108.0,
      "angle": 0,
      "strokeColor": "#163a5f",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 51,
      "version": 1,
      "versionNonce": 51,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "入站能力与出站能力独立\n本方案用公开 hostname 加身份门禁；无需家庭公网 IP。\n直接公开 VPS 端口是另一种入口，需分别配置云防火墙和主机防火墙。\n添加 Tunnel 不会改变应用访问第三方 API 的一般出站 IP。",
      "originalText": "入站能力与出站能力独立\n本方案用公开 hostname 加身份门禁；无需家庭公网 IP。\n直接公开 VPS 端口是另一种入口，需分别配置云防火墙和主机防火墙。\n添加 Tunnel 不会改变应用访问第三方 API 的一般出站 IP。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "ingress-limit",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "footer",
      "type": "text",
      "x": 40,
      "y": 1148,
      "width": 1520,
      "height": 21.6,
      "angle": 0,
      "strokeColor": "#365775",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "strokeStyle": "solid",
      "roughness": 0,
      "opacity": 100,
      "groupIds": [],
      "frameId": null,
      "index": null,
      "roundness": null,
      "seed": 52,
      "version": 1,
      "versionNonce": 52,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 16,
      "fontFamily": 2,
      "text": "实线：请求或数据　虚线：Tunnel 连接建立　点线：DNS 查询。这里的 Access 私有应用方案不代表所有公共网站必须使用同一策略。",
      "originalText": "实线：请求或数据　虚线：Tunnel 连接建立　点线：DNS 查询。这里的 Access 私有应用方案不代表所有公共网站必须使用同一策略。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    }
  ],
  "appState": {
    "viewBackgroundColor": "#ffffff",
    "gridSize": null
  },
  "files": {}
}
