功能简介
Organization 用于归集 Project、成员、角色、配额、用量与审计记录。它属于 AppBase Console 控制面:请求以 Console Session、Admin 或受支持的 JWT 身份执行,而不是作为普通 Project 数据 API 暴露给终端用户。
当前支持范围
- 组织(APPBASE_ENHANCED):在自托管控制面用 Organization 归集项目、角色、用量、配额与审计;该管理面使用 Console Session、Admin 或 JWT,不是普通 Project API Key 数据面。
适用场景
- 让多个 Project 共享明确的团队归属。
- 在组织维度查看成员、用量与审计。
- 把控制面角色与 Project 数据权限分离。
前置条件
- 有效 Console Session。
- 具备组织创建或读取权限。
- 自托管实例已启用 Organization HTTP 模块。
Console 操作路径
Console → Organization 切换器 → 选择组织;Members 管理成员,Usage 查看用量,Settings 修改组织信息。不同部署形态可能隐藏计费相关页面。
SDK 示例
SDK · TypeScript
import { Client, SelfHostedOrganizations } from 'appbase-console-sdk';
const client = new Client().setEndpoint('https://<APPBASE_HOST>/v1');
const organizations = new SelfHostedOrganizations(client);
const list = await organizations.list({ total: true });
const organization = await organizations.get({
organizationId: '<ORGANIZATION_ID>'
});REST 示例
REST · Bash
curl 'https://<APPBASE_HOST>/v1/organizations/<ORGANIZATION_ID>' \
-H 'Cookie: <CONSOLE_SESSION_COOKIE>'常见错误
| 现象 | 处理建议 |
|---|---|
401 user_unauthorized | Console Session 缺失或失效,先重新登录。 |
403 | 当前成员角色不允许修改 Organization 或配额。 |
404 | 组织不存在或当前身份不可见;客户端不要据此推断真实存在性。 |
当前限制
- 计费、Region 与 Cloud 专用字段不保证在所有自托管实例存在。
- Organization API 不是给应用终端用户使用的多租户数据表。
- Project 内资源仍由各自 Scope 与 Permission 保护。
Appwrite 兼容说明
Project 概念保持兼容;Organization 控制面是 AppBase 的增强层,不应假设上游所有部署都有相同管理接口。
AppBase 增强说明
新增组织级成员、角色、用量、配额和审计边界,并在 Console 中提供独立导航。
发布状态和验证 Commit
origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353。
权威来源文件列表
backend-candidate:src/Appwrite/Platform/Modules/Organizations/Http/Organizations/backend-candidate:tests/e2e/Services/Organizations/OrganizationsConsoleClientTest.phpfrontend-candidate:console/src/routes/(console)/organization-[organization]/origin-main:docs/products/v2.3.x/organizations/organization-management.md
Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs。上游页面不是 AppBase 实现证据。