Skip to content

docs/plugins/packages.mdx 仍把 legacy OS_MULTI_ORG_ENABLED=true 当启用 multi-org 的方式 —— 照做够不到 group posture #5887

Description

@os-zhuang

现象

content/docs/plugins/packages.mdx:335(@objectstack/organizations (enterprise) 小节):

When to use: Multi-organization SaaS where every row is scoped to an organization. Enable by setting OS_MULTI_ORG_ENABLED=true and installing @objectstack/organizations; …

这是本仓库唯一还把 OS_MULTI_ORG_ENABLED 当作启用开关教给读者的地方(其余页面已经改成 OS_TENANCY_POSTURE)。

为什么是缺陷

packages/types/src/env.ts:89-122 逐字写明该布尔已被 DEMOTED(ADR-0105 D1):OS_TENANCY_POSTURE 才是权威开关,legacy 布尔只在 posture 未设置时作为回落输入被读一次。两条后果,读者照本页做就会踩:

  1. 够不到 group posture。 resolveTenancyPosture() 里 OS_MULTI_ORG_ENABLED=true 只能派生出 isolated;group(organization_id IN accessible_org_ids,ADR-0105 D2 的 union/MOAC 语义)没有任何 legacy 布尔拼法可以选中。本页把 multi-org 的入口写成一个只能到达三分之一 posture 的开关。
  2. 教出「按这个布尔判断部署是否 multi-org」的习惯。 env.ts 的注释把这条直接叫 bug,并点名两个已发生的缺陷(cloud#1020 的 EE licence gate、organization/create 的闸门读的是被降级的 OS_MULTI_ORG_ENABLED,不是权威的 OS_TENANCY_POSTURE —— 只设权威 knob 的有墙部署,引导式「创建工作区」是死路 #5233 的 organization/create 在纯 posture 部署上 403)。content/docs/deployment/tenancy-modes.mdx 已有一整段 "Never gate application code on OS_MULTI_ORG_ENABLED" 与本页对着写。

建议改法(一页之内)

把该 bullet 的开关换成 OS_TENANCY_POSTURE=group|isolated,legacy 布尔至多以「仍被兼容读取」的身份带一句或直接不提,并链到 /docs/deployment/tenancy-modes(posture 解析表、degraded 引导都在那里,不必在插件页重复)。OS_ALLOW_DEGRADED_TENANCY=1 那半句是准确的,可保留。

来源

#5746(content/docs/protocol/objectql/schema.mdx 同病)修复过程中扫到的邻页同类问题,按 Prime Directive #10 单独登记,未在那个 PR 里顺手改(文件面只限一页)。

Activity

  1. claude commented on Aug 6, 2026

    @claude
    Contributor

    分诊:入队 pm:queue,域 domain:devx。

    落点锚定:content/docs/plugins/packages.mdx:335 ⇒ content/docs/** 属 domain:devx。origin/main @ 7adc841 逐字核实该 bullet 原句仍在(「Enable by setting OS_MULTI_ORG_ENABLED=true」),且全仓 content/docs 内仅此一处把该布尔当启用开关(其余页面已改 OS_TENANCY_POSTURE)—— 与正文断言一致。

    分类理由:具体缺陷 + 落点单行 + 权威来源已在仓里(packages/types/src/env.ts:89-122 逐字写明该布尔已 DEMOTED,ADR-0105 D1),改法正文已给且限于一页 ⇒ 直接可派,无需裁决。

    危害确认:resolveTenancyPosture() 下 legacy 布尔只能派生 isolated,group posture(ADR-0105 D2 的 union/MOAC 语义)没有任何布尔拼法可达 —— 读者照本页做只能到达三分之一的 posture 面,并且会养成「按布尔判断部署是否 multi-org」的习惯(env.ts 注释已把它直接叫 bug,点名 cloud#1020 与 #5233 两个已发生缺陷)。

    查重:三仓 open issue / PR 搜 OS_MULTI_ORG_ENABLED —— 除本单外零命中,无重复入口。content/docs/deployment/tenancy-modes.mdx 那段「Never gate application code on OS_MULTI_ORG_ENABLED」已存在,可作为链接目标,不必在插件页重复解析表。

    本评论来自分诊座位 Routine(#5474 试点),不构成认领。


    Generated by Claude Code

  2. self-assigned this
    on Aug 6, 2026
  3. hotlong commented on Aug 6, 2026

    @hotlong
    Contributor

    认领:PM 循环第 1 轮(devx 车道)
    会话:session_01BDmDsu2575gDxeMCxXhDE3
    分支:claude/issue-5887-packages-mdx-tenancy-posture
    Worktree:objectstack-issue-5887
    域:domain:devx
    文件面:content/docs/plugins/packages.mdx、.changeset/(越界即停,报告说明)


    Generated by Claude Code

  4. hotlong commented on Aug 6, 2026

    @hotlong
    Contributor

    验收(devx 车道,会话 session_01BDmDsu2575gDxeMCxXhDE3):ACCEPT → PR #5974,已转 ready 并挂入合并队列。

    交付摘要:

    • content/docs/plugins/packages.mdx 一页 2 行:When to use 的启用开关改为 OS_TENANCY_POSTURE=group|isolated(各带一句谓词说明),legacy OS_MULTI_ORG_ENABLED 降为「posture 未设置时的回落 input、只能派生 isolated、never gate application code on it(ADR-0105 D1)」,链接 /docs/deployment/tenancy-modes,未重复解析表;OS_ALLOW_DEGRADED_TENANCY=1 半句保留并把触发条件改写为覆盖 group。
    • 同小节 Features 行的 isolated 专属措辞(「rows never leak across organizations」)一并改为对两个 walled posture 都成立的表述 —— 引入 group 后同小节自洽的直接后果,文件面仍只有这一页。
    • 前提复核成立(全仓 content/docs 内该布尔被当开关教的确仅此一处);docs-only 走 skip-changeset 标签(已核在);CI 全绿(ESLint / TypeScript / Build Docs / Check Changeset 重跑后)。Check Changeset 首跑红为已知打标签竞态,非缺陷。

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions