Skip to main content

User & Access Management

This section provides a detailed reference for mutations that manage users, roles, permissions, invitations, and access keys within a Blocklet. These operations are essential for controlling access and managing identities in your application.

For fetching user and access control data, please see the User & Access Management Queries documentation.

User Management

Mutations for creating, updating, deleting, and managing user profiles and attributes.

Role & Permission Management

Operations for defining roles and assigning granular permissions to control access to resources.

Invitation Management

Methods for creating and managing user invitations to join a team or transfer ownership.

Access Key Management

Functions for creating, updating, and deleting API access keys for programmatic access.

Tag Management

Mutations for creating, updating, and deleting tags used to organize users.

Passport Management

Operations related to issuing and configuring verifiable credentials (Passports).

User Management

These mutations allow for comprehensive management of user accounts.

removeUser

Permanently removes a user from a team.

Parameters

  • input RequestTeamUserInput (required) — An object containing teamDid and the user's did.
  • teamDid string (required) — The DID of the team.
  • user UserInfoInput (required) — User information.
  • did string (required) — The DID of the user to remove.

Example

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 removed:', user.did);
} catch (error) {
  console.error('Error removing user:', error);
}

Response

Returns a ResponseUser object containing the details of the removed user.

Response

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

updateUserTags

Updates the tags associated with a specific user.

Parameters

  • input RequestUpdateUserTagsInput (required) — An object containing teamDid, the user's did, and an array of tag IDs.
  • teamDid string (required) — The DID of the team.
  • did string (required) — The DID of the user.
  • tags number[] (required) — An array of tag IDs to associate with the user.

Example

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 updated:', user.tags);
} catch (error) {
  console.error('Error updating user tags:', error);
}

Response

Returns a ResponseUser object with the user's updated information.

Response

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

updateUserExtra

Updates the remark and extra (a JSON string) fields for a user.

Parameters

  • input RequestUpdateUserExtraInput (required) — An object containing teamDid, user DID, and the extra data.
  • teamDid string (required) — The DID of the team.
  • did string (required) — The DID of the user to update.
  • remark string — A new remark for the user.
  • extra string — A JSON string containing custom data.

Example

updateUserExtra

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

const client = new BlockletServerClient();

try {
  const { user } = await client.updateUserExtra({
    input: {
      teamDid: 'zdfw...',
      did: 'z8...',
      remark: 'Internal user account',
      extra: JSON.stringify({ department: 'Engineering' }),
    },
  });
  console.log('User extra data updated:', user.extra);
} catch (error) {
  console.error('Error updating user extra data:', error);
}

Response

Returns a ResponseUser object with the updated user details.

Response

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

updateUserApproval

Sets the approval status of a user.

Parameters

  • input RequestTeamUserInput (required) — An object containing teamDid and user details including did and the new approved status.
  • teamDid string (required) — The DID of the team.
  • user UserInfoInput (required) — User information.
  • did string (required) — The DID of the user.
  • approved boolean (required) — The new approval status.

Example

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 approval status:', user.approved);
} catch (error) {
  console.error('Error updating user approval:', error);
}

Response

Returns a ResponseUser object with the updated approval status.

Response

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

issuePassportToUser

Issues a new passport (verifiable credential) to a user, typically assigning them a role.

Parameters

  • input RequestIssuePassportToUserInput (required) — An object containing teamDid, userDid, role, and display details.
  • teamDid string (required) — The DID of the team.
  • userDid string (required) — The DID of the user to receive the passport.
  • role string (required) — The role to assign with this passport.
  • display PassportDisplayInput — Display information for the passport.
  • type string (required) — Display type (e.g., 'text').
  • content string (required) — The content to display.
  • notify boolean — Whether to send a notification to the user.

Example

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: 'Guest Access Pass',
      },
      notify: true,
    },
  });
  console.log('Passport issued to user:', user.did);
} catch (error) {
  console.error('Error issuing passport:', error);
}

Response

Returns a ResponseUser object, which may include the newly issued passport in the user's passports array.

Response

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

revokeUserPassport

Revokes a previously issued passport from a user.

Parameters

  • input RequestRevokeUserPassportInput (required) — An object containing teamDid, userDid, and the passportId to revoke.
  • teamDid string (required) — The DID of the team.
  • userDid string (required) — The DID of the user.
  • passportId string (required) — The ID of the passport to revoke.

Example

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('User passport revoked.');
} catch (error) {
  console.error('Error revoking passport:', error);
}

Response

Returns a ResponseUser object reflecting the change in the user's passports.

Response

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

enableUserPassport

Re-enables a passport that was previously revoked.

Parameters

  • input RequestRevokeUserPassportInput (required) — An object containing teamDid, userDid, and the passportId to enable.
  • teamDid string (required) — The DID of the team.
  • userDid string (required) — The DID of the user.
  • passportId string (required) — The ID of the passport to re-enable.

Example

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('User passport re-enabled.');
} catch (error) {
  console.error('Error enabling passport:', error);
}

Response

Returns a ResponseUser object with the user's updated passport status.

Response

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

removeUserPassport

Permanently removes a passport from a user's record.

Parameters

  • input RequestRevokeUserPassportInput (required) — An object containing teamDid, userDid, and the passportId to remove.
  • teamDid string (required) — The DID of the team.
  • userDid string (required) — The DID of the user.
  • passportId string (required) — The ID of the passport to remove.

Example

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('User passport permanently removed.');
} catch (error) {
  console.error('Error removing passport:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

updateUserInfo

Updates a user's general information, such as fullName, email, and avatar.

Parameters

  • input RequestUpdateUserInfoInput (required) — An object containing teamDid and a user object with the fields to update.
  • teamDid string (required) — The DID of the team.
  • user UserInfoInput (required) — An object with the user fields to update.
  • did string (required) — The DID of the user.
  • fullName string — The user's full name.
  • email string — The user's email address.

Example

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 info updated:', user.fullName);
} catch (error) {
  console.error('Error updating user info:', error);
}

Response

Returns a ResponseUser object with the updated user information.

Response

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

Role & Permission Management

These mutations are used to define roles and manage the permissions associated with them.

createRole

Creates a new role within a team.

Parameters

  • input RequestCreateRoleInput (required) — An object containing teamDid, name, title, and optionally permissions.
  • teamDid string (required) — The DID of the team.
  • name string (required) — A unique name for the role (e.g., 'editor').
  • title string (required) — A human-readable title for the role (e.g., 'Editor').
  • description string — A brief description of the role.
  • permissions string[] — An array of permission names to grant to this role.

Example

createRole

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

const client = new BlockletServerClient();

try {
  const { role } = await client.createRole({
    input: {
      teamDid: 'zdfw...',
      name: 'editor',
      title: 'Editor',
      description: 'Can create and edit content',
      permissions: ['content:create', 'content:edit'],
    },
  });
  console.log('Role created:', role.name);
} catch (error) {
  console.error('Error creating role:', error);
}

Response

Returns a ResponseRole object containing the details of the newly created role.

Response

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

updateRole

Updates the details of an existing role.

Parameters

  • input RequestTeamRoleInput (required) — An object containing teamDid and a role object with the fields to update.
  • teamDid string (required) — The DID of the team.
  • role RoleUpdateInput (required) — An object with the role fields to update.
  • name string (required) — The name of the role to update.
  • title string — The new title for the role.
  • description string — The new description for the role.

Example

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: 'Content Editor',
      },
    },
  });
  console.log('Role updated:', role.title);
} catch (error) {
  console.error('Error updating role:', error);
}

Response

Returns a ResponseRole object with the updated role information.

Response

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

deleteRole

Permanently deletes a role.

Parameters

  • input RequestDeleteRoleInput (required) — An object containing teamDid and the name of the role to delete.
  • teamDid string (required) — The DID of the team.
  • name string (required) — The name of the role to delete.

Example

deleteRole

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

const client = new BlockletServerClient();

try {
  await client.deleteRole({
    input: {
      teamDid: 'zdfw...',
      name: 'editor',
    },
  });
  console.log('Role "editor" deleted.');
} catch (error) {
  console.error('Error deleting role:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

createPermission

Creates a new permission that can be granted to roles.

Parameters

  • input RequestCreatePermissionInput (required) — An object containing teamDid, name, and description.
  • teamDid string (required) — The DID of the team.
  • name string (required) — A unique name for the permission (e.g., 'content').
  • description string — A brief description of the permission.

Example

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: 'Allows publishing content',
    },
  });
  console.log('Permission created:', permission.name);
} catch (error) {
  console.error('Error creating permission:', error);
}

Response

Returns a ResponsePermission object with the details of the new permission.

Response

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

updatePermission

Updates the description of an existing permission.

Parameters

  • input RequestTeamPermissionInput (required) — An object containing teamDid and the permission details to update.
  • teamDid string (required) — The DID of the team.
  • permission PermissionInput (required) — An object with the permission name and new description.
  • name string (required) — The name of the permission to update.
  • description string (required) — The new description for the permission.

Example

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: 'Allows publishing content to the live site.',
      },
    },
  });
  console.log('Permission updated:', permission.description);
} catch (error) {
  console.error('Error updating permission:', error);
}

Response

Returns a ResponsePermission object with the updated permission details.

Response

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

deletePermission

Permanently deletes a permission. This will also revoke it from any roles that have it.

Parameters

  • input RequestDeletePermissionInput (required) — An object containing teamDid and the name of the permission to delete.
  • teamDid string (required) — The DID of the team.
  • name string (required) — The name of the permission to delete.

Example

deletePermission

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

const client = new BlockletServerClient();

try {
  await client.deletePermission({
    input: {
      teamDid: 'zdfw...',
      name: 'content:publish',
    },
  });
  console.log('Permission deleted.');
} catch (error) {
  console.error('Error deleting permission:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

grantPermissionForRole

Grants a specific permission to a role.

Parameters

  • input RequestGrantPermissionForRoleInput (required) — An object containing teamDid, the roleName, and the grantName (permission).
  • teamDid string (required) — The DID of the team.
  • roleName string (required) — The name of the role.
  • grantName string (required) — The name of the permission to grant.

Example

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('Permission granted.');
} catch (error) {
  console.error('Error granting permission:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

revokePermissionFromRole

Revokes a specific permission from a role.

Parameters

  • input RequestRevokePermissionFromRoleInput (required) — An object containing teamDid, the roleName, and the grantName (permission).
  • teamDid string (required) — The DID of the team.
  • roleName string (required) — The name of the role.
  • grantName string (required) — The name of the permission to revoke.

Example

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('Permission revoked.');
} catch (error) {
  console.error('Error revoking permission:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

updatePermissionsForRole

Sets the complete list of permissions for a role, replacing any existing permissions.

Parameters

  • input RequestUpdatePermissionsForRoleInput (required) — An object containing teamDid, roleName, and an array of permission names.
  • teamDid string (required) — The DID of the team.
  • roleName string (required) — The name of the role.
  • grantNames string[] (required) — An array of permission names to set for the role.

Example

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 permissions updated:', role.grants);
} catch (error) {
  console.error('Error updating role permissions:', error);
}

Response

Returns a ResponseRole object with the updated list of permissions.

Response

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

Invitation Management

These mutations are used to manage user invitations.

createMemberInvitation

Creates an invitation for a new member to join a team with a specific role.

Parameters

  • input RequestCreateInvitationInput (required) — An object containing teamDid, role, and other invitation details.
  • teamDid string (required) — The DID of the team.
  • role string (required) — The role to assign to the invited member.
  • remark string — A remark or note for the invitation.

Example

createMemberInvitation

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

const client = new BlockletServerClient();

try {
  const { inviteInfo } = await client.createMemberInvitation({
    input: {
      teamDid: 'zdfw...',
      role: 'guest',
      remark: 'Invitation for new team member',
    },
  });
  console.log('Invitation created:', inviteInfo.inviteId);
} catch (error) {
  console.error('Error creating invitation:', error);
}

Response

Returns a ResponseCreateInvitation object containing details about the created invitation.

Response

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

createTransferInvitation

Creates an invitation to transfer ownership of the node.

Parameters

  • input RequestCreateTransferNodeInvitationInput (required) — An object containing teamDid and a remark.
  • teamDid string (required) — The DID of the team.
  • remark string — A remark for the transfer invitation.

Example

createTransferInvitation

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

const client = new BlockletServerClient();

try {
  const { inviteInfo } = await client.createTransferInvitation({
    input: {
      teamDid: 'zdfw...',
      remark: 'Transferring node ownership',
    },
  });
  console.log('Transfer invitation created:', inviteInfo.inviteId);
} catch (error) {
  console.error('Error creating transfer invitation:', error);
}

Response

Returns a ResponseCreateTransferNodeInvitation object with details of the invitation.

Response

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

deleteInvitation

Permanently deletes an invitation.

Parameters

  • input RequestDeleteInvitationInput (required) — An object containing teamDid and the inviteId to delete.
  • teamDid string (required) — The DID of the team.
  • inviteId string (required) — The ID of the invitation to delete.

Example

deleteInvitation

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

const client = new BlockletServerClient();

try {
  await client.deleteInvitation({
    input: {
      teamDid: 'zdfw...',
      inviteId: '...',
    },
  });
  console.log('Invitation deleted.');
} catch (error) {
  console.error('Error deleting invitation:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

Access Key Management

These mutations are used to manage API access keys for programmatic access.

createAccessKey

Creates a new access key.

Parameters

  • input RequestCreateAccessKeyInput (required) — An object containing teamDid, remark, and other key details.
  • teamDid string (required) — The DID of the team.
  • remark string — A remark to identify the key's purpose.
  • authType string — Authentication type (e.g., 'role').

Example

createAccessKey

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

const client = new BlockletServerClient();

try {
  const { data } = await client.createAccessKey({
    input: {
      teamDid: 'zdfw...',
      remark: 'Key for CI/CD pipeline',
      authType: 'role',
    },
  });
  console.log('Access Key created:', data.accessKeyId);
  console.log('Secret:', data.accessKeySecret); // Save this secret securely
} catch (error) {
  console.error('Error creating access key:', error);
}

Response

Returns a ResponseCreateAccessKey object containing the new key's ID and secret. The secret is only returned on creation.

Response

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

updateAccessKey

Updates the details of an existing access key, such as its remark or expiration.

Parameters

  • input RequestUpdateAccessKeyInput (required) — An object containing teamDid, accessKeyId, and the fields to update.
  • teamDid string (required) — The DID of the team.
  • accessKeyId string (required) — The ID of the access key to update.
  • remark string — The new remark for the key.

Example

updateAccessKey

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

const client = new BlockletServerClient();

try {
  const { data } = await client.updateAccessKey({
    input: {
      teamDid: 'zdfw...',
      accessKeyId: '...',
      remark: 'Updated remark for CI/CD pipeline',
    },
  });
  console.log('Access Key updated:', data.remark);
} catch (error) {
  console.error('Error updating access key:', error);
}

Response

Returns a ResponseUpdateAccessKey object with the updated key details.

Response

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

deleteAccessKey

Permanently deletes an access key.

Parameters

  • input RequestDeleteAccessKeyInput (required) — An object containing teamDid and the accessKeyId to delete.
  • teamDid string (required) — The DID of the team.
  • accessKeyId string (required) — The ID of the access key to delete.

Example

deleteAccessKey

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

const client = new BlockletServerClient();

try {
  await client.deleteAccessKey({
    input: {
      teamDid: 'zdfw...',
      accessKeyId: '...',
    },
  });
  console.log('Access Key deleted.');
} catch (error) {
  console.error('Error deleting access key:', error);
}

Response

Returns a ResponseDeleteAccessKey object indicating success or failure.

Response

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

verifyAccessKey

Verifies if an access key is valid and has access to a specific resource.

Parameters

  • input RequestVerifyAccessKeyInput (required) — An object containing teamDid, accessKeyId, and resource details.
  • teamDid string (required) — The DID of the team.
  • accessKeyId string (required) — The ID of the access key to verify.
  • resourceType string — The type of the resource (e.g., 'blocklet').
  • resourceId string — The ID of the resource.
  • componentDid string — The DID of the component associated with the resource.

Example

verifyAccessKey

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

const client = new BlockletServerClient();

try {
  const { data } = await client.verifyAccessKey({
    input: {
      teamDid: 'zdfw...',
      accessKeyId: '...',
    },
  });
  console.log('Access key is valid:', data);
} catch (error) {
  console.error('Access key verification failed:', error);
}

Response

Returns a ResponseAccessKey object with the key's details if verification is successful.

Response

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

Tag Management

These mutations are used to manage user tags.

createTag

Creates a new tag.

Parameters

  • input RequestTagInput (required) — An object containing teamDid and the tag details to create.
  • teamDid string (required) — The DID of the team.
  • tag TagInput (required) — An object with the tag details.
  • title string (required) — The title of the tag.
  • description string — A description for the tag.
  • color string — A hex color code for the tag.

Example

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: 'Very Important Person',
        color: '#FFD700',
      },
    },
  });
  console.log('Tag created:', tag.title);
} catch (error) {
  console.error('Error creating tag:', error);
}

Response

Returns a ResponseTag object with the details of the newly created tag.

Response

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

updateTag

Updates an existing tag.

Parameters

  • input RequestTagInput (required) — An object containing teamDid and a tag object with the id and fields to update.
  • teamDid string (required) — The DID of the team.
  • tag TagInput (required) — An object with the tag ID and fields to update.
  • id number (required) — The ID of the tag to update.
  • title string — The new title for the tag.
  • color string — The new color for the tag.

Example

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 updated:', tag.color);
} catch (error) {
  console.error('Error updating tag:', error);
}

Response

Returns a ResponseTag object with the updated tag information.

Response

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

deleteTag

Permanently deletes a tag.

Parameters

  • input RequestTagInput (required) — An object containing teamDid and the tag id to delete.
  • teamDid string (required) — The DID of the team.
  • tag TagInput (required) — An object containing the ID of the tag to delete.
  • id number (required) — The ID of the tag to delete.

Example

deleteTag

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

const client = new BlockletServerClient();

try {
  await client.deleteTag({
    input: {
      teamDid: 'zdfw...',
      tag: {
        id: 4,
      },
    },
  });
  console.log('Tag deleted.');
} catch (error) {
  console.error('Error deleting tag:', error);
}

Response

Returns a ResponseTag object of the deleted tag.

Response

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

Passport Management

These mutations are used to manage passport issuance and trust configurations.

createPassportIssuance

Creates a new passport issuance configuration for a team.

Parameters

  • input RequestCreatePassportIssuanceInput (required) — An object containing teamDid, ownerDid, name, and display details.
  • teamDid string (required) — The DID of the team.
  • ownerDid string (required) — The DID of the owner of this issuance.
  • name string (required) — The name of the passport issuance.
  • display PassportDisplayInput — Display information for the passport.
  • type string (required) — Display type.
  • content string (required) — Display content.

Example

createPassportIssuance

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

const client = new BlockletServerClient();

try {
  const { info } = await client.createPassportIssuance({
    input: {
      teamDid: 'zdfw...',
      ownerDid: 'z8...',
      name: 'Community Contributor',
      display: {
        type: 'text',
        content: 'Community Contributor Badge',
      },
    },
  });
  console.log('Passport issuance created:', info.id);
} catch (error) {
  console.error('Error creating passport issuance:', error);
}

Response

Returns a ResponseCreatePassportIssuance object with details of the new issuance configuration.

Response

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

deletePassportIssuance

Deletes a passport issuance configuration.

Parameters

  • input RequestDeleteTeamSessionInput (required) — An object containing teamDid and the sessionId (issuance ID) to delete.
  • teamDid string (required) — The DID of the team.
  • sessionId string (required) — The ID of the passport issuance to delete.

Example

deletePassportIssuance

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

const client = new BlockletServerClient();

try {
  await client.deletePassportIssuance({
    input: {
      teamDid: 'zdfw...',
      sessionId: '...',
    },
  });
  console.log('Passport issuance deleted.');
} catch (error) {
  console.error('Error deleting passport issuance:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

configPassportIssuance

Enables or disables passport issuance for a team.

Parameters

  • input RequestConfigPassportIssuanceInput (required) — An object containing teamDid and a boolean enable flag.
  • teamDid string (required) — The DID of the team.
  • enable boolean (required) — Set to true to enable, false to disable.

Example

configPassportIssuance

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

const client = new BlockletServerClient();

try {
  await client.configPassportIssuance({
    input: {
      teamDid: 'zdfw...',
      enable: true,
    },
  });
  console.log('Passport issuance enabled.');
} catch (error) {
  console.error('Error configuring passport issuance:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

configTrustedPassports

Configures a list of trusted passport issuers and their role mappings.

Parameters

  • input RequestConfigTrustedPassportsInput (required) — An object containing teamDid and the list of trusted passports.
  • teamDid string (required) — The DID of the team.
  • trustedPassports TrustedPassportInput[] (required) — An array of trusted passport configurations.
  • issuerDid string (required) — The DID of the trusted issuer.
  • mappings TrustedPassportMappingInput[] (required) — Role mapping rules.
  • from TrustedPassportMappingFromInput (required) — Source passport details.
  • passport string (required) — The name or type of the source passport.
  • to TrustedPassportMappingToInput (required) — Target role details.
  • role string (required) — The local role to map to.

Example

configTrustedPassports

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

const client = new BlockletServerClient();

try {
  await client.configTrustedPassports({
    input: {
      teamDid: 'zdfw...',
      trustedPassports: [
        {
          issuerDid: 'z...', // DID of another trusted blocklet
          mappings: [
            {
              from: { passport: 'developer_badge' },
              to: { role: 'developer' },
            },
          ],
        },
      ],
    },
  });
  console.log('Trusted passports configured.');
} catch (error) {
  console.error('Error configuring trusted passports:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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

configTrustedFactories

Configures a list of trusted NFT factories.

Parameters

  • input RequestConfigTrustedFactoriesInput (required) — An object containing teamDid and the list of trusted factories.
  • teamDid string (required) — The DID of the team.
  • trustedFactories TrustedFactoryInput[] (required) — An array of trusted factory configurations.
  • factoryAddress string (required) — The address of the NFT factory.
  • remark string — A remark for the factory.

Example

configTrustedFactories

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

const client = new BlockletServerClient();

try {
  await client.configTrustedFactories({
    input: {
      teamDid: 'zdfw...',
      trustedFactories: [
        {
          factoryAddress: '0x...',
          remark: 'Official Community NFT Factory',
        },
      ],
    },
  });
  console.log('Trusted factories configured.');
} catch (error) {
  console.error('Error configuring trusted factories:', error);
}

Response

Returns a GeneralResponse object indicating success or failure.

Response

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