{
  "type": "excalidraw",
  "version": 2,
  "source": "infra-field-guide local editable architecture",
  "elements": [
    {
      "id": "local",
      "type": "rectangle",
      "x": 40,
      "y": 160,
      "width": 410,
      "height": 800,
      "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": "本机 · 可在 NAT / CGNAT 后",
        "responsibility": "你拥有的 Mac；本地使用与私有访问",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "vps",
      "type": "rectangle",
      "x": 480,
      "y": 160,
      "width": 705,
      "height": 800,
      "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": "VPS · 你选择的运行位置",
        "responsibility": "进程由 systemd 等明确 owner 管理",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "outside",
      "type": "rectangle",
      "x": 1215,
      "y": 160,
      "width": 425,
      "height": 800,
      "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": "外部网络与服务",
        "responsibility": "入口、DNS 与第三方 API 各有职责",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "operations",
      "type": "rectangle",
      "x": 40,
      "y": 1000,
      "width": 1600,
      "height": 205,
      "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": 73,
      "version": 1,
      "versionNonce": 73,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "region",
        "name": "运行与恢复 · 覆盖上面每一条路径",
        "responsibility": "健康快照、服务存活、网络连通与真实用户成功是不同证据",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "local-admin",
      "type": "arrow",
      "x": 415,
      "y": 300,
      "width": 105,
      "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": 40,
      "version": 1,
      "versionNonce": 40,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          105,
          0
        ]
      ],
      "startBinding": {
        "elementId": "local-operator",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "remote-worker",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "local-operator",
        "destination": "remote-worker",
        "payload": "在授权范围内通过 SSH 管理 VPS",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "worker-overlay",
      "type": "arrow",
      "x": 775,
      "y": 300,
      "width": 75,
      "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": 43,
      "version": 1,
      "versionNonce": 43,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          75,
          0
        ]
      ],
      "startBinding": {
        "elementId": "remote-worker",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "tailnet-grant",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "remote-worker",
        "destination": "tailnet-grant",
        "payload": "私有加密链路",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "overlay-mac",
      "type": "arrow",
      "x": 995,
      "y": 355,
      "width": 750,
      "height": 120,
      "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": 44,
      "version": 1,
      "versionNonce": 44,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          55
        ],
        [
          -750,
          55
        ],
        [
          -750,
          120
        ]
      ],
      "startBinding": {
        "elementId": "tailnet-grant",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "mac-ssh",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "tailnet-grant",
        "destination": "mac-ssh",
        "payload": "到 Mac 的 TCP22，网络 grant 之后还需 OpenSSH 认证",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "ssh-permissions",
      "type": "arrow",
      "x": 245,
      "y": 590,
      "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": 47,
      "version": 1,
      "versionNonce": 47,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          110
        ]
      ],
      "startBinding": {
        "elementId": "mac-ssh",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "mac-project",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "mac-ssh",
        "destination": "mac-project",
        "payload": "以 Mac 登录用户访问文件与 runtime",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "dns-query",
      "type": "arrow",
      "x": 1420,
      "y": 300,
      "width": 30,
      "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": 50,
      "version": 1,
      "versionNonce": 50,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          30,
          0
        ]
      ],
      "startBinding": {
        "elementId": "browser",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "dns",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "browser",
        "destination": "dns",
        "payload": "DNS 查询定位入口",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "https-request",
      "type": "arrow",
      "x": 1335,
      "y": 355,
      "width": 0,
      "height": 120,
      "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": 51,
      "version": 1,
      "versionNonce": 51,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          120
        ]
      ],
      "startBinding": {
        "elementId": "browser",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "edge-access",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "browser",
        "destination": "edge-access",
        "payload": "客户端 HTTPS 请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "tunnel-connect",
      "type": "arrow",
      "x": 1140,
      "y": 505,
      "width": 110,
      "height": 0,
      "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": 54,
      "version": 1,
      "versionNonce": 54,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          110,
          0
        ]
      ],
      "startBinding": {
        "elementId": "connector",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "edge-access",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "connector",
        "destination": "edge-access",
        "payload": "cloudflared 主动建立 Tunnel 连接",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "tunnel-request",
      "type": "arrow",
      "x": 1250,
      "y": 555,
      "width": 110,
      "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": 57,
      "version": 1,
      "versionNonce": 57,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -110,
          0
        ]
      ],
      "startBinding": {
        "elementId": "edge-access",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "connector",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "edge-access",
        "destination": "connector",
        "payload": "通过现有 Tunnel 转发请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "origin-request",
      "type": "arrow",
      "x": 850,
      "y": 533,
      "width": 75,
      "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": 60,
      "version": 1,
      "versionNonce": 60,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -75,
          0
        ]
      ],
      "startBinding": {
        "elementId": "connector",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "app",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "connector",
        "destination": "app",
        "payload": "本地 HTTP 请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "app-write",
      "type": "arrow",
      "x": 645,
      "y": 590,
      "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": 61,
      "version": 1,
      "versionNonce": 61,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          0,
          110
        ]
      ],
      "startBinding": {
        "elementId": "app",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "data",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "app",
        "destination": "data",
        "payload": "应用按权限读写正式数据",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "job-write",
      "type": "arrow",
      "x": 850,
      "y": 760,
      "width": 75,
      "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": 64,
      "version": 1,
      "versionNonce": 64,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -75,
          0
        ]
      ],
      "startBinding": {
        "elementId": "writers",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "data",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "writers",
        "destination": "data",
        "payload": "后台任务也可写数据",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "app-outbound",
      "type": "arrow",
      "x": 520,
      "y": 548,
      "width": 355,
      "height": 357,
      "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": 65,
      "version": 1,
      "versionNonce": 65,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          -25,
          0
        ],
        [
          -25,
          357
        ],
        [
          330,
          357
        ]
      ],
      "startBinding": {
        "elementId": "app",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "egress",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "app",
        "destination": "egress",
        "payload": "应用发出的请求由实际代理设置和路由选择出口",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "api-request",
      "type": "arrow",
      "x": 1140,
      "y": 904,
      "width": 110,
      "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": 68,
      "version": 1,
      "versionNonce": 68,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "points": [
        [
          0,
          0
        ],
        [
          110,
          0
        ]
      ],
      "startBinding": {
        "elementId": "egress",
        "focus": 0,
        "gap": 1
      },
      "endBinding": {
        "elementId": "external-api",
        "focus": 0,
        "gap": 1
      },
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "elbowed": false,
      "customData": {
        "kind": "edge",
        "source": "egress",
        "destination": "external-api",
        "payload": "外部 API 请求",
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "title",
      "type": "text",
      "x": 40,
      "y": 28,
      "width": 1600,
      "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": "基础设施总览 · 三条网络路径，一份数据权威",
      "originalText": "基础设施总览 · 三条网络路径，一份数据权威",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false,
        "guide": {
          "title": "基础设施总览 · 三条网络路径，一份数据权威",
          "description": "合成参考架构 · 展示可组合的教程方案，不表示本仓库部署了这些服务。",
          "width": 1680,
          "height": 1270,
          "evidence": [
            "../01-vps-basics.md",
            "../03-operations.md",
            "../04-local-to-vps.md",
            "../05-vps-to-vps.md",
            "../07-network-and-proxies.md",
            "../09-private-access.md"
          ],
          "state": {
            "canonical": "应用数据库与附件",
            "writers": "应用 + 已盘点的后台 writer；迁移时只开放一侧",
            "receipts": "真实 client、应用日志、一致备份恢复"
          },
          "question": "本机、VPS、公网入口和出口分别承担什么？",
          "status": "reference-model"
        }
      }
    },
    {
      "id": "subtitle",
      "type": "text",
      "x": 40,
      "y": 82,
      "width": 1600,
      "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": "合成参考架构 · 展示可组合的教程方案，不表示本仓库部署了这些服务。",
      "originalText": "合成参考架构 · 展示可组合的教程方案，不表示本仓库部署了这些服务。",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "local-heading",
      "type": "text",
      "x": 60,
      "y": 175,
      "width": 370,
      "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": "本机 · 可在 NAT / CGNAT 后",
      "originalText": "本机 · 可在 NAT / CGNAT 后",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "local-sub",
      "type": "text",
      "x": 60,
      "y": 209,
      "width": 370,
      "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": "你拥有的 Mac；本地使用与私有访问",
      "originalText": "你拥有的 Mac；本地使用与私有访问",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "vps-heading",
      "type": "text",
      "x": 500,
      "y": 175,
      "width": 665,
      "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": "VPS · 你选择的运行位置",
      "originalText": "VPS · 你选择的运行位置",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "vps-sub",
      "type": "text",
      "x": 500,
      "y": 209,
      "width": 665,
      "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": "进程由 systemd 等明确 owner 管理",
      "originalText": "进程由 systemd 等明确 owner 管理",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "outside-heading",
      "type": "text",
      "x": 1235,
      "y": 175,
      "width": 385,
      "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": "外部网络与服务",
      "originalText": "外部网络与服务",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 700,
        "boldFirstLine": false
      }
    },
    {
      "id": "outside-sub",
      "type": "text",
      "x": 1235,
      "y": 209,
      "width": 385,
      "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": "入口、DNS 与第三方 API 各有职责",
      "originalText": "入口、DNS 与第三方 API 各有职责",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "local-operator",
      "type": "rectangle",
      "x": 75,
      "y": 245,
      "width": 340,
      "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": 12,
      "version": 1,
      "versionNonce": 12,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "local-operator-text",
          "type": "text"
        },
        {
          "id": "local-admin",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "本机用户 / 本机 agent",
        "responsibility": "在授权范围内配置与操作",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "local-operator-text",
      "type": "text",
      "x": 93,
      "y": 271.0,
      "width": 304,
      "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": 13,
      "version": 1,
      "versionNonce": 13,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "本机用户 / 本机 agent\n在授权范围内配置与操作",
      "originalText": "本机用户 / 本机 agent\n在授权范围内配置与操作",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "local-operator",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "remote-worker",
      "type": "rectangle",
      "x": 520,
      "y": 245,
      "width": 255,
      "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": 14,
      "version": 1,
      "versionNonce": 14,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "remote-worker-text",
          "type": "text"
        },
        {
          "id": "local-admin",
          "type": "arrow"
        },
        {
          "id": "worker-overlay",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "远程 worker",
        "responsibility": "VPS 上的实际 OS 用户",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "remote-worker-text",
      "type": "text",
      "x": 538,
      "y": 271.0,
      "width": 219,
      "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": "远程 worker\nVPS 上的实际 OS 用户",
      "originalText": "远程 worker\nVPS 上的实际 OS 用户",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "remote-worker",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "tailnet-grant",
      "type": "rectangle",
      "x": 850,
      "y": 245,
      "width": 290,
      "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": 16,
      "version": 1,
      "versionNonce": 16,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "tailnet-grant-text",
          "type": "text"
        },
        {
          "id": "worker-overlay",
          "type": "arrow"
        },
        {
          "id": "overlay-mac",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "Tailscale 私有控制",
        "responsibility": "grant 允许指定源 → TCP22",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "tailnet-grant-text",
      "type": "text",
      "x": 868,
      "y": 271.0,
      "width": 254,
      "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": 17,
      "version": 1,
      "versionNonce": 17,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "Tailscale 私有控制\ngrant 允许指定源 → TCP22",
      "originalText": "Tailscale 私有控制\ngrant 允许指定源 → TCP22",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "tailnet-grant",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "mac-ssh",
      "type": "rectangle",
      "x": 75,
      "y": 475,
      "width": 340,
      "height": 115,
      "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": "mac-ssh-text",
          "type": "text"
        },
        {
          "id": "overlay-mac",
          "type": "arrow"
        },
        {
          "id": "ssh-permissions",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "Mac Remote Login",
        "responsibility": "普通 OpenSSH 验 key / 用户",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "mac-ssh-text",
      "type": "text",
      "x": 93,
      "y": 503.5,
      "width": 304,
      "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": 19,
      "version": 1,
      "versionNonce": 19,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "Mac Remote Login\n普通 OpenSSH 验 key / 用户",
      "originalText": "Mac Remote Login\n普通 OpenSSH 验 key / 用户",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "mac-ssh",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "mac-project",
      "type": "rectangle",
      "x": 75,
      "y": 700,
      "width": 340,
      "height": 120,
      "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": "mac-project-text",
          "type": "text"
        },
        {
          "id": "ssh-permissions",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "本机项目与 runtime",
        "responsibility": "OS 权限、TCC、挂载盘仍适用",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "mac-project-text",
      "type": "text",
      "x": 93,
      "y": 731.0,
      "width": 304,
      "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": 21,
      "version": 1,
      "versionNonce": 21,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "本机项目与 runtime\nOS 权限、TCC、挂载盘仍适用",
      "originalText": "本机项目与 runtime\nOS 权限、TCC、挂载盘仍适用",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "mac-project",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "browser",
      "type": "rectangle",
      "x": 1250,
      "y": 245,
      "width": 170,
      "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": 22,
      "version": 1,
      "versionNonce": 22,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "browser-text",
          "type": "text"
        },
        {
          "id": "dns-query",
          "type": "arrow"
        },
        {
          "id": "https-request",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "浏览器 / CLI",
        "responsibility": "真实客户端",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "browser-text",
      "type": "text",
      "x": 1268,
      "y": 271.0,
      "width": 134,
      "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": 23,
      "version": 1,
      "versionNonce": 23,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "浏览器 / CLI\n真实客户端",
      "originalText": "浏览器 / CLI\n真实客户端",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "browser",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "dns",
      "type": "rectangle",
      "x": 1450,
      "y": 245,
      "width": 160,
      "height": 110,
      "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": 24,
      "version": 1,
      "versionNonce": 24,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "dns-text",
          "type": "text"
        },
        {
          "id": "dns-query",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "DNS",
        "responsibility": "定位入口",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "dns-text",
      "type": "text",
      "x": 1468,
      "y": 271.0,
      "width": 124,
      "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": "DNS\n定位入口",
      "originalText": "DNS\n定位入口",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "dns",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "edge-access",
      "type": "rectangle",
      "x": 1250,
      "y": 475,
      "width": 360,
      "height": 115,
      "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": 26,
      "version": 1,
      "versionNonce": 26,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "edge-access-text",
          "type": "text"
        },
        {
          "id": "https-request",
          "type": "arrow"
        },
        {
          "id": "tunnel-connect",
          "type": "arrow"
        },
        {
          "id": "tunnel-request",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "Cloudflare edge + Access",
        "responsibility": "example.com · HTTPS + 访问策略",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "edge-access-text",
      "type": "text",
      "x": 1268,
      "y": 503.5,
      "width": 324,
      "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": 27,
      "version": 1,
      "versionNonce": 27,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "Cloudflare edge + Access\nexample.com · HTTPS + 访问策略",
      "originalText": "Cloudflare edge + Access\nexample.com · HTTPS + 访问策略",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "edge-access",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "connector",
      "type": "rectangle",
      "x": 850,
      "y": 475,
      "width": 290,
      "height": 115,
      "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": 28,
      "version": 1,
      "versionNonce": 28,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "connector-text",
          "type": "text"
        },
        {
          "id": "tunnel-connect",
          "type": "arrow"
        },
        {
          "id": "tunnel-request",
          "type": "arrow"
        },
        {
          "id": "origin-request",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "cloudflared",
        "responsibility": "主动连接 edge；转交请求",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "connector-text",
      "type": "text",
      "x": 868,
      "y": 503.5,
      "width": 254,
      "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": 29,
      "version": 1,
      "versionNonce": 29,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "cloudflared\n主动连接 edge；转交请求",
      "originalText": "cloudflared\n主动连接 edge；转交请求",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "connector",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "app",
      "type": "rectangle",
      "x": 520,
      "y": 475,
      "width": 255,
      "height": 115,
      "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": 30,
      "version": 1,
      "versionNonce": 30,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "app-text",
          "type": "text"
        },
        {
          "id": "origin-request",
          "type": "arrow"
        },
        {
          "id": "app-write",
          "type": "arrow"
        },
        {
          "id": "app-outbound",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "应用 origin",
        "responsibility": "loopback 服务 + 自身鉴权",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "app-text",
      "type": "text",
      "x": 538,
      "y": 503.5,
      "width": 219,
      "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": 31,
      "version": 1,
      "versionNonce": 31,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "应用 origin\nloopback 服务 + 自身鉴权",
      "originalText": "应用 origin\nloopback 服务 + 自身鉴权",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "app",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "data",
      "type": "rectangle",
      "x": 520,
      "y": 700,
      "width": 255,
      "height": 120,
      "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": 32,
      "version": 1,
      "versionNonce": 32,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "data-text",
          "type": "text"
        },
        {
          "id": "app-write",
          "type": "arrow"
        },
        {
          "id": "job-write",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "正式数据库 / 附件",
        "responsibility": "持久状态 · 可恢复的数据",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "data-text",
      "type": "text",
      "x": 538,
      "y": 731.0,
      "width": 219,
      "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": 33,
      "version": 1,
      "versionNonce": 33,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "正式数据库 / 附件\n持久状态 · 可恢复的数据",
      "originalText": "正式数据库 / 附件\n持久状态 · 可恢复的数据",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "data",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "writers",
      "type": "rectangle",
      "x": 850,
      "y": 700,
      "width": 290,
      "height": 120,
      "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": 34,
      "version": 1,
      "versionNonce": 34,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "writers-text",
          "type": "text"
        },
        {
          "id": "job-write",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "后台 writer",
        "responsibility": "job / queue / timer / cron",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "writers-text",
      "type": "text",
      "x": 868,
      "y": 731.0,
      "width": 254,
      "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": 35,
      "version": 1,
      "versionNonce": 35,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "后台 writer\njob / queue / timer / cron",
      "originalText": "后台 writer\njob / queue / timer / cron",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "writers",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "egress",
      "type": "rectangle",
      "x": 850,
      "y": 865,
      "width": 290,
      "height": 75,
      "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": 36,
      "version": 1,
      "versionNonce": 36,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "egress-text",
          "type": "text"
        },
        {
          "id": "app-outbound",
          "type": "arrow"
        },
        {
          "id": "api-request",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "应用请求的实际出口",
        "responsibility": "直连 / 代理 / exit node",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "egress-text",
      "type": "text",
      "x": 868,
      "y": 873.5,
      "width": 254,
      "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": 37,
      "version": 1,
      "versionNonce": 37,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "应用请求的实际出口\n直连 / 代理 / exit node",
      "originalText": "应用请求的实际出口\n直连 / 代理 / exit node",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "egress",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "external-api",
      "type": "rectangle",
      "x": 1250,
      "y": 865,
      "width": 360,
      "height": 75,
      "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": 38,
      "version": 1,
      "versionNonce": 38,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "external-api-text",
          "type": "text"
        },
        {
          "id": "api-request",
          "type": "arrow"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "外部 API",
        "responsibility": "依据实际请求处理身份与权限",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "external-api-text",
      "type": "text",
      "x": 1268,
      "y": 873.5,
      "width": 324,
      "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": 39,
      "version": 1,
      "versionNonce": 39,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "外部 API\n依据实际请求处理身份与权限",
      "originalText": "外部 API\n依据实际请求处理身份与权限",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "external-api",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "local-admin-label-bg",
      "type": "rectangle",
      "x": 417,
      "y": 265,
      "width": 101,
      "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": 41,
      "version": 1,
      "versionNonce": 41,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "local-admin-label",
      "type": "text",
      "x": 422,
      "y": 267,
      "width": 91,
      "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": 42,
      "version": 1,
      "versionNonce": 42,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "SSH",
      "originalText": "SSH",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "overlay-mac-label-bg",
      "type": "rectangle",
      "x": 520,
      "y": 377,
      "width": 370,
      "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": 45,
      "version": 1,
      "versionNonce": 45,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "overlay-mac-label",
      "type": "text",
      "x": 525,
      "y": 379,
      "width": 360,
      "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": 46,
      "version": 1,
      "versionNonce": 46,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "控制路径 · 网络许可 + SSH 身份",
      "originalText": "控制路径 · 网络许可 + SSH 身份",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "ssh-permissions-label-bg",
      "type": "rectangle",
      "x": 82,
      "y": 632,
      "width": 310,
      "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": 48,
      "version": 1,
      "versionNonce": 48,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "ssh-permissions-label",
      "type": "text",
      "x": 87,
      "y": 634,
      "width": 300,
      "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": 49,
      "version": 1,
      "versionNonce": 49,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 17,
      "fontFamily": 2,
      "text": "不是单 repo 沙箱",
      "originalText": "不是单 repo 沙箱",
      "textAlign": "center",
      "verticalAlign": "top",
      "containerId": null,
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": false
      }
    },
    {
      "id": "https-request-label-bg",
      "type": "rectangle",
      "x": 1275,
      "y": 403,
      "width": 125,
      "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": 52,
      "version": 1,
      "versionNonce": 52,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "https-request-label",
      "type": "text",
      "x": 1280,
      "y": 405,
      "width": 115,
      "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": 53,
      "version": 1,
      "versionNonce": 53,
      "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": "tunnel-connect-label-bg",
      "type": "rectangle",
      "x": 1139,
      "y": 444,
      "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": 55,
      "version": 1,
      "versionNonce": 55,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "tunnel-connect-label",
      "type": "text",
      "x": 1144,
      "y": 446,
      "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": 56,
      "version": 1,
      "versionNonce": 56,
      "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": "tunnel-request-label-bg",
      "type": "rectangle",
      "x": 1136,
      "y": 586,
      "width": 118,
      "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": 58,
      "version": 1,
      "versionNonce": 58,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "tunnel-request-label",
      "type": "text",
      "x": 1141,
      "y": 588,
      "width": 108,
      "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": 59,
      "version": 1,
      "versionNonce": 59,
      "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": "app-write-label-bg",
      "type": "rectangle",
      "x": 543,
      "y": 633,
      "width": 203,
      "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": 62,
      "version": 1,
      "versionNonce": 62,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "app-write-label",
      "type": "text",
      "x": 548,
      "y": 635,
      "width": 193,
      "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": 63,
      "version": 1,
      "versionNonce": 63,
      "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": "app-outbound-label-bg",
      "type": "rectangle",
      "x": 540,
      "y": 863,
      "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": 66,
      "version": 1,
      "versionNonce": 66,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "app-outbound-label",
      "type": "text",
      "x": 545,
      "y": 865,
      "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": 67,
      "version": 1,
      "versionNonce": 67,
      "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": "api-request-label-bg",
      "type": "rectangle",
      "x": 1145,
      "y": 859,
      "width": 102,
      "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": 69,
      "version": 1,
      "versionNonce": 69,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {}
    },
    {
      "id": "api-request-label",
      "type": "text",
      "x": 1150,
      "y": 861,
      "width": 92,
      "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": 70,
      "version": 1,
      "versionNonce": 70,
      "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": "availability",
      "type": "rectangle",
      "x": 75,
      "y": 865,
      "width": 340,
      "height": 75,
      "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": 71,
      "version": 1,
      "versionNonce": 71,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "availability-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "持续可用有条件",
        "responsibility": "供电、登录状态、睡眠与网络",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "availability-text",
      "type": "text",
      "x": 93,
      "y": 873.5,
      "width": 304,
      "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": 72,
      "version": 1,
      "versionNonce": 72,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "持续可用有条件\n供电、登录状态、睡眠与网络",
      "originalText": "持续可用有条件\n供电、登录状态、睡眠与网络",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "availability",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "operations-heading",
      "type": "text",
      "x": 60,
      "y": 1015,
      "width": 1560,
      "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": 74,
      "version": 1,
      "versionNonce": 74,
      "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": "operations-sub",
      "type": "text",
      "x": 60,
      "y": 1049,
      "width": 1560,
      "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": 75,
      "version": 1,
      "versionNonce": 75,
      "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": "observability",
      "type": "rectangle",
      "x": 65,
      "y": 1090,
      "width": 475,
      "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": 76,
      "version": 1,
      "versionNonce": 76,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "observability-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "分层监控与验收",
        "responsibility": "host → service → origin → edge → client",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "observability-text",
      "type": "text",
      "x": 83,
      "y": 1106.0,
      "width": 439,
      "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": 77,
      "version": 1,
      "versionNonce": 77,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "分层监控与验收\nhost → service → origin → edge → client",
      "originalText": "分层监控与验收\nhost → service → origin → edge → client",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "observability",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "restore",
      "type": "rectangle",
      "x": 580,
      "y": 1090,
      "width": 490,
      "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": 78,
      "version": 1,
      "versionNonce": 78,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "restore-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "数据 → 一致备份 → 独立恢复",
        "responsibility": "备份要离开故障域，并做 restore 演练",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "restore-text",
      "type": "text",
      "x": 598,
      "y": 1106.0,
      "width": 454,
      "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": 79,
      "version": 1,
      "versionNonce": 79,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "数据 → 一致备份 → 独立恢复\n备份要离开故障域，并做 restore 演练",
      "originalText": "数据 → 一致备份 → 独立恢复\n备份要离开故障域，并做 restore 演练",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "restore",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "migration",
      "type": "rectangle",
      "x": 1110,
      "y": 1090,
      "width": 505,
      "height": 90,
      "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": 80,
      "version": 1,
      "versionNonce": 80,
      "isDeleted": false,
      "boundElements": [
        {
          "id": "migration-text",
          "type": "text"
        }
      ],
      "updated": 0,
      "link": null,
      "locked": false,
      "customData": {
        "kind": "node",
        "name": "迁移 → 两侧冻结 → 目标唯一 writer",
        "responsibility": "首次新写入后，恢复必须覆盖数据差异",
        "evidence": [
          "../01-vps-basics.md",
          "../03-operations.md",
          "../04-local-to-vps.md",
          "../05-vps-to-vps.md",
          "../07-network-and-proxies.md",
          "../09-private-access.md"
        ],
        "evidenceStatus": "reference-model"
      }
    },
    {
      "id": "migration-text",
      "type": "text",
      "x": 1128,
      "y": 1106.0,
      "width": 469,
      "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": 81,
      "version": 1,
      "versionNonce": 81,
      "isDeleted": false,
      "boundElements": null,
      "updated": 0,
      "link": null,
      "locked": false,
      "fontSize": 20,
      "fontFamily": 2,
      "text": "迁移 → 两侧冻结 → 目标唯一 writer\n首次新写入后，恢复必须覆盖数据差异",
      "originalText": "迁移 → 两侧冻结 → 目标唯一 writer\n首次新写入后，恢复必须覆盖数据差异",
      "textAlign": "left",
      "verticalAlign": "top",
      "containerId": "migration",
      "autoResize": false,
      "lineHeight": 1.35,
      "customData": {
        "weight": 400,
        "boldFirstLine": true
      }
    },
    {
      "id": "footer",
      "type": "text",
      "x": 40,
      "y": 1228,
      "width": 1600,
      "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": 82,
      "version": 1,
      "versionNonce": 82,
      "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
      }
    }
  ],
  "appState": {
    "viewBackgroundColor": "#ffffff",
    "gridSize": null
  },
  "files": {}
}
