メインコンテンツへスキップ

ノード & Blocklet 管理

このセクションでは、Blocklet Server ノードとそれが実行する blocklet の情報を管理および取得するために使用される GraphQL クエリの詳細なリファレンスを提供します。これらのクエリを使用すると、ステータスの監視、設定の取得、ライフサイクル情報へのアクセスが可能です。

blocklet のインストールや起動など、状態を変更する操作については、ミューテーション > ノード & Blocklet 管理 のドキュメントを参照してください。

ノード情報クエリ

これらのクエリは、Blocklet Server インスタンス自体の情報を提供します。

getNodeInfo

現在の Blocklet Server ノードに関する包括的な状態情報(DID、バージョン、ステータス、設定を含む)を取得します。

戻り値

  • response Promise<BlockletServerClient.ResponseGetNodeInfo> — ノードの状態情報を含むオブジェクトに解決される Promise。

javascript
import BlockletServerClient from '@blocklet/server-js';

const client = new BlockletServerClient();

async function fetchNodeInfo() {
  try {
    const response = await client.getNodeInfo();
    console.log('ノード情報:', response.info);
  } catch (error) {
    console.error('ノード情報の取得エラー:', error);
  }
}

fetchNodeInfo();

レスポンス例

json
{
  "code": "ok",
  "info": {
    "did": "z1v7.....",
    "pk": "...",
    "version": "1.7.0",
    "name": "私の ABT ノード",
    "description": "これは私の個人用 Blocklet Server です。",
    "initialized": true,
    "autoUpgrade": true
    // ... その他の NodeState プロパティ
  }
}

getNodeEnv

オペレーティングシステム、IP アドレス、Docker ステータス、利用可能な blocklet エンジンなど、Blocklet Server の環境詳細を取得します。

戻り値

  • response Promise<BlockletServerClient.ResponseGetNodeEnv> — ノードの環境情報を含むオブジェクトに解決される Promise。

javascript
async function fetchNodeEnv() {
  try {
    const response = await client.getNodeEnv();
    console.log('ノード環境:', response.info);
  } catch (error) {
    console.error('ノード環境の取得エラー:', error);
  }
}

fetchNodeEnv();

レスポンス例

json
{
  "code": "ok",
  "info": {
    "ip": {
      "externalV4": "192.0.2.1"
    },
    "os": "linux",
    "docker": true,
    "blockletEngines": [
      {
        "name": "node",
        "version": "18.17.0",
        "available": true
      }
    ]
    // ... その他の NodeEnvInfo プロパティ
  }
}

checkNodeVersion

アップグレード可能な Blocklet Server ソフトウェアの新しいバージョンがあるかどうかを確認します。

戻り値

  • response Promise<BlockletServerClient.ResponseCheckNodeVersion> — 利用可能な最新バージョン(もしあれば)を含むオブジェクトに解決される Promise。

javascript
async function checkForUpdates() {
  try {
    const response = await client.checkNodeVersion();
    console.log('利用可能な最新バージョン:', response.version);
  } catch (error) {
    console.error('更新の確認エラー:', error);
  }
}

checkForUpdates();

レスポンス例

json
{
  "code": "ok",
  "version": "1.7.1"
}

getNodeRuntimeHistory

指定された期間にわたるノードの CPU およびメモリ使用量を含む、過去のランタイムデータを取得します。

パラメータ

  • input object (required)
    • hours number (required) — 履歴を取得する過去の時間数。

戻り値

  • response Promise<BlockletServerClient.ResponseNodeRuntimeHistory> — 過去のデータポイントの配列に解決される Promise。

javascript
async function fetchNodeHistory() {
  try {
    const response = await client.getNodeRuntimeHistory({ input: { hours: 24 } });
    console.log('過去24時間のノードランタイム履歴:', response.history);
  } catch (error) {
    console.error('ノードランタイム履歴の取得エラー:', error);
  }
}

fetchNodeHistory();

レスポンス例

json
{
  "code": "ok",
  "history": [
    {
      "date": 1672531200000,
      "cpu": 15.5,
      "mem": 2048.5
    }
    // ... その他の NodeHistoryItem データポイント
  ]
}

getDelegationState

ノードの委任状態を取得します。

戻り値

  • response Promise<BlockletServerClient.ResponseDelegationState> — 委任状態を含むオブジェクトに解決される Promise。

javascript
async function fetchDelegationState() {
  try {
    const response = await client.getDelegationState();
    console.log('委任状態:', response.state);
  } catch (error) {
    console.error('委任状態の取得エラー:', error);
  }
}

fetchDelegationState();

レスポンス例

json
{
  "code": "ok",
  "state": {
    "delegated": true
  }
}

resetNodeStatus

ノードのステータスをリセットします。

戻り値

  • response Promise<BlockletServerClient.ResponseGetNodeInfo> — ノードの更新された状態情報を含むオブジェクトに解決される Promise。

javascript
async function resetStatus() {
  try {
    const response = await client.resetNodeStatus();
    console.log('ノードステータスがリセットされました:', response.info);
  } catch (error) {
    console.error('ノードステータスのリセットエラー:', error);
  }
}

resetStatus();

レスポンス例

json
{
  "code": "ok",
  "info": {
    "did": "z1v7.....",
    "pk": "...",
    "version": "1.7.0",
    "name": "私の ABT ノード",
    "status": 0
    // ... その他の NodeState プロパティ
  }
}

Blocklet 情報クエリ

これらのクエリは、個別または複数の blocklet に関する情報を取得するために使用されます。

getBlocklet

DID を使用して、特定の blocklet の詳細な状態とメタデータを取得します。

パラメータ

  • input object (required)
    • did string (required) — 取得する blocklet の DID。
    • attachRuntimeInfo boolean — true の場合、リアルタイムの CPU およびメモリ使用量を含みます。デフォルトは false です。
    • attachDiskInfo boolean — true の場合、ディスク使用量情報を含みます。デフォルトは false です。

戻り値

  • response Promise<BlockletServerClient.ResponseBlocklet> — blocklet の状態を含むオブジェクトに解決される Promise。

javascript
async function fetchBlockletDetails(blockletDid) {
  try {
    const response = await client.getBlocklet({
      input: {
        did: blockletDid,
        attachRuntimeInfo: true,
      },
    });
    console.log('Blocklet 詳細:', response.blocklet);
  } catch (error) {
    console.error('Blocklet 詳細の取得エラー:', error);
  }
}

fetchBlockletDetails('z8ia...'); // 有効な blocklet DID に置き換えてください

レスポンス例

json
{
  "code": "ok",
  "blocklet": {
    "meta": {
      "did": "z8ia...",
      "name": "my-awesome-blocklet",
      "version": "1.0.0",
      "title": "私の素晴らしい Blocklet"
    },
    "status": "running",
    "appDid": "z1s...",
    "runtimeInfo": {
      "cpuUsage": 5.2,
      "memoryUsage": 128.7
    }
    // ... その他の BlockletState プロパティ
  }
}

getBlocklets

ノードにインストールされているすべての blocklet のリストを取得します。

パラメータ

  • input object
    • includeRuntimeInfo boolean — true の場合、各 blocklet のランタイム情報を含みます。デフォルトは true です。

戻り値

  • response Promise<BlockletServerClient.ResponseGetBlocklets> — インストールされているすべての blocklet のリストを含むオブジェクトに解決される Promise。

javascript
async function listAllBlocklets() {
  try {
    const response = await client.getBlocklets();
    console.log(`${response.blocklets.length} 個の blocklet が見つかりました。`);
    response.blocklets.forEach(b => console.log(`- ${b.meta.title}`));
  } catch (error) {
    console.error('blocklet の一覧表示エラー:', error);
  }
}

listAllBlocklets();

レスポンス例

json
{
  "code": "ok",
  "blocklets": [
    {
      "meta": { "did": "z8ia...", "title": "私の素晴らしい Blocklet" },
      "status": "running"
    },
    {
      "meta": { "did": "z8ib...", "title": "別の Blocklet" },
      "status": "stopped"
    }
    // ... その他の blocklet
  ]
}

getBlockletMeta

blocklet の DID を使用して、指定された blocklet ストアから blocklet メタデータを取得します。

パラメータ

  • input object (required)
    • did string (required) — blocklet の DID。
    • storeUrl string (required) — クエリする blocklet ストアの URL。

戻り値

  • response Promise<BlockletServerClient.ResponseBlockletMeta> — blocklet のメタデータを含むオブジェクトに解決される Promise。

javascript
async function fetchBlockletMeta(blockletDid) {
  try {
    const response = await client.getBlockletMeta({
      input: {
        did: blockletDid,
        storeUrl: 'https://store.blocklet.dev',
      },
    });
    console.log('Blocklet メタデータ:', response.meta);
  } catch (error) {
    console.error('Blocklet メタデータの取得エラー:', error);
  }
}

fetchBlockletMeta('z8ia...'); // 有効な blocklet DID に置き換えてください

getBlockletMetaFromUrl

レジストリ URL から直接 blocklet メタデータを取得します。これはインストール前に blocklet を検査するのに役立ちます。

パラメータ

  • input object (required)
    • url string (required) — blocklet メタデータのレジストリ URL。

戻り値

  • response Promise<BlockletServerClient.ResponseBlockletMetaFromUrl> — メタデータおよびその他のストア関連情報を含むオブジェクトに解決される Promise。

javascript
async function fetchMetaFromUrl() {
  try {
    const response = await client.getBlockletMetaFromUrl({
      input: { url: 'https://store.blocklet.dev/api/blocklets/z8ia...' },
    });
    console.log('URL からのメタデータ:', response.meta);
  } catch (error) {
    console.error('URL からのメタデータ取得エラー:', error);
  }
}

fetchMetaFromUrl();

getBlockletRuntimeHistory

特定の blocklet の過去のランタイムデータ(CPU およびメモリ使用量)を取得します。

パラメータ

  • input object (required)
    • did string (required) — blocklet の DID。
    • hours number (required) — 履歴を取得する過去の時間数。

戻り値

  • response Promise<BlockletServerClient.ResponseBlockletRuntimeHistory> — 過去のデータポイントの配列に解決される Promise。

javascript
async function fetchBlockletHistory(blockletDid) {
  try {
    const response = await client.getBlockletRuntimeHistory({
      input: { did: blockletDid, hours: 12 },
    });
    console.log('Blocklet ランタイム履歴:', response.historyList);
  } catch (error) {
    console.error('Blocklet ランタイム履歴の取得エラー:', error);
  }
}

fetchBlockletHistory('z8ia...'); // 有効な blocklet DID に置き換えてください

getBlockletDiff

ローカルの blocklet ファイルと提供されたハッシュリストを比較して、追加、変更、または削除されたファイルを特定します。これは増分更新に役立ちます。

パラメータ

  • input object (required)
    • did string (required) — blocklet の DID。
    • hashFiles HashFileInput[] (required) — 各オブジェクトがファイルパスとそのハッシュを含むオブジェクトの配列。
    • rootDid string — ターゲットがコンポーネントの場合のルート blocklet の DID。

戻り値

  • response Promise<BlockletServerClient.ResponseBlockletDiff> — 差分を詳述するオブジェクトに解決される Promise。

javascript
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 差分:', response.blockletDiff);
  } catch (error) {
    console.error('Blocklet 差分の確認エラー:', error);
  }
}

checkBlockletDiff('z8ia...');

getDynamicComponents

指定された URL から動的コンポーネントのメタデータを取得します。

パラメータ

  • input object (required)
    • url string (required) — 動的コンポーネントのメタデータを取得する URL。

戻り値

  • response Promise<BlockletServerClient.ResponseGetDynamicComponents> — 動的コンポーネントのリストに解決される Promise。

javascript
async function fetchDynamicComponents(registryUrl) {
  try {
    const response = await client.getDynamicComponents({ input: { url: registryUrl } });
    console.log('動的コンポーネント:', response.components);
  } catch (error) {
    console.error('動的コンポーネントの取得エラー:', error);
  }
}

fetchDynamicComponents('https://store.blocklet.dev/api/components');

getBlockletsFromBackup

バックアップソースから利用可能な blocklets を一覧表示します。

戻り値

  • response Promise<BlockletServerClient.ResponseBlockletsFromBackup> — バックアップで利用可能な blocklets のリストに解決される Promise。

javascript
async function listBlockletsFromBackup() {
  try {
    const response = await client.getBlockletsFromBackup();
    console.log('バックアップからの Blocklets:', response.backups);
  } catch (error) {
    console.error('バックアップからの blocklets の一覧表示エラー:', error);
  }
}

listBlockletsFromBackup();

getBlockletBaseInfo

ユーザー数、パスポート統計、最新のバックアップステータスなど、blocklet の基本情報を取得します。

パラメータ

  • input object (required)
    • teamDid string (required) — チーム/blocklet の DID。

戻り値

  • response Promise<BlockletServerClient.ResponseBlockletInfo> — 基本的な blocklet 情報を含むオブジェクトに解決される Promise。

javascript
async function fetchBaseInfo(blockletDid) {
  try {
    const response = await client.getBlockletBaseInfo({ input: { teamDid: blockletDid } });
    console.log('基本情報:', response);
  } catch (error) {
    console.error('基本情報の取得エラー:', error);
  }
}

fetchBaseInfo('z8ia...');

レスポンス例

json
{
  "user": {
    "users": 10,
    "approvedUsers": 8
  },
  "passport": {
    "passports": 12,
    "activePassports": 10
  },
  "backup": {
    "appPid": "z8ia...",
    "status": 1,
    "updatedAt": 1672531200
  }
}

ノードと blocklet の情報をクエリする方法を学んだので、次は ユーザー & アクセス管理 セクションでユーザーと権限を管理する方法を探ってみましょう。