Skip to content

docs(adr-0086): re-evaluate authz metadata/config boundary against latest code (#2557) - #3011

Merged
os-zhuang merged 1 commit into
mainfrom
claude/auth-model-design-eval-xxgzcl
Jul 16, 2026
Merged

docs(adr-0086): re-evaluate authz metadata/config boundary against latest code (#2557)#3011
os-zhuang merged 1 commit into
mainfrom
claude/auth-model-design-eval-xxgzcl

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Summary

Re-evaluates the ADR-0086 design (authz metadata↔config boundary + cross-package composition, the deliverable of #2557) against the current code (HEAD 2026-07-16). The ADR was written the day #2557 opened (2026-07-04); its full plan has since shipped, and three later ADRs built directly on it. This PR flips the ADR's status from Proposed → Accepted (substantially implemented) and appends a code-grounded Re-evaluation (2026-07-16) addendum.

What the re-evaluation found

The central thesis holds unchanged — definitions travel with the package (provenance managedBy + packageId); subject bindings stay environment config; cross-package grants compose conflict-free by the namespaced-key UNION. Every decision and phase has landed:

ItemStatusEvidence
D3packageId + provenance on the setImplementedspec/security/permission.zod.ts:167,178; sys-permission-set.object.ts:217-266
D5bootstrapDeclaredPermissionsImplementedplugin-security/src/bootstrap-declared-permissions.ts (seeds managed_by:'package' + package_id; closes the ADR-0078 inert-metadata smell)
P0 objectui scope + slice-mergeDone (objectui #2505/#2508)permission-slice.ts + mergePermissionSlice; packageId-scoped matrix; draft-mode save
D6/D7 two doorsImplementedpackage door = mode:'draft'; env door live + ADR-0094 write-through

Two mechanisms overtaken by better realizations (flagged inline)

  1. P0's "slice-merge the shared data record" premise → ADR-0094 pure projection + overlay.sys_permission_set is now a derived projection over the metadata layer; the data-loss trap is closed structurally (no second writable authority). The inline objects/fields body shape survived, so the namespaced-key slice invariant still holds.
  2. D4's Salesforce-muting/clone subtract layer → ADR-0005 first-class overlay (ADR-0094 D5 revised): an env overlay of a package set keeps receiving vendor baseline tightenings and retains the code-vs-overlay diff.

Vocabulary refresh (ADR-0090)

The D1 classification table is restated in current vocabulary: Position (not Role; flat, no parent), Profile removed, everyone/guest anchors replacing the member_default fallback, renamed + time-boxed (ADR-0091) assignment tables, and the ADR-0090 D12 adminScope.

Net

No decision was reversed. Remaining genuinely-open items are the ones the ADR already marked deferred and evidence-gated (ADR-0066 explicit-deny precedence layer, permission-set groups, OWD env-tightening via overlay).

Changes

  • docs/adr/0086-authz-metadata-config-boundary-and-cross-package-composition.md — status line + Re-evaluation (2026-07-16) addendum. Docs-only; no code or behavior change.

Closes the re-evaluation ask on #2557.

🤖 Generated with Claude Code


Generated by Claude Code

…test code (#2557)
ADR-0086 was written the day #2557 opened; its full plan has since shipped and
three later ADRs (0090, 0094, 0095) built on it. Flip status Proposed → Accepted
(substantially implemented) and add a code-grounded Re-evaluation (2026-07-16)
addendum:
- Per-decision/phase status table (D1-D7, P0-P2) with file-level landing points:
D3 packageId+provenance, D5 bootstrapDeclaredPermissions, P0 objectui
slice-merge (#2505/#2508), D6/D7 two doors — all implemented.
- Flag the two mechanisms the original text describes that later work overtook:
P0's shared-data-record slice-merge premise -> ADR-0094 pure projection +
metadata overlay; D4's Salesforce-muting subtract layer -> ADR-0005 first-class
overlay (ADR-0094 D5 revised).
- Restate the D1 classification table in current ADR-0090 vocabulary: Position
(not Role, flat/no parent), Profile removed, everyone/guest anchors, renamed
+ time-boxed (ADR-0091) assignment tables, adminScope (ADR-0090 D12).
- Net: no decision reversed; thesis holds. Remaining open items are the ones
already marked deferred/evidence-gated.
@vercel

vercelBot commented Jul 16, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 16, 2026 4:55am

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation size/s labels Jul 16, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review July 16, 2026 04:57
@os-zhuang
os-zhuang merged commit dd19298 into mainJul 16, 2026
15 checks passed
@os-zhuang
os-zhuang deleted the claude/auth-model-design-eval-xxgzcl branch July 16, 2026 04:57
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/s

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@os-zhuang@claude