extension-authorization
Agent skill from caffeinelabs/skills.
What it does
- Anonymous principals are treated as guests.
- assignRole includes an admin-only guard internally.
- Use shared({ caller }) for authenticated endpoints that modify data.
- Use query({ caller }) for authenticated endpoints that fetch data.
- Handle ownership verification where needed.
- Use Runtime.trap for authorization failures.
- getCallerUserProfile(): Promise<UserProfile | null> -- returns null if no profile exists
Requirements & configuration
- Initialization is handled internally by MixinAuthorization -- do not call initialize directly. The first authenticated user to log in automatically becomes admin; no token or secret is required.
- The frontend requires getCallerUserProfile, saveCallerUserProfile, and getUserProfile. Pass accessControlState to your mixin so it can check permissions.
- Note: The initialization of the first admin is done automatically in @caffeineai/core-infrastructure. The first authenticated user to log in becomes admin; no token or secret is needed.
Derived from the skill's own SKILL.md documentation · extracted 2026-07-23
Source
Repository: https://github.com/caffeinelabs/skills
extension-authorization FAQ
What does the extension-authorization skill do?
Authorization system with role-based access control. Must-have for all apps that manage personal or access-restricted data. Anonymous principals are treated as guests. assignRole includes an admin-only guard internally.
What does extension-authorization require?
Initialization is handled internally by MixinAuthorization -- do not call initialize directly. The first authenticated user to log in automatically becomes admin; no token or secret is required. The frontend requires getCallerUserProfile, saveCallerUserProfile, and getUserProfile. Pass accessControlState to your mixin so it can check permissions. Note: The initialization of the first admin is done automatically in @caffeineai/core-infrastructure. The first authenticated user to log in becomes admin; no token or secret is needed.
How do I install extension-authorization?
Run: npx -y skills add https://github.com/caffeinelabs/skills --skill extension-authorization --agent claude-code — the source lives at github.com/caffeinelabs/skills.
Maintain extension-authorization?
Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.
[](https://getagentictools.com/skills/caffeinelabs-skills-extension-authorization?ref=badge) npx agentictools info skills/caffeinelabs-skills-extension-authorization The second line is the CLI lookup for this page — handy in READMEs and docs.