npm.io
0.0.0-alpha.5 • Published yesterday

@faskai/svcs-commons

Licence
MIT
Version
0.0.0-alpha.5
Deps
2
Size
214 kB
Vulns
0
Weekly
0

Fask Services Commons

Common utilities and modules for Fask microservices.

Features

Auth Module

  • Unified authentication guard supporting multiple providers
  • Firebase authentication
  • Clerk authentication
  • Automatic workspace-id injection from tokens
  • Public route decorator

Installation

npm install @faskai/fask-svcs-commons

Usage

In your NestJS app module:
import { AuthModule } from '@faskai/fask-svcs-commons';

@Module({
  imports: [
    AuthModule,
    // ... other modules
  ],
})
export class AppModule {}
Environment Variables
# Firebase (optional)
FIREBASE_CLIENT_EMAIL=...
FIREBASE_PRIVATE_KEY=...

# Clerk (optional)
CLERK_SECRET_KEY=...
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=...
CLERK_JWT_KEY=...

# API Key
API_KEY=...

Auth Guard Features

  • Automatically validates tokens from Authorization: Bearer <token> header
  • Supports X-Auth-Provider: clerk header to specify Clerk tokens
  • Injects workspace-id into query params based on:
    • Clerk: Uses orgId from token (or userId for personal workspace)
    • Firebase: Uses user's email
  • Stores userId, workspaceId, authProvider in ClsService for easy access
  • Bypasses authentication for routes marked with @Public() decorator

Keywords