Found while implementing #120 (documenting the notification subscription principal selector, whose role: form resolves against sys_member.role). Out of that card's scope — #120 is one file, content/docs/configure/notifications.mdx.
content/docs/build/automation/approvals.mdx:77 and :87-88 both spell the tier as a three-value set:
| `org_membership_level` | An org-membership tier (`owner` / `admin` / `member`) |
> The org-membership tier (`sys_member.role`: `owner`/`admin`/`member`) is
> addressed as `type: 'org_membership_level'` since 16.0 …
The parenthetical describes the column's values, and the column's enforced option list has four (ADR-0108): owner, admin, delegated_admin, member — packages/spec/src/identity/membership-role.ts:99-104 in objectstack, declared on the object at packages/platform-objects/src/identity/sys-member.object.ts:208-214 ("the framework's four roles — the WHOLE list", enforced on write). So a reader who sets someone to Delegated Admin in Setup and then looks for that tier on this page does not find it.
The related-but-separate question — whether the approver picker should offer delegated_admin at all — is objectstack-ai/objectstack#9806: APPROVER_VALUE_BINDINGS.org_membership_level sources its options from a three-value constant. If that resolves as "deliberate", the table row at :77 is correct as the picker's vocabulary and only the parenthetical at :87-88 needs the fourth value plus a note; if it resolves as drift, both need it.
Blocked-by: objectstack-ai/objectstack#9806
Note for whoever takes this: content/docs/configure/notifications.mdx now states the four tiers, under What to type in principal (added by #120), so the corpus is currently inconsistent between the two pages.
Found while implementing #120 (documenting the notification subscription
principalselector, whoserole:form resolves againstsys_member.role). Out of that card's scope — #120 is one file,content/docs/configure/notifications.mdx.content/docs/build/automation/approvals.mdx:77and:87-88both spell the tier as a three-value set:The parenthetical describes the column's values, and the column's enforced option list has four (ADR-0108):
owner,admin,delegated_admin,member—packages/spec/src/identity/membership-role.ts:99-104inobjectstack, declared on the object atpackages/platform-objects/src/identity/sys-member.object.ts:208-214("the framework's four roles — the WHOLE list", enforced on write). So a reader who sets someone to Delegated Admin in Setup and then looks for that tier on this page does not find it.The related-but-separate question — whether the approver picker should offer
delegated_adminat all — is objectstack-ai/objectstack#9806:APPROVER_VALUE_BINDINGS.org_membership_levelsources its options from a three-value constant. If that resolves as "deliberate", the table row at:77is correct as the picker's vocabulary and only the parenthetical at:87-88needs the fourth value plus a note; if it resolves as drift, both need it.Blocked-by: objectstack-ai/objectstack#9806
Note for whoever takes this:
content/docs/configure/notifications.mdxnow states the four tiers, under What to type inprincipal(added by #120), so the corpus is currently inconsistent between the two pages.