Skip to content

docs(permissions): state the 403 not_overridable refusal for admin-door edits of packaged permission sets - #8384

Merged
qq9340100 merged 1 commit into
mainfrom
claude/issue-8292-authz-docs-retired-d5
Aug 13, 2026
Merged

docs(permissions): state the 403 not_overridable refusal for admin-door edits of packaged permission sets#8384
qq9340100 merged 1 commit into
mainfrom
claude/issue-8292-authz-docs-retired-d5

Conversation

@qq9340100

Copy link
Copy Markdown
Collaborator

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 open until both land.

The defect

content/docs/permissions/authorization.mdx:231 told 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 permission back to allowOrgOverride: false. The platform answers 403 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-voice packages/spec/src/kernel/metadata-plugin.zod.ts:921 uses for the same retirement, and keeps the two facts that survive: the allowRuntimeCreate tier stays editable, and a data-door "delete" still degrades to a reset.

The sibling bullet at :222 is deliberately NOT touched

The 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.ts pins it end-to-end on the real showcase stack — the edit gets 403, and the DELETE returns < 300 with "a packaged definition is never removed by the env door".
  • Its header states the same split explicitly: the overlay translation is retired, but "a 'delete' through this door still degrades to a RESET".

D5-R's sentence that "the ordinary delete path is override-artifact intent 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 :222 describes.

Scope

Six occurrences of the retired-direction vocabulary in this file were counted and judged individually; only :231 is inverted. :217 (write-through redirect, ADR-0094 D1/D3 — not retired), :344 (object sharingModel overlays — different metadata type), and :409 (evaluator deny layer) are correct and untouched. :190 cites "the ADR-0094 D5 direction" for a claim D5 never made; that cite is inherited from docs/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 (needed pnpm --filter '@objectstack/lint^...' build first in a fresh worktree)
  • pnpm check:docs-audit-scope — 179 hand-written docs in sync
  • pnpm check:quick-reference-counts — clean
  • pnpm check:role-word — 44 baselined files, no new occurrences
  • pnpm check:nul-bytes — 7589 files, no raw control bytes
  • node scripts/check-adr-merge-approval.mjs — clean-diff path, zero API lookups (no docs/adr/ files here, as intended)

Docs-only ⇒ skip-changeset.


Generated by Claude Code

…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
@vercel

vercelBot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectstackIgnoredIgnoredAug 13, 2026 10:47am

Request Review

@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Aug 13, 2026
@qq9340100qq9340100 added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 13, 2026 — with Claude
@qq9340100
qq9340100 marked this pull request as ready for review August 13, 2026 10:56
@qq9340100
qq9340100 added this pull request to the merge queueAug 13, 2026
Merged via the queue into main with commit 0e04899Aug 13, 2026
25 checks passed
@qq9340100
qq9340100 deleted the claude/issue-8292-authz-docs-retired-d5 branch August 13, 2026 11:13
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/sskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@qq9340100@claude