团队管理
ONE SDK 支持基于角色的访问控制以实现团队协作。项目所有者可以通过仪表板或 OneEngineClient 上的 Admin API 方法来邀请团队成员、分配角色和微调权限。
客户端设 置
团队管理需要管理员级别的身份验证。使用 secretKey 创建服务端客户端。
import { OneEngineClient } from '@one_deploy/sdk';
const engine = new OneEngineClient({
baseUrl: process.env.ONE_ENGINE_URL!,
clientId: process.env.ONE_CLIENT_ID!,
secretKey: process.env.ONE_SECRET_KEY!,
});
角色
每个团队成员被分配三个角色之一。每个角色都有一组预定义的权限。
| 角色 | 说明 | 典型用途 |
|---|---|---|
| admin | 对所有项目资源、设置、团队管理和计费拥有完全访问权限。 | 项目所有者、首席工程师。 |
| developer | 对 API 密钥、Webhook 和用量数据拥有读写权限。无法管理团队成员或计费。 | 后端和前端工程师。 |
| viewer | 对项目数据、用量分析和 Webhook 日志拥有只读权限。 | QA、产品经理、利益相关者。 |
角色对比矩阵
| 功能 | admin | developer | viewer |
|---|---|---|---|
| 查看项目设置 | 是 | 是 | 是 |
| 更新项目设置 | 是 | 否 | 否 |
| 查看 API 密钥 | 是 | 是 | 否 |
| 重新生成 API 密钥 | 是 | 是 | 否 |
| 查看用量分析 | 是 | 是 | 是 |
| 创建 Webhook | 是 | 是 | 否 |
| 管理 Webhook | 是 | 是 | 否 |
| 查看 Webhook 日志 | 是 | 是 | 是 |
| 邀请团队成员 | 是 | 否 | 否 |
| 移除团队成员 | 是 | 否 | 否 |
| 更改成员角色 | 是 | 否 | 否 |
| 管理计费 | 是 | 否 | 否 |
| 删除项目 | 是 | 否 | 否 |
类型
Permission
定义授予用户或角色的单个权限。
interface Permission {
id: string;
action: PermissionAction;
scope: PermissionScope;
resource?: string; // Optional resource ID for fine-grained access
}
type PermissionAction =
| 'read'
| 'write'
| 'delete'
| 'manage';
PermissionScope
定义权限适用的资源范围。
type PermissionScope =
| 'project'
| 'project.settings'
| 'project.keys'
| 'project.usage'
| 'project.webhooks'
| 'project.team'
| 'project.billing'
| 'admin.users'
| 'admin.projects';
TeamMember
表示项目团队中的一个用户。
interface TeamMember {
id: string;
userId: string;
projectId: string;
email: string;
displayName?: string;
role: 'admin' | 'developer' | 'viewer';
permissions: Permission[];
status: 'active' | 'invited' | 'suspended';
invitedAt: string; // ISO-8601
joinedAt?: string; // ISO-8601, null if still pending
lastActiveAt?: string; // ISO-8601
}