Plugins
Examples of using plugins to extend ngxsmk-gatekeeper functionality.
Overview
Plugins (implemented through the extension API) allow you to extend the core library with additional middleware without modifying the core code.
Using Plugins
Register plugins with provideExtensions:
typescript
import { provideExtensions } from 'ngxsmk-gatekeeper';
provideExtensions([
new AuthPlugin({
apiKey: 'your-api-key',
mfaRequired: true,
}),
]);AuthPlugin in this example is your own extension class (or a community package) implementing GatekeeperExtension.
Plugin Types
Pre-Middleware Plugin
Execute before user middleware:
typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';
class PreAuthPlugin implements GatekeeperExtension {
getPreMiddleware(): NgxMiddleware[] {
return [preAuthCheck];
}
}Post-Middleware Plugin
Execute after user middleware:
typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';
class AuditPlugin implements GatekeeperExtension {
getPostMiddleware(): NgxMiddleware[] {
return [auditLogging];
}
}Merged Middleware Plugin
Merge with user middleware:
typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';
class FeatureFlagPlugin implements GatekeeperExtension {
getMergedMiddleware(): NgxMiddleware[] {
return [featureFlagCheck];
}
}Creating Custom Plugins
typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';
class CustomPlugin implements GatekeeperExtension {
getPreMiddleware(): NgxMiddleware[] {
return [customPreMiddleware];
}
getPostMiddleware(): NgxMiddleware[] {
return [customPostMiddleware];
}
getMergedMiddleware(): NgxMiddleware[] {
return [customMergedMiddleware];
}
}Built-in Extension Points
The library includes middleware for extended functionality out of the box:
- Authentication (Auth0, Firebase, JWT via adapters)
- Comprehensive audit logging
- Compliance mode (SOC2, ISO)
- License verification
- Feature flags
- Rate limiting
All of it is open source and free to use.
Next Steps
- Plugin Architecture - Learn about plugin architecture
- Plugins Guide - Complete plugin guide