# NodeService > 边缘节点管理服务 --- ## checkNodeLatestVersion > 检查新版本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/checkNodeLatestVersion` - RPC:`rpc checkNodeLatestVersion (CheckNodeLatestVersionRequest) returns (CheckNodeLatestVersionResponse);` **请求对象 (`CheckNodeLatestVersionRequest`)** ```json { "os": "string", "arch": "string", "currentVersion": "string" } ``` **响应对象 (`CheckNodeLatestVersionResponse`)** ```json { "hasNewVersion": "bool", "newVersion": "string" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/checkNodeLatestVersion" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## copyNodeActionsToNodeCluster > 复制动作设置到集群 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/copyNodeActionsToNodeCluster` - RPC:`rpc copyNodeActionsToNodeCluster(CopyNodeActionsToNodeClusterRequest) returns (RPCSuccess);` **请求对象 (`CopyNodeActionsToNodeClusterRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/copyNodeActionsToNodeCluster" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## copyNodeActionsToNodeGroup > 复制动作设置到分组 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/copyNodeActionsToNodeGroup` - RPC:`rpc copyNodeActionsToNodeGroup(CopyNodeActionsToNodeGroupRequest) returns (RPCSuccess);` **请求对象 (`CopyNodeActionsToNodeGroupRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/copyNodeActionsToNodeGroup" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllEnabledNodes > 所有可用的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllEnabledNodes` - RPC:`rpc countAllEnabledNodes (CountAllEnabledNodesRequest) returns (RPCCountResponse);` **请求对象 (`CountAllEnabledNodesRequest`)** ```json {} ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllEnabledNodes" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllEnabledNodesMatch > 计算匹配的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllEnabledNodesMatch` - RPC:`rpc countAllEnabledNodesMatch (CountAllEnabledNodesMatchRequest) returns (RPCCountResponse);` **请求对象 (`CountAllEnabledNodesMatchRequest`)** ```json { "nodeClusterId": "int64 // 集群ID", "installState": "int32", "activeState": "int32", "keyword": "string // 关键词", "nodeGroupId": "int64", "nodeRegionId": "int64", "level": "int32" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllEnabledNodesMatch" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllEnabledNodesWithNodeGrantId > 计算使用某个认证的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllEnabledNodesWithNodeGrantId` - RPC:`rpc countAllEnabledNodesWithNodeGrantId (CountAllEnabledNodesWithNodeGrantIdRequest) returns (RPCCountResponse);` **请求对象 (`CountAllEnabledNodesWithNodeGrantIdRequest`)** ```json { "nodeGrantId": "int64" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllEnabledNodesWithNodeGrantId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllEnabledNodesWithNodeGroupId > 计算某个节点分组内的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllEnabledNodesWithNodeGroupId` - RPC:`rpc countAllEnabledNodesWithNodeGroupId (CountAllEnabledNodesWithNodeGroupIdRequest) returns (RPCCountResponse);` **请求对象 (`CountAllEnabledNodesWithNodeGroupIdRequest`)** ```json { "nodeGroupId": "int64" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllEnabledNodesWithNodeGroupId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllEnabledNodesWithNodeRegionId > 计算某个区域下的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllEnabledNodesWithNodeRegionId` - RPC:`rpc countAllEnabledNodesWithNodeRegionId (CountAllEnabledNodesWithNodeRegionIdRequest) returns (RPCCountResponse);` **请求对象 (`CountAllEnabledNodesWithNodeRegionIdRequest`)** ```json { "nodeRegionId": "int64" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllEnabledNodesWithNodeRegionId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllNodeRegionInfo > 查找节点区域信息数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllNodeRegionInfo` - RPC:`rpc countAllNodeRegionInfo(CountAllNodeRegionInfoRequest) returns (RPCCountResponse);` **请求对象 (`CountAllNodeRegionInfoRequest`)** ```json { "nodeRegionId": "int64 // 区域ID,可选" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllNodeRegionInfo" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllNotInstalledNodesWithNodeClusterId > 计算没有安装的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllNotInstalledNodesWithNodeClusterId` - RPC:`rpc countAllNotInstalledNodesWithNodeClusterId (CountAllNotInstalledNodesWithNodeClusterIdRequest) returns (RPCCountResponse);` **请求对象 (`CountAllNotInstalledNodesWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllNotInstalledNodesWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countAllUpgradeNodesWithNodeClusterId > 计算需要升级的节点数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countAllUpgradeNodesWithNodeClusterId` - RPC:`rpc countAllUpgradeNodesWithNodeClusterId (CountAllUpgradeNodesWithNodeClusterIdRequest) returns (RPCCountResponse);` **请求对象 (`CountAllUpgradeNodesWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID" } ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countAllUpgradeNodesWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## countNodeInitScript > 查找节点区域信息数量 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/countNodeInitScript` - RPC:`rpc countNodeInitScript(CountNodeInitScriptRequest) returns (RPCCountResponse);` **请求对象 (`CountNodeInitScriptRequest`)** ```json {} ``` **响应对象 (`RPCCountResponse`)** ```json { "count": "int64 // 数量" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/countNodeInitScript" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## createNode > 创建节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/createNode` - RPC:`rpc createNode (CreateNodeRequest) returns (CreateNodeResponse);` **请求对象 (`CreateNodeRequest`)** ```json { "name": "string // 节点名称", "nodeClusterId": "int64 // 节点所属集群", "nodeLogin": "NodeLogin // 节点登录信息", "nodeGroupId": "int64 // 节点所属分组", "dnsRoutes": "[]string // 节点DNS线路列表", "nodeRegionId": "int64 // 节点所属区域" } ``` **响应对象 (`CreateNodeResponse`)** ```json { "nodeId": "int64 // 节点ID" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/createNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## createNodeInitScript > 创建节点初始化脚本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/createNodeInitScript` - RPC:`rpc createNodeInitScript(CreateNodeInitScriptRequest) returns (CreateNodeInitScriptResponse);` **请求对象 (`CreateNodeInitScriptRequest`)** ```json { "name": "string // 脚本名称", "code": "string // 脚本代码" } ``` **响应对象 (`CreateNodeInitScriptResponse`)** ```json { "scriptId": "int64" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/createNodeInitScript" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## deleteNode > 删除节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/deleteNode` - RPC:`rpc deleteNode (DeleteNodeRequest) returns (RPCSuccess);` **请求对象 (`DeleteNodeRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/deleteNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## deleteNodeFromNodeCluster > 从集群中删除节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/deleteNodeFromNodeCluster` - RPC:`rpc deleteNodeFromNodeCluster (DeleteNodeFromNodeClusterRequest) returns (RPCSuccess);` **请求对象 (`DeleteNodeFromNodeClusterRequest`)** ```json { "nodeId": "int64 // 节点ID", "nodeClusterId": "int64 // 集群ID" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/deleteNodeFromNodeCluster" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## deleteNodeInitScript > 删除节点初始化脚本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/deleteNodeInitScript` - RPC:`rpc deleteNodeInitScript(DeleteNodeInitScriptRequest) returns(RPCSuccess);` **请求对象 (`DeleteNodeInitScriptRequest`)** ```json { "scriptId": "int64" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/deleteNodeInitScript" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllEnabledNodesDNSWithNodeClusterId > 取得某个集群下的所有节点DNS信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllEnabledNodesDNSWithNodeClusterId` - RPC:`rpc findAllEnabledNodesDNSWithNodeClusterId (FindAllEnabledNodesDNSWithNodeClusterIdRequest) returns (FindAllEnabledNodesDNSWithNodeClusterIdResponse);` **请求对象 (`FindAllEnabledNodesDNSWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID", "isInstalled": "bool" } ``` **响应对象 (`FindAllEnabledNodesDNSWithNodeClusterIdResponse`)** ```json { "nodes": "[]NodeDNSInfo" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllEnabledNodesDNSWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllEnabledNodesWithNodeClusterId > 根据集群查找所有节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllEnabledNodesWithNodeClusterId` - RPC:`rpc findAllEnabledNodesWithNodeClusterId (FindAllEnabledNodesWithNodeClusterIdRequest) returns (FindAllEnabledNodesWithNodeClusterIdResponse);` **请求对象 (`FindAllEnabledNodesWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID", "includeSecondary": "bool // 是否检查节点的从集群,如果为false,则只检查主集群ID" } ``` **响应对象 (`FindAllEnabledNodesWithNodeClusterIdResponse`)** ```json { "nodes": "[]Node" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllEnabledNodesWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllEnabledNodesWithNodeGrantId > 查找使用某个认证的所有节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllEnabledNodesWithNodeGrantId` - RPC:`rpc findAllEnabledNodesWithNodeGrantId (FindAllEnabledNodesWithNodeGrantIdRequest) returns (FindAllEnabledNodesWithNodeGrantIdResponse);` **请求对象 (`FindAllEnabledNodesWithNodeGrantIdRequest`)** ```json { "nodeGrantId": "int64" } ``` **响应对象 (`FindAllEnabledNodesWithNodeGrantIdResponse`)** ```json { "nodes": "[]Node" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllEnabledNodesWithNodeGrantId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllNodeInitScripts > 获取一共节点初始化脚本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllNodeInitScripts` - RPC:`rpc findAllNodeInitScripts(FindAllNodeInitScriptsRequest) returns (FindAllNodeInitScriptsResponse);` **请求对象 (`FindAllNodeInitScriptsRequest`)** ```json {} ``` **响应对象 (`FindAllNodeInitScriptsResponse`)** ```json { "nodeInitScripts": "[]NodeInitScript" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllNodeInitScripts" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllNodeScheduleInfoWithNodeClusterId > 查找集群的节点调度信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllNodeScheduleInfoWithNodeClusterId` - RPC:`rpc findAllNodeScheduleInfoWithNodeClusterId(FindAllNodeScheduleInfoWithNodeClusterIdRequest) returns (FindAllNodeScheduleInfoWithNodeClusterIdResponse);` **请求对象 (`FindAllNodeScheduleInfoWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID" } ``` **响应对象 (`FindAllNodeScheduleInfoWithNodeClusterIdResponse`)** ```json { "nodes": "[]ScheduleInfo // 调动信息列表", "nodeId": "int64 // 节点ID", "nodeName": "string // 节点名称", "nodeGroupId": "int64 // 节点分组ID", "nodeGroupName": "string // 节点分组名称", "offlineDay": "string // 下线日期,格式YYYYMMDD", "isBackupForCluster": "bool // 是否为集群备份节点", "isBackupForGroup": "bool // 是否为分组备份节点", "backupIPs": "[]string // 备用IP", "actionStatusJSON": "bytes // 动作状态" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllNodeScheduleInfoWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllNotInstalledNodesWithNodeClusterId > 列出所有未安装的节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllNotInstalledNodesWithNodeClusterId` - RPC:`rpc findAllNotInstalledNodesWithNodeClusterId (FindAllNotInstalledNodesWithNodeClusterIdRequest) returns (FindAllNotInstalledNodesWithNodeClusterIdResponse);` **请求对象 (`FindAllNotInstalledNodesWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID" } ``` **响应对象 (`FindAllNotInstalledNodesWithNodeClusterIdResponse`)** ```json { "nodes": "[]Node" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllNotInstalledNodesWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findAllUpgradeNodesWithNodeClusterId > 列出所有需要升级的节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findAllUpgradeNodesWithNodeClusterId` - RPC:`rpc findAllUpgradeNodesWithNodeClusterId (FindAllUpgradeNodesWithNodeClusterIdRequest) returns (FindAllUpgradeNodesWithNodeClusterIdResponse);` **请求对象 (`FindAllUpgradeNodesWithNodeClusterIdRequest`)** ```json { "nodeClusterId": "int64 // 集群ID" } ``` **响应对象 (`FindAllUpgradeNodesWithNodeClusterIdResponse`)** ```json { "nodes": "[]NodeUpgrade", "node": "Node", "os": "string", "arch": "string", "oldVersion": "string", "newVersion": "string" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findAllUpgradeNodesWithNodeClusterId" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findEnabledBasicNode > 获取单个节点基本信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findEnabledBasicNode` - RPC:`rpc findEnabledBasicNode (FindEnabledBasicNodeRequest) returns (FindEnabledBasicNodeResponse);` **请求对象 (`FindEnabledBasicNodeRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindEnabledBasicNodeResponse`)** ```json { "node": "BasicNode // 节点基本信息" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findEnabledBasicNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findEnabledNode > 获取单个节点信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findEnabledNode` - RPC:`rpc findEnabledNode (FindEnabledNodeRequest) returns (FindEnabledNodeResponse);` **请求对象 (`FindEnabledNodeRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindEnabledNodeResponse`)** ```json { "node": "Node // 节点信息" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findEnabledNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findEnabledNodeConfigInfo > 取得节点的配置概要信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findEnabledNodeConfigInfo` - RPC:`rpc findEnabledNodeConfigInfo (FindEnabledNodeConfigInfoRequest) returns (FindEnabledNodeConfigInfoResponse);` **请求对象 (`FindEnabledNodeConfigInfoRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindEnabledNodeConfigInfoResponse`)** ```json { "hasDNSInfo": "bool // 是否有DNS设置", "hasCacheInfo": "bool // 是否有缓存设置", "hasThresholds": "bool // 是否有阈值设置", "hasSSH": "bool // 是否有SSH设置", "hasSystemSettings": "bool // 是否有系统设置", "hasDDoSProtection": "bool // 是否有DDoS防护设置", "hasScheduleSettings": "bool // 是否有调度设置" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findEnabledNodeConfigInfo" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findEnabledNodeDNS > 查找单个节点的域名解析信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findEnabledNodeDNS` - RPC:`rpc findEnabledNodeDNS (FindEnabledNodeDNSRequest) returns (FindEnabledNodeDNSResponse);` **请求对象 (`FindEnabledNodeDNSRequest`)** ```json { "nodeId": "int64 // 节点ID", "nodeClusterId": "int64 // 集群ID", "nodeIPAddrId": "int64" } ``` **响应对象 (`FindEnabledNodeDNSResponse`)** ```json { "node": "NodeDNSInfo" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findEnabledNodeDNS" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findEnabledNodesWithIds > 根据一组ID获取节点信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findEnabledNodesWithIds` - RPC:`rpc findEnabledNodesWithIds (FindEnabledNodesWithIdsRequest) returns (FindEnabledNodesWithIdsResponse);` **请求对象 (`FindEnabledNodesWithIdsRequest`)** ```json { "nodeIds": "[]int64" } ``` **响应对象 (`FindEnabledNodesWithIdsResponse`)** ```json { "nodes": "[]Node" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findEnabledNodesWithIds" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeAPIConfig > 查找单个节点的API相关配置 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeAPIConfig` - RPC:`rpc findNodeAPIConfig(FindNodeAPIConfigRequest) returns (FindNodeAPIConfigResponse);` **请求对象 (`FindNodeAPIConfigRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindNodeAPIConfigResponse`)** ```json { "apiNodeAddrsJSON": "bytes" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeAPIConfig" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeDDoSProtection > 获取节点的DDoS设置 - 角色:`node`, `admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeDDoSProtection` - RPC:`rpc findNodeDDoSProtection(FindNodeDDoSProtectionRequest) returns (FindNodeDDoSProtectionResponse);` **请求对象 (`FindNodeDDoSProtectionRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindNodeDDoSProtectionResponse`)** ```json { "ddosProtectionJSON": "bytes" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeDDoSProtection" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeDNSResolver > 读取节点DNS Resolver - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeDNSResolver` - RPC:`rpc findNodeDNSResolver(FindNodeDNSResolverRequest) returns (FindNodeDNSResolverResponse);` **请求对象 (`FindNodeDNSResolverRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindNodeDNSResolverResponse`)** ```json { "dnsResolverJSON": "bytes" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeDNSResolver" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeGlobalServerConfig > 取得节点的服务全局配置 - 角色:`node`, `admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeGlobalServerConfig` - RPC:`rpc findNodeGlobalServerConfig(FindNodeGlobalServerConfigRequest) returns (FindNodeGlobalServerConfigResponse);` **请求对象 (`FindNodeGlobalServerConfigRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindNodeGlobalServerConfigResponse`)** ```json { "globalServerConfigJSON": "bytes" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeGlobalServerConfig" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeInitScript > 获取节点初始化脚本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeInitScript` - RPC:`rpc findNodeInitScript(FindNodeInitScriptRequest) returns (FindNodeInitScriptResponse);` **请求对象 (`FindNodeInitScriptRequest`)** ```json { "scriptId": "int64" } ``` **响应对象 (`FindNodeInitScriptResponse`)** ```json { "nodeInitScript": "NodeInitScript" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeInitScript" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeInstallStatus > 读取节点安装状态 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeInstallStatus` - RPC:`rpc findNodeInstallStatus (FindNodeInstallStatusRequest) returns (FindNodeInstallStatusResponse);` **请求对象 (`FindNodeInstallStatusRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindNodeInstallStatusResponse`)** ```json { "installStatus": "NodeInstallStatus" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeInstallStatus" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## findNodeScheduleInfo > 查找节点调度信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/findNodeScheduleInfo` - RPC:`rpc findNodeScheduleInfo(FindNodeScheduleInfoRequest) returns (FindNodeScheduleInfoResponse);` **请求对象 (`FindNodeScheduleInfoRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`FindNodeScheduleInfoResponse`)** ```json { "scheduleInfo": "ScheduleInfo // 调度信息", "offlineDay": "string // 下线日期,格式YYYYMMDD", "isBackupForCluster": "bool // 是否为集群备份节点", "isBackupForGroup": "bool // 是否为分组备份节点", "backupIPs": "[]string // 备用IP", "actionStatusJSON": "bytes // 动作状态" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/findNodeScheduleInfo" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## installNode > 安装节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/installNode` - RPC:`rpc installNode (InstallNodeRequest) returns (InstallNodeResponse);` **请求对象 (`InstallNodeRequest`)** ```json { "nodeId": "int64 // 节点ID", "initScriptId": "int64" } ``` **响应对象 (`InstallNodeResponse`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/installNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## listEnabledNodesMatch > 列出单页节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/listEnabledNodesMatch` - RPC:`rpc listEnabledNodesMatch (ListEnabledNodesMatchRequest) returns (ListEnabledNodesMatchResponse);` **请求对象 (`ListEnabledNodesMatchRequest`)** ```json { "offset": "int64 // 读取位置", "size": "int64 // 读取数量", "nodeClusterId": "int64 // 集群ID", "installState": "int32 // 安装状态", "activeState": "int32 // 在线状态", "keyword": "string // 关键词", "nodeGroupId": "int64 // 节点分组ID", "nodeRegionId": "int64 // 节点区域ID", "level": "int32 // 节点级别,目前只有1(L1)和2(L2)", "cpuAsc": "bool", "cpuDesc": "bool", "memoryAsc": "bool", "memoryDesc": "bool", "trafficInAsc": "bool", "trafficInDesc": "bool", "trafficOutAsc": "bool", "trafficOutDesc": "bool", "loadAsc": "bool", "loadDesc": "bool", "connectionsAsc": "bool", "connectionsDesc": "bool" } ``` **响应对象 (`ListEnabledNodesMatchResponse`)** ```json { "nodes": "[]Node" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/listEnabledNodesMatch" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## listNodeInitScript > 列表节点初始化脚本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/listNodeInitScript` - RPC:`rpc listNodeInitScript(ListNodeInitScriptRequest) returns (ListNodeInitScriptResponse);` **请求对象 (`ListNodeInitScriptRequest`)** ```json { "offset": "int64 // 读取位置", "size": "int64 // 读取数量" } ``` **响应对象 (`ListNodeInitScriptResponse`)** ```json { "nodeInitScripts": "[]NodeInitScript" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/listNodeInitScript" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## listNodeRegionInfo > 列出单页节点区域信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/listNodeRegionInfo` - RPC:`rpc listNodeRegionInfo(ListNodeRegionInfoRequest) returns (ListNodeRegionInfoResponse);` **请求对象 (`ListNodeRegionInfoRequest`)** ```json { "nodeRegionId": "int64 // 区域ID,可选", "offset": "int64 // 读取位置", "size": "int64 // 数量,通常不能小于0" } ``` **响应对象 (`ListNodeRegionInfoResponse`)** ```json { "infoList": "[]Info", "id": "int64", "name": "string // 名称", "nodeRegion": "NodeRegion", "nodeCluster": "NodeCluster" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/listNodeRegionInfo" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## resetNodeActionStatus > 重置节点动作状态 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/resetNodeActionStatus` - RPC:`rpc resetNodeActionStatus(ResetNodeActionStatusRequest) returns (RPCSuccess);` **请求对象 (`ResetNodeActionStatusRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/resetNodeActionStatus" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## sendCommandToNode > 向节点发送命令 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/sendCommandToNode` - RPC:`rpc sendCommandToNode (NodeStreamMessage) returns (NodeStreamMessage);` **请求对象 (`NodeStreamMessage`)** ```json { "nodeId": "int64 // 节点ID", "requestId": "int64", "timeoutSeconds": "int32", "code": "string", "dataJSON": "bytes", "isOk": "bool", "message": "string" } ``` **响应对象 (`NodeStreamMessage`)** ```json { "nodeId": "int64 // 节点ID", "requestId": "int64", "timeoutSeconds": "int32", "code": "string", "dataJSON": "bytes", "isOk": "bool", "message": "string" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/sendCommandToNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## startNode > 启动节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/startNode` - RPC:`rpc startNode (StartNodeRequest) returns (StartNodeResponse);` **请求对象 (`StartNodeRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`StartNodeResponse`)** ```json { "isOk": "bool", "error": "string" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/startNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## stopNode > 停止节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/stopNode` - RPC:`rpc stopNode (StopNodeRequest) returns (StopNodeResponse);` **请求对象 (`StopNodeRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`StopNodeResponse`)** ```json { "isOk": "bool // 是否成功", "error": "string // 失败时的错误信息" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/stopNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## uninstallNode > 卸载节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/uninstallNode` - RPC:`rpc uninstallNode(UninstallNodeRequest) returns (UninstallNodeResponse);` **请求对象 (`UninstallNodeRequest`)** ```json { "nodeId": "int64 // 节点ID" } ``` **响应对象 (`UninstallNodeResponse`)** ```json { "isOk": "bool // 是否成功", "error": "string // 失败时的错误信息" } ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/uninstallNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNode > 修改节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNode` - RPC:`rpc updateNode (UpdateNodeRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeRequest`)** ```json { "nodeId": "int64 // 节点ID", "name": "string // 名称", "nodeClusterId": "int64 // 集群ID", "secondaryNodeClusterIds": "[]int64", "isOn": "bool // 是否启用", "nodeGroupId": "int64", "nodeRegionId": "int64", "level": "int32", "lnAddrs": "[]string // Ln节点访问地址", "enableIPLists": "bool // 是否启用IP名单" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeAPIConfig > 修改某个节点的API相关配置 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeAPIConfig` - RPC:`rpc updateNodeAPIConfig(UpdateNodeAPIConfigRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeAPIConfigRequest`)** ```json { "nodeId": "int64 // 节点ID", "apiNodeAddrsJSON": "bytes" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeAPIConfig" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeBypassMobile > 修改节点是否过移动 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeBypassMobile` - RPC:`rpc updateNodeBypassMobile(UpdateNodeBypassMobile) returns (RPCSuccess);` **请求对象 (`UpdateNodeBypassMobile`)** ```json { "nodeId": "int64 // 节点ID", "bypassMobile": "int32" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeBypassMobile" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeCache > 修改节点缓存设置 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeCache` - RPC:`rpc updateNodeCache(UpdateNodeCacheRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeCacheRequest`)** ```json { "nodeId": "int64 // 节点ID", "maxCacheDiskCapacity": "SizeCapacity // 磁盘容量限制", "maxCacheMemoryCapacity": "SizeCapacity // 内存容量限制", "cacheDiskDir": "string // 磁盘缓存目录", "cacheDiskSubDirsJSON": "bytes // 磁盘缓存子目录" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeCache" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeDDoSProtection > 修改节点的DDoS设置 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeDDoSProtection` - RPC:`rpc updateNodeDDoSProtection(UpdateNodeDDoSProtectionRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeDDoSProtectionRequest`)** ```json { "nodeId": "int64 // 节点ID", "ddosProtectionJSON": "bytes" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeDDoSProtection" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeDNS > 修改节点的DNS解析信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeDNS` - RPC:`rpc updateNodeDNS (UpdateNodeDNSRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeDNSRequest`)** ```json { "nodeId": "int64 // 节点ID", "ipAddr": "string", "nodeIPAddressId": "int64", "dnsDomainId": "int64", "routes": "[]string" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeDNS" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeDNSResolver > 修改DNS Resolver - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeDNSResolver` - RPC:`rpc updateNodeDNSResolver(UpdateNodeDNSResolverRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeDNSResolverRequest`)** ```json { "nodeId": "int64 // 节点ID", "dnsResolverJSON": "bytes" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeDNSResolver" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeInitScript > 更新节点初始化脚本 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeInitScript` - RPC:`rpc updateNodeInitScript(UpdateNodeInitScriptRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeInitScriptRequest`)** ```json { "scriptId": "int64", "name": "string // 名称", "code": "string" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeInitScript" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeIsInstalled > 修改节点安装状态 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeIsInstalled` - RPC:`rpc updateNodeIsInstalled (UpdateNodeIsInstalledRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeIsInstalledRequest`)** ```json { "nodeId": "int64 // 节点ID", "isInstalled": "bool" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeIsInstalled" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeIsOn > 修改节点的启用状态 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeIsOn` - RPC:`rpc updateNodeIsOn(UpdateNodeIsOnRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeIsOnRequest`)** ```json { "nodeId": "int64 // 节点ID", "isOn": "bool // 是否启用" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeIsOn" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeLogin > 修改节点登录信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeLogin` - RPC:`rpc updateNodeLogin (UpdateNodeLoginRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeLoginRequest`)** ```json { "nodeId": "int64 // 节点ID", "nodeLogin": "NodeLogin" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeLogin" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeRegionInfo > 修改节点区域信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeRegionInfo` - RPC:`rpc updateNodeRegionInfo(UpdateNodeRegionInfoRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeRegionInfoRequest`)** ```json { "nodeId": "int64 // 节点ID", "nodeRegionId": "int64" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeRegionInfo" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeScheduleInfo > 修改节点调度信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeScheduleInfo` - RPC:`rpc updateNodeScheduleInfo(UpdateNodeScheduleInfoRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeScheduleInfoRequest`)** ```json { "nodeId": "int64 // 节点ID", "offlineDay": "string // 下线日期,格式YYYYMMDD", "isBackupForCluster": "bool // 是否为集群备份节点", "isBackupForGroup": "bool // 是否为分组备份节点", "backupIPs": "[]string // 备用IP" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeScheduleInfo" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeSystem > 修改节点系统信息 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeSystem` - RPC:`rpc updateNodeSystem(UpdateNodeSystemRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeSystemRequest`)** ```json { "nodeId": "int64 // 节点ID", "maxCPU": "int32" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeSystem" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## updateNodeUp > 设置节点上线状态 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/updateNodeUp` - RPC:`rpc updateNodeUp (UpdateNodeUpRequest) returns (RPCSuccess);` **请求对象 (`UpdateNodeUpRequest`)** ```json { "nodeId": "int64 // 节点ID", "isUp": "bool" } ``` **响应对象 (`RPCSuccess`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/updateNodeUp" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` --- ## upgradeNode > 升级节点 - 角色:`admin` - HTTP:`POST https://backend.dooki.cloud/NodeService/upgradeNode` - RPC:`rpc upgradeNode (UpgradeNodeRequest) returns (UpgradeNodeResponse);` **请求对象 (`UpgradeNodeRequest`)** ```json { "nodeId": "int64 // 节点ID", "initScriptId": "int64" } ``` **响应对象 (`UpgradeNodeResponse`)** ```json {} ``` **调用示例** ```bash curl -X POST "https://backend.dooki.cloud/NodeService/upgradeNode" \ -H "Content-Type: application/json" \ -H "X-Edge-Access-Token: " \ -d '{ ... }' ``` ---