浏览全部文档 · 6/37

功能简介

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>'

权限模型

列举与读取只返回当前身份可见的 Organization;创建、更新、删除、配额与成员操作再检查组织角色。控制面密钥与 Project API Key 的 Scope 集合不同。

常见错误

现象处理建议
401 user_unauthorizedConsole 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.php
  • frontend-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 实现证据。

继续阅读