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