Found while working #78. Out of that card's scope — it is pre-17.0 vocabulary drift (ADR-0090 / #52 era), not a 17.0 alignment defect — so it is filed rather than folded in.
content/docs/resources/glossary.mdx:180-182:
Record Share
A direct grant of access to a specific record for a specific user /
role / group. Stored as sys_record_share rows. Different from
sharing rules (declarative criteria).
Neither role nor group is 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 file records both renames explicitly — role → position (ADR-0090 D3, the whole Roles-and-Profiles-converge-on-Positions change) and, in the schema's own words, "the group / guest recipients (group renamed → team; anonymous access is the public-form grant / share-link surface)".
Cost of leaving it: a reader who takes the glossary at its word authors recipient_type: 'role' or 'group' and it matches nothing. The glossary is also the page a newcomer reads first, so it teaches the retired vocabulary before any other page can correct it.
Suggested fix — one line, plus a check of whether the entry should name the two recipient kinds the sentence omits entirely (unit_and_subordinates, business_unit):
A direct grant of access to a specific record for a specific user, team,
position, or business unit (optionally including its subordinate units).
Stored as `sys_record_share` rows.
Worth grepping the rest of content/docs/ for the same two words while in there — this scan only covered the glossary.
Verified against: packages/spec/src/security/sharing.zod.ts (ShareRecipientType and the removal note above it) on objectstack@origin/main.
Found while working #78. Out of that card's scope — it is pre-17.0 vocabulary drift (ADR-0090 / #52 era), not a 17.0 alignment defect — so it is filed rather than folded in.
content/docs/resources/glossary.mdx:180-182:Neither
rolenorgroupis a recipient kind.ShareRecipientTypeinpackages/spec/src/security/sharing.zod.tsonobjectstack@origin/mainis exactly:and the file records both renames explicitly —
role→position(ADR-0090 D3, the whole Roles-and-Profiles-converge-on-Positions change) and, in the schema's own words, "thegroup/guestrecipients (grouprenamed →team; anonymous access is the public-form grant / share-link surface)".Cost of leaving it: a reader who takes the glossary at its word authors
recipient_type: 'role'or'group'and it matches nothing. The glossary is also the page a newcomer reads first, so it teaches the retired vocabulary before any other page can correct it.Suggested fix — one line, plus a check of whether the entry should name the two recipient kinds the sentence omits entirely (
unit_and_subordinates,business_unit):Worth grepping the rest of
content/docs/for the same two words while in there — this scan only covered the glossary.Verified against:
packages/spec/src/security/sharing.zod.ts(ShareRecipientTypeand the removal note above it) onobjectstack@origin/main.