Uh oh!
There was an error while loading. Please reload this page.
docs(permissions): state the 403 not_overridable refusal for admin-door edits of packaged permission sets - #8384
Merged
Conversation
…or edits of packaged permission sets (#8292) ADR-0094 D5's 2026-07-14 direction (translate an admin-door edit of a package-owned permission set into a first-class ADR-0005 env-scope overlay) was retired on 2026-08-09 by D5-R (#6858 / PR #6962), after #6483 / PR #6608 rolled `permission` back to `allowOrgOverride: false`. The published page still asserted the retired direction in the present tense — and inverted: it told a reader the edit succeeds, when the platform answers 403 not_overridable. Rewrites the data-layer gate bullet to state current behavior and name the supported channel (ADR-0086 two-doors: edit the package and re-publish), in retired-voice consistent with metadata-plugin.zod.ts:921. The sibling bullet ("deleting an artifact-backed set resets it to its declared body") is left unchanged: it is still correct, pinned end-to-end by packages/qa/dogfood/test/two-doors-permission.dogfood.test.ts. Part of #8292 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jqe56GnYFddggeAyfkZFVz
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This was referenced Aug 13, 2026
qq9340100
marked this pull request as ready for review
August 13, 2026 10:56
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 13, 2026
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.
Part of #8292
PR 1 of 2 — the customer-facing half. The ADR-class half is #8292's second site and ships separately (see the companion PR on
claude/issue-8292-adr-0086-retired-d5), so this diff can land on the normal path.#8292 remains openuntil both land.The defect
content/docs/permissions/authorization.mdx:231told customers, in the present tense, that> admin-door edits of a packaged set are no longer refused
That is not merely stale — it is inverted. ADR-0094 D5's 2026-07-14 direction (translate such an edit into a first-class ADR-0005 env-scope overlay) was retired on 2026-08-09 by D5-R (#6858 / PR #6962), after #6483 / PR #6608 rolled
permissionback toallowOrgOverride: false. The platform answers403 not_overridable.What changed
The data-layer-gate bullet now states current behavior, names why (
allowOrgOverride: false, ADR-0005's security row), and points at the supported channel ADR-0086 two-doors always named — edit the package and re-publish. It marks the 2026-07-14 direction retired in the same retired-voicepackages/spec/src/kernel/metadata-plugin.zod.ts:921uses for the same retirement, and keeps the two facts that survive: theallowRuntimeCreatetier stays editable, and a data-door "delete" still degrades to a reset.The sibling bullet at
:222is deliberately NOT touchedThe card flagged, unverified, that "Deleting an artifact-backed set through this door resets it to its declared body" might be inverted too. Re-located by text and judged against D5-R: it is still correct, so it stays. Evidence:
packages/qa/dogfood/test/two-doors-permission.dogfood.test.tspins it end-to-end on the real showcase stack — the edit gets 403, and the DELETE returns< 300with "a packaged definition is never removed by the env door".D5-R's sentence that "the ordinary delete path is
override-artifactintent and refuses like any other write" is about deleting the metadata overlay row through the metadata door, not the data-door DELETE of the record — different doors, and only the latter is what:222describes.Scope
Six occurrences of the retired-direction vocabulary in this file were counted and judged individually; only
:231is inverted.:217(write-through redirect, ADR-0094 D1/D3 — not retired),:344(objectsharingModeloverlays — different metadata type), and:409(evaluator deny layer) are correct and untouched.:190cites "the ADR-0094 D5 direction" for a claim D5 never made; that cite is inherited fromdocs/adr/0066-*.md:45, so fixing it spans a file outside both PRs' declared surfaces — filed separately rather than fixed here.Verification
Gates re-derived against the actual changed path with
node scripts/pm/dispatch-gates.mjs— identical to the dispatch list, no delta.pnpm --filter @objectstack/lint run check:doc-formula-expressions— 22 examples across 395 files clean (neededpnpm --filter '@objectstack/lint^...' buildfirst in a fresh worktree)pnpm check:docs-audit-scope— 179 hand-written docs in syncpnpm check:quick-reference-counts— cleanpnpm check:role-word— 44 baselined files, no new occurrencespnpm check:nul-bytes— 7589 files, no raw control bytesnode scripts/check-adr-merge-approval.mjs— clean-diff path, zero API lookups (nodocs/adr/files here, as intended)Docs-only ⇒
skip-changeset.Generated by Claude Code