Read-only mirror.
@jeswr/solid-odrlis developed in the jeswr/solid-sdk monorepo and published here byscripts/mirror-publish.mjssogithub:-pinned installs keep working — do not edit or PR this repo. File issues on the monorepo.
Build, parse, and evaluate ODRL 2.2 policies for Solid resources and agent interactions.
Experimental. This is a client-side policy expression and evaluation library; it does not enforce policies inside a Solid server.
npm install github:jeswr/solid-odrl#mainRequires Node.js 24 or newer.
import { evaluate, parsePolicy, policyToTurtle } from "@jeswr/solid-odrl";
const policy = {
id: "https://alice.example/policies/read",
type: "Set" as const,
permissions: [
{
type: "permission" as const,
action: "read",
target: "https://alice.example/private/notes.ttl",
assignee: "https://bob.example/profile/card#me",
},
],
};
const turtle = await policyToTurtle(policy);
const parsed = await parsePolicy(turtle);
if (!parsed) throw new Error("No ODRL policy found");
const result = evaluate(parsed, {
agent: "https://bob.example/profile/card#me",
action: "read",
target: "https://alice.example/private/notes.ttl",
});result.decision is "permit", "deny", or "notApplicable"; it also explains matched
rules, conflicts, and outstanding duties.
For enforcement, treat "notApplicable" as a default deny. Duties are advisory unless evaluation
uses { requireDuties: true }; enable it when outstanding duties must block access.
- Express:
policyToRdf,policyToTurtle,policyToJsonLd,serialize. - Parse:
parsePolicy,policyFromRdf. - Evaluate:
evaluate,constraintSatisfied,matchingPermissions. - Delegation:
evaluateDelegated,delegationProvenance. - Adapters:
requestContextFromA2AIntent,requestContextFromWac.
MIT © Jesse Wright