{"_id":"@braedonsaunders/appkit-superadmin","_rev":"3-f700b880118af5fad652e33ec41ff7c4","name":"@braedonsaunders/appkit-superadmin","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.0":{"name":"@braedonsaunders/appkit-superadmin","version":"1.0.0","keywords":["administration","appkit","application-framework","identity","sessions","superadmin","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-superadmin@1.0.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/superadmin#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"22ca1e8fe17ad5a85b983ca8daa746bea7fc3fe3","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-superadmin/-/appkit-superadmin-1.0.0.tgz","fileCount":27,"integrity":"sha512-cq2xjjJVIcWkCgag82HBz6gbwcHhIAKdd+R719Rx9eW4SkMBzXU5u/EFA5O1rgqBBLzcVz1bxHfw/B/tZYhS2Q==","signatures":[{"sig":"MEUCIGX+bMTwNrOqobaNTU1D7tmi5KbF/0daEJLmC3tBEXHDAiEAkEnigQYgNgeTslkQj9r2Sl+Hf3/sb9ZjrU2ZzWtXtJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-superadmin@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":306328},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-superadmin-1.0.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./memory":{"types":"./memory.d.ts","import":"./memory.js","default":"./memory.js"},"./drizzle":{"types":"./drizzle.d.ts","import":"./drizzle.js","default":"./drizzle.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/e619f343b55da957330567e1b926e286/braedonsaunders-appkit-superadmin-1.0.0.tgz","_integrity":"sha512-cq2xjjJVIcWkCgag82HBz6gbwcHhIAKdd+R719Rx9eW4SkMBzXU5u/EFA5O1rgqBBLzcVz1bxHfw/B/tZYhS2Q==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/superadmin"},"_npmVersion":"10.9.8","description":"Instance-operator administration over the platform identity: manage the users who can sign in, their credentials, and active sessions, with guard rails and production React components.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","drizzle-orm":"^0.45.2","lucide-react":"^1.24.0","@braedonsaunders/appkit-db":"^0.2.0","@braedonsaunders/appkit-ui":"^0.2.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"lucide-react":{"optional":true},"@braedonsaunders/appkit-db":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-superadmin_1.0.0_1787095287260_0.13100496594766842","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@braedonsaunders/appkit-superadmin","version":"2.0.0","keywords":["administration","appkit","application-framework","identity","sessions","superadmin","typescript"],"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","_id":"@braedonsaunders/appkit-superadmin@2.0.0","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/superadmin#readme","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"88761a0855f92f48d9d1e30e8c907ac97495d5e7","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-superadmin/-/appkit-superadmin-2.0.0.tgz","fileCount":27,"integrity":"sha512-S6WPfUHVg/I9dymDiUzUdyFWC75qzm4KyQ6GhgzEmY8c49slPgylf9gHuP6naTwXNQLGxQFM12xOM99L7V5exw==","signatures":[{"sig":"MEYCIQCcv/qRWBPwz97udadqBLA9Nt1vOAWhVoXyAYm66yO9ggIhANMGwfKL7YVLB3rxdaH7WS6gpAuaGAB+aBweD6sA6OBz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClOmMFoexUuwKiZPPjeDej00/TvVjZiPqeqU9BxHMebwIhAKRsZztJbZE3avQ7QBKi1nR1Ry+h6oxHk/oJ1Ylkx1Gy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-superadmin@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":306328},"main":"./index.js","type":"module","_from":"file:braedonsaunders-appkit-superadmin-2.0.0.tgz","types":"./index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./memory":{"types":"./memory.d.ts","import":"./memory.js","default":"./memory.js"},"./drizzle":{"types":"./drizzle.d.ts","import":"./drizzle.js","default":"./drizzle.js"},"./package.json":"./package.json"},"_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"_resolved":"/tmp/df6f424c4773d9f830028b7c653f4f58/braedonsaunders-appkit-superadmin-2.0.0.tgz","_integrity":"sha512-S6WPfUHVg/I9dymDiUzUdyFWC75qzm4KyQ6GhgzEmY8c49slPgylf9gHuP6naTwXNQLGxQFM12xOM99L7V5exw==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/superadmin"},"_npmVersion":"10.9.8","description":"Instance-operator administration over the platform identity: manage the users who can sign in, their credentials, and active sessions, with guard rails and production React components.","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","drizzle-orm":"^0.45.2","lucide-react":"^1.24.0","@braedonsaunders/appkit-db":"^0.2.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"lucide-react":{"optional":true},"@braedonsaunders/appkit-db":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/appkit-superadmin_2.0.0_1789182668895_0.5939832756330408","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"_id":"@braedonsaunders/appkit-superadmin@2.1.0","bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"dist":{"shasum":"e3e523f4583364adeb03e9c971923b7e02fdf8c7","tarball":"https://registry.npmjs.org/@braedonsaunders/appkit-superadmin/-/appkit-superadmin-2.1.0.tgz","fileCount":35,"integrity":"sha512-327G+dYtYpkv7Kyi418V45+GOxehy17n0EjmkURpfawIovTExVHVb3YNgr+IBVt/q1k0jqLpCJXG1SjuyFmq5g==","signatures":[{"sig":"MEQCIHOHrQaA7Yq4RmOvsyKFYhW3GTaBToPr1ie5aTIS9HOrAiA48FdWMtwS2FlPFFJL23DqJCPlcUWsoh7LT3Q/hUXBTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDTNJ52XvojtvpCmG6qkNhoHFajqD+X/S8mLBO+uv5geAiAKuQey/bBQYl5Io/LTESU85MnwGSC3CukWWFkSxaSFaw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@braedonsaunders%2fappkit-superadmin@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":435069},"main":"./index.js","name":"@braedonsaunders/appkit-superadmin","type":"module","_from":"file:braedonsaunders-appkit-superadmin-2.1.0.tgz","types":"./index.d.ts","author":{"name":"Braedon Saunders"},"engines":{"node":">=22"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./react":{"types":"./react.d.ts","import":"./react.js","default":"./react.js"},"./memory":{"types":"./memory.d.ts","import":"./memory.js","default":"./memory.js"},"./drizzle":{"types":"./drizzle.d.ts","import":"./drizzle.js","default":"./drizzle.js"},"./package.json":"./package.json"},"license":"AGPL-3.0-or-later","version":"2.1.0","_npmUser":{"name":"braedonsaunders","email":"bsaunders@rassaun.com"},"homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/superadmin#readme","keywords":["administration","appkit","application-framework","identity","sessions","superadmin","typescript"],"_resolved":"/tmp/6b6ea9a4f36eb47a8d34e1805a38ee87/braedonsaunders-appkit-superadmin-2.1.0.tgz","_integrity":"sha512-327G+dYtYpkv7Kyi418V45+GOxehy17n0EjmkURpfawIovTExVHVb3YNgr+IBVt/q1k0jqLpCJXG1SjuyFmq5g==","repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/superadmin"},"_npmVersion":"10.9.8","description":"Instance-operator console: platform nav, hub, identity, tenants, provider settings, delivery logs, and database maintenance, with guard rails and production React components.","directories":{},"maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","drizzle-orm":"^0.45.2","lucide-react":"^1.24.0","@braedonsaunders/appkit-db":"^0.2.0","@braedonsaunders/appkit-ui":"^0.3.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true},"drizzle-orm":{"optional":true},"lucide-react":{"optional":true},"@braedonsaunders/appkit-db":{"optional":true},"@braedonsaunders/appkit-ui":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appkit-superadmin_2.1.0_1789617131657_0.883909448369687"}}},"time":{"created":"2026-08-18T23:21:27.059Z","modified":"2026-09-17T03:52:12.084Z","1.0.0":"2026-08-18T23:21:27.408Z","2.0.0":"2026-09-12T03:11:09.018Z","2.1.0":"2026-09-17T03:52:11.745Z"},"bugs":{"url":"https://github.com/braedonsaunders/appkit/issues"},"author":{"name":"Braedon Saunders"},"license":"AGPL-3.0-or-later","homepage":"https://github.com/braedonsaunders/appkit/tree/main/packages/superadmin#readme","keywords":["administration","appkit","application-framework","identity","sessions","superadmin","typescript"],"repository":{"url":"git+https://github.com/braedonsaunders/appkit.git","type":"git","directory":"packages/superadmin"},"description":"Instance-operator console: platform nav, hub, identity, tenants, provider settings, delivery logs, and database maintenance, with guard rails and production React components.","maintainers":[{"name":"braedonsaunders","email":"bsaunders@rassaun.com"}],"readme":"# @braedonsaunders/appkit-superadmin\n\nInstallation-operator console for platform administrators. This package is\nseparate from tenant IAM: it owns the `/platform` workspace — the sidebar\ncatalog, overview hub, workspace switcher, identity and tenant administration,\nprovider settings, delivery logs, and database maintenance — so every app\nrenders the same operator UI.\n\nThe root exports the guarded identity/tenant service and the nav catalog.\nOptional subpaths provide memory and Drizzle persistence plus the production\nReact surfaces.\n\n```ts\nimport { createPlatformNav, selectPlatformNav } from '@braedonsaunders/appkit-superadmin'\nimport {\n  PlatformHub,\n  PlatformMenu,\n  PlatformUsersAdmin,\n  PlatformTenantsAdmin,\n} from '@braedonsaunders/appkit-superadmin/react'\n\nconst nav = createPlatformNav({\n  modules: ['overview', 'tenants', 'users', 'email', 'emailLog'],\n  extras: [{ id: 'access', href: '/platform/access', label: 'Access', description: 'Grants', iconKey: 'key' }],\n})\n\nconst groups = selectPlatformNav(pathname, tenantGroups, nav.groups)\n```\n\n```ts\nimport { createSuperadminService } from '@braedonsaunders/appkit-superadmin'\nimport { createMemorySuperadminPersistence } from '@braedonsaunders/appkit-superadmin/memory'\n\nconst persistence = createMemorySuperadminPersistence()\nconst service = createSuperadminService({\n  persistence,\n  hashPassword: async (password) => applicationPasswordHasher(password),\n  actor: { userId: operatorId, sessionId: currentSessionId },\n})\n```\n\nApplications own authentication middleware, operator authorization, password\nhashing, routing, persistence adapters, and revalidation. The package owns the\noperator chrome, validation, last-active-super-admin protection, current-session\nreporting, list mechanics, and the reusable screens.\n\nOmit a module when the host has no backend for it. Extra nav items stay\napplication-specific (for example acting-user grants).\n","readmeFilename":"README.md"}