Overview
Framework-neutral contracts and policy for a standard AbsoluteJS project administration portal.
@absolutejs/adminv0.2.0betaPlatform & InfraFramework-neutral roles, capabilities, navigation, and security read models for AbsoluteJS project administration.
bun add @absolutejs/adminRun the framework-neutral policy locally. The exported authorizeSiteAdmin identifier is aliased to the current Admin terminology until the compatibility API can be retired.
import {
authorizeSiteAdmin as authorizeAdmin,
capabilitiesForRole,
navigationForCapabilities
} from '@absolutejs/admin';
const capabilities = capabilitiesForRole('developer');
authorizeAdmin('developer', 'site.deploy');
console.log(navigationForCapabilities(capabilities));Framework-neutral contracts and policy for a standard AbsoluteJS project administration portal.
The package defines:
project roles and their exact capabilities;
fail-closed authorization helpers;
capability-filtered portal navigation;
public, project-scoped security snapshot contracts;
deterministic security posture summaries.
It deliberately does not provide authentication, persistence, or a platform-wide operator console. A host application supplies those adapters and enforces authorization before querying project data.
Role — Intended access
owner — Every project operation, including team management and deletion
administrator — Every project operation except deletion
security — Read posture, acknowledge incidents, and manage remediation
developer — Deploy, configure, inspect data, and read security posture
viewer — Read-only overview, data posture, and security posture
The package and product surface are named Admin. The exported SiteAdmin and authorizeSiteAdmin identifiers are compatibility APIs from the earlier package name; new navigation, prose, and integrations should use Admin terminology.
Authorization must be enforced on the server. Navigation filtering is a presentation aid, not a security boundary.
Authorization belongs on the server. The UI may hide unavailable actions, but every mutation must enforce the same capability contract again.
| Option | Viewer | Operator | Administrator |
|---|---|---|---|
| View operational state | Yes | Yes | Yes |
| Run bounded operations | No | Yes | Yes |
| Change access policy | No | No | Yes |
Outcomes
Framework-neutral contracts and policy for a standard AbsoluteJS project administration portal.
Role — Intended access
Hardening checklist
Follow in order
Role — Intended access
import {
authorizeSiteAdmin,
capabilitiesForRole,
navigationForCapabilities,
} from "@absolutejs/admin";
authorizeSiteAdmin("security", "site.security.respond");
const navigation = navigationForCapabilities(capabilitiesForRole("developer"));Supported entry points declared by this project’s package manifest. Internal dist paths are not part of the package contract.
Public package entry point declared in package.json.
Scripts declared by this project’s package manifest.
Search the declarations exported by the current package type files. Expand a symbol to inspect its source-backed signature.
const SITE_ADMIN_ROLES: readonly ["owner", "administrator", "security", "developer", "viewer"];@absolutejs/adminThese playbooks show where this package fits, how to verify the combined system, and what changes before production.