本節提供管理 Blocklet 中使用者、角色、權限、邀請和存取金鑰的 mutations 詳細參考。這些操作對於控制應用程式中的存取和管理身份至關重要。
若要擷取使用者和存取控制資料,請參閱 使用者與存取權管理查詢 文件。
使用者管理
用於建立、更新、刪除和管理使用者個人資料和屬性的 Mutations。
角色與權限管理
用於定義角色和分配精細權限以控制資源存取的操作。
邀請管理
用於建立和管理使用者邀請以加入團隊或轉移所有權的方法。
存取金鑰管理
用於建立、更新和刪除 API 存取金鑰以進行程式化存取的功能。
標籤管理
用於建立、更新和刪除用於組織使用者的標籤的 Mutations。
通行證管理
與發行和設定可驗證憑證(通行證)相關的操作。
使用者管理
這些 mutations 允許對使用者帳戶進行全面管理。
removeUser
從團隊中永久移除一名使用者。
參數
- input
RequestTeamUserInput(required) — 一個包含 teamDid 和使用者 did 的物件。 - teamDid
string(required) — 團隊的 DID。 - user
UserInfoInput(required) — 使用者資訊。 - did
string(required) — 要移除的使用者的 DID。
範例
removeUser
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
{
"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
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
{
"updateUserTags": {
"code": "ok",
"user": {
"did": "z8...",
"tags": [
{ "id": 1, "title": "Developer" },
{ "id": 3, "title": "Early Adopter" }
]
}
}
}updateUserExtra
更新使用者的 remark 和 extra(一個 JSON 字串)欄位。
參數
- input
RequestUpdateUserExtraInput(required) — 一個包含 teamDid、使用者 DID 和額外資料的物件。 - teamDid
string(required) — 團隊的 DID。 - did
string(required) — 要更新的使用者的 DID。 - remark
string— 使用者的新備註。 - extra
string— 包含自訂資料的 JSON 字串。
範例
updateUserExtra
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
{
"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
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
{
"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
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
{
"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
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
{
"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
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
{
"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
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
{
"removeUserPassport": {
"code": "ok"
}
}updateUserInfo
更新使用者的一般資訊,例如 fullName、email 和 avatar。
參數
- input
RequestUpdateUserInfoInput(required) — 一個包含 teamDid 和一個帶有要更新欄位的使用者物件的物件。 - teamDid
string(required) — 團隊的 DID。 - user
UserInfoInput(required) — 一個帶有要更新的使用者欄位的物件。 - did
string(required) — 使用者的 DID。 - fullName
string— 使用者的全名。 - email
string— 使用者的電子郵件地址。
範例
updateUserInfo
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
{
"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
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
{
"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
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
{
"updateRole": {
"code": "ok",
"role": {
"name": "editor",
"title": "Content Editor"
}
}
}deleteRole
永久刪除一個角色。
參數
- input
RequestDeleteRoleInput(required) — 一個包含 teamDid 和要刪除的角色名稱的物件。 - teamDid
string(required) — 團隊的 DID。 - name
string(required) — 要刪除的角色名稱。
範例
deleteRole
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
{
"deleteRole": {
"code": "ok"
}
}createPermission
建立一個可以授予給角色的新權限。
參數
- input
RequestCreatePermissionInput(required) — 一個包含 teamDid、name 和 description 的物件。 - teamDid
string(required) — 團隊的 DID。 - name
string(required) — 權限的唯一名稱(例如 'content')。 - description
string— 權限的簡要描述。
範例
createPermission
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
{
"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
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
{
"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
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
{
"deletePermission": {
"code": "ok"
}
}grantPermissionForRole
授予一個特定權限給一個角色。
參數
- input
RequestGrantPermissionForRoleInput(required) — 一個包含 teamDid、roleName 和 grantName (權限) 的物件。 - teamDid
string(required) — 團隊的 DID。 - roleName
string(required) — 角色的名稱。 - grantName
string(required) — 要授予的權限名稱。
範例
grantPermissionForRole
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
{
"grantPermissionForRole": {
"code": "ok"
}
}revokePermissionFromRole
從一個角色中撤銷一個特定權限。
參數
- input
RequestRevokePermissionFromRoleInput(required) — 一個包含 teamDid、roleName 和 grantName (權限) 的物件。 - teamDid
string(required) — 團隊的 DID。 - roleName
string(required) — 角色的名稱。 - grantName
string(required) — 要撤銷的權限名稱。
範例
revokePermissionFromRole
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
{
"revokePermissionFromRole": {
"code": "ok"
}
}updatePermissionsForRole
設定一個角色的完整權限列表,取代任何現有的權限。
參數
- input
RequestUpdatePermissionsForRoleInput(required) — 一個包含 teamDid、roleName 和權限名稱陣列的物件。 - teamDid
string(required) — 團隊的 DID。 - roleName
string(required) — 角色的名稱。 - grantNames
string[](required) — 要為角色設定的權限名稱陣列。
範例
updatePermissionsForRole
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
{
"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
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
{
"createMemberInvitation": {
"code": "ok",
"inviteInfo": {
"inviteId": "...",
"role": "guest"
}
}
}createTransferInvitation
建立一個轉移節點所有權的邀請。
參數
- input
RequestCreateTransferNodeInvitationInput(required) — 一個包含 teamDid 和備註的物件。 - teamDid
string(required) — 團隊的 DID。 - remark
string— 轉移邀請的備註。
範例
createTransferInvitation
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
{
"createTransferInvitation": {
"code": "ok",
"inviteInfo": {
"inviteId": "...",
"role": "owner"
}
}
}deleteInvitation
永久刪除一個邀請。
參數
- input
RequestDeleteInvitationInput(required) — 一個包含 teamDid 和要刪除的 inviteId 的物件。 - teamDid
string(required) — 團隊的 DID。 - inviteId
string(required) — 要刪除的邀請 ID。
範例
deleteInvitation
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
{
"deleteInvitation": {
"code": "ok"
}
}存取金鑰管理
這些 mutations 用於管理用於程式化存取的 API 存取金鑰。
createAccessKey
建立一個新的存取金鑰。
參數
- input
RequestCreateAccessKeyInput(required) — 一個包含 teamDid、remark 和其他金鑰詳細資訊的物件。 - teamDid
string(required) — 團隊的 DID。 - remark
string— 用於識別金鑰用途的備註。 - authType
string— 驗證類型(例如 'role')。
範例
createAccessKey
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
{
"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
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
{
"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
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
{
"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
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
{
"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
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
{
"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
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
{
"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
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
{
"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
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
{
"createPassportIssuance": {
"code": "ok",
"info": {
"id": "...",
"name": "Community Contributor"
}
}
}deletePassportIssuance
刪除一個通行證發行設定。
參數
- input
RequestDeleteTeamSessionInput(required) — 一個包含 teamDid 和要刪除的 sessionId (發行 ID) 的物件。 - teamDid
string(required) — 團隊的 DID。 - sessionId
string(required) — 要刪除的通行證發行的 ID。
範例
deletePassportIssuance
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
{
"deletePassportIssuance": {
"code": "ok"
}
}configPassportIssuance
為團隊啟用或停用通行證發行。
參數
- input
RequestConfigPassportIssuanceInput(required) — 一個包含 teamDid 和布林值啟用標誌的物件。 - teamDid
string(required) — 團隊的 DID。 - enable
boolean(required) — 設為 true 以啟用,false 以停用。
範例
configPassportIssuance
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
{
"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
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
{
"configTrustedPassports": {
"code": "ok"
}
}configTrustedFactories
設定一個受信任的 NFT 工廠列表。
參數
- input
RequestConfigTrustedFactoriesInput(required) — 一個包含 teamDid 和受信任工廠列表的物件。 - teamDid
string(required) — 團隊的 DID。 - trustedFactories
TrustedFactoryInput[](required) — 一個受信任工廠設定的陣列。 - factoryAddress
string(required) — NFT 工廠的地址。 - remark
string— 工廠的備註。
範例
configTrustedFactories
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
{
"configTrustedFactories": {
"code": "ok"
}
}