Skip to content

Commit 5d7d2ab

Browse files
committed
Explain ABAC PR Code for Junior Developer
1 parent da7db15 commit 5d7d2ab

4 files changed

Lines changed: 789 additions & 3 deletions

File tree

ROADMAP.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ See [`packages/cover-image/README.md`](packages/cover-image/README.md).
291291
Shared improvements that benefit every plugin:
292292

293293
- **Attribute-Based Authorization (ABAC)** — pluggable attribute providers (`geo`, `tenant`, `clearance`, …) that compile to Payload `where` clauses and merge with the existing `authorization` plugin's RBAC. One small extension point (`AttributeProvider`), no parallel permission engine. Tracking issue: [#203](https://github.com/shefing/payload-tools/issues/203).
294+
- **v0.2 — Multi-value attribute support** *(next iteration)*: extend `tenantAttribute` (and the engine) to handle users that belong to **multiple values** of an attribute simultaneously (e.g. `user.tenants = ['tenant-a', 'tenant-b']`). The `toWhere` output becomes `{ tenant: { in: [...ids] } }` and `match` checks array membership. Closes the main gap vs. Payload's official `plugin-multi-tenant` which supports a `tenants[]` array per user with per-tenant roles. Also covers multi-region, multi-clearance, and any other set-valued attribute.
294295
- **Unified options shape** — extend every plugin's `excludedCollections` / `excludedGlobals` with `includedCollections` and `predicate: (collection) => boolean` for parity.
295296
- **Per-collection opt-in via `admin.custom.<pluginKey>`** documented in one place.
296297
- **Centralized i18n** — lift per-plugin `labels.ts` (en/ar/es/fr/he/zh) into a shared `@shefing/i18n` package.
@@ -312,6 +313,7 @@ Shared improvements that benefit every plugin:
312313

313314
### Wave 2 — High-value P0
314315

316+
- ABAC: multi-value attribute support (`tenants[]` array, `{ in: [...] }` WHERE, array `match`) — closes gap vs. official `plugin-multi-tenant`.
315317
- Authorization: deny-list & row-level (`where`) permissions, role inheritance.
316318
- Comments: mentions, resolve state, document-level comments.
317319
- Reset List View: granular reset menu + admin-saved default view.

0 commit comments

Comments
 (0)