@mostajs/abac
v0.1.0
Published
ABAC (Attribute-Based Access Control) PDP pour @mostajs — évalue une condition d'attributs (subject/resource/action/environment) en jsonlogic via @mostajs/rules, deny-by-default (fail-closed).
Maintainers
Readme
@mostajs/abac
Auteur : Dr Hamid MADANI [email protected] · Licence : AGPL-3.0-or-later Statut : ✅ 0.1.0 — implémenté, 8 tests verts (mjs-unit).
ABAC (Attribute-Based Access Control) pour l'écosystème @mostajs. PDP mince :
structure les attributs (subject/resource/action/environment) et évalue une
condition (format jsonlogic), en déléguant l'évaluation à
@mostajs/rules — deny-by-default.
La couche politiques/combinaison/PEP est @mostajs/pbac.
API prévue
import { evaluateRule } from "@mostajs/abac";
const rule = { id: "med-read", effect: "permit", condition: {
and: [
{ in: ["social", { var: "subject.roles" }] },
{ "==": [ { var: "subject.sector" }, { var: "resource.sector" } ] },
],
}};
await evaluateRule(rule, {
subject: { roles: ["social"], sector: "A" },
resource: { type: "BeneficiaryMedical", sector: "A" },
action: "read",
}); // → "permit" (sinon "deny" / "not-applicable")Conception
Voir le dossier de conception du stack : ../docs/
(01-ETAT-DE-LART → 05-RISQUES-MITIGATION).
Principe
Réutilise @mostajs/rules (jsonlogic, holds deny-by-default, explain) — on ne
réécrit pas d'évaluateur. Tests dans test-scripts/ (mjs-unit), exemples dans examples/.
