Skip to content

actions.mdx built-in share action names role as a recipient kind — same retired vocabulary as #80 #91

Description

@os-zhuang

Found while working #80. Out of that card's scope — #80's dispatch scoped the file surface to content/docs/resources/glossary.mdx and instructed that any hit outside it be reported rather than edited — so it is filed rather than folded in.

content/docs/build/interface/actions.mdx:170, in the "every object gets these for free" table:

ActionWhat it does
shareDirect share with a user / role

role is not a recipient kind. ShareRecipientType in packages/spec/src/security/sharing.zod.ts on objectstack@origin/main is exactly user / team / position / unit_and_subordinates / business_unit, and the schema records the rename in its own words: ADR-0090 D3 renamed role to position (and the pre-D3 group to team). This site's own changelog already states it — content/docs/resources/changelog.mdx:212 and :260.

This is the identical wording pattern #80 fixed in the glossary ("for a specific user / role / group"), in a second file. The PM's pre-dispatch corpus grep for #80 searched for role / group used as a recipient kind and reported no hits outside the glossary; this one was missed because it sits in a build/interface page rather than a permissions page.

Cost of leaving it: the same authoring trap as #80 — a reader takes the table at its word and reasons about a role recipient that matches nothing. Lower blast radius than the glossary (it is a one-cell table gloss, not a definition), but it is the last English page teaching the retired spelling.

Suggested fix — one table cell, matching the phrasing configure/permissions/record-access.mdx:66 already uses for the full set:

| share | Direct share with a user, team, position, or business unit |

Two adjacent observations from the same sweep, both weaker and both left for triage rather than filed separately:

  • content/docs/index.mdx:43 describes ObjectOS as having the "same metadata-driven model (objects, fields, roles, sharing rules)" as Salesforce / NetSuite. roles there is retired ObjectStack vocabulary applied to our own model, though the sentence is comparative prose rather than an authoring instruction.
  • content/docs/configure/permissions/record-access.mdx:15 glosses record shares as "Grant access to a specific user, position, or unit (with subordinates)" — three of the five kinds, silently dropping team and plain business_unit. No retired spelling, so nothing an author writes from it fails; it is the incomplete-subset pattern rather than the dead-vocabulary one. Note the same page names all five correctly at :66.

Verified against: packages/spec/src/security/sharing.zod.ts (ShareRecipientType and the removal note above it) on objectstack@origin/main.


Generated by Claude Code

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions