{"id":"@lssm-tech/lib.identity-rbac","slug":"lib.identity-rbac","name":"@lssm-tech/lib.identity-rbac","version":"5.1.4","path":"packages/domains/identity/identity-rbac","manifestPath":"packages/domains/identity/identity-rbac/package.json","manifestBlobSha":"f3c4e6600e5157e72f826ad9b2f09e1e8c0ec6a6","layer":"domains","physicalArea":"identity","primaryArea":"identity-and-access","classification":{"privateDeclared":null,"catalogFamily":"sharedLibs","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"stable"},"description":"Identity, Organizations, and RBAC module for ContractSpec applications","descriptionOrigin":"package.json","catalog":{"family":"sharedLibs","kind":"library","status":"active","adoptionMode":"adoptable","stability":"stable","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./contracts","./contracts/organization","./contracts/rbac","./contracts/user","./entities","./entities/organization","./entities/rbac","./entities/user","./events","./identity-rbac.capability","./identity-rbac.feature","./policies","./policies/engine"],"documentation":[{"title":"Lib Identity Rbac documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.identity-rbac","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.identity.rbac","title":"Lib Identity Rbac","description":"Identity, Organizations, and RBAC module for ContractSpec applications","status":"active","useCases":["Adopt identity, organizations, and rbac module for contractspec applications"],"aliases":["contractspec","identity","rbac","authorization","organizations","typescript","lib"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.identity-rbac","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/contracts","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/contracts/organization","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/contracts/rbac","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/contracts/user","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/entities","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/entities/organization","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/entities/rbac","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/entities/user","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/events","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/identity-rbac.capability","symbols":[]},{"from":"@lssm-tech/lib.identity-rbac/identity-rbac.feature","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.identity-rbac package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/contracts","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/contracts/organization","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/contracts/rbac","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/contracts/user","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/entities","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/entities/organization","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/entities/rbac","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/entities/user","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/events","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/identity-rbac.capability","symbols":[]},{"capabilityId":"package.lssm.tech.lib.identity.rbac","from":"@lssm-tech/lib.identity-rbac/identity-rbac.feature","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint":"bun lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit","test":"bun test"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.contracts-runtime-kernel":"workspace:^","@lssm-tech/lib.schema":"workspace:^","@lssm-tech/lib.contracts-spec-core":"workspace:^","zod":"catalog:"},"devDependencies":{"@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:","@lssm-tech/tool.bun":"workspace:*"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./contracts":"./src/contracts/index.ts","./contracts/organization":"./src/contracts/organization.ts","./contracts/rbac":"./src/contracts/rbac.ts","./contracts/user":"./src/contracts/user.ts","./entities":"./src/entities/index.ts","./entities/organization":"./src/entities/organization.ts","./entities/rbac":"./src/entities/rbac.ts","./entities/user":"./src/entities/user.ts","./events":"./src/events.ts","./identity-rbac.capability":"./src/identity-rbac.capability.ts","./identity-rbac.feature":"./src/identity-rbac.feature.ts","./policies":"./src/policies/index.ts","./policies/engine":"./src/policies/engine.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./contracts":{"types":"./dist/contracts/index.d.ts","browser":"./dist/browser/contracts/index.js","bun":"./dist/contracts/index.js","node":"./dist/node/contracts/index.js","default":"./dist/contracts/index.js"},"./contracts/organization":{"types":"./dist/contracts/organization.d.ts","browser":"./dist/browser/contracts/organization.js","bun":"./dist/contracts/organization.js","node":"./dist/node/contracts/organization.js","default":"./dist/contracts/organization.js"},"./contracts/rbac":{"types":"./dist/contracts/rbac.d.ts","browser":"./dist/browser/contracts/rbac.js","bun":"./dist/contracts/rbac.js","node":"./dist/node/contracts/rbac.js","default":"./dist/contracts/rbac.js"},"./contracts/user":{"types":"./dist/contracts/user.d.ts","browser":"./dist/browser/contracts/user.js","bun":"./dist/contracts/user.js","node":"./dist/node/contracts/user.js","default":"./dist/contracts/user.js"},"./entities":{"types":"./dist/entities/index.d.ts","browser":"./dist/browser/entities/index.js","bun":"./dist/entities/index.js","node":"./dist/node/entities/index.js","default":"./dist/entities/index.js"},"./entities/organization":{"types":"./dist/entities/organization.d.ts","browser":"./dist/browser/entities/organization.js","bun":"./dist/entities/organization.js","node":"./dist/node/entities/organization.js","default":"./dist/entities/organization.js"},"./entities/rbac":{"types":"./dist/entities/rbac.d.ts","browser":"./dist/browser/entities/rbac.js","bun":"./dist/entities/rbac.js","node":"./dist/node/entities/rbac.js","default":"./dist/entities/rbac.js"},"./entities/user":{"types":"./dist/entities/user.d.ts","browser":"./dist/browser/entities/user.js","bun":"./dist/entities/user.js","node":"./dist/node/entities/user.js","default":"./dist/entities/user.js"},"./events":{"types":"./dist/events.d.ts","browser":"./dist/browser/events.js","bun":"./dist/events.js","node":"./dist/node/events.js","default":"./dist/events.js"},"./identity-rbac.capability":{"types":"./dist/identity-rbac.capability.d.ts","browser":"./dist/browser/identity-rbac.capability.js","bun":"./dist/identity-rbac.capability.js","node":"./dist/node/identity-rbac.capability.js","default":"./dist/identity-rbac.capability.js"},"./identity-rbac.feature":{"types":"./dist/identity-rbac.feature.d.ts","browser":"./dist/browser/identity-rbac.feature.js","bun":"./dist/identity-rbac.feature.js","node":"./dist/node/identity-rbac.feature.js","default":"./dist/identity-rbac.feature.js"},"./policies":{"types":"./dist/policies/index.d.ts","browser":"./dist/browser/policies/index.js","bun":"./dist/policies/index.js","node":"./dist/node/policies/index.js","default":"./dist/policies/index.js"},"./policies/engine":{"types":"./dist/policies/engine.d.ts","browser":"./dist/browser/policies/engine.js","bun":"./dist/policies/engine.js","node":"./dist/node/policies/engine.js","default":"./dist/policies/engine.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/lib.identity-rbac","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/domains/identity/identity-rbac/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./contracts","importPath":"@lssm-tech/lib.identity-rbac/contracts","target":"./src/contracts/index.ts","targets":[{"conditions":[],"target":"./src/contracts/index.ts","sourcePath":"packages/domains/identity/identity-rbac/src/contracts/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/contracts/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./contracts/organization","importPath":"@lssm-tech/lib.identity-rbac/contracts/organization","target":"./src/contracts/organization.ts","targets":[{"conditions":[],"target":"./src/contracts/organization.ts","sourcePath":"packages/domains/identity/identity-rbac/src/contracts/organization.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/contracts/organization.ts","sourceStatus":"verified source file"}]},{"subpath":"./contracts/rbac","importPath":"@lssm-tech/lib.identity-rbac/contracts/rbac","target":"./src/contracts/rbac.ts","targets":[{"conditions":[],"target":"./src/contracts/rbac.ts","sourcePath":"packages/domains/identity/identity-rbac/src/contracts/rbac.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/contracts/rbac.ts","sourceStatus":"verified source file"}]},{"subpath":"./contracts/user","importPath":"@lssm-tech/lib.identity-rbac/contracts/user","target":"./src/contracts/user.ts","targets":[{"conditions":[],"target":"./src/contracts/user.ts","sourcePath":"packages/domains/identity/identity-rbac/src/contracts/user.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/contracts/user.ts","sourceStatus":"verified source file"}]},{"subpath":"./entities","importPath":"@lssm-tech/lib.identity-rbac/entities","target":"./src/entities/index.ts","targets":[{"conditions":[],"target":"./src/entities/index.ts","sourcePath":"packages/domains/identity/identity-rbac/src/entities/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/entities/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./entities/organization","importPath":"@lssm-tech/lib.identity-rbac/entities/organization","target":"./src/entities/organization.ts","targets":[{"conditions":[],"target":"./src/entities/organization.ts","sourcePath":"packages/domains/identity/identity-rbac/src/entities/organization.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/entities/organization.ts","sourceStatus":"verified source file"}]},{"subpath":"./entities/rbac","importPath":"@lssm-tech/lib.identity-rbac/entities/rbac","target":"./src/entities/rbac.ts","targets":[{"conditions":[],"target":"./src/entities/rbac.ts","sourcePath":"packages/domains/identity/identity-rbac/src/entities/rbac.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/entities/rbac.ts","sourceStatus":"verified source file"}]},{"subpath":"./entities/user","importPath":"@lssm-tech/lib.identity-rbac/entities/user","target":"./src/entities/user.ts","targets":[{"conditions":[],"target":"./src/entities/user.ts","sourcePath":"packages/domains/identity/identity-rbac/src/entities/user.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/entities/user.ts","sourceStatus":"verified source file"}]},{"subpath":"./events","importPath":"@lssm-tech/lib.identity-rbac/events","target":"./src/events.ts","targets":[{"conditions":[],"target":"./src/events.ts","sourcePath":"packages/domains/identity/identity-rbac/src/events.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/events.ts","sourceStatus":"verified source file"}]},{"subpath":"./identity-rbac.capability","importPath":"@lssm-tech/lib.identity-rbac/identity-rbac.capability","target":"./src/identity-rbac.capability.ts","targets":[{"conditions":[],"target":"./src/identity-rbac.capability.ts","sourcePath":"packages/domains/identity/identity-rbac/src/identity-rbac.capability.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/identity-rbac.capability.ts","sourceStatus":"verified source file"}]},{"subpath":"./identity-rbac.feature","importPath":"@lssm-tech/lib.identity-rbac/identity-rbac.feature","target":"./src/identity-rbac.feature.ts","targets":[{"conditions":[],"target":"./src/identity-rbac.feature.ts","sourcePath":"packages/domains/identity/identity-rbac/src/identity-rbac.feature.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/identity-rbac.feature.ts","sourceStatus":"verified source file"}]},{"subpath":"./policies","importPath":"@lssm-tech/lib.identity-rbac/policies","target":"./src/policies/index.ts","targets":[{"conditions":[],"target":"./src/policies/index.ts","sourcePath":"packages/domains/identity/identity-rbac/src/policies/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/policies/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./policies/engine","importPath":"@lssm-tech/lib.identity-rbac/policies/engine","target":"./src/policies/engine.ts","targets":[{"conditions":[],"target":"./src/policies/engine.ts","sourcePath":"packages/domains/identity/identity-rbac/src/policies/engine.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/src/policies/engine.ts","sourceStatus":"verified source file"}]}],"entryCount":14,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Identity Rbac documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.identity-rbac","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.identity-rbac.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.identity-rbac\n\nWebsite: https://contractspec.io\n\n**Identity, Organizations, and RBAC module for ContractSpec applications.**\n\n## What It Provides\n\n- **Layer**: lib.\n- **Consumers**: bundles, apps.\n- `src/contracts/` contains contract specs, operations, entities, and registry exports.\n- Related ContractSpec packages include `@lssm-tech/lib.contracts-spec`, `@lssm-tech/lib.schema`, `@lssm-tech/tool.bun`, `@lssm-tech/tool.typescript`.\n- `src/contracts/` contains contract specs, operations, entities, and registry exports.\n\n## Installation\n\n`npm install @lssm-tech/lib.identity-rbac`\n\nor\n\n`bun add @lssm-tech/lib.identity-rbac`\n\n## Usage\n\nImport the root entrypoint from `@lssm-tech/lib.identity-rbac`, or choose a documented subpath when you only need one part of the package surface.\n\nThe `RBACPolicyEngine` can evaluate shared ContractSpec `PolicyRequirement` objects against static role templates, dynamic role/binding sources, or a hybrid of both. Dynamic persistence is intentionally app-owned; the library consumes provider results and applies deterministic precedence (source unavailable fails closed, expired/out-of-scope bindings are ignored, explicit deny wins, dynamic grants extend static templates).\n`DatabaseRolePermissionSource` is the additive database-backed source helper: hosts load role bindings through their own provider/adapter, while this package applies the same deterministic deny precedence and fail-closed default without depending on Drizzle or PostgreSQL.\n\n```ts\nimport { RBACPolicyEngine, StaticRolePermissionSource } from \"@lssm-tech/lib.identity-rbac/policies\";\n\nconst source = new StaticRolePermissionSource({\n  roles: [\n    { key: \"billing.viewer\", permissions: [\"invoice.read\"], source: \"static\" },\n  ],\n});\n\nconst engine = new RBACPolicyEngine();\nconst decision = await engine.evaluateRequirement({\n  mode: \"static\",\n  requirements: { permissions: { any: [\"invoice.read\"] } },\n  subject: { id: \"user-1\", roles: [\"billing.viewer\"] },\n  source,\n});\n```\n\n## Architecture\n\n- `src/contracts/` contains contract specs, operations, entities, and registry exports.\n- `src/entities/` contains domain entities and value objects.\n- `src/events.ts` is package-level event definitions.\n- `src/identity-rbac.capability.ts` defines a capability surface.\n- `src/identity-rbac.feature.ts` defines a feature entrypoint.\n- `src/index.ts` is the root public barrel and package entrypoint.\n- `src/policies` is part of the package's public or composition surface.\n\n## Public Entry Points\n\n- Export `.` resolves through `./src/index.ts`.\n- Export `./contracts` resolves through `./src/contracts/index.ts`.\n- Export `./contracts/organization` resolves through `./src/contracts/organization.ts`.\n- Export `./contracts/rbac` resolves through `./src/contracts/rbac.ts`.\n- Export `./contracts/user` resolves through `./src/contracts/user.ts`.\n- Export `./entities` resolves through `./src/entities/index.ts`.\n- Export `./entities/organization` resolves through `./src/entities/organization.ts`.\n- Export `./entities/rbac` resolves through `./src/entities/rbac.ts`.\n- Export `./entities/user` resolves through `./src/entities/user.ts`.\n- Export `./events` resolves through `./src/events.ts`.\n- The package publishes 14 total export subpaths; keep docs aligned with `package.json`.\n\n## Local Commands\n\n- `bun run dev` — contractspec-bun-build dev\n- `bun run build` — contractspec-bun-build build\n- `bun run lint` — bun lint:fix\n- `bun run lint:check` — biome check .\n- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .\n- `bun run typecheck` — tsgo --noEmit\n- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose\n- `bun run publish:pkg:canary` — bun publish:pkg --tag canary\n- `bun run clean` — rimraf dist .turbo\n- `bun run build:bundle` — contractspec-bun-build transpile\n- `bun run build:types` — contractspec-bun-build types\n- `bun run prebuild` — contractspec-bun-build prebuild\n\n## Recent Updates\n\n- Replace eslint+prettier by biomejs to optimize speed.\n\n## Notes\n\n- **Security-critical** — RBAC policies control access across the platform.\n- Role and permission schemas must stay backward-compatible; removals are breaking.\n- Capability contract is public API; policy evaluation must be deterministic.\n\nFleet permission keys include `agent.fleet.read` and `agent.fleet.manage` for\nconfiguration and review-candidate management. Existing full-permission owner roles\nreceive these keys through their canonical all-permissions policy; narrower standard\nrole lists are unchanged. This catalog does not add `agent.fleet.deploy` or Runtime\nNode effect authority. Hosts must resolve grants from authenticated current state.\n","sourcePath":"packages/domains/identity/identity-rbac/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/identity/identity-rbac/README.md","blobSha":"49af769c6985f1b631cc291dce3db0bb15cbed9d","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"identity-and-access","areaTitle":"Identity, access and subject context","displayName":"lib.identity-rbac","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.identity-rbac/","contextUrl":"/docs/packages/lib.identity-rbac.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}