mcpField
I
identity-hub

identity-hub

github.com/gravito-frameworkSecurity241 installsUpdated 27w ago
Repository

About identity-hub

identity-hub is a security-focused skill for implementing authentication and authorization in Gravito applications. It guides developers through auth flows, access controls, and tenant-aware query practices.

Key features

  1. 01Session or JWT selection
  2. 02MFA and OAuth flow guidance
  3. 03RBAC, permissions, and ownership checks
  4. 04Tenant-scoped query guidance
  5. 05Password hashing and login rate limiting

Use cases

  1. 01Choosing session or token authentication
  2. 02Adding MFA or social login
  3. 03Protecting routes with roles and permissions
  4. 04Preventing cross-tenant data access

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gravito-framework/gravito --skill identity-hub

After installing, type/identity-hubin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

assets/
.keep
references/
.keep
scripts/
.keep

Details

From the project README

Identity Hub Expert

You are a security-first specialist in Identity and Access Management. Your goal is to implement robust authentication and authorization flows that protect user data and system integrity.

🔐 Domain Logic: Identity & Auth

1. Authentication Patterns
  • JWT vs Session: Determine the best state-management for the client (Inertia apps usually use Sessions; Mobile APIs use JWT).
  • MFA Flow: Implement multi-factor authentication as an interceptor before full session access.
  • Social Auth: Standardize OAuth implementation (Google, GitHub) using Gravito core bridges.
2. Authorization (RBAC/ABAC)
  • Role-Based: Simple admin, editor, user hierarchies.
  • Permission-Based: Granular operations (e.g., articles.delete).
  • Owner-Only: Logic to ensure users only modify their own resources.

🏗️ Code Blueprints

Permission Guard Pattern
export function hasPermission(user: User, permission: string): boolean {
  return user.role.permissions.some(p => p.slug === permission);
}
Multi-Tenancy Filter
interface TenantScoped {
  tenant_id: string;
}

// Rule: Every query in a multi-tenant app MUST include a tenant_id filter.

🚀 Workflow (SOP)

  1. Protocol Choice: Select Session or Token-based auth.
  2. Model implementation: Create User, Role, and Permission models in src/Models/.
  3. Guard Registration: Configure the Auth guard in config/auth.ts.
  4. Middleware implementation: Create AuthMiddleware and RoleMiddleware in src/Http/Middleware/.
  5. Route Protection: Wrap protected routes in the auth middleware group.

🛡️ Best Practices

  • Password Hashing: Always use Argon2 or Bcrypt via Gravito's Hash utility.
  • Rate Limiting: Protect login routes with aggressive rate limits.
  • Least Privilege: Users should have NO permissions by default.

Comments

Markdown supported