Skip to main content

🛡️ Mixins for Moleculer to allow using CASL as a distributed authz rules engine

Works with
It is unknown whether this package works with Bun
It is unknown whether this package works with Cloudflare Workers
This package works with Node.js
It is unknown whether this package works with Deno
This package works with Browsers
JSR Score
100%
Published
4 weeks ago (0.1.4)

moleculer-casl

npm version jsr version bundle JSDocs License

CASL authorisation for Moleculer with service-provided ability definition and caching.

Note: This module is heavily under development.

Usage

Ability provider

Add this mixin to your auth service, to provide rules for other services.

import { createCASLAbilityProvider } from 'moleculer-casl'

const AuthService = {
  mixins: [createCASLAbilityProvider(rulesFor)]
}

Ability consumer

Add this mixin to any service that needs to use Abilities.

import { createCASLAbilityConsumer } from 'moleculer-casl'

const ProductService: Service & AbilityConsumerMethods = {
  mixins: [createCASLAbilityConsumer()],
  actions: {
    create(ctx) {
      const ability = await this.abilityFor(ctx.meta.user)
    }
  }
}

License

MIT License © 2023-PRESENT Nicholai Nissen

Add Package

deno add @nicholai/moleculer-casl

Import symbol

import * as mod from "@nicholai/moleculer-casl";

Add Package

npx jsr add @nicholai/moleculer-casl

Import symbol

import * as mod from "@nicholai/moleculer-casl";

Add Package

yarn dlx jsr add @nicholai/moleculer-casl

Import symbol

import * as mod from "@nicholai/moleculer-casl";

Add Package

pnpm dlx jsr add @nicholai/moleculer-casl

Import symbol

import * as mod from "@nicholai/moleculer-casl";

Add Package

bunx jsr add @nicholai/moleculer-casl

Import symbol

import * as mod from "@nicholai/moleculer-casl";