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:

Action What it does
share Direct 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

Activity

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

Metadata

Metadata

Assignees

No one assigned

    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