You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用node-appwrite创建Appwrite团队时遇Invalid Roles错误求助

问题:使用node-appwrite创建团队时返回「Invalid roles」错误

使用node-appwrite包创建Appwrite团队时,收到「Invalid roles」响应,相关代码如下:

import Sdk, { Permission, Role } from 'node-appwrite'

const client = new Sdk.Client()

client
    .setEndpoint(process.env.SERVER_URI)
    .setProject(process.env.PROJECT_ID)
    .setKey(process.env.SERVER_API_KEY)

const teams = new Sdk.Teams(client)

await teams.create('comics', 'Comics and Superheroes', [
    Permission.read(Role.users()),
    Permission.update(Role.team('admin')),
    Permission.delete(Role.team('admin'))
])

错误响应:

{
  code: 400,
  type: 'general_argument_invalid',
  response: {
    message: "Invalid roles: Value must a valid array and Parameter must contain at most 36 chars. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char",
    code: 400,
    type: 'general_argument_invalid',
    version: '1.2.0'
  }
}

打印传递给服务器的参数,结果为:

[ 'read("users")', 'update("team:admin")', 'delete("team:admin")' ]

解决方案

核心问题

你混淆了teams.create和teams.updatePermissions的参数用途:

  • teams.create的第三个参数是角色列表(roles),用于指定给创建团队的用户分配的角色(比如team:admin、owner),要求是符合规则的纯角色标识符字符串。
  • 你传入的是权限规则字符串(带括号、引号),这是teams.updatePermissions方法的参数,不符合roles参数的格式要求,因此触发错误。

正确代码示例

先创建团队,再单独设置权限规则:

import Sdk, { Permission, Role } from 'node-appwrite'

const client = new Sdk.Client()

client
    .setEndpoint(process.env.SERVER_URI)
    .setProject(process.env.PROJECT_ID)
    .setKey(process.env.SERVER_API_KEY)

const teams = new Sdk.Teams(client)

// 创建团队:第三个参数是给创建者的角色(可选,默认是['owner'])
await teams.create('comics', 'Comics and Superheroes', ['team:admin']);

// 更新团队权限:传入权限规则数组
await teams.updatePermissions('comics', [
    Permission.read(Role.users()),
    Permission.update(Role.team('admin')),
    Permission.delete(Role.team('admin'))
]);

补充说明

  • 如果不需要给创建者指定特殊角色,teams.create的第三个参数可以省略,默认会给创建者分配owner角色。
  • 角色标识符必须符合规则:仅包含a-z、A-Z、0-9、.、-、_,不能以特殊字符开头,长度不超过36位。

内容的提问来源于stack exchange,提问作者Penny Codes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:40:24