主题
你的 LlamaCloud 部署里,每个组织成员都持有一个角色,它决定这人能做什么:
Admin—— 对组织及其 project 有完全访问权。ViewerV2(界面里显示为“Viewer”)—— 只读。Viewer 可以浏览 project 与资源、读取任务结果,但任何创建或修改的请求都会以403被拒。
角色列表里还会返回 Viewer,界面里显示为 Viewer (legacy)。它并非只读 —— 持有它的成员仍能提交任务 —— 因此对必须不能写入的人,请分配 ViewerV2。
通过 API 给成员分配角色
用 API 管理成员需要一把属于组织管理员的 API key。先配好环境:
终端窗口
export LLAMA_CLOUD_API_KEY="<org-admin-api-key>"
export HOST="https://<your-llamacloud-host>"
export ORG_ID="<your-organization-id>" # shown on the Organization Settings page查角色 ID
角色 ID 是按部署生成的,所以请按名称去查角色,而不是硬编码 ID。同一个部署内 ID 保持稳定,因此这是一次性的查询:
终端窗口
export ROLE_ID=$(curl -s "$HOST/api/v1/organizations/$ORG_ID/roles" \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
| jq -r '.[] | select(.name=="ViewerV2") | .id')添加成员
请求体是一个数组,所以一次调用就能加多位成员。成员添加按组织限速,因此优先用一次批量请求,而不是循环调用。作用范围由 project_ids 决定:null 表示授予整个组织的访问权,而给出一个 project ID 列表则把该成员限制在这些 project 内:
终端窗口
curl -X PUT "$HOST/api/v1/organizations/$ORG_ID/users" \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '[{ "email": "person@example.com", "project_ids": null, "role_id": "'"$ROLE_ID"'" }]'在对方还没注册时也能按邮箱添加:邀请会被存下,等他用那个邮箱注册后自动生效。按邮箱添加的响应里,成员状态始终列为 pending。
移除成员
可以按邮箱或按用户 ID 移除成员:
终端窗口
curl -X DELETE "$HOST/api/v1/organizations/$ORG_ID/users/person@example.com" \
-H "Authorization: Bearer $LLAMA_CLOUD_API_KEY"