本节为用于管理和检索有关 Blocklet Server 节点及其运行的 Blocklet 信息的 GraphQL 查询提供了详细参考。这些查询允许您监控状态、获取配置和访问生命周期信息。
对于修改状态的操作,例如安装或启动 Blocklet,请参阅 变更 > 节点和 Blocklet 管理 文档。
节点信息查询
这些查询提供有关 Blocklet Server 实例本身的信息。
getNodeInfo
获取有关当前 Blocklet Server 节点的全面状态信息,包括其 DID、版本、状态和配置。
返回
- response
Promise<BlockletServerClient.ResponseGetNodeInfo>— 一个解析为包含节点状态信息的对象的 Promise。
示例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchNodeInfo() {
try {
const response = await client.getNodeInfo();
console.log('Node Info:', response.info);
} catch (error) {
console.error('Error fetching node info:', error);
}
}
fetchNodeInfo();响应示例
{
"code": "ok",
"info": {
"did": "z1v7.....",
"pk": "...",
"version": "1.7.0",
"name": "My ABT Node",
"description": "This is my personal Blocklet Server.",
"initialized": true,
"autoUpgrade": true
// ... other NodeState properties
}
}getNodeEnv
检索 Blocklet Server 的环境详情,例如操作系统、IP 地址、Docker 状态和可用的 Blocklet 引擎。
返回
- response
Promise<BlockletServerClient.ResponseGetNodeEnv>— 一个解析为包含节点环境信息的对象的 Promise。
示例
async function fetchNodeEnv() {
try {
const response = await client.getNodeEnv();
console.log('Node Environment:', response.info);
} catch (error) {
console.error('Error fetching node environment:', error);
}
}
fetchNodeEnv();响应示例
{
"code": "ok",
"info": {
"ip": {
"externalV4": "192.0.2.1"
},
"os": "linux",
"docker": true,
"blockletEngines": [
{
"name": "node",
"version": "18.17.0",
"available": true
}
]
// ... other NodeEnvInfo properties
}
}checkNodeVersion
检查是否有可用于升级的 Blocklet Server 软件的新版本。
返回
- response
Promise<BlockletServerClient.ResponseCheckNodeVersion>— 一个解析为包含最新可用版本(如果有)的对象的 Promise。
示例
async function checkForUpdates() {
try {
const response = await client.checkNodeVersion();
console.log('Latest available version:', response.version);
} catch (error) {
console.error('Error checking for updates:', error);
}
}
checkForUpdates();响应示例
{
"code": "ok",
"version": "1.7.1"
}getNodeRuntimeHistory
获取节点在指定时间段内的历史运行时数据,包括 CPU 和内存使用情况。
参数
- input
object(required)- hours
number(required) — 要检索历史记录的过去小时数。
- hours
返回
- response
Promise<BlockletServerClient.ResponseNodeRuntimeHistory>— 一个解析为包含历史数据点数组的 Promise。
示例
async function fetchNodeHistory() {
try {
const response = await client.getNodeRuntimeHistory({ input: { hours: 24 } });
console.log('Node runtime history for the last 24 hours:', response.history);
} catch (error) {
console.error('Error fetching node runtime history:', error);
}
}
fetchNodeHistory();响应示例
{
"code": "ok",
"history": [
{
"date": 1672531200000,
"cpu": 15.5,
"mem": 2048.5
}
// ... other NodeHistoryItem data points
]
}getDelegationState
检索节点的委托状态。
返回
- response
Promise<BlockletServerClient.ResponseDelegationState>— 一个解析为包含委托状态的对象的 Promise。
示例
async function fetchDelegationState() {
try {
const response = await client.getDelegationState();
console.log('Delegation State:', response.state);
} catch (error) {
console.error('Error fetching delegation state:', error);
}
}
fetchDelegationState();响应示例
{
"code": "ok",
"state": {
"delegated": true
}
}resetNodeStatus
重置节点的状态。
返回
- response
Promise<BlockletServerClient.ResponseGetNodeInfo>— 一个解析为包含节点更新后状态信息的对象的 Promise。
示例
async function resetStatus() {
try {
const response = await client.resetNodeStatus();
console.log('Node status reset:', response.info);
} catch (error) {
console.error('Error resetting node status:', error);
}
}
resetStatus();响应示例
{
"code": "ok",
"info": {
"did": "z1v7.....",
"pk": "...",
"version": "1.7.0",
"name": "My ABT Node",
"status": 0
// ... other NodeState properties
}
}Blocklet 信息查询
这些查询用于获取有关单个或多个 Blocklet 的信息。
getBlocklet
使用其 DID 检索特定 Blocklet 的详细状态和元数据。
参数
- input
object(required)- did
string(required) — 要检索的 Blocklet 的 DID。 - attachRuntimeInfo
boolean— 如果为 true,则包含实时 CPU 和内存使用情况。默认为 false。 - attachDiskInfo
boolean— 如果为 true,则包含磁盘使用信息。默认为 false。
- did
返回
- response
Promise<BlockletServerClient.ResponseBlocklet>— 一个解析为包含 Blocklet 状态的对象的 Promise。
示例
async function fetchBlockletDetails(blockletDid) {
try {
const response = await client.getBlocklet({
input: {
did: blockletDid,
attachRuntimeInfo: true,
},
});
console.log('Blocklet Details:', response.blocklet);
} catch (error) {
console.error('Error fetching blocklet details:', error);
}
}
fetchBlockletDetails('z8ia...'); // Replace with a valid blocklet DID响应示例
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia...",
"name": "my-awesome-blocklet",
"version": "1.0.0",
"title": "My Awesome Blocklet"
},
"status": "running",
"appDid": "z1s...",
"runtimeInfo": {
"cpuUsage": 5.2,
"memoryUsage": 128.7
}
// ... other BlockletState properties
}
}getBlocklets
获取节点上安装的所有 Blocklet 的列表。
参数
- input
object- includeRuntimeInfo
boolean— 如果为 true,则包含每个 Blocklet 的运行时信息。默认为 true。
- includeRuntimeInfo
返回
- response
Promise<BlockletServerClient.ResponseGetBlocklets>— 一个解析为包含所有已安装 Blocklet 列表的对象的 Promise。
示例
async function listAllBlocklets() {
try {
const response = await client.getBlocklets();
console.log(`Found ${response.blocklets.length} blocklets.`);
response.blocklets.forEach(b => console.log(`- ${b.meta.title}`));
} catch (error) {
console.error('Error listing blocklets:', error);
}
}
listAllBlocklets();响应示例
{
"code": "ok",
"blocklets": [
{
"meta": { "did": "z8ia...", "title": "My Awesome Blocklet" },
"status": "running"
},
{
"meta": { "did": "z8ib...", "title": "Another Blocklet" },
"status": "stopped"
}
// ... other blocklets
]
}getBlockletMeta
使用 Blocklet 的 DID 从指定的 Blocklet 商店检索 Blocklet 元数据。
参数
- input
object(required)- did
string(required) — Blocklet 的 DID。 - storeUrl
string(required) — 要查询的 Blocklet 商店的 URL。
- did
返回
- response
Promise<BlockletServerClient.ResponseBlockletMeta>— 一个解析为包含 Blocklet 元数据的对象的 Promise。
示例
async function fetchBlockletMeta(blockletDid) {
try {
const response = await client.getBlockletMeta({
input: {
did: blockletDid,
storeUrl: 'https://store.blocklet.dev',
},
});
console.log('Blocklet Metadata:', response.meta);
} catch (error) {
console.error('Error fetching blocklet metadata:', error);
}
}
fetchBlockletMeta('z8ia...'); // Replace with a valid blocklet DIDgetBlockletMetaFromUrl
直接从注册表 URL 获取 Blocklet 元数据。这对于在安装前检查 Blocklet 很有用。
参数
- input
object(required)- url
string(required) — Blocklet 元数据的注册表 URL。
- url
返回
- response
Promise<BlockletServerClient.ResponseBlockletMetaFromUrl>— 一个解析为包含元数据和其他商店相关信息的对象的 Promise。
示例
async function fetchMetaFromUrl() {
try {
const response = await client.getBlockletMetaFromUrl({
input: { url: 'https://store.blocklet.dev/api/blocklets/z8ia...' },
});
console.log('Metadata from URL:', response.meta);
} catch (error) {
console.error('Error fetching metadata from URL:', error);
}
}
fetchMetaFromUrl();getBlockletRuntimeHistory
获取特定 Blocklet 的历史运行时数据(CPU 和内存使用情况)。
参数
- input
object(required)- did
string(required) — Blocklet 的 DID。 - hours
number(required) — 要检索历史记录的过去小时数。
- did
返回
- response
Promise<BlockletServerClient.ResponseBlockletRuntimeHistory>— 一个解析为包含历史数据点数组的 Promise。
示例
async function fetchBlockletHistory(blockletDid) {
try {
const response = await client.getBlockletRuntimeHistory({
input: { did: blockletDid, hours: 12 },
});
console.log('Blocklet runtime history:', response.historyList);
} catch (error) {
console.error('Error fetching blocklet runtime history:', error);
}
}
fetchBlockletHistory('z8ia...'); // Replace with a valid blocklet DIDgetBlockletDiff
将本地 Blocklet 文件与提供的哈希列表进行比较,以识别新增、更改或删除的文件。这对于增量更新很有用。
参数
- input
object(required)- did
string(required) — Blocklet 的 DID。 - hashFiles
HashFileInput[](required) — 一个对象数组,每个对象包含一个文件路径及其哈希值。 - rootDid
string— 如果目标是组件,则为根 Blocklet DID。
- did
返回
- response
Promise<BlockletServerClient.ResponseBlockletDiff>— 一个解析为详细说明差异的对象的 Promise。
示例
async function checkBlockletDiff(blockletDid) {
try {
const response = await client.getBlockletDiff({
input: {
did: blockletDid,
hashFiles: [
{ file: 'index.js', hash: '...' },
{ file: 'style.css', hash: '...' }
]
}
});
console.log('Blocklet Diff:', response.blockletDiff);
} catch (error) {
console.error('Error checking blocklet diff:', error);
}
}
checkBlockletDiff('z8ia...');getDynamicComponents
从给定 URL 检索动态组件的元数据。
参数
- input
object(required)- url
string(required) — 用于获取动态组件元数据的 URL。
- url
返回
- response
Promise<BlockletServerClient.ResponseGetDynamicComponents>— 一个解析为动态组件列表的 Promise。
示例
async function fetchDynamicComponents(registryUrl) {
try {
const response = await client.getDynamicComponents({ input: { url: registryUrl } });
console.log('Dynamic Components:', response.components);
} catch (error) {
console.error('Error fetching dynamic components:', error);
}
}
fetchDynamicComponents('https://store.blocklet.dev/api/components');getBlockletsFromBackup
列出备份源中的可用 Blocklet。
返回
- response
Promise<BlockletServerClient.ResponseBlockletsFromBackup>— 一个解析为备份中可用 Blocklet 列表的 Promise。
示例
async function listBlockletsFromBackup() {
try {
const response = await client.getBlockletsFromBackup();
console.log('Blocklets from backup:', response.backups);
} catch (error) {
console.error('Error listing blocklets from backup:', error);
}
}
listBlockletsFromBackup();getBlockletBaseInfo
检索 Blocklet 的基本信息,包括用户数、通行证统计信息和最新的备份状态。
参数
- input
object(required)- teamDid
string(required) — 团队/Blocklet 的 DID。
- teamDid
返回
- response
Promise<BlockletServerClient.ResponseBlockletInfo>— 一个解析为包含 Blocklet 基本信息的对象的 Promise。
示例
async function fetchBaseInfo(blockletDid) {
try {
const response = await client.getBlockletBaseInfo({ input: { teamDid: blockletDid } });
console.log('Base Info:', response);
} catch (error) {
console.error('Error fetching base info:', error);
}
}
fetchBaseInfo('z8ia...');响应示例
{
"user": {
"users": 10,
"approvedUsers": 8
},
"passport": {
"passports": 12,
"activePassports": 10
},
"backup": {
"appPid": "z8ia...",
"status": 1,
"updatedAt": 1672531200
}
}现在您已了解如何查询节点和 Blocklet 信息,接下来可以在 用户和访问管理 部分探索如何管理用户和权限。