@amaster.ai/admin-sdk

中文文档
1.1.72发布于 2026/11/05MITTypeScriptESM + CJS零依赖近 30 天下载 1926

Amaster 平台的管理员 SDK — 服务器侧用户、角色、权限和org 管理

中文使用文档
文档目录16 节
  1. 边缘函数 QQ( AI ***)
  2. 安装
  3. 快速启动
  4. 环境变量
  5. API 概览
  6. admin.auth ——权限检查(不需要用户令牌)
  7. admin.users ——用户 CRUD
  8. admin.roles 角色管理
  9. admin.permissions 授权定义和任务
  10. admin.departments 部门及成员
  11. Deno / 边缘函数
  12. 标识符: UID vs 数字 ID
  13. 类型(AI参考)
  14. 处理错误
  15. 许可证
  16. 将一个已有的用户预设为 WeCom

@amaster.ai/admin-sdk (英语)

Amaster平台的服务器端管理器 SDK. 通过内部API管理用户,角色,权限和部门. 设计用途 边缘函数 (德诺)和Node.js后端——使用原生 fetch,没有浏览器 API.

边缘函数 QQ( AI ***)

62. 阿马斯特边缘功能 . . env SDK: 说吧

import { AdminSDK } from "npm:@amaster.ai/admin-sdk";

export default async function (request: Request, env: Env): Promise<Response> {
  const admin = new AdminSDK({
    appId: env.appId,
    env: env.appEnv,
    serviceKey: env.vars["APP_SECRET"],
  });

  // 权限校验
  const { allow } = await admin.auth.checkPermission("user-uid", {
    resource: "page",
    action: "access",
  });
  if (!allow) return Response.json({ error: "Forbidden" }, { status: 403 });

  // 创建用户
  const user = await admin.users.create({
    email: "[email protected]",
    password: "Secure@123",
    displayName: "New User",
  });

  return Response.json({ user });
}

参数映射数字 :env.appId - 开口env.appEnv {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}这里是env.vars["APP_SECRET"] {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}服务主题 BaseurL。

安装

pnpm add @amaster.ai/admin-sdk
# or
npm install @amaster.ai/admin-sdk

快速启动

import { AdminSDK } from "@amaster.ai/admin-sdk";

const admin = new AdminSDK({
  baseURL: process.env.RUNTIME_URL || "http://localhost:3000",
  appId: process.env.APP_ID!,
  env: process.env.ENV || "dev",
  serviceKey: process.env.SERVICE_KEY, // Required for internal API calls
});

// Check if a user can access a resource
const result = await admin.auth.checkPermission("user-uid-here", {
  resource: "page",
  action: "access",
  resourceId: "dashboard",
});
if (!result.allow) throw new Error("Forbidden");

// Functional permission and data scope are separate. For model data,
// append rowFilter to the JSONQL query before reading or mutating rows.
// `scope === "none"` is represented by an always-false rowFilter.
const runtimeRowConstraint = result.rowFilter?.filter;

// Create a user
const user = await admin.users.create({
  email: "[email protected]",
  password: "Secure@123",
  displayName: "New User",
});

// Assign a role to the user (use uid, not numeric id)
await admin.roles.assign(roleId, {
  assigneeType: "user",
  assigneeUid: user.uid,
});

环境变量

变量说明示例
RUNTIME_URL运行时服务基地 URLhttp://runtime:3000
APP_ID应用程序 ID (x- tenant- id)d9990247
ENV环境(x-env)dev | prod
SERVICE_KEY内部 API 认证的服务密钥(从Amaster控制台)

API 概览

admin.auth ——权限检查(不需要用户令牌)

方法说明
checkPermission(uid, { resource, action, resourceId? })检查用户是否有权限
getRules(uid)为用户获取完整的ACL规则( 角色+权限)
// Single permission check
const { allow, scope, resolved, rowFilter, roles, permissions } = await admin.auth.checkPermission(uid, {
  resource: "order",
  action: "read",
});

if (!allow) throw new Error("Forbidden");
// `own`, `dep`, `dep_and_sub`, `mixed`, and `none` all require the business
// data path to consume rowFilter. `none` contains an always-false condition.
const runtimeRowConstraint = rowFilter?.filter;

// Batch: fetch rules once, check locally
const rules = await admin.auth.getRules(uid);
const canExport = rules.permissions.some(
  (p) => p.resource === "report" && p.action === "export"
);

admin.users ——用户 CRUD

方法说明
list(params?)列表用户( pageination, search)
get(uid)通过 UID 获取用户
create(params)创建用户
update(uid, params)更新用户
delete(uid)删除用户
const { list, total } = await admin.users.list({ query: "zhang", pageSize: 20 });
const user = await admin.users.get("abc-uid");
await admin.users.update(user.uid, { displayName: "New Name" });

admin.roles 角色管理

方法说明
list()列出所有角色
get(id)通过ID获取角色
create(params)创建角色
update(id, params)更新角色
delete(id)删除角色( 仅非系统)
assign(roleId, params)指定用户/配置/团队的角色
unassign(roleId, params)删除任务
listAssignees(roleId)职责受让人名单
getUserRoles(uid)获取指定给用户的角色
// Prefer assigneeUid for users
await admin.roles.assign(roleId, {
  assigneeType: "user",
  assigneeUid: user.uid,
});

// For department/team/role, use assigneeId
await admin.roles.assign(roleId, {
  assigneeType: "department",
  assigneeId: 5,
});

const roles = await admin.roles.getUserRoles(user.uid);

admin.permissions 授权定义和任务

方法说明
list()列出所有权限
create(params)创建权限
update(id, params)更新权限
delete(id)删除权限
listForRole(roleId)列出一个角色的权限
assignToRole(roleId, params)指定角色权限
removeFromRole(roleId, permId)从角色中删除权限
updateRolePermissionScope(...)更新角色授权范围
assignToUser(uid, params)直接用户权限(例外)
removeFromUser(uid, permId)删除用户权限
listForUser(uid)列出用户权限例外
updateUserPermissionScope(...)更新用户权限范围
const perm = await admin.permissions.create({
  resource: "order",
  action: "export",
  name: "导出订单",
});

await admin.permissions.assignToRole(roleId, {
  permissionId: perm.id,
  scopeType: "dep",
});

// User-level override (bypasses role)
await admin.permissions.assignToUser(uid, {
  permissionId: perm.id,
  scopeType: "custom",
  scopeFilter: JSON.stringify({ id: [1, 2, 3] }),
});

admin.departments 部门及成员

方法说明
list()列出所有部门
get(id)联系部门
create(params)创建部门
update(id, params)更新部门
delete(id)删除部门
listUsers(id, includeChildren?)名单 部门成员
addUser(deptId, params)向部门添加用户( 使用用户Uid)
removeUser(deptId, userUid)从部门删除用户
const dept = await admin.departments.create({ name: "技术部", parentId: 1 });
await admin.departments.addUser(dept.id, {
  userUid: user.uid,
  position: "工程师",
  isPrimary: true,
});
await admin.departments.removeUser(dept.id, user.uid);

Deno / 边缘函数

边缘功能 npm: 页:1 env 获取(QQEDGE 函数 QQ)。

标识符: UID vs 数字 ID

  • 用户编号 (弦等为. "abc-123-def": 主要用户标识符. 用于 users.get/update/delete, (中文(简体) ), roles.assign (Assigneee Uid), (英语), departments.addUser/removeUser, (中文(简体) ), auth.checkPermission, (中文(简体) ), permissions.assignToUser。 。 。 .
  • 数字标识 (数字):数据库编号。 用于角色,权限,部门和角色指定者取景. API支持时优先使用UID.

类型(AI参考)

所有类型都从包中导出. 关键:

类型使用大小写
AdminSDKOptions构造选项
CheckPermissionParams, (中文(简体) ), CheckPermissionResultauth.checkPermission
CreateUserParams, (中文(简体) ), CreateUserResult, (中文(简体) ), UserDetail用户 CRUD
RoleAssignParams, (中文(简体) ), Role角色分配(使用) assigneeUid (供用户使用)
AssignPermissionToRoleParams, (中文(简体) ), AssignPermissionToUserParams权限指派
AddDepartmentMemberParams部门成员(使用) userUid(中文(简体) )
import type { AdminSDKOptions, CreateUserParams, RoleAssignParams } from "@amaster.ai/admin-sdk";

处理错误

import { AdminSDK, AdminSDKError } from "@amaster.ai/admin-sdk";

try {
  await admin.users.get("invalid-uid");
} catch (err) {
  if (err instanceof AdminSDKError) {
    console.error(err.status, err.message); // 404, "user not found"
  }
}

许可证

麻省理工学院

将一个已有的用户预设为 WeCom

await admin.auth.bindUserOAuth(userUid, {
  provider: "wecom",
  providerUserId: "enterprise-member-userid",
});

只使用服务器 : POST /api/internal/auth/users/{uid}/oauth-bindings 与 环境范围服务密钥。边缘函数必须认证其呼叫器 并在调用前授权用户管理。 使用稳定的应用程序 UID, 不是数字数据库 ID 。 相同的约束是一意孤行的;冲突再起 409,永远不要移动一个身份。 失踪/残疾用户返回404人。 只有 WeCom 是 已支持。 使用来自预定企业的经核实的成员身份; 此操作 不获取 WeCom 联系信息或证明会员资格。 部署 在使用方法前匹配运行时端点.

版本与发布记录

@amaster.ai/admin-sdk 共发布 144 个版本,首次发布于 2026/02/24;过去 12 个月发布了 144 个版本。

版本发布日期距今
1.1.72latest2026/11/052 天前
1.1.712026/10/2514 天前
1.1.702026/10/081 个月前
1.1.692026/09/241 个月前
1.1.69-beta.0beta2026/09/231 个月前
1.1.682026/09/221 个月前

关于 @amaster.ai/admin-sdk 的常见问题

@amaster.ai/admin-sdk 是什么?

Amaster 平台的管理员 SDK — 服务器侧用户、角色、权限和org 管理

如何安装 @amaster.ai/admin-sdk?

在项目目录运行 npm install @amaster.ai/admin-sdk,或使用 pnpm add / yarn add / bun add。

@amaster.ai/admin-sdk 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@amaster.ai/admin-sdk 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@amaster.ai/admin-sdk 可以商用吗?

@amaster.ai/admin-sdk 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@amaster.ai/admin-sdk 的下载量有多少?

根据 npm 官方下载统计,@amaster.ai/admin-sdk 在 2026/10/06 – 2026/11/04 这 30 天内被下载 1,926 次,日均约 64 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@amaster.ai/admin-sdk 还在维护吗?

最新版本 1.1.72 发布于 2026/11/05(2 天前);至今共发布 144 个版本,其中过去 12 个月发布了 144 个;首次发布于 2026/02/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。