Modulesauth
auth
API key validation, RBAC, and multi-tenant context
Overview
The auth module provides API key authentication with timing-safe comparison, role-based access control, and multi-tenant context extraction from request headers.
No peer dependencies required.
Quick Start
import { createApiKeyGuard, requireApiKey } from '@jamaalbuilds/ai-toolkit/auth';
const Guard = createApiKeyGuard(process.env.API_KEY!);
// Guard is a NestJS guard class — use with @UseGuards(Guard)
// For direct validation in any framework:
requireApiKey(request, process.env.API_KEY!);
API Reference
createApiKeyGuard(expectedKey)
Create a NestJS guard class for API key authentication with timing-safe comparison.
function createApiKeyGuard(expectedKey: string): Type<CanActivate>
const Guard = createApiKeyGuard(process.env.API_KEY!);
// Use as a NestJS guard: @UseGuards(Guard)
requireApiKey(request, expectedKey?)
Validate an API key from request headers. Throws AuthError if invalid.
getUserId(headers), getOrgId(headers)
Extract user and organization IDs from request headers.
getTenantContext(request)
Extract full tenant context from request for multi-tenant apps.
const ctx = getTenantContext(request);
// { userId: 'usr_123', orgId: 'org_456' }
Types
TenantContext— userId, orgId