Uh oh!
There was an error while loading. Please reload this page.
docs(glossary): name the real Record Share recipient kinds - #92
Merged
Conversation
The Record Share entry named `role` and `group`, neither of which is a recipient kind: ADR-0090 D3 renamed `role` -> `position` and `group` -> `team`. It also omitted `unit_and_subordinates` and `business_unit` entirely, so three of the five real kinds were missing while two dead ones were taught to newcomers. The entry now names all five values of `ShareRecipientType` (`packages/spec/src/security/sharing.zod.ts`, objectstack@origin/main), each paired with the canonical `recipient_type` spelling an author writes. Fixes#80 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CJPxtTxoxTUnjNdTbiEaRa
os-zhuang
marked this pull request as ready for review
August 18, 2026 13:23
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#80
The glossary's
Record Shareentry namedroleandgroup. Neither is a recipient kind: ADR-0090 D3 renamedroletopositionand the pre-D3grouptoteam. It also omittedunit_and_subordinatesandbusiness_unitentirely — so of the five real kinds the entry named one, and taught two dead ones to the page a newcomer reads first.The answer, from the schema
ShareRecipientTypeinpackages/spec/src/security/sharing.zod.tsonobjectstack@origin/mainis exactly:The same file documents both renames and the removals in its own words (
grouprenamed toteam;guestdropped because anonymous access is the public-form grant / share-link surface;queuereserved and deliberately not authorable).sys_record_share.recipient_typeis the column that carries these values — this site's own changelog already records theroletopositionmigration atcontent/docs/resources/changelog.mdx:212and:260, which the glossary contradicted.Decision: all five kinds, not a readable subset
The card left open whether the entry should name all five or a subset. It names all five, for three reasons:
content/docs/configure/permissions/record-access.mdx:66already enumerates the full set in house phrasing ("a user, team, position, business unit, or a unit and its subordinates"). The glossary now agrees with it rather than competing with it.recipient_typespelling. The stated cost in the card is a reader who authorsrecipient_type: 'role'and matches nothing — prose alone would still leave them guessing whether "a business unit and its subordinate units" is spelledunit_and_subordinates. Declared equals enforced only helps if the doc prints the declared spelling.Nothing was left out, so there is no omission to justify.
Scope
One entry in one file. In particular the duplicated
Consoleentry in this same file is untouched — it is #89's subject and governed by the #79 naming decision.The locale siblings of
glossary.mdxare left alone per AGENTS.md; they now report stale, which is by design and non-blocking.Out-of-scope finding — reported, not edited
Filed as #91:
content/docs/build/interface/actions.mdx:170glosses the built-inshareaction as "Direct share with a user / role" — the identical retired-vocabulary pattern in a second file, outside this card's file surface. That issue also records two weaker adjacent observations for triage (index.mdx:43,record-access.mdx:15). No edits were made to any of them here; #91 is not addressed by this PR.Verification — all at
b091442, the pushed headpnpm turbo run type-check --forcecache bypass, force executing 4652eecd91dea0a7, not FULL TURBOpnpm turbo run build --forcecache bypass, force executing 50e5be14a3f9c414,Compiled successfully in 55s, 740/740 static pagescheck-translation-ownership.mjscheck-translations.mjs(freshness)translations gate passed; the sixglossary.*.mdxsiblings report stale, as designedcheck-translation-output.mjs --self-testcheck-translation-output.mjs --filesRendered HTML was read, not just the diff:
apps/docs/.next/server/app/en/docs/resources/glossary.htmlrenders the entry with all five values ascodespans, the#record-shareanchor and its TOC link intact, and no occurrence ofroleorgroupas a recipient kind anywhere on the page.Generated by Claude Code