|
| 1 | +--- |
| 2 | +"@objectstack/spec": minor |
| 3 | +"@objectstack/example-showcase": minor |
| 4 | +"@objectstack/plugin-sharing": patch |
| 5 | +"@objectstack/plugin-security": patch |
| 6 | +--- |
| 7 | + |
| 8 | +ADR-0090 permission-model zoo + docs alignment. |
| 9 | + |
| 10 | +**Showcase (`@objectstack/example-showcase`)** now exercises the full Permission |
| 11 | +Model v2 authoring surface and is guarded by a new runtime dogfood test |
| 12 | +(`showcase-permission-zoo.dogfood.test.ts`): typed `definePosition`/ |
| 13 | +`definePermissionSet`/`defineSharingRule` factories; six flat positions (the |
| 14 | +stale pre-D3 `parent` fields are gone); permission sets covering CRUD+FLS+RLS, |
| 15 | +org-depth read/write asymmetry (`readScope: 'org'` / `writeScope: 'own'`), |
| 16 | +View-All (auditor) and Modify-All (ops) bypasses, `systemPermissions` |
| 17 | +(`setup.access`), the `isDefault` everyone-suggestion (incl. personal-data |
| 18 | +grants on the `private`-OWD note object), a guest-safe set for the `guest` |
| 19 | +anchor (D9), and a delegated-administration `adminScope` bounded to a seeded |
| 20 | +`sys_business_unit` subtree (D12). Objects gain `externalSharingModel` dials |
| 21 | +(D11). A committed `access-matrix.json` opts the showcase into the D6 snapshot |
| 22 | +gate. Hierarchy depths (`own_and_reports`/`unit`/`unit_and_below`) are |
| 23 | +deliberately NOT authored — they are enterprise (`hierarchy-security`) and the |
| 24 | +open runtime fails closed; BU-shaped visibility is demonstrated via the |
| 25 | +enforced `unit_and_subordinates` sharing-rule recipient instead. |
| 26 | + |
| 27 | +**`@objectstack/spec`**: `defineStack` strict cross-reference validation no |
| 28 | +longer rejects permission grants or seed datasets that target platform-provided |
| 29 | +objects (`sys_`/`cloud_`/`ai_` prefixes) — a delegated-admin set carrying CRUD |
| 30 | +on the RBAC link tables (ADR-0090 D12) and an app seeding the business-unit |
| 31 | +tree are legitimate shapes; the typo net stays intact for the stack's own |
| 32 | +objects. Stale pre-ADR-0090 vocabulary in zod docstrings (rls/territory/ |
| 33 | +sharing/tool/agent) is rewritten; the auto-generated references (including the |
| 34 | +previously missing `security/explain.mdx`) are regenerated. |
| 35 | + |
| 36 | +**Docs**: `protocol/objectql/security.mdx` rewritten to the v2 model (no |
| 37 | +profiles, positions, canonical OWD four + D1 private default + |
| 38 | +`externalSharingModel`, position-scoped RLS, enforced sharing recipients); |
| 39 | +`isProfile` scrubbed from every authoring example; the dead |
| 40 | +`/docs/references/identity/role` link fixed; implementation-status and |
| 41 | +plugin READMEs aligned. Remaining rename misses are tracked in #2722 |
| 42 | +(RLSUserContext.role), #2723 (portal `profiles`), #2724 (sys_record_share |
| 43 | +`role` enum). |
0 commit comments