@mostajs/access-model
v0.1.1
Published
Vocabulaire N0 de l'identité et de l'autorisation : schémas et types User/Role/Permission/Category/Account. Partagé par tout le continuum d'accès (IBAC→RBAC→ABAC→PBAC→ReBAC).
Readme
@mostajs/access-model
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later Niveau : N0 · 15 tests · Le vocabulaire partagé de l'identité et de l'autorisation.
Les entités neutres du contrôle d'accès — Utilisateur, Rôle, Permission, Catégorie, Compte — sous forme de schémas (ORM) et de types (DTO + définitions). Rien d'UI, rien de logique : des formes de données, partagées par tout le continuum d'accès.
Pourquoi ce module existe
Ce vocabulaire vivait dans @mostajs/rbac (N2, l'autorisation). Conséquence : @mostajs/auth
(l'authentification — IBAC) importait les schémas User/Role/Permission depuis rbac. C'est
l'ordre naturel du continuum renversé : on sait qui AVANT de savoir ce qu'il a le droit de faire.
Continuum d'accès : IBAC → RBAC → ABAC → PBAC → ReBAC
(auth) (rbac) (abac) (pbac) (rebac)
└──────┴───────┴──────┴──────┘
tous partagent le même modèle → @mostajs/access-model (N0)En descendant le modèle en N0, sous tout le monde :
auths'en sert sans dépendre derbac— l'inversion de sens disparaît ;rbacle ré-exporte (aucune rupture) et le possède fonctionnellement ;- le continuum entier (abac/pbac/rebac) partage enfin un vocabulaire déclaré, au lieu de le redéfinir chacun dans son coin.
Contenu
Schémas (ORM) : UserSchema, RoleSchema, PermissionSchema, PermissionCategorySchema,
AccountSchema.
Types : UserDTO, RoleDTO, PermissionDTO, PermissionCategoryDTO, AccountDTO,
PermissionDefinition, RoleDefinition, CategoryDefinition.
Ce qui n'est PAS ici
Les formes de présentation (RoleData, MatrixData, RBACConfig, CategoryData…) restent
dans @mostajs/rbac : elles sont propres à son IHM. Le modèle et l'écran ne se mélangent pas.
Usage
import { UserSchema, RoleSchema } from '@mostajs/access-model'
import type { PermissionDefinition } from '@mostajs/access-model'Tests
npm test # 15 tests — les 5 schémas bien formés (collections distinctes), tous les types exportés