| name | gamma-enterprise-rbac |
| description | Implement enterprise role-based access control for Gamma integrations.
Use when configuring team permissions, multi-tenant access,
or enterprise authorization patterns.
Trigger with phrases like "gamma RBAC", "gamma permissions",
"gamma access control", "gamma enterprise", "gamma roles".
|
| allowed-tools | Read, Write, Edit |
| version | 1.13.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","gamma","authentication","rbac"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Gamma Enterprise RBAC
Overview
Implement role-based access control for Gamma API integrations. Gamma's API uses a single API key per workspace -- granular permissions must be implemented in your application layer. The Teams and Business plans support workspace-level collaboration with shared themes and folders.
Prerequisites
- Gamma Teams or Business subscription
- Application database for user/role storage
- Completed
gamma-install-auth setup
Gamma Access Model
Gamma Workspace (1 API key)
โโโ Themes (shared across workspace)
โโโ Folders (shared across workspace)
โโโ Generations (tied to API key, not individual users)
Your Application Layer (you implement this):
โโโ Organization
โ โโโ Admin (manage API key, configure themes)
โ โโโ Editor (generate presentations, use templates)
โ โโโ Viewer (view generated presentations, download exports)
โ โโโ Guest (no generation access)
Key point: Gamma's API does not have per-user authentication. All API calls use the workspace API key. You must enforce per-user permissions in your application.
Instructions
Step 1: Define Role Hierarchy
type GammaRole = "guest" | "viewer" | "editor" | "admin";
const PERMISSIONS: Record<GammaRole, string[]> = {
guest: [],
viewer: ["generation:view", "export:download"],
editor: ["generation:view", "generation:create", "export:download", "template:use"],
admin: [
"generation:view", "generation:create", "export:download",
"template:use", "template:manage", "theme:manage",
, ,
],
};
(): {
[role]?.(permission) ?? ;
}