{"_id":"@absolutejs/admin","name":"@absolutejs/admin","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@absolutejs/admin","version":"0.2.0","description":"Framework-neutral roles, capabilities, navigation, and security read models for AbsoluteJS site administration.","type":"module","license":"BSL-1.1","author":{"name":"Alex Kahn"},"repository":{"type":"git","url":"git+https://github.com/absolutejs/admin.git"},"homepage":"https://github.com/absolutejs/admin","bugs":{"url":"https://github.com/absolutejs/admin/issues"},"publishConfig":{"access":"public"},"main":"./dist/index.js","types":"./dist/index.d.ts","absolutejs":{"manifestContract":2},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./manifest":{"types":"./dist/manifest.d.ts","import":"./dist/manifest.js"},"./manifest.json":"./dist/manifest.json"},"scripts":{"format":"prettier --write \"./**/*.{ts,json,md}\"","typecheck":"tsc --noEmit","test":"bun test","build":"rm -rf dist && bun build src/index.ts src/manifest.ts --outdir dist --target=bun --external @absolutejs/manifest --external @sinclair/typebox && tsc -p tsconfig.build.json && absolute-manifest emit","check:package":"bun run format && bun run typecheck && bun run test && bun run build"},"keywords":["absolutejs","admin","rbac","security","site-management"],"dependencies":{"@absolutejs/manifest":"0.3.0","@sinclair/typebox":"0.34.52"},"devDependencies":{"@types/bun":"1.3.14","prettier":"3.8.1","typescript":"5.9.3"},"_id":"@absolutejs/admin@0.2.0","gitHead":"e0fdbb733052506a3fedd9173537eef8b7b806cc","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-k+ZenyFWO0uSY0qHzylOlD0zk4Aixf+xJ8YHkonl4NU9umGRF3bl+VvAuy+m45HJBGSljT/vNkES+jIb5PL0FA==","shasum":"1bf1bbc6edda068afd0476f6fa6c1afa6e4e63bd","tarball":"https://registry.npmjs.org/@absolutejs/admin/-/admin-0.2.0.tgz","fileCount":12,"unpackedSize":27992,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCmmUGfjij/r1FB/YyxzKt3yK/9bvT7o4lVAFzHnpbR8QIgNiFh1I/PUi6tVZLqnabJdVOQohf6f6zb3G8ag2JOmBU="}]},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"directories":{},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/admin_0.2.0_1785620250967_0.38564342575787336"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-01T21:37:30.768Z","0.2.0":"2026-08-01T21:37:31.113Z","modified":"2026-08-01T21:37:31.332Z"},"maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"description":"Framework-neutral roles, capabilities, navigation, and security read models for AbsoluteJS site administration.","homepage":"https://github.com/absolutejs/admin","keywords":["absolutejs","admin","rbac","security","site-management"],"repository":{"type":"git","url":"git+https://github.com/absolutejs/admin.git"},"author":{"name":"Alex Kahn"},"bugs":{"url":"https://github.com/absolutejs/admin/issues"},"license":"BSL-1.1","readme":"# @absolutejs/admin\n\nFramework-neutral contracts and policy for a standard AbsoluteJS site administration portal.\n\nThe package defines:\n\n- project roles and their exact capabilities;\n- fail-closed authorization helpers;\n- capability-filtered portal navigation;\n- public, project-scoped security snapshot contracts;\n- deterministic security posture summaries.\n\nIt deliberately does not provide authentication, persistence, or a platform-wide operator console. A host such as AbsoluteJS PAAS supplies those adapters and enforces authorization before querying project data.\n\n## Roles\n\n| Role            | Intended access                                                 |\n| --------------- | --------------------------------------------------------------- |\n| `owner`         | Every project operation, including team management and deletion |\n| `administrator` | Every project operation except deletion                         |\n| `security`      | Read posture, acknowledge incidents, and manage remediation     |\n| `developer`     | Deploy, configure, inspect data, and read security posture      |\n| `viewer`        | Read-only overview, data posture, and security posture          |\n\n```ts\nimport {\n  authorizeSiteAdmin,\n  capabilitiesForRole,\n  navigationForCapabilities,\n} from \"@absolutejs/admin\";\n\nauthorizeSiteAdmin(\"security\", \"site.security.respond\");\n\nconst navigation = navigationForCapabilities(capabilitiesForRole(\"developer\"));\n```\n\nAuthorization must be enforced on the server. Navigation filtering is a presentation aid, not a security boundary.\n\n## License\n\nBusiness Source License 1.1. See [LICENSE](./LICENSE).\n","readmeFilename":"README.md","_rev":"1-2dfe2f7045d36f72c03c8683bbb75985"}