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

データとオペレーション

このセクションでは、Blocklet Server内のデータ管理および運用タスクに関するミューテーションについて詳しく説明します。主にバックアップの作成と管理、データ構造の移行に焦点を当てています。これらの操作は、データの整合性、更新、および災害復旧にとって重要です。

バックアップとログに関連するクエリについては、データとオペレーションのクエリのドキュメントを参照してください。

backupBlocklet

指定されたblockletのバックアッププロセスを開始します。バックアップはローカルディスクまたは設定されたDID Spaceのいずれかに保存できます。これは、バックグラウンドでバックアップジョブを開始する非同期操作です。

パラメータ

  • input RequestBackupBlockletInput (required) — backupBlockletミューテーションの入力オブジェクト。
    • appDid string (required) — バックアップされるblockletのDID。
    • to BackupTo (required) — バックアップの保存先。spacesまたはdiskのいずれかである必要があります。

戻り値

GeneralResponseオブジェクトを返し、リクエストのステータスを示します。

  • backupBlocklet GeneralResponse — ミューテーションからのレスポンスオブジェクト。
    • code StatusCode — バックアップジョブが正常に開始された場合にokを返します。

Blockletをディスクにバックアップ

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

const client = new BlockletServerClient();

async function createBackup() {
  try {
    const response = await client.backupBlocklet({
      input: {
        appDid: 'z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G',
        to: 'disk',
      },
    });
    console.log('Backup initiated:', response.code);
  } catch (error) {
    console.error('Error initiating backup:', error);
  }
}

createBackup();

レスポンス例

json
{
  "backupBlocklet": {
    "code": "ok"
  }
}

この例では、特定のblockletのバックアッププロセスを開始し、バックアップをローカルディスクに保存する方法を示します。

abortBlockletBackup

特定のblockletの進行中のバックアップ操作を中止します。これは、実行時間の長いバックアップをキャンセルするのに役立ちます。

パラメータ

  • input RequestAbortBlockletBackupInput (required) — abortBlockletBackupミューテーションの入力オブジェクト。
    • appPid string (required) — バックアップを中止すべきblockletのプロセスID(blockletのDID)。

戻り値

GeneralResponseオブジェクトを返し、リクエストのステータスを示します。

  • abortBlockletBackup GeneralResponse — ミューテーションからのレスポンスオブジェクト。
    • code StatusCode — バックアップの中止が正常にリクエストされた場合にokを返します。

バックアップを中止

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

const client = new BlockletServerClient();

async function cancelBackup(blockletDid) {
  try {
    const response = await client.abortBlockletBackup({
      input: {
        appPid: blockletDid,
      },
    });
    console.log('Backup cancellation requested:', response.code);
  } catch (error) {
    console.error('Error aborting backup:', error);
  }
}

cancelBackup('z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G');

レスポンス例

json
{
  "abortBlockletBackup": {
    "code": "ok"
  }
}

この例では、指定されたblockletの実行中のバックアップをキャンセルする方法を示します。

restoreBlocklet

バックアップからblockletを復元します。バックアップのソースはローカルディスクまたはDID Spaceのいずれかです。この操作は、既存のblockletデータが存在する場合、それを上書きします。

パラメータ

  • input RequestRestoreBlockletInput (required) — restoreBlockletミューテーションの入力オブジェクト。
    • appDid string (required) — 復元するblockletのDID。
    • appPid string (required) — 復元されるblockletのプロセスID(DID)。
    • from BackupTo (required) — バックアップのソース。spacesまたはdiskのいずれかである必要があります。
    • endpoint string — バックアップエンドポイントのURL。spacesから復元する場合に必要です。
    • delegation string — オプション。バックアップにアクセスするためのデリゲーション情報。
    • password Bytes — オプション。バックアップが暗号化されている場合に、それを復号化するためのパスワード。
    • wallet any — オプション。必要な場合に認証するためのウォレットオブジェクト。

戻り値

GeneralResponseオブジェクトを返し、リクエストのステータスを示します。

  • restoreBlocklet GeneralResponse — ミューテーションからのレスポンスオブジェクト。
    • code StatusCode — 復元ジョブが正常に開始された場合にokを返します。

ディスクから復元

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

const client = new BlockletServerClient();

async function restoreFromBackup() {
  try {
    const response = await client.restoreBlocklet({
      input: {
        appDid: 'z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G',
        appPid: 'z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G',
        from: 'disk',
      },
    });
    console.log('Restore initiated:', response.code);
  } catch (error) {
    console.error('Error initiating restore:', error);
  }
}

restoreFromBackup();

レスポンス例

json
{
  "restoreBlocklet": {
    "code": "ok"
  }
}

この例では、ローカルディスクのバックアップからblockletの復元プロセスを開始する方法を示します。

migrateApplicationToStructV2

アプリケーションを古いデータ構造からV2構造に移行します。これは通常、古いblockletがコンポーネント化や強化されたバックアップ/復元機能などの新しい機能をサポートするために必要な一回限りの操作です。

パラメータ

  • input RequestMigrateApplicationToStructV2Input (required) — 移行ミューテーションの入力オブジェクト。
    • did string (required) — 移行するアプリケーションのDID。
    • appSk string (required) — アプリケーションのシークレットキー。

戻り値

GeneralResponseオブジェクトを返し、リクエストのステータスを示します。

  • migrateApplicationToStructV2 GeneralResponse — ミューテーションからのレスポンスオブジェクト。
    • code StatusCode — 移行が成功した場合にokを返します。

アプリケーションを移行

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

const client = new BlockletServerClient();

async function migrateApp(appDid, appSecretKey) {
  try {
    const response = await client.migrateApplicationToStructV2({
      input: {
        did: appDid,
        appSk: appSecretKey,
      },
    });
    console.log('Migration successful:', response.code);
  } catch (error) {
    console.error('Error migrating application:', error);
  }
}

migrateApp('z8iZpA6x8CRsBAbg9s33i1WkGHxGTCYxP81G', 'your_app_secret_key');

レスポンス例

json
{
  "migrateApplicationToStructV2": {
    "code": "ok"
  }
}

この例では、古いアプリケーションのデータ構造の移行をトリガーする方法を示します。