tessl install github:jeremylongshore/claude-code-plugins-plus-skills --skill fireflies-enterprise-rbacConfigure Fireflies.ai enterprise SSO, role-based access control, and organization management. Use when implementing SSO integration, configuring role-based permissions, or setting up organization-level controls for Fireflies.ai. Trigger with phrases like "fireflies SSO", "fireflies RBAC", "fireflies enterprise", "fireflies roles", "fireflies permissions", "fireflies SAML".
Review Score
68%
Validation Score
12/16
Implementation Score
38%
Activation Score
100%
Configure enterprise-grade access control for Fireflies.ai integrations.
| Role | Permissions | Use Case |
|---|---|---|
| Admin | Full access | Platform administrators |
| Developer | Read/write, no delete | Active development |
| Viewer | Read-only | Stakeholders, auditors |
| Service | API access only | Automated systems |
enum Fireflies.aiRole {
Admin = 'admin',
Developer = 'developer',
Viewer = 'viewer',
Service = 'service',
}
interface Fireflies.aiPermissions {
read: boolean;
write: boolean;
delete: boolean;
admin: boolean;
}
const ROLE_PERMISSIONS: Record<Fireflies.aiRole, Fireflies.aiPermissions> = {
admin: { read: true, write: true, delete: true, admin: true },
developer: { read: true, write: true, delete: false, admin: false },
viewer: { read: true, write: false, delete: false, admin: false },
service: { read: true, write: true, delete: false, admin: false },
};
function checkPermission(
role: Fireflies.aiRole,
action: keyof Fireflies.aiPermissions
): boolean {
return ROLE_PERMISSIONS[role][action];
}// Fireflies.ai SAML setup
const samlConfig = {
entryPoint: 'https://idp.company.com/saml/sso',
issuer: 'https://fireflies.com/saml/metadata',
cert: process.env.SAML_CERT,
callbackUrl: 'https://app.yourcompany.com/auth/fireflies/callback',
};
// Map IdP groups to Fireflies.ai roles
const groupRoleMapping: Record<string, Fireflies.aiRole> = {
'Engineering': Fireflies.aiRole.Developer,
'Platform-Admins': Fireflies.aiRole.Admin,
'Data-Team': Fireflies.aiRole.Viewer,
};import { OAuth2Client } from '@fireflies/sdk';
const oauthClient = new OAuth2Client({
clientId: process.env.FIREFLIES_OAUTH_CLIENT_ID!,
clientSecret: process.env.FIREFLIES_OAUTH_CLIENT_SECRET!,
redirectUri: 'https://app.yourcompany.com/auth/fireflies/callback',
scopes: ['read', 'write'],
});interface Fireflies.aiOrganization {
id: string;
name: string;
ssoEnabled: boolean;
enforceSso: boolean;
allowedDomains: string[];
defaultRole: Fireflies.aiRole;
}
async function createOrganization(
config: Fireflies.aiOrganization
): Promise<void> {
await firefliesClient.organizations.create({
...config,
settings: {
sso: {
enabled: config.ssoEnabled,
enforced: config.enforceSso,
domains: config.allowedDomains,
},
},
});
}function requireFireflies.aiPermission(
requiredPermission: keyof Fireflies.aiPermissions
) {
return async (req: Request, res: Response, next: NextFunction) => {
const user = req.user as { firefliesRole: Fireflies.aiRole };
if (!checkPermission(user.firefliesRole, requiredPermission)) {
return res.status(403).json({
error: 'Forbidden',
message: `Missing permission: ${requiredPermission}`,
});
}
next();
};
}
// Usage
app.delete('/fireflies/resource/:id',
requireFireflies.aiPermission('delete'),
deleteResourceHandler
);interface Fireflies.aiAuditEntry {
timestamp: Date;
userId: string;
role: Fireflies.aiRole;
action: string;
resource: string;
success: boolean;
ipAddress: string;
}
async function logFireflies.aiAccess(entry: Fireflies.aiAuditEntry): Promise<void> {
await auditDb.insert(entry);
// Alert on suspicious activity
if (entry.action === 'delete' && !entry.success) {
await alertOnSuspiciousActivity(entry);
}
}Map organizational roles to Fireflies.ai permissions.
Set up SAML or OIDC integration with your IdP.
Add permission checks to API endpoints.
Track all access for compliance.
| Issue | Cause | Solution |
|---|---|---|
| SSO login fails | Wrong callback URL | Verify IdP config |
| Permission denied | Missing role mapping | Update group mappings |
| Token expired | Short TTL | Refresh token logic |
| Audit gaps | Async logging failed | Check log pipeline |
if (!checkPermission(user.role, 'write')) {
throw new ForbiddenError('Write permission required');
}For major migrations, see fireflies-migration-deep-dive.