Skip to content

Plugins

Extend ngxsmk-gatekeeper with plugins for additional functionality.

Plugin Architecture

The core library provides a plugin architecture that allows extending functionality without modifying the core code.

Using Plugins

Register plugins using provideExtensions:

typescript
import { provideExtensions } from 'ngxsmk-gatekeeper';

provideExtensions([
  new AuthPlugin({
    apiKey: 'your-api-key',
  }),
]);

AuthPlugin is your own extension class (or a community package) implementing GatekeeperExtension.

Plugin Types

Pre-Middleware Plugins

Execute before user middleware:

typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';

class PreMiddlewarePlugin implements GatekeeperExtension {
  getPreMiddleware(): NgxMiddleware[] {
    return [preAuthMiddleware];
  }
}

Post-Middleware Plugins

Execute after user middleware:

typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';

class PostMiddlewarePlugin implements GatekeeperExtension {
  getPostMiddleware(): NgxMiddleware[] {
    return [auditMiddleware];
  }
}

Merged Middleware Plugins

Merge with user middleware:

typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';

class MergedPlugin implements GatekeeperExtension {
  getMergedMiddleware(): NgxMiddleware[] {
    return [featureFlagMiddleware];
  }
}

Creating Plugins

Create custom plugins by implementing the GatekeeperExtension interface:

typescript
import { GatekeeperExtension, NgxMiddleware } from 'ngxsmk-gatekeeper';

class CustomPlugin implements GatekeeperExtension {
  getPreMiddleware(): NgxMiddleware[] {
    return [customPreMiddleware];
  }

  getPostMiddleware(): NgxMiddleware[] {
    return [customPostMiddleware];
  }

  getMergedMiddleware(): NgxMiddleware[] {
    return [customMergedMiddleware];
  }
}

Plugin Execution Order

Middleware executes in this order:

  1. Pre-middleware (from plugins)
  2. User middleware
  3. Merged middleware (from plugins)
  4. Post-middleware (from plugins)

Available Plugins

The library includes various plugins for extended functionality:

  • Authentication Adapters: Auth0, Firebase, Custom JWT
  • Audit Logging: Comprehensive audit logging with SIEM integration
  • Compliance Mode: SOC2 and ISO 27001 compliant logging
  • License Verification: Full license management
  • Feature Flags: Feature flag integration
  • Rate Limiting: Built-in rate limiting middleware

All plugins are open source and free to use.

Next Steps

Released under the MIT License.