このセクションでは、Blocklet Server ノードおよびその上で実行されている Blocklet のライフサイクルと設定の管理に関連するミューテーションについて詳しく説明します。これらの操作により、個々の Blocklet とノード自体の両方をプログラムでインストール、開始、停止、設定、アップグレードできます。
Blocklet のライフサイクル
これらのミューテーションは、インストールから削除までの Blocklet の基本的なライフサイクルを制御します。
installBlocklet
ストア、URL、ローカルファイルなど、さまざまなソースから新しい Blocklet をノードにインストールします。
パラメータ
- input
object(required) — installBlocklet ミューテーションの入力オブジェクト。- type
string— インストールタイプ。「store」、「url」、または「upload」が可能です。 - did
string— インストールする Blocklet の DID(ストアからのインストールの場合は必須)。 - storeUrl
string— Blocklet Store の URL。 - url
string— Blocklet のメタファイルまたはバンドルへの URL(URL からのインストールの場合は必須)。 - file
Upload— アップロードする Blocklet バンドルファイル。 - diffVersion
string— アップグレード中に差分を適用する対象のバージョン。 - deleteSet
string[]— 差分ベースのアップグレード中に削除するファイルのリスト。 - title
string— 新しい Blocklet インスタンスのカスタムタイトル。 - description
string— 新しい Blocklet インスタンスのカスタム説明。 - startImmediately
boolean— true の場合、インストール後に Blocklet が自動的に開始されます。 - downloadTokenList
DownloadTokenInput[]— プライベートコンポーネント用のダウンロードトークンのリスト。- did
string(required) — トークンが必要なコンポーネントの DID。 - token
string(required) — ダウンロードトークン。
- did
- type
例:ストアからのインストール
Install from Store
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function installMyBlocklet() {
try {
const { blocklet } = await client.installBlocklet({
input: {
did: 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf',
storeUrl: 'https://store.blocklet.dev',
startImmediately: true,
},
});
console.log(`Blocklet '${blocklet.meta.title}' installed successfully.`);
} catch (error) {
console.error('Failed to install blocklet:', error);
}
}
installMyBlocklet();レスポンス例
Response
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf",
"name": "@blocklet/did-wallet-adapter",
"version": "1.16.111",
"title": "DID Wallet Adapter"
},
"status": "installed",
"appDid": "z12A1B...",
"appPid": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf"
}
}この例では、公式ストアから DID Wallet Adapter Blocklet をインストールし、すぐに開始します。レスポンスには、新しくインストールされた Blocklet の完全な状態オブジェクトが含まれています。
startBlocklet
現在停止またはエラー状態にある Blocklet の1つ以上のコンポーネントを開始します。
パラメータ
- input
object(required) — startBlocklet ミューテーションの入力オブジェクト。- did
string(required) — Blocklet のルート DID。 - componentDids
string[]— 開始するコンポーネント DID のオプションの配列。省略した場合、すべてのコンポーネントが開始されます。
- did
例
Start a Blocklet
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function startMyBlocklet() {
try {
const { blocklet } = await client.startBlocklet({
input: { did: blockletDid },
});
console.log(`Blocklet '${blocklet.meta.title}' is now ${blocklet.status}.`);
} catch (error) {
console.error('Failed to start blocklet:', error);
}
}
startMyBlocklet();レスポンス例
Response
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf"
},
"status": "running"
// ... other properties
}
}stopBlocklet
Blocklet の実行中の1つ以上のコンポーネントを停止します。
パラメータ
- input
object(required) — stopBlocklet ミューテーションの入力オブジェクト。- did
string(required) — Blocklet のルート DID。 - componentDids
string[]— 停止するコンポーネント DID のオプションの配列。省略した場合、実行中のすべてのコンポーネントが停止されます。
- did
例
Stop a Blocklet
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function stopMyBlocklet() {
try {
const { blocklet } = await client.stopBlocklet({
input: { did: blockletDid },
});
console.log(`Blocklet '${blocklet.meta.title}' is now ${blocklet.status}.`);
} catch (error) {
console.error('Failed to stop blocklet:', error);
}
}
stopMyBlocklet();レスポンス例
Response
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf"
},
"status": "stopped"
// ... other properties
}
}reloadBlocklet
Blocklet の実行中の1つ以上のコンポーネントをリロードし、完全な再起動なしでコードの変更を適用します。これは多くの場合、再起動よりも高速です。
パラメータ
- input
object(required) — reloadBlocklet ミューテーションの入力オブジェクト。- did
string(required) — Blocklet のルート DID。 - componentDids
string[]— リロードするコンポーネント DID のオプションの配列。省略した場合、リロード可能なすべてのコンポーネントがリロードされます。
- did
例
Reload a Blocklet
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function reloadMyBlocklet() {
try {
const { blocklet } = await client.reloadBlocklet({
input: { did: blockletDid },
});
console.log(`Blocklet '${blocklet.meta.title}' has been reloaded.`);
} catch (error) {
console.error('Failed to reload blocklet:', error);
}
}
reloadMyBlocklet();レスポンス例
Response
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf"
},
"status": "running"
// ... other properties
}
}restartBlocklet
Blocklet の1つ以上のコンポーネントを再起動します。これは、それらを停止してから開始するのと同じです。
パラメータ
- input
object(required) — restartBlocklet ミューテーションの入力オブジェクト。- did
string(required) — Blocklet のルート DID。 - componentDids
string[]— 再起動するコンポーネント DID のオプションの配列。省略した場合、すべてのコンポーネントが再起動されます。
- did
例
Restart a Blocklet
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function restartMyBlocklet() {
try {
const { blocklet } = await client.restartBlocklet({
input: { did: blockletDid },
});
console.log(`Blocklet '${blocklet.meta.title}' has been restarted.`);
} catch (error) {
console.error('Failed to restart blocklet:', error);
}
}
restartMyBlocklet();レスポンス例
Response
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf"
},
"status": "running"
// ... other properties
}
}deleteBlocklet
Blocklet とそのコンポーネントをノードから永久に削除します。
パラメータ
- input
object(required) — deleteBlocklet ミューテーションの入力オブジェクト。- did
string(required) — 削除する Blocklet のルート DID。 - keepData
boolean(default:false) — true の場合、Blocklet のデータディレクトリは保持されます。
- did
例
Delete a Blocklet
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function deleteMyBlocklet() {
try {
await client.deleteBlocklet({ input: { did: blockletDid } });
console.log('Blocklet deleted successfully.');
} catch (error) {
console.error('Failed to delete blocklet:', error);
}
}
deleteMyBlocklet();レスポンス例
Response
{
"code": "ok",
"blocklet": {
"meta": {
"did": "z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf"
},
"status": "deleted"
// ... other properties
}
}cancelDownloadBlocklet
進行中の Blocklet のダウンロードをキャンセルします。
パラメータ
- input
object(required) — cancelDownloadBlocklet ミューテーションの入力オブジェクト。- did
string(required) — ダウンロードをキャンセルする Blocklet のルート DID。
- did
例
Cancel a Download
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function cancelDownload() {
try {
const { blocklet } = await client.cancelDownloadBlocklet({ input: { did: blockletDid } });
console.log(`Download for blocklet '${blocklet.meta.title}' cancelled.`);
} catch (error) {
console.error('Failed to cancel download:', error);
}
}
cancelDownload();コンポーネント管理
これらのミューテーションは、インストール、アップグレード、設定変更など、Blocklet 内のコンポーネントを管理するために使用されます。
installComponent
既存の Blocklet に新しいコンポーネントをインストールします。
パラメータ
- input
object(required) — installComponent ミューテーションの入力オブジェクト。- rootDid
string(required) — 親 Blocklet のルート DID。 - mountPoint
string(required) — コンポーネントがマウントされるパス。 - url
string— コンポーネントのメタファイルまたはバンドルへの URL。 - did
string— インストールするコンポーネントの DID。 - title
string— コンポーネントのカスタムタイトル。 - configs
ConfigEntryInput[]— コンポーネントの初期設定値の配列。
- rootDid
例
Install a Component
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const rootBlockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function installNewComponent() {
try {
const { blocklet } = await client.installComponent({
input: {
rootDid: rootBlockletDid,
mountPoint: '/new-component',
did: 'z8ibCciF3uW9i9f9tQ5A7n9e3s2W4f8Y6z1x',
title: 'My New Component',
},
});
console.log('Component installed successfully.');
} catch (error) {
console.error('Failed to install component:', error);
}
}
installNewComponent();deleteComponent
Blocklet からコンポーネントを永久に削除します。
パラメータ
- input
object(required) — deleteComponent ミューテーションの入力オブジェクト。- did
string(required) — 削除するコンポーネントの DID。 - rootDid
string(required) — 親 Blocklet のルート DID。 - keepData
boolean(default:false) — true の場合、コンポーネントのデータは保持されます。
- did
例
Delete a Component
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const rootBlockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
const componentDid = 'z8ibCciF3uW9i9f9tQ5A7n9e3s2W4f8Y6z1x';
async function deleteMyComponent() {
try {
await client.deleteComponent({
input: { did: componentDid, rootDid: rootBlockletDid },
});
console.log('Component deleted successfully.');
} catch (error) {
console.error('Failed to delete component:', error);
}
}
deleteMyComponent();checkComponentsForUpdates
Blocklet 内のコンポーネントで利用可能なアップデートを確認します。
パラメータ
- input
object(required) — checkComponentsForUpdates ミューテーションの入力オブジェクト。- did
string(required) — アップデートを確認する Blocklet のルート DID。
- did
戻り値
- preUpdateInfo
object— 利用可能なアップデートに関する情報。- updateId
string— このアップデートセッションの一意の ID。 - updateList
UpdateList[]— 利用可能なアップデートがあるコンポーネントのリスト。- id
string— コンポーネントの DID。 - meta
BlockletMeta— 新しいバージョンのメタデータ。
- id
- updateId
例
Check for Updates
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function checkUpdates() {
try {
const { preUpdateInfo } = await client.checkComponentsForUpdates({ input: { did: blockletDid } });
if (preUpdateInfo.updateList.length > 0) {
console.log('Updates available:', preUpdateInfo.updateList);
} else {
console.log('All components are up to date.');
}
} catch (error) {
console.error('Failed to check for updates:', error);
}
}
checkUpdates();upgradeComponents
checkComponentsForUpdates からの updateId に基づいて、選択されたコンポーネントを最新バージョンにアップグレードします。
パラメータ
- input
object(required) — upgradeComponents ミューテーションの入力オブジェクト。- updateId
string(required) — checkComponentsForUpdates からのアップデートセッション ID。 - rootDid
string(required) — Blocklet のルート DID。 - selectedComponents
string[](required) — アップグレードするコンポーネント DID の配列。
- updateId
例
Upgrade Components
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const updateId = '...'; // from checkComponentsForUpdates
const rootDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
const componentsToUpgrade = ['z8ibCciF3uW9i9f9tQ5A7n9e3s2W4f8Y6z1x'];
async function performUpgrade() {
try {
await client.upgradeComponents({
input: {
updateId,
rootDid,
selectedComponents: componentsToUpgrade,
},
});
console.log('Components upgraded successfully.');
} catch (error) {
console.error('Failed to upgrade components:', error);
}
}
performUpgrade();updateComponentTitle
Blocklet 内の特定のコンポーネントの表示タイトルを更新します。
パラメータ
- did
string(required) — 更新するコンポーネントの DID。 - rootDid
string(required) — 親 Blocklet のルート DID。 - title
string(required) — コンポーネントの新しいタイトル。
updateComponentMountPoint
Blocklet 内の特定のコンポーネントの URL パス(マウントポイント)を変更します。
パラメータ
- did
string(required) — 更新するコンポーネントの DID。 - rootDid
string(required) — 親 Blocklet のルート DID。 - mountPoint
string(required) — コンポーネントの新しいマウントポイント(例:'/new-path')。
設定
これらのミューテーションは、Blocklet とノードの動的な設定を処理します。
configBlocklet
Blocklet またはそのコンポーネントの1つの設定(環境変数)を更新します。
パラメータ
- input
object(required) — configBlocklet ミューテーションの入力オブジェクト。- did
string[](required) — ルート DID と、オプションでコンポーネント DID を含む配列。 - configs
ConfigEntryInput[](required) — 更新する設定オブジェクトの配列。- key
string(required) — 環境変数名。 - value
string(required) — 変数の新しい値。
- key
- did
例
Configure a Blocklet
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
const blockletDid = 'z8ia1posN9ZcxGA2MAnsl62aT82gS7f5kCtUf';
async function updateConfiguration() {
try {
await client.configBlocklet({
input: {
did: [blockletDid],
configs: [
{ key: 'API_ENDPOINT', value: 'https://api.new.com' },
{ key: 'API_KEY', value: 'new-secret-key' },
],
},
});
console.log('Blocklet configuration updated.');
} catch (error) {
console.error('Failed to configure blocklet:', error);
}
}
updateConfiguration();updateBlockletSettings
ゲートウェイポリシー、招待設定、AI サービス設定など、特定の Blocklet のさまざまな設定を更新します。
パラメータ
- input
object(required) — updateBlockletSettings ミューテーションの入力オブジェクト。- did
string(required) — 更新する Blocklet の DID。 - enableSessionHardening
boolean— セキュリティ強化のためセッション強化を有効または無効にします。 - invite
InviteSettingsInput— ユーザー招待に関連する設定。- enabled
boolean— 招待機能を有効または無効にします。
- enabled
- gateway
BlockletGatewayInput— レート制限やセキュリティポリシーを含む、Blocklet のゲートウェイの設定。 - aigne
AigneConfigInput— AIGNE サービス統合の設定。
- did
updateAutoBackup
Blocklet の自動バックアップ機能を有効または無効にします。
パラメータ
- input
object(required) — updateAutoBackup ミューテーションの入力オブジェクト。- did
string(required) — Blocklet の DID。 - autoBackup
AutoBackupInput(required) — 自動バックアップ設定。- enabled
boolean(required) — 自動バックアップを有効にする場合は true、無効にする場合は false に設定します。
- enabled
- did
updateAutoCheckUpdate
Blocklet のアップデート自動確認機能を有効または無効にします。
パラメータ
- input
object(required) — updateAutoCheckUpdate ミューテーションの入力オブジェクト。- did
string(required) — Blocklet の DID。 - autoCheckUpdate
AutoCheckUpdateInput(required) — アップデート自動確認設定。- enabled
boolean(required) — 自動アップデート確認を有効にする場合は true、無効にする場合は false に設定します。
- enabled
- did
ノード管理
これらのミューテーションは、Blocklet Server ノード自体を管理するために使用されます。
updateNodeInfo
Blocklet Server ノードの一般情報と設定を更新します。
パラメータ
- input
object(required) — updateNodeInfo ミューテーションの入力オブジェクト。- name
string— ノードの新しい名前。 - description
string— ノードの新しい説明。 - autoUpgrade
boolean— ノードの自動アップグレードを有効または無効にします。 - enableWelcomePage
boolean— ウェルカムページを有効または無効にします。 - webWalletUrl
string— ノードで使用するウェブウォレットの URL。 - enableBetaRelease
boolean— アップデートのベータリリースチャンネルを有効または無効にします。
- name
例
Configure Node
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function configureNode() {
try {
const { info } = await client.updateNodeInfo({
input: {
name: 'My Production Node',
autoUpgrade: true,
},
});
console.log(`Node name updated to: ${info.name}`);
} catch (error) {
console.error('Failed to update node info:', error);
}
}
configureNode();レスポンス例
Response
{
"code": "ok",
"info": {
"did": "z12A1B...",
"name": "My Production Node",
"autoUpgrade": true
// ... other properties
}
}upgradeNodeVersion
Blocklet Server の利用可能な次のバージョンへのアップグレードを開始します。
パラメータ
- input
object— upgradeNodeVersion ミューテーションの入力オブジェクト。- sessionId
string— アップグレードプロセスを追跡するためのオプションのセッション ID。
- sessionId
例
Upgrade Node
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function upgradeMyNode() {
try {
const { sessionId } = await client.upgradeNodeVersion({});
console.log(`Node upgrade started with session ID: ${sessionId}`);
} catch (error) {
console.error('Failed to start node upgrade:', error);
}
}
upgradeMyNode();レスポンス例
Response
{
"code": "ok",
"sessionId": "unique-session-id-for-upgrade"
}restartServer
Blocklet Server デーモンを再起動します。これにより、実行中のすべての Blocklet とサービスが一時的に中断されます。
例
Restart Server
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function restartMyServer() {
try {
const { sessionId } = await client.restartServer();
console.log(`Server restart initiated with session ID: ${sessionId}`);
} catch (error) {
console.error('Failed to restart server:', error);
}
}
restartMyServer();レスポンス例
Response
{
"code": "ok",
"sessionId": "unique-session-id-for-restart"
}resetNode
ノードの設定とデータのさまざまな部分をリセットします。これは破壊的な操作であり、注意して使用する必要があります。
パラメータ
- input
object(required) — resetNode ミューテーションの入力オブジェクト。- owner
boolean— ノードの所有者をリセットします。 - blocklets
boolean— インストールされているすべての Blocklet を削除します。 - webhooks
boolean— すべての Webhook を削除します。 - certificates
boolean— すべての SSL 証明書を削除します。 - accessKeys
boolean— すべてのアクセスキーを削除します。 - routingRules
boolean— すべてのルーティングルールを削除します。 - users
boolean— 所有者を除くすべてのユーザーを削除します。 - invitations
boolean— 保留中のすべての招待を削除します。
- owner
例
Reset Node Data
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function resetNodeData() {
try {
await client.resetNode({
input: {
blocklets: true,
users: true,
},
});
console.log('Node blocklets and users have been reset.');
} catch (error) {
console.error('Failed to reset node:', error);
}
}
resetNodeData();レスポンス例
Response
{
"code": "ok"
}restartAllContainers
Blocklet Server によって管理されている実行中のすべての Docker コンテナを再起動します。これは、Docker 環境に影響を与えるシステムレベルの変更を適用するのに役立ちます。
例
Restart All Containers
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function restartContainers() {
try {
const { sessionId } = await client.restartAllContainers();
console.log(`Restarting all containers with session ID: ${sessionId}`);
} catch (error) {
console.error('Failed to restart containers:', error);
}
}
restartContainers();レスポンス例
Response
{
"code": "ok",
"sessionId": "unique-session-id-for-restart-all"
}