webhanger-admin
v1.1.2
Published
Admin SDK for WebHanger — manage components, access keys, and metrics programmatically
Readme
webhanger-admin
Admin SDK for WebHanger. Manage components, access keys, and generate manifests programmatically. Includes a local web dashboard.
Install
npm install webhanger-adminDashboard (CLI)
npx wh-admin ./webhanger.config.json 5000Open http://localhost:5000
Features:
- View all deployed components from Firestore
- Copy tokens, delete components, rotate tokens
- Manage access keys (grant/revoke roles)
- Live metrics and feature detection
- Activity log
Programmatic API
import { WebHangerAdmin } from "webhanger-admin";
const admin = new WebHangerAdmin("./webhanger.config.json");List all components
const components = await admin.listComponents();
// [{ name, version, cdnUrl, token, expires, dependencies }, ...]Get a specific component
const comp = await admin.getComponent("navbar", "1.0.0");Delete a component
await admin.deleteComponent("navbar", "1.0.0");
// Removes from S3 + FirestoreRotate token (resign)
const result = await admin.resignComponent("navbar", "1.0.0", 86400);
// { name, version, token, expires, cdnUrl }Generate wh-manifest.json
const manifest = await admin.generateManifest();
await admin.saveManifest("./public/wh-manifest.json");Access control
// Grant a deployer key
const { apiKey } = await admin.grantAccess("deployer", "GitHub Actions");
console.log(apiKey); // wh_key_abc123...
// List all keys
const keys = await admin.listAccess();
// Revoke
await admin.revokeAccess("wh_key_abc123...");
// Check permission before action
await admin.checkPermission(apiKey, "deploy"); // throws if unauthorizedProject info
const info = admin.getProjectInfo();
// { project, projectId, storage, db, cdn }Role Matrix
| Role | deploy | read | delete | manage_access | |---|---|---|---|---| | owner | ✅ | ✅ | ✅ | ✅ | | admin | ✅ | ✅ | ✅ | ✅ | | deployer | ✅ | ✅ | ❌ | ❌ | | viewer | ❌ | ✅ | ❌ | ❌ |
