Skip to content

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

Released under the MIT License.