浏览全部文档 · 4/37

完成目标

用一条可验收的控制面路径创建 Organization 与 Project,并把成员归属、应用边界和接入凭据分开管理。完成后再进入数据或 Agent 能力开发。

1 个 Organization承载成员、角色、用量与项目归属
1 个 Project隔离应用资源、配置与数据
可接入的项目边界平台与密钥按客户端、服务端分开

开始前准备

  • 使用已登录且允许创建 Organization 的 Console 账号。
  • 准备稳定且不与其他环境混用的 Organization ID、Project ID 和名称。
  • 明确谁负责组织管理,谁只负责 Project 内开发;普通 Project API Key 不能代替 Console Session。

按步骤完成

  1. 创建 Organization

    在 Console 的组织切换器中选择创建 Organization,填写稳定 ID 与名称。Organization 是成员、角色、用量和 Project 归属的控制面边界。

  2. 创建 Project

    在目标 Organization 下创建 Project。按环境或应用拆分 Project,不要让开发、测试和生产共用同一资源边界。

  3. 准备客户端与服务端接入

    在 Project 概览中为 Web、Android 或 Apple 客户端登记 Platform;服务端按最小 Scope 创建 API Key,开发调试可使用 Dev Key。密钥只在受控服务端保存。

SDK 示例

SDK · TypeScript
import { Client, SelfHostedOrganizations, Projects } from 'agentbase-console-sdk';

const client = new Client().setEndpoint('https://<APPBASE_HOST>/v1');
const organizations = new SelfHostedOrganizations(client);
await organizations.create({
  organizationId: '<ORGANIZATION_ID>',
  name: 'Example organization'
});

const projects = new Projects(client);
await projects.create({
  projectId: '<PROJECT_ID>',
  name: 'Example project',
  teamId: '<ORGANIZATION_ID>'
});

REST 示例

REST · Bash
curl 'https://<APPBASE_HOST>/v1/organizations' \
  -X POST \
  -H 'Cookie: <CONSOLE_SESSION_COOKIE>' \
  -H 'Content-Type: application/json' \
  --data '{"organizationId":"<ORGANIZATION_ID>","name":"Example organization"}'

权限模型

Organization 创建与 Project 创建属于 Console 控制面,依赖有效 Session/Admin/JWT 以及相应组织权限;普通 Project API Key 不能替代 Console Session。

常见错误

现象处理建议
401 user_unauthorized先完成 Console 登录;不要传仅有 Project Scope 的 API Key。
403确认当前账号拥有创建组织或在目标组织创建 Project 的角色。
409Organization ID 或 Project ID 已存在时改用新的稳定 ID。

当前限制

  • Cloud 与自托管的组织计费字段、区域和可选能力可能不同。
  • 组织成员邀请需要收件通道或可访问的确认 URL。
  • Project 创建成功不表示所有依赖型服务已启用。

Appwrite 兼容说明

Project 仍是兼容核心 API 的主要隔离边界;Organization 是 Agentbase 已核验的控制面增强。

Agentbase 增强说明

Agentbase 在自托管控制面显式提供 Organization 生命周期、成员、角色、用量、配额与审计接口。

继续阅读