跳到主要內容

使用者與存取權管理

本節提供管理 Blocklet 中使用者、角色、權限、邀請和存取金鑰的 mutations 詳細參考。這些操作對於控制應用程式中的存取和管理身份至關重要。

若要擷取使用者和存取控制資料,請參閱 使用者與存取權管理查詢 文件。

使用者管理

用於建立、更新、刪除和管理使用者個人資料和屬性的 Mutations。

角色與權限管理

用於定義角色和分配精細權限以控制資源存取的操作。

邀請管理

用於建立和管理使用者邀請以加入團隊或轉移所有權的方法。

存取金鑰管理

用於建立、更新和刪除 API 存取金鑰以進行程式化存取的功能。

標籤管理

用於建立、更新和刪除用於組織使用者的標籤的 Mutations。

通行證管理

與發行和設定可驗證憑證(通行證)相關的操作。

使用者管理

這些 mutations 允許對使用者帳戶進行全面管理。

removeUser

從團隊中永久移除一名使用者。

參數

  • input RequestTeamUserInput (required) — 一個包含 teamDid 和使用者 did 的物件。
  • teamDid string (required) — 團隊的 DID。
  • user UserInfoInput (required) — 使用者資訊。
  • did string (required) — 要移除的使用者的 DID。

範例

removeUser

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

const client = new BlockletServerClient();

try {
  const { user } = await client.removeUser({
    input: {
      teamDid: 'zdfw...',
      user: {
        did: 'z8...',
      },
    },
  });
  console.log('使用者已移除:', user.did);
} catch (error) {
  console.error('移除使用者時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中包含已移除使用者的詳細資訊。

Response

json
{
  "removeUser": {
    "code": "ok",
    "user": {
      "did": "z8...",
      "fullName": "John Doe"
    }
  }
}

updateUserTags

更新與特定使用者關聯的標籤。

參數

  • input RequestUpdateUserTagsInput (required) — 一個包含 teamDid、使用者 did 和標籤 ID 陣列的物件。
  • teamDid string (required) — 團隊的 DID。
  • did string (required) — 使用者的 DID。
  • tags number[] (required) — 要與使用者關聯的標籤 ID 陣列。

範例

updateUserTags

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

const client = new BlockletServerClient();

try {
  const { user } = await client.updateUserTags({
    input: {
      teamDid: 'zdfw...',
      did: 'z8...',
      tags: [1, 3],
    },
  });
  console.log('使用者標籤已更新:', user.tags);
} catch (error) {
  console.error('更新使用者標籤時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中包含使用者更新後的資訊。

Response

json
{
  "updateUserTags": {
    "code": "ok",
    "user": {
      "did": "z8...",
      "tags": [
        { "id": 1, "title": "Developer" },
        { "id": 3, "title": "Early Adopter" }
      ]
    }
  }
}

updateUserExtra

更新使用者的 remarkextra(一個 JSON 字串)欄位。

參數

  • input RequestUpdateUserExtraInput (required) — 一個包含 teamDid、使用者 DID 和額外資料的物件。
  • teamDid string (required) — 團隊的 DID。
  • did string (required) — 要更新的使用者的 DID。
  • remark string — 使用者的新備註。
  • extra string — 包含自訂資料的 JSON 字串。

範例

updateUserExtra

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

const client = new BlockletServerClient();

try {
  const { user } = await client.updateUserExtra({
    input: {
      teamDid: 'zdfw...',
      did: 'z8...',
      remark: '內部使用者帳戶',
      extra: JSON.stringify({ department: 'Engineering' }),
    },
  });
  console.log('使用者額外資料已更新:', user.extra);
} catch (error) {
  console.error('更新使用者額外資料時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中包含更新後的使用者詳細資訊。

Response

json
{
  "updateUserExtra": {
    "code": "ok",
    "user": {
      "did": "z8...",
      "remark": "Internal user account",
      "extra": {
        "department": "Engineering"
      }
    }
  }
}

updateUserApproval

設定使用者的批准狀態。

參數

  • input RequestTeamUserInput (required) — 一個包含 teamDid 和使用者詳細資訊的物件,包括 did 和新的批准狀態。
  • teamDid string (required) — 團隊的 DID。
  • user UserInfoInput (required) — 使用者資訊。
  • did string (required) — 使用者的 DID。
  • approved boolean (required) — 新的批准狀態。

範例

updateUserApproval

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

const client = new BlockletServerClient();

try {
  const { user } = await client.updateUserApproval({
    input: {
      teamDid: 'zdfw...',
      user: {
        did: 'z8...',
        approved: true,
      },
    },
  });
  console.log('使用者批准狀態:', user.approved);
} catch (error) {
  console.error('更新使用者批准狀態時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中包含更新後的批准狀態。

Response

json
{
  "updateUserApproval": {
    "code": "ok",
    "user": {
      "did": "z8...",
      "approved": true
    }
  }
}

issuePassportToUser

向使用者發行新的通行證(可驗證憑證),通常是分配給他們一個角色。

參數

  • input RequestIssuePassportToUserInput (required) — 一個包含 teamDid、userDid、role 和顯示詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • userDid string (required) — 接收通行證的使用者的 DID。
  • role string (required) — 使用此通行證分配的角色。
  • display PassportDisplayInput — 通行證的顯示資訊。
  • type string (required) — 顯示類型(例如 'text')。
  • content string (required) — 要顯示的內容。
  • notify boolean — 是否向使用者傳送通知。

範例

issuePassportToUser

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

const client = new BlockletServerClient();

try {
  const { user } = await client.issuePassportToUser({
    input: {
      teamDid: 'zdfw...',
      userDid: 'z8...',
      role: 'guest',
      display: {
        type: 'text',
        content: '訪客通行證',
      },
      notify: true,
    },
  });
  console.log('已向使用者發行通行證:', user.did);
} catch (error) {
  console.error('發行通行證時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中可能在使用者的 passports 陣列中包含新發行的通行證。

Response

json
{
  "issuePassportToUser": {
    "code": "ok",
    "user": {
      "did": "z8...",
      "passports": [
        {
          "id": "...",
          "role": "guest"
        }
      ]
    }
  }
}

revokeUserPassport

從使用者處撤銷先前發行的通行證。

參數

  • input RequestRevokeUserPassportInput (required) — 一個包含 teamDid、userDid 和要撤銷的 passportId 的物件。
  • teamDid string (required) — 團隊的 DID。
  • userDid string (required) — 使用者的 DID。
  • passportId string (required) — 要撤銷的通行證的 ID。

範例

revokeUserPassport

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

const client = new BlockletServerClient();

try {
  const { user } = await client.revokeUserPassport({
    input: {
      teamDid: 'zdfw...',
      userDid: 'z8...',
      passportId: 'z...',
    },
  });
  console.log('使用者通行證已撤銷。');
} catch (error) {
  console.error('撤銷通行證時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,反映使用者通行證的變更。

Response

json
{
  "revokeUserPassport": {
    "code": "ok",
    "user": {
      "did": "z8..."
    }
  }
}

enableUserPassport

重新啟用先前被撤銷的通行證。

參數

  • input RequestRevokeUserPassportInput (required) — 一個包含 teamDid、userDid 和要啟用的 passportId 的物件。
  • teamDid string (required) — 團隊的 DID。
  • userDid string (required) — 使用者的 DID。
  • passportId string (required) — 要重新啟用的通行證的 ID。

範例

enableUserPassport

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

const client = new BlockletServerClient();

try {
  const { user } = await client.enableUserPassport({
    input: {
      teamDid: 'zdfw...',
      userDid: 'z8...',
      passportId: 'z...',
    },
  });
  console.log('使用者通行證已重新啟用。');
} catch (error) {
  console.error('啟用通行證時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中包含使用者更新後的通行證狀態。

Response

json
{
  "enableUserPassport": {
    "code": "ok",
    "user": {
      "did": "z8..."
    }
  }
}

removeUserPassport

從使用者的記錄中永久移除一個通行證。

參數

  • input RequestRevokeUserPassportInput (required) — 一個包含 teamDid、userDid 和要移除的 passportId 的物件。
  • teamDid string (required) — 團隊的 DID。
  • userDid string (required) — 使用者的 DID。
  • passportId string (required) — 要移除的通行證的 ID。

範例

removeUserPassport

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

const client = new BlockletServerClient();

try {
  await client.removeUserPassport({
    input: {
      teamDid: 'zdfw...',
      userDid: 'z8...',
      passportId: 'z...',
    },
  });
  console.log('使用者通行證已永久移除。');
} catch (error) {
  console.error('移除通行證時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "removeUserPassport": {
    "code": "ok"
  }
}

updateUserInfo

更新使用者的一般資訊,例如 fullNameemailavatar

參數

  • input RequestUpdateUserInfoInput (required) — 一個包含 teamDid 和一個帶有要更新欄位的使用者物件的物件。
  • teamDid string (required) — 團隊的 DID。
  • user UserInfoInput (required) — 一個帶有要更新的使用者欄位的物件。
  • did string (required) — 使用者的 DID。
  • fullName string — 使用者的全名。
  • email string — 使用者的電子郵件地址。

範例

updateUserInfo

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

const client = new BlockletServerClient();

try {
  const { user } = await client.updateUserInfo({
    input: {
      teamDid: 'zdfw...',
      user: {
        did: 'z8...',
        fullName: 'Johnathan Doe',
        email: 'john.doe.new@example.com',
      },
    },
  });
  console.log('使用者資訊已更新:', user.fullName);
} catch (error) {
  console.error('更新使用者資訊時發生錯誤:', error);
}

回應

回傳一個 ResponseUser 物件,其中包含更新後的使用者資訊。

Response

json
{
  "updateUserInfo": {
    "code": "ok",
    "user": {
      "did": "z8...",
      "fullName": "Johnathan Doe",
      "email": "john.doe.new@example.com"
    }
  }
}

角色與權限管理

這些 mutations 用於定義角色並管理與其相關的權限。

createRole

在團隊中建立一個新角色。

參數

  • input RequestCreateRoleInput (required) — 一個包含 teamDid、name、title 和可選權限的物件。
  • teamDid string (required) — 團隊的 DID。
  • name string (required) — 角色的唯一名稱(例如 'editor')。
  • title string (required) — 角色的易讀標題(例如 'Editor')。
  • description string — 角色的簡要描述。
  • permissions string[] — 授予此角色的權限名稱陣列。

範例

createRole

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

const client = new BlockletServerClient();

try {
  const { role } = await client.createRole({
    input: {
      teamDid: 'zdfw...',
      name: 'editor',
      title: '編輯',
      description: '可以建立和編輯內容',
      permissions: ['content:create', 'content:edit'],
    },
  });
  console.log('角色已建立:', role.name);
} catch (error) {
  console.error('建立角色時發生錯誤:', error);
}

回應

回傳一個 ResponseRole 物件,其中包含新建立角色的詳細資訊。

Response

json
{
  "createRole": {
    "code": "ok",
    "role": {
      "name": "editor",
      "title": "Editor",
      "grants": ["content:create", "content:edit"]
    }
  }
}

updateRole

更新現有角色的詳細資訊。

參數

  • input RequestTeamRoleInput (required) — 一個包含 teamDid 和一個帶有要更新欄位的角色物件的物件。
  • teamDid string (required) — 團隊的 DID。
  • role RoleUpdateInput (required) — 一個帶有要更新的角色欄位的物件。
  • name string (required) — 要更新的角色名稱。
  • title string — 角色的新標題。
  • description string — 角色的新描述。

範例

updateRole

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

const client = new BlockletServerClient();

try {
  const { role } = await client.updateRole({
    input: {
      teamDid: 'zdfw...',
      role: {
        name: 'editor',
        title: '內容編輯',
      },
    },
  });
  console.log('角色已更新:', role.title);
} catch (error) {
  console.error('更新角色時發生錯誤:', error);
}

回應

回傳一個 ResponseRole 物件,其中包含更新後的角色資訊。

Response

json
{
  "updateRole": {
    "code": "ok",
    "role": {
      "name": "editor",
      "title": "Content Editor"
    }
  }
}

deleteRole

永久刪除一個角色。

參數

  • input RequestDeleteRoleInput (required) — 一個包含 teamDid 和要刪除的角色名稱的物件。
  • teamDid string (required) — 團隊的 DID。
  • name string (required) — 要刪除的角色名稱。

範例

deleteRole

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

const client = new BlockletServerClient();

try {
  await client.deleteRole({
    input: {
      teamDid: 'zdfw...',
      name: 'editor',
    },
  });
  console.log('角色 "editor" 已刪除。');
} catch (error) {
  console.error('刪除角色時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "deleteRole": {
    "code": "ok"
  }
}

createPermission

建立一個可以授予給角色的新權限。

參數

  • input RequestCreatePermissionInput (required) — 一個包含 teamDid、name 和 description 的物件。
  • teamDid string (required) — 團隊的 DID。
  • name string (required) — 權限的唯一名稱(例如 'content')。
  • description string — 權限的簡要描述。

範例

createPermission

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

const client = new BlockletServerClient();

try {
  const { permission } = await client.createPermission({
    input: {
      teamDid: 'zdfw...',
      name: 'content:publish',
      description: '允許發布內容',
    },
  });
  console.log('權限已建立:', permission.name);
} catch (error) {
  console.error('建立權限時發生錯誤:', error);
}

回應

回傳一個 ResponsePermission 物件,其中包含新權限的詳細資訊。

Response

json
{
  "createPermission": {
    "code": "ok",
    "permission": {
      "name": "content:publish",
      "description": "Allows publishing content"
    }
  }
}

updatePermission

更新現有權限的描述。

參數

  • input RequestTeamPermissionInput (required) — 一個包含 teamDid 和要更新的權限詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • permission PermissionInput (required) — 一個帶有權限名稱和新描述的物件。
  • name string (required) — 要更新的權限名稱。
  • description string (required) — 權限的新描述。

範例

updatePermission

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

const client = new BlockletServerClient();

try {
  const { permission } = await client.updatePermission({
    input: {
      teamDid: 'zdfw...',
      permission: {
        name: 'content:publish',
        description: '允許將內容發布到即時網站。',
      },
    },
  });
  console.log('權限已更新:', permission.description);
} catch (error) {
  console.error('更新權限時發生錯誤:', error);
}

回應

回傳一個 ResponsePermission 物件,其中包含更新後的權限詳細資訊。

Response

json
{
  "updatePermission": {
    "code": "ok",
    "permission": {
      "name": "content:publish",
      "description": "Allows publishing content to the live site."
    }
  }
}

deletePermission

永久刪除一個權限。這也會從任何擁有它的角色中撤銷它。

參數

  • input RequestDeletePermissionInput (required) — 一個包含 teamDid 和要刪除的權限名稱的物件。
  • teamDid string (required) — 團隊的 DID。
  • name string (required) — 要刪除的權限名稱。

範例

deletePermission

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

const client = new BlockletServerClient();

try {
  await client.deletePermission({
    input: {
      teamDid: 'zdfw...',
      name: 'content:publish',
    },
  });
  console.log('權限已刪除。');
} catch (error) {
  console.error('刪除權限時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "deletePermission": {
    "code": "ok"
  }
}

grantPermissionForRole

授予一個特定權限給一個角色。

參數

  • input RequestGrantPermissionForRoleInput (required) — 一個包含 teamDid、roleName 和 grantName (權限) 的物件。
  • teamDid string (required) — 團隊的 DID。
  • roleName string (required) — 角色的名稱。
  • grantName string (required) — 要授予的權限名稱。

範例

grantPermissionForRole

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

const client = new BlockletServerClient();

try {
  await client.grantPermissionForRole({
    input: {
      teamDid: 'zdfw...',
      roleName: 'editor',
      grantName: 'content:publish',
    },
  });
  console.log('權限已授予。');
} catch (error) {
  console.error('授予權限時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "grantPermissionForRole": {
    "code": "ok"
  }
}

revokePermissionFromRole

從一個角色中撤銷一個特定權限。

參數

  • input RequestRevokePermissionFromRoleInput (required) — 一個包含 teamDid、roleName 和 grantName (權限) 的物件。
  • teamDid string (required) — 團隊的 DID。
  • roleName string (required) — 角色的名稱。
  • grantName string (required) — 要撤銷的權限名稱。

範例

revokePermissionFromRole

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

const client = new BlockletServerClient();

try {
  await client.revokePermissionFromRole({
    input: {
      teamDid: 'zdfw...',
      roleName: 'editor',
      grantName: 'content:publish',
    },
  });
  console.log('權限已撤銷。');
} catch (error) {
  console.error('撤銷權限時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "revokePermissionFromRole": {
    "code": "ok"
  }
}

updatePermissionsForRole

設定一個角色的完整權限列表,取代任何現有的權限。

參數

  • input RequestUpdatePermissionsForRoleInput (required) — 一個包含 teamDid、roleName 和權限名稱陣列的物件。
  • teamDid string (required) — 團隊的 DID。
  • roleName string (required) — 角色的名稱。
  • grantNames string[] (required) — 要為角色設定的權限名稱陣列。

範例

updatePermissionsForRole

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

const client = new BlockletServerClient();

try {
  const { role } = await client.updatePermissionsForRole({
    input: {
      teamDid: 'zdfw...',
      roleName: 'editor',
      grantNames: ['content:create', 'content:edit', 'content:delete'],
    },
  });
  console.log('角色權限已更新:', role.grants);
} catch (error) {
  console.error('更新角色權限時發生錯誤:', error);
}

回應

回傳一個 ResponseRole 物件,其中包含更新後的權限列表。

Response

json
{
  "updatePermissionsForRole": {
    "code": "ok",
    "role": {
      "name": "editor",
      "grants": ["content:create", "content:edit", "content:delete"]
    }
  }
}

邀請管理

這些 mutations 用於管理使用者邀請。

createMemberInvitation

建立一個邀請,讓新成員以特定角色加入團隊。

參數

  • input RequestCreateInvitationInput (required) — 一個包含 teamDid、role 和其他邀請詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • role string (required) — 要分配給被邀請成員的角色。
  • remark string — 邀請的備註或說明。

範例

createMemberInvitation

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

const client = new BlockletServerClient();

try {
  const { inviteInfo } = await client.createMemberInvitation({
    input: {
      teamDid: 'zdfw...',
      role: 'guest',
      remark: '給新團隊成員的邀請',
    },
  });
  console.log('邀請已建立:', inviteInfo.inviteId);
} catch (error) {
  console.error('建立邀請時發生錯誤:', error);
}

回應

回傳一個 ResponseCreateInvitation 物件,其中包含已建立邀請的詳細資訊。

Response

json
{
  "createMemberInvitation": {
    "code": "ok",
    "inviteInfo": {
      "inviteId": "...",
      "role": "guest"
    }
  }
}

createTransferInvitation

建立一個轉移節點所有權的邀請。

參數

  • input RequestCreateTransferNodeInvitationInput (required) — 一個包含 teamDid 和備註的物件。
  • teamDid string (required) — 團隊的 DID。
  • remark string — 轉移邀請的備註。

範例

createTransferInvitation

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

const client = new BlockletServerClient();

try {
  const { inviteInfo } = await client.createTransferInvitation({
    input: {
      teamDid: 'zdfw...',
      remark: '轉移節點所有權',
    },
  });
  console.log('轉移邀請已建立:', inviteInfo.inviteId);
} catch (error) {
  console.error('建立轉移邀請時發生錯誤:', error);
}

回應

回傳一個 ResponseCreateTransferNodeInvitation 物件,其中包含邀請的詳細資訊。

Response

json
{
  "createTransferInvitation": {
    "code": "ok",
    "inviteInfo": {
      "inviteId": "...",
      "role": "owner"
    }
  }
}

deleteInvitation

永久刪除一個邀請。

參數

  • input RequestDeleteInvitationInput (required) — 一個包含 teamDid 和要刪除的 inviteId 的物件。
  • teamDid string (required) — 團隊的 DID。
  • inviteId string (required) — 要刪除的邀請 ID。

範例

deleteInvitation

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

const client = new BlockletServerClient();

try {
  await client.deleteInvitation({
    input: {
      teamDid: 'zdfw...',
      inviteId: '...',
    },
  });
  console.log('邀請已刪除。');
} catch (error) {
  console.error('刪除邀請時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "deleteInvitation": {
    "code": "ok"
  }
}

存取金鑰管理

這些 mutations 用於管理用於程式化存取的 API 存取金鑰。

createAccessKey

建立一個新的存取金鑰。

參數

  • input RequestCreateAccessKeyInput (required) — 一個包含 teamDid、remark 和其他金鑰詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • remark string — 用於識別金鑰用途的備註。
  • authType string — 驗證類型(例如 'role')。

範例

createAccessKey

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

const client = new BlockletServerClient();

try {
  const { data } = await client.createAccessKey({
    input: {
      teamDid: 'zdfw...',
      remark: '用於 CI/CD 管道的金鑰',
      authType: 'role',
    },
  });
  console.log('存取金鑰已建立:', data.accessKeyId);
  console.log('密鑰:', data.accessKeySecret); // 請安全地儲存此密鑰
} catch (error) {
  console.error('建立存取金鑰時發生錯誤:', error);
}

回應

回傳一個 ResponseCreateAccessKey 物件,其中包含新金鑰的 ID 和密鑰。密鑰僅在建立時回傳。

Response

json
{
  "createAccessKey": {
    "code": "ok",
    "data": {
      "accessKeyId": "...",
      "accessKeySecret": "...",
      "remark": "Key for CI/CD pipeline"
    }
  }
}

updateAccessKey

更新現有存取金鑰的詳細資訊,例如其備註或到期時間。

參數

  • input RequestUpdateAccessKeyInput (required) — 一個包含 teamDid、accessKeyId 和要更新欄位的物件。
  • teamDid string (required) — 團隊的 DID。
  • accessKeyId string (required) — 要更新的存取金鑰的 ID。
  • remark string — 金鑰的新備註。

範例

updateAccessKey

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

const client = new BlockletServerClient();

try {
  const { data } = await client.updateAccessKey({
    input: {
      teamDid: 'zdfw...',
      accessKeyId: '...',
      remark: 'CI/CD 管道的更新備註',
    },
  });
  console.log('存取金鑰已更新:', data.remark);
} catch (error) {
  console.error('更新存取金鑰時發生錯誤:', error);
}

回應

回傳一個 ResponseUpdateAccessKey 物件,其中包含更新後的金鑰詳細資訊。

Response

json
{
  "updateAccessKey": {
    "code": "ok",
    "data": {
      "accessKeyId": "...",
      "remark": "Updated remark for CI/CD pipeline"
    }
  }
}

deleteAccessKey

永久刪除一個存取金鑰。

參數

  • input RequestDeleteAccessKeyInput (required) — 一個包含 teamDid 和要刪除的 accessKeyId 的物件。
  • teamDid string (required) — 團隊的 DID。
  • accessKeyId string (required) — 要刪除的存取金鑰的 ID。

範例

deleteAccessKey

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

const client = new BlockletServerClient();

try {
  await client.deleteAccessKey({
    input: {
      teamDid: 'zdfw...',
      accessKeyId: '...',
    },
  });
  console.log('存取金鑰已刪除。');
} catch (error) {
  console.error('刪除存取金鑰時發生錯誤:', error);
}

回應

回傳一個 ResponseDeleteAccessKey 物件,表示成功或失敗。

Response

json
{
  "deleteAccessKey": {
    "code": "ok"
  }
}

verifyAccessKey

驗證存取金鑰是否有效,以及是否對特定資源具有存取權限。

參數

  • input RequestVerifyAccessKeyInput (required) — 一個包含 teamDid、accessKeyId 和資源詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • accessKeyId string (required) — 要驗證的存取金鑰的 ID。
  • resourceType string — 資源的類型(例如 'blocklet')。
  • resourceId string — 資源的 ID。
  • componentDid string — 與資源關聯的元件的 DID。

範例

verifyAccessKey

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

const client = new BlockletServerClient();

try {
  const { data } = await client.verifyAccessKey({
    input: {
      teamDid: 'zdfw...',
      accessKeyId: '...',
    },
  });
  console.log('存取金鑰有效:', data);
} catch (error) {
  console.error('存取金鑰驗證失敗:', error);
}

回應

如果驗證成功,回傳一個 ResponseAccessKey 物件,其中包含金鑰的詳細資訊。

Response

json
{
  "verifyAccessKey": {
    "code": "ok",
    "data": {
      "accessKeyId": "...",
      "remark": "Key for CI/CD pipeline"
    }
  }
}

標籤管理

這些 mutations 用於管理使用者標籤。

createTag

建立一個新標籤。

參數

  • input RequestTagInput (required) — 一個包含 teamDid 和要建立的標籤詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • tag TagInput (required) — 一個帶有標籤詳細資訊的物件。
  • title string (required) — 標籤的標題。
  • description string — 標籤的描述。
  • color string — 標籤的十六進位顏色代碼。

範例

createTag

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

const client = new BlockletServerClient();

try {
  const { tag } = await client.createTag({
    input: {
      teamDid: 'zdfw...',
      tag: {
        title: 'VIP',
        description: '非常重要的人物',
        color: '#FFD700',
      },
    },
  });
  console.log('標籤已建立:', tag.title);
} catch (error) {
  console.error('建立標籤時發生錯誤:', error);
}

回應

回傳一個 ResponseTag 物件,其中包含新建立標籤的詳細資訊。

Response

json
{
  "createTag": {
    "code": "ok",
    "tag": {
      "id": 4,
      "title": "VIP",
      "color": "#FFD700"
    }
  }
}

updateTag

更新現有標籤。

參數

  • input RequestTagInput (required) — 一個包含 teamDid 和一個帶有 id 和要更新欄位的標籤物件的物件。
  • teamDid string (required) — 團隊的 DID。
  • tag TagInput (required) — 一個帶有標籤 ID 和要更新欄位的物件。
  • id number (required) — 要更新的標籤 ID。
  • title string — 標籤的新標題。
  • color string — 標籤的新顏色。

範例

updateTag

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

const client = new BlockletServerClient();

try {
  const { tag } = await client.updateTag({
    input: {
      teamDid: 'zdfw...',
      tag: {
        id: 4,
        color: '#E5C100',
      },
    },
  });
  console.log('標籤已更新:', tag.color);
} catch (error) {
  console.error('更新標籤時發生錯誤:', error);
}

回應

回傳一個 ResponseTag 物件,其中包含更新後的標籤資訊。

Response

json
{
  "updateTag": {
    "code": "ok",
    "tag": {
      "id": 4,
      "title": "VIP",
      "color": "#E5C100"
    }
  }
}

deleteTag

永久刪除一個標籤。

參數

  • input RequestTagInput (required) — 一個包含 teamDid 和要刪除的標籤 id 的物件。
  • teamDid string (required) — 團隊的 DID。
  • tag TagInput (required) — 一個包含要刪除的標籤 ID 的物件。
  • id number (required) — 要刪除的標籤 ID。

範例

deleteTag

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

const client = new BlockletServerClient();

try {
  await client.deleteTag({
    input: {
      teamDid: 'zdfw...',
      tag: {
        id: 4,
      },
    },
  });
  console.log('標籤已刪除。');
} catch (error) {
  console.error('刪除標籤時發生錯誤:', error);
}

回應

回傳已刪除標籤的 ResponseTag 物件。

Response

json
{
  "deleteTag": {
    "code": "ok",
    "tag": {
      "id": 4
    }
  }
}

通行證管理

這些 mutations 用於管理通行證發行和信任設定。

createPassportIssuance

為團隊建立一個新的通行證發行設定。

參數

  • input RequestCreatePassportIssuanceInput (required) — 一個包含 teamDid、ownerDid、name 和顯示詳細資訊的物件。
  • teamDid string (required) — 團隊的 DID。
  • ownerDid string (required) — 此發行所有者的 DID。
  • name string (required) — 通行證發行的名稱。
  • display PassportDisplayInput — 通行證的顯示資訊。
  • type string (required) — 顯示類型。
  • content string (required) — 顯示內容。

範例

createPassportIssuance

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

const client = new BlockletServerClient();

try {
  const { info } = await client.createPassportIssuance({
    input: {
      teamDid: 'zdfw...',
      ownerDid: 'z8...',
      name: '社群貢獻者',
      display: {
        type: 'text',
        content: '社群貢獻者徽章',
      },
    },
  });
  console.log('通行證發行已建立:', info.id);
} catch (error) {
  console.error('建立通行證發行時發生錯誤:', error);
}

回應

回傳一個 ResponseCreatePassportIssuance 物件,其中包含新發行設定的詳細資訊。

Response

json
{
  "createPassportIssuance": {
    "code": "ok",
    "info": {
      "id": "...",
      "name": "Community Contributor"
    }
  }
}

deletePassportIssuance

刪除一個通行證發行設定。

參數

  • input RequestDeleteTeamSessionInput (required) — 一個包含 teamDid 和要刪除的 sessionId (發行 ID) 的物件。
  • teamDid string (required) — 團隊的 DID。
  • sessionId string (required) — 要刪除的通行證發行的 ID。

範例

deletePassportIssuance

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

const client = new BlockletServerClient();

try {
  await client.deletePassportIssuance({
    input: {
      teamDid: 'zdfw...',
      sessionId: '...',
    },
  });
  console.log('通行證發行已刪除。');
} catch (error) {
  console.error('刪除通行證發行時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "deletePassportIssuance": {
    "code": "ok"
  }
}

configPassportIssuance

為團隊啟用或停用通行證發行。

參數

  • input RequestConfigPassportIssuanceInput (required) — 一個包含 teamDid 和布林值啟用標誌的物件。
  • teamDid string (required) — 團隊的 DID。
  • enable boolean (required) — 設為 true 以啟用,false 以停用。

範例

configPassportIssuance

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

const client = new BlockletServerClient();

try {
  await client.configPassportIssuance({
    input: {
      teamDid: 'zdfw...',
      enable: true,
    },
  });
  console.log('通行證發行已啟用。');
} catch (error) {
  console.error('設定通行證發行時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "configPassportIssuance": {
    "code": "ok"
  }
}

configTrustedPassports

設定一個受信任的通行證發行者列表及其角色對應。

參數

  • input RequestConfigTrustedPassportsInput (required) — 一個包含 teamDid 和受信任通行證列表的物件。
  • teamDid string (required) — 團隊的 DID。
  • trustedPassports TrustedPassportInput[] (required) — 一個受信任通行證設定的陣列。
  • issuerDid string (required) — 受信任發行者的 DID。
  • mappings TrustedPassportMappingInput[] (required) — 角色對應規則。
  • from TrustedPassportMappingFromInput (required) — 來源通行證詳細資訊。
  • passport string (required) — 來源通行證的名稱或類型。
  • to TrustedPassportMappingToInput (required) — 目標角色詳細資訊。
  • role string (required) — 要對應到的本地角色。

範例

configTrustedPassports

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

const client = new BlockletServerClient();

try {
  await client.configTrustedPassports({
    input: {
      teamDid: 'zdfw...',
      trustedPassports: [
        {
          issuerDid: 'z...', // 另一個受信任的 blocklet 的 DID
          mappings: [
            {
              from: { passport: 'developer_badge' },
              to: { role: 'developer' },
            },
          ],
        },
      ],
    },
  });
  console.log('受信任的通行證已設定。');
} catch (error) {
  console.error('設定受信任的通行證時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "configTrustedPassports": {
    "code": "ok"
  }
}

configTrustedFactories

設定一個受信任的 NFT 工廠列表。

參數

  • input RequestConfigTrustedFactoriesInput (required) — 一個包含 teamDid 和受信任工廠列表的物件。
  • teamDid string (required) — 團隊的 DID。
  • trustedFactories TrustedFactoryInput[] (required) — 一個受信任工廠設定的陣列。
  • factoryAddress string (required) — NFT 工廠的地址。
  • remark string — 工廠的備註。

範例

configTrustedFactories

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

const client = new BlockletServerClient();

try {
  await client.configTrustedFactories({
    input: {
      teamDid: 'zdfw...',
      trustedFactories: [
        {
          factoryAddress: '0x...',
          remark: '官方社群 NFT 工廠',
        },
      ],
    },
  });
  console.log('受信任的工廠已設定。');
} catch (error) {
  console.error('設定受信任的工廠時發生錯誤:', error);
}

回應

回傳一個 GeneralResponse 物件,表示成功或失敗。

Response

json
{
  "configTrustedFactories": {
    "code": "ok"
  }
}