Uh oh!
There was an error while loading. Please reload this page.
docs(adr): ADR-0056 — permission editing belongs in Studio, Setup keeps assignment - #2399
Conversation
…ps assignment A permission set (sys_permission_set) has two editing surfaces over the SAME record: Setup's six raw-JSON textareas and Studio's structured PermissionMatrixEditor (objects + fields only). Raw JSON authz metadata is invisible to the ADR-0090 explain engine + publish linter, unvalidated, duplicated, and a silent-incident footgun. Decision (Option B): permission editing → Studio (structured editors); Setup keeps user management + permission-set assignment; system_permissions (incl. studio.access) stays in Setup as a sys_capability picker. Phased P1–P5, tracked in #2398. Design-review PR — Status: Proposed. Open questions (RLS editor depth, deep-link UX/scope, legacy-JSON backward-compat) are called out for reviewers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. |
os-zhuang
commented
Jul 12, 2026
Direction reset — this ADR needs a revision pass before merge. The design has moved from Option B (which kept
Consolidated remaining work + the revised facet-by-facet table now live in the epic #2398 (rewritten to the pure model). Next step on this PR: update the ADR body (Decision + table) to match, then merge as the design of record. |
Drops the Option-B `system_permissions`-in-Setup exception: all six facets are designed in the structured permission editor (reached from both Studio and Setup's env-scope metadata route), and Setup renders every facet read-only (summary + Studio deep-link) plus user assignment. Updates the decision, the facet table, the phase list (P1/P1b/P2/P3/P4 as shipped), resolves open Q6, adopts alternative A2 (bootstrap knot resolved via the Setup-side entry point), and adds the metadata↔data-record projection-freshness gap as open Q7 / a framework follow-up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
os-zhuang
commented
Jul 13, 2026
Revised to the pure model + marked Accepted (be3c08c). The Option-B |
What
Proposed ADR-0056 — the design for consolidating permission-set editing into Studio (Option B, the agreed direction). Epic: #2398.
Why
A permission set (
sys_permission_set) has two editing surfaces over the same record:Field.textareacolumns (object_permissions,field_permissions,system_permissions,row_level_security,tab_permissions,admin_scope).PermissionMatrixEditor— but only forobjects+fields.Raw JSON authorization metadata is invisible to the ADR-0090 explain engine + publish linter, unvalidated at author time, duplicated (objects/fields authorable in both surfaces), and a silent-incident footgun (ADR-0049).
Decision (Option B)
Permission editing → Studio (structured editors). Setup keeps user management + permission-set assignment. Exception:
system_permissions(includesstudio.access) stays in Setup as a structuredsys_capabilitymulti-select — granting who-may-enter-Studio is an operator act.sys_permission_setcolumnPermissionMatrixEditor(exists)sys_capabilitymulti-select (new)Status
Proposed — design-review PR. Open questions (RLS editor depth, deep-link UX/scope, legacy-JSON backward-compat) are listed in the ADR for reviewer input. Implementation is phased P1–P5 in #2398; P2 (capability picker) starts in a companion PR.
🤖 Generated with Claude Code