このセクションでは、Blocklet Server内でユーザー、ロール、権限、セッション、およびアクセスキーの管理に関連するクエリの詳細なリファレンスを提供します。これらのクエリを使用すると、アプリケーションのユーザーとそのアクセスレベルに関する情報を取得できます。
ユーザーの作成や権限の更新など、ユーザーおよびアクセスデータを変更する操作については、ユーザーとアクセスの管理ミューテーションのドキュメントを参照してください。
ユーザークエリ
getUsers
フィルタリングとソートのオプション付きで、ページ分割されたユーザーのリストを取得します。
パラメータ
- input
RequestUsersInput(required) — クエリパラメータを含むオブジェクト。- teamDid
string(required) — BlockletまたはチームのDID。 - query
UserQueryInput— ユーザーリストのフィルタリング基準。 - sort
UserSortInput— ユーザーリストのソート基準。 - paging
PagingInput— ページネーションオプション。 - dids
string[]— 特定のユーザーDIDを取得するための配列。
- teamDid
戻り値
- ****
ResponseUsers— ユーザーのリストとページネーション情報を含むオブジェクト。- users
UserInfo[]— ユーザーオブジェクトの配列。 - paging
Paging— 結果セットのページネーション情報。
- users
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchUsers() {
try {
const { users, paging } = await client.getUsers({
input: {
teamDid: 'z1...',
paging: { page: 1, pageSize: 10 },
query: {
role: 'guest',
approved: true,
search: 'john.doe',
},
sort: {
lastLoginAt: -1, // 最終ログイン時間で降順にソート
},
},
});
console.log('Fetched users:', users);
console.log('Pagination info:', paging);
} catch (error) {
console.error('Error fetching users:', error);
}
}
fetchUsers();レスポンスの例
{
"code": "ok",
"users": [
{
"did": "z8ia...",
"pk": "...",
"role": "guest",
"avatar": "/path/to/avatar.png",
"fullName": "John Doe",
"email": "john.doe@example.com",
"approved": true,
"createdAt": 1672531200,
"lastLoginAt": 1675209600
}
],
"paging": {
"page": 1,
"pageSize": 10,
"total": 1,
"pageCount": 1
}
}getUser
DIDによって単一のユーザーの詳細を取得します。
パラメータ
- input
RequestTeamUserInput(required) — クエリパラメータを含むオブジェクト。- teamDid
string(required) — BlockletまたはチームのDID。 - user
UserInfoInput(required) — ユーザーのDIDを含むオブジェクト。didフィールドのみが必須です。- did
string(required)
- did
- options
RequestTeamUserOptionsInput— 追加の関連データを含めるためのオプショナルなフラグ。- includeTags
boolean— ユーザーのタグを含めるかどうか。 - includePassports
boolean— ユーザーのパスポートを含めるかどうか。 - includeConnectedAccounts
boolean— ユーザーの連携アカウントを含めるかどうか。
- includeTags
- teamDid
戻り値
- user
UserInfo— リクエストされたユーザーオブジェクト。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchUser(userDid) {
try {
const { user } = await client.getUser({
input: {
teamDid: 'z1...',
user: { did: userDid },
options: {
includePassports: true,
includeTags: true,
},
},
});
console.log('User details:', user);
} catch (error) {
console.error('Error fetching user:', error);
}
}
fetchUser('z8ia...'); // 有効なユーザーDIDに置き換えてくださいレスポンスの例
{
"code": "ok",
"user": {
"did": "z8ia...",
"fullName": "Jane Doe",
"email": "jane.doe@example.com",
"role": "admin",
"approved": true,
"passports": [],
"tags": []
}
}getUsersCount
特定のチームまたはBlockletのユーザー総数を取得します。
パラメータ
- input
TeamInput(required) — チームのDIDを含むオブジェクト。- teamDid
string(required)
- teamDid
戻り値
- count
number— ユーザーの総数。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function countUsers() {
try {
const { count } = await client.getUsersCount({
input: { teamDid: 'z1...' },
});
console.log('Total users:', count);
} catch (error) {
console.error('Error counting users:', error);
}
}
countUsers();レスポンスの例
{
"code": "ok",
"count": 125
}getUsersCountPerRole
チームまたはBlocklet内の各ロールのユーザー数を取得します。
パラメータ
- input
TeamInput(required) — チームのDIDを含むオブジェクト。- teamDid
string(required)
- teamDid
戻り値
- counts
KeyValue[]— オブジェクトの配列。各オブジェクトのkeyはロール名、valueはカウントです。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function countUsersByRole() {
try {
const { counts } = await client.getUsersCountPerRole({
input: { teamDid: 'z1...' },
});
console.log('User counts per role:', counts);
} catch (error) {
console.error('Error counting users by role:', error);
}
}
countUsersByRole();レスポンスの例
{
"code": "ok",
"counts": [
{ "key": "owner", "value": 1 },
{ "key": "admin", "value": 5 },
{ "key": "member", "value": 119 }
]
}getOwner
Blockletまたはチームのオーナーのユーザー情報を取得します。
パラメータ
- input
TeamInput(required) — チームのDIDを含むオブジェクト。- teamDid
string(required)
- teamDid
戻り値
- user
UserInfo— オーナーのユーザーオブジェクト。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchOwner() {
try {
const { user } = await client.getOwner({
input: { teamDid: 'z1...' },
});
console.log('Owner info:', user);
} catch (error) {
console.error('Error fetching owner:', error);
}
}
fetchOwner();レスポンスの例
{
"code": "ok",
"user": {
"did": "zNK...",
"fullName": "Node Owner",
"email": "owner@example.com",
"role": "owner"
}
}destroySelf
ユーザーが特定のBlocklet内で自分のアカウントを削除できるようにします。この操作は元に戻せません。
パラメータ
- input
RequestTeamUserInput(required) — 自己破壊のためのユーザーの詳細を含むオブジェクト。- teamDid
string(required) — BlockletまたはチームのDID。 - user
UserInfoInput(required) — ユーザーのDIDを含むオブジェクト。didフィールドのみが必須です。- did
string(required)
- did
- teamDid
戻り値
- user
UserInfo— 削除されたアカウントのユーザーオブジェクト。
例
import BlockletServerClient from '@blocklet/server-js';
// クライアントが削除対象のユーザーとして認証されていると仮定します
const client = new BlockletServerClient();
async function deleteMyAccount(userDid) {
try {
const { user } = await client.destroySelf({
input: {
teamDid: 'z1...',
user: { did: userDid },
},
});
console.log('User account deleted:', user.did);
} catch (error) {
console.error('Error deleting account:', error);
}
}
deleteMyAccount('z8ia...'); // 現在認証されているユーザーのDIDレスポンスの例
{
"code": "ok",
"user": {
"did": "z8ia...",
"fullName": "Former User"
}
}ユーザーソーシャルクエリ
getUserFollowers
指定されたユーザーをフォローしているユーザーのリストを取得します。
パラメータ
- input
RequestUserRelationQueryInput(required)- teamDid
string(required) - userDid
string(required) - paging
PagingInput - options
QueryUserFollowOptionsInput
- teamDid
戻り値
- ****
ResponseUserFollows- data
UserFollows[] - paging
Paging
- data
getUserFollowing
指定されたユーザーがフォローしているユーザーのリストを取得します。
パラメータ
- input
RequestUserRelationQueryInput(required)- teamDid
string(required) - userDid
string(required) - paging
PagingInput - options
QueryUserFollowOptionsInput
- teamDid
戻り値
- ****
ResponseUserFollows- data
UserFollows[] - paging
Paging
- data
getUserFollowStats
フォロワー数やフォロー数など、1人以上のユーザーのフォロー関連の統計情報を取得します。
パラメータ
- input
RequestUserRelationCountInput(required)- teamDid
string(required) - userDids
string[](required) - options
QueryUserFollowStateOptionsInput
- teamDid
戻り値
- data
any— フォロー統計を含むオブジェクト。
checkFollowing
特定のユーザーが他の1人以上のユーザーをフォローしているかどうかを確認します。
パラメータ
- input
RequestCheckFollowingInput(required)- teamDid
string(required) - followerDid
string(required) — 他のユーザーをフォローしている可能性のあるユーザーのDID。 - userDids
string[](required) — フォローされているかどうかを確認するためのDIDの配列。
- teamDid
戻り値
- data
any— キーがuserDidsで、値がフォロー状況を示すブール値であるオブジェクト。
getUserInvites
特定のユーザーによって招待されたユーザーのリストを取得します。
パラメータ
- input
RequestUserRelationQueryInput(required)- teamDid
string(required) - userDid
string(required) — 招待者のDID。 - paging
PagingInput
- teamDid
戻り値
- ****
ResponseUsers— 招待されたユーザーのリストとページネーション情報を含むオブジェクト。- users
UserInfo[] - paging
Paging
- users
ロールと権限
getRoles
チームまたはBlocklet内で利用可能なすべてのロールのリストを取得します。
パラメータ
- input
TeamInput(required) — チームのDIDを含むオブジェクト。- teamDid
string(required)
- teamDid
戻り値
- roles
Role[]— ロールオブジェクトの配列。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchRoles() {
try {
const { roles } = await client.getRoles({
input: { teamDid: 'z1...' },
});
console.log('Available roles:', roles);
} catch (error) {
console.error('Error fetching roles:', error);
}
}
fetchRoles();レスポンスの例
{
"code": "ok",
"roles": [
{ "name": "owner", "title": "Owner", "description": "Full access to all resources." },
{ "name": "admin", "title": "Administrator", "description": "Can manage users and settings." },
{ "name": "member", "title": "Member", "description": "Standard user access." },
{ "name": "guest", "title": "Guest", "description": "Limited access." }
]
}getRole
名前によって特定のロールの詳細を取得します。
パラメータ
- input
RequestTeamRoleInput(required) — チームのDIDとロール名を含むオブジェクト。- teamDid
string(required) - role
RoleUpdateInput(required)- name
string(required)
- name
- teamDid
戻り値
- role
Role— リクエストされたロールオブジェクト。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchRoleDetails(roleName) {
try {
const { role } = await client.getRole({
input: {
teamDid: 'z1...',
role: { name: roleName },
},
});
console.log('Role details:', role);
} catch (error) {
console.error('Error fetching role details:', error);
}
}
fetchRoleDetails('admin');レスポンスの例
{
"code": "ok",
"role": {
"name": "admin",
"title": "Administrator",
"description": "Can manage users and settings.",
"grants": ["user:create", "user:update", "setting:update"]
}
}getPermissions
チームまたはBlocklet内で利用可能なすべての権限のリストを取得します。
パラメータ
- input
TeamInput(required) — チームのDIDを含むオブジェクト。- teamDid
string(required)
- teamDid
戻り値
- permissions
Permission[]— 権限オブジェクトの配列。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchPermissions() {
try {
const { permissions } = await client.getPermissions({
input: { teamDid: 'z1...' },
});
console.log('Available permissions:', permissions);
} catch (error) {
console.error('Error fetching permissions:', error);
}
}
fetchPermissions();レスポンスの例
{
"code": "ok",
"permissions": [
{ "name": "user:create", "description": "Allows creating new users." },
{ "name": "user:read", "description": "Allows viewing user profiles." },
{ "name": "post:publish", "description": "Allows publishing new posts." }
]
}getPermissionsByRole
特定のロールに関連付けられた権限のリストを取得します。
パラメータ
- input
RequestTeamRoleInput(required) — チームのDIDとロール名を含むオブジェクト。- teamDid
string(required) - role
RoleUpdateInput(required)- name
string(required)
- name
- teamDid
戻り値
- permissions
Permission[]— そのロールに関連付けられた権限オブジェクトの配列。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchRolePermissions(roleName) {
try {
const { permissions } = await client.getPermissionsByRole({
input: {
teamDid: 'z1...',
role: { name: roleName },
},
});
console.log(`Permissions for role '${roleName}':`, permissions);
} catch (error) {
console.error('Error fetching role permissions:', error);
}
}
fetchRolePermissions('member');レスポンスの例
{
"code": "ok",
"permissions": [
{ "name": "post:create", "description": "Allows creating new posts." },
{ "name": "post:read", "description": "Allows reading posts." }
]
}招待とアクセスキー
getInvitations
チームまたはBlockletの保留中のすべての招待のリストを取得します。
パラメータ
- input
TeamInput(required) — チームのDIDを含むオブジェクト。- teamDid
string(required)
- teamDid
戻り値
- invitations
InviteInfo[]— 招待オブジェクトの配列。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchInvitations() {
try {
const { invitations } = await client.getInvitations({
input: { teamDid: 'z1...' },
});
console.log('Pending invitations:', invitations);
} catch (error) {
console.error('Error fetching invitations:', error);
}
}
fetchInvitations();レスポンスの例
{
"code": "ok",
"invitations": [
{
"inviteId": "...",
"role": "member",
"remark": "Invitation for new developer",
"expireDate": "2024-12-31T23:59:59Z",
"inviter": {
"did": "z8ia...",
"fullName": "Admin User"
}
}
]
}getAccessKeys
チームまたはBlockletに関連付けられたアクセスキーのリストを取得します。
パラメータ
- input
RequestAccessKeysInput(required) — アクセスキーをフィルタリングするためのクエリパラメータを含むオブジェクト。- teamDid
string(required) - paging
PagingInput - remark
string - componentDid
string - resourceType
string - resourceId
string
- teamDid
戻り値
- ****
ResponseAccessKeys- list
AccessKey[]— アクセスキーオブジェクトの配列。 - paging
Paging— ページネーション情報。
- list
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchAccessKeys() {
try {
const { list } = await client.getAccessKeys({
input: {
teamDid: 'z1...',
paging: { pageSize: 20 },
},
});
console.log('Access keys:', list);
} catch (error) {
console.error('Error fetching access keys:', error);
}
}
fetchAccessKeys();レスポンスの例
{
"code": "ok",
"list": [
{
"accessKeyId": "...",
"remark": "CI/CD Key",
"createdAt": 1672531200,
"lastUsedAt": 1675209600
}
],
"paging": {
"total": 1,
"pageSize": 20,
"page": 1
}
}getAccessKey
IDによって単一のアクセスキーの詳細を取得します。
パラメータ
- input
RequestAccessKeyInput(required) — チームのDIDとアクセスキーIDを含むオブジェクト。- teamDid
string(required) - accessKeyId
string(required)
- teamDid
戻り値
- data
AccessKey— リクエストされたアクセスキーオブジェクト。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchAccessKey(keyId) {
try {
const { data } = await client.getAccessKey({
input: {
teamDid: 'z1...',
accessKeyId: keyId,
},
});
console.log('Access key details:', data);
} catch (error) {
console.error('Error fetching access key:', error);
}
}
fetchAccessKey('...'); // 有効なアクセスキーIDに置き換えてくださいレスポンスの例
{
"code": "ok",
"data": {
"accessKeyId": "...",
"accessKeyPublic": "...",
"remark": "API access for integration tests",
"createdAt": 1672531200
}
}セッション
getSession
IDによって特定のセッションの詳細を取得します。
パラメータ
- input
RequestGetSessionInput(required) — セッションIDを含むオブジェクト。- id
string(required)
- id
戻り値
- session
any— リクエストされたセッションオブジェクト。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchSession(sessionId) {
try {
const { session } = await client.getSession({
input: { id: sessionId },
});
console.log('Session details:', session);
} catch (error) {
console.error('Error fetching session:', error);
}
}
fetchSession('...'); // 有効なセッションIDに置き換えてくださいレスポンスの例
{
"code": "ok",
"session": {
"sessionId": "...",
"userDid": "z8ia...",
"status": "active",
"createdAt": 1675209600
}
}getUserSessions
特定のユーザーのセッションのページ分割されたリストを取得します。
パラメータ
- input
RequestUserSessionsInput(required) — ユーザーセッションのクエリパラメータを含むオブジェクト。- teamDid
string(required) - query
UserSessionQueryInput- userDid
string(required)
- userDid
- paging
PagingInput
- teamDid
戻り値
- ****
ResponseUserSessions- list
UserSession[]— セッションオブジェクトの配列。 - paging
Paging— ページネーション情報。
- list
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchUserSessions(userDid) {
try {
const { list, paging } = await client.getUserSessions({
input: {
teamDid: 'z1...',
query: { userDid: userDid },
paging: { pageSize: 5 },
},
});
console.log('User sessions:', list);
} catch (error) {
console.error('Error fetching user sessions:', error);
}
}
fetchUserSessions('z8ia...');レスポンスの例
{
"code": "ok",
"list": [
{
"id": "...",
"userDid": "z8ia...",
"status": "active",
"lastLoginIp": "192.168.1.1",
"createdAt": 1675209600
}
],
"paging": {
"total": 1,
"pageSize": 5,
"page": 1
}
}getUserSessionsCount
特定のユーザーのセッションの総数を取得します。
パラメータ
- input
RequestUserSessionsCountInput(required) — ユーザーセッションをカウントするためのクエリパラメータを含むオブジェクト。- teamDid
string(required) - query
UserSessionQueryInput- userDid
string(required)
- userDid
- teamDid
戻り値
- count
number— ユーザーのセッションの総数。
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function countUserSessions(userDid) {
try {
const { count } = await client.getUserSessionsCount({
input: {
teamDid: 'z1...',
query: { userDid: userDid },
},
});
console.log('Total sessions for user:', count);
} catch (error) {
console.error('Error counting user sessions:', error);
}
}
countUserSessions('z8ia...');レスポンスの例
{
"code": "ok",
"count": 5
}タグ
getTags
チームまたはBlockletのタグのページ分割されたリストを取得します。
パラメータ
- input
RequestTagsInput(required)- teamDid
string(required) - paging
PagingInput
- teamDid
戻り値
- ****
ResponseTags- tags
Tag[]— タグオブジェクトの配列。 - paging
Paging— ページネーション情報。
- tags
例
import BlockletServerClient from '@blocklet/server-js';
const client = new BlockletServerClient();
async function fetchTags() {
try {
const { tags } = await client.getTags({
input: {
teamDid: 'z1...',
paging: { pageSize: 100 },
},
});
console.log('Available tags:', tags);
} catch (error) {
console.error('Error fetching tags:', error);
}
}
fetchTags();レスポンスの例
{
"code": "ok",
"tags": [
{
"id": 1,
"title": "Developer",
"description": "Users with development access",
"color": "#3498db"
}
],
"paging": {
"total": 1,
"pageSize": 100,
"page": 1
}
}