浏览全部文档 · 4/37

功能简介

先建立 Organization,再在组织归属下创建 Project,可以让成员角色、资源所有权和项目凭据从一开始就有清晰边界。Organization 是控制面归属,Project 是应用资源与数据面的隔离单元。

当前支持范围

  • 组织(APPBASE_ENHANCED):在自托管控制面用 Organization 归集项目、角色、用量、配额与审计;该管理面使用 Console Session、Admin 或 JWT,不是普通 Project API Key 数据面。
  • 项目(SUPPORTED):以 Project 隔离应用资源、服务开关、平台配置、API Key、Webhook 与认证策略。
  • 组织成员与角色(APPBASE_ENHANCED):在组织范围邀请、确认、变更和移除成员,并以 Owner、Admin、Developer、Editor、Analyst、Billing 角色约束管理权限。

适用场景

  • 首次进入自托管 AppBase Console。
  • 为团队创建独立 Organization 并邀请成员。
  • 为不同环境或应用拆分 Project。

前置条件

  • 拥有有效 Console Session。
  • 当前账号允许创建 Organization。
  • 为 Project 选择不与其他环境混用的 ID 和名称。

Console 操作路径

Console → Create organization → 填写名称;进入 Organization 后创建 Project。已有组织可从 Organization 切换器进入 Members 或 Settings。创建 Project 后再进入 Project 设置管理平台、服务开关与 Keys。

SDK 示例

SDK · TypeScript
import { Client, SelfHostedOrganizations, Projects } from 'appbase-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 是 AppBase 已核验的控制面增强。

AppBase 增强说明

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

发布状态和验证 Commit

origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353

权威来源文件列表

  • backend-candidate:app/controllers/api/projects.php
  • backend-candidate:src/Appwrite/Platform/Modules/Organizations/Http/Memberships/
  • backend-candidate:src/Appwrite/Platform/Modules/Organizations/Http/Organizations/
  • backend-candidate:src/Appwrite/Platform/Modules/Projects/Http/Projects/
  • backend-candidate:tests/e2e/Services/Organizations/OrganizationsConsoleClientTest.php
  • backend-candidate:tests/e2e/Services/Projects/ProjectsConsoleClientTest.php
  • frontend-candidate:console/src/routes/(console)/organization-[organization]/
  • frontend-candidate:console/src/routes/(console)/organization-[organization]/members/
  • frontend-candidate:console/src/routes/(console)/project-[region]-[project]/
  • origin-main:docs/products/v2.3.x/organizations/organization-management.md

Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs。上游页面不是 AppBase 实现证据。

继续阅读