{"_id":"@absolutejs/site-admin","_rev":"3-7e28d3d92f638a2e491ad5acde60ef84","name":"@absolutejs/site-admin","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@absolutejs/site-admin","version":"0.1.0","keywords":["absolutejs","admin","rbac","security","site-management"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/site-admin@0.1.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/site-admin","bugs":{"url":"https://github.com/absolutejs/site-admin/issues"},"dist":{"shasum":"2ed06865791625f8f4a61e06cce985e28f753c23","tarball":"https://registry.npmjs.org/@absolutejs/site-admin/-/site-admin-0.1.0.tgz","fileCount":12,"integrity":"sha512-rUEUr7/SXoa0aAxUqbLa0c0xpDZfDGC6zlze1v07ZKpk2KtTyKtnPn+okdvQW71nNVUun+zRmXxwtSqth64TNw==","signatures":[{"sig":"MEUCIFe47J9BNEakBikIsXuLaDsRn1afQx78gXLHODSoxqfjAiEAgkgjifAOFXrAt5jhHwPsaBVjOEt6zzXL1im43ylojUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23478},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","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"},"gitHead":"ecf8ddb3695e71503cde306af18a2435565a39b5","scripts":{"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","format":"prettier --write \"./**/*.{ts,json,md}\"","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/site-admin.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-neutral roles, capabilities, navigation, and security read models for AbsoluteJS site administration.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"0.34.52","@absolutejs/manifest":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/site-admin_0.1.0_1784495359525_0.6635252613232314","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @absolutejs/admin. Please migrate to @absolutejs/admin."},"0.2.0":{"name":"@absolutejs/site-admin","version":"0.2.0","keywords":["absolutejs","admin","rbac","security","site-management"],"author":{"name":"Alex Kahn"},"license":"BSL-1.1","_id":"@absolutejs/site-admin@0.2.0","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"homepage":"https://github.com/absolutejs/site-admin","bugs":{"url":"https://github.com/absolutejs/site-admin/issues"},"dist":{"shasum":"d06bfc9091086e20c562854b6a989df627c3c1c9","tarball":"https://registry.npmjs.org/@absolutejs/site-admin/-/site-admin-0.2.0.tgz","fileCount":12,"integrity":"sha512-6qIDCQUzqGGLaOfgdoxV9DC162jKwL19UvM2rSjzZkm0z1O/Rop2bhKoZWdMnPaQYeQOSdAPVYnZdLqy6pH0mw==","signatures":[{"sig":"MEUCIDSf6BkQE0Cka5TTSuOT7XV0sNljGcB4Fm52Y9ucJAWNAiEA5ECwJn6Zq+z9rMV/f0MeMKM6v8cjCa14oL5wbstwfXg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28067},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","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"},"gitHead":"d3ec4a347d229a7e139a2b8611319918817a38a6","scripts":{"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","format":"prettier --write \"./**/*.{ts,json,md}\"","typecheck":"tsc --noEmit","check:package":"bun run format && bun run typecheck && bun run test && bun run build"},"_npmUser":{"name":"alexkahndev","email":"alexkahn2019@gmail.com"},"absolutejs":{"manifestContract":2},"repository":{"url":"git+https://github.com/absolutejs/site-admin.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework-neutral roles, capabilities, navigation, and security read models for AbsoluteJS site administration.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@sinclair/typebox":"0.34.52","@absolutejs/manifest":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.8.1","@types/bun":"1.3.14","typescript":"5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/site-admin_0.2.0_1784496447530_0.15588936688848531","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @absolutejs/admin. Please migrate to @absolutejs/admin."}},"time":{"created":"2026-07-19T21:09:19.394Z","modified":"2026-08-01T21:37:47.200Z","0.1.0":"2026-07-19T21:09:19.666Z","0.2.0":"2026-07-19T21:27:27.660Z"},"bugs":{"url":"https://github.com/absolutejs/site-admin/issues"},"author":{"name":"Alex Kahn"},"license":"BSL-1.1","homepage":"https://github.com/absolutejs/site-admin","keywords":["absolutejs","admin","rbac","security","site-management"],"repository":{"url":"git+https://github.com/absolutejs/site-admin.git","type":"git"},"description":"Framework-neutral roles, capabilities, navigation, and security read models for AbsoluteJS site administration.","maintainers":[{"name":"alexkahndev","email":"alexkahn2019@gmail.com"}],"readme":"# @absolutejs/site-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/site-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"}