6.10.1 • Published 9 months ago

@bull-board/nestjs v6.10.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

@bull-board/nestjs

NestJS for bull-board.

Overview UI

Installation

Install both @bull-board/api and this module.

$ npm install --save @bull-board/nestjs @bull-board/api

Install the Express or Fastify adapter depending on what you use in NestJS (default is Express)

$ npm install --save @bull-board/express
//or 
$ npm install --save @bull-board/fastify

Register the root module

Once the installation is completed, we can import the BullBoardModule into your rootmodule e.g. AppModule.

import { Module } from '@nestjs/common';
import { BullBoardModule } from "@bull-board/nestjs";
import { ExpressAdapter } from "@bull-board/express";

@Module({
  imports: [
    BullModule.forRoot({
      // your bull module config here.
    }),

    BullBoardModule.forRoot({
      route: '/queues',
      adapter: ExpressAdapter // Or FastifyAdapter from `@bull-board/fastify`
    }),
  ],
})
export class AppModule {
}

The forRoot() method registers the bull-board instance and allows you to pass several options to both the instance and module. The following options are available.

  • route the base route for the bull-board instance adapter.
  • adapter The routing adapter to be used, either the Express Adapter or Fastify Adapter provided by bull-board.
  • boardOptions options as provided by the bull-board package, such as uiBasePath and uiConfig
  • middleware optional middleware for the express adapter (e.g. basic authentication)

Express Authentication

For Express, install express-basic-auth:

$ npm install --save express-basic-auth

Modify the BullBoardModule.forRoot() method:

import basicAuth from "express-basic-auth";

BullBoardModule.forRoot({
  route: "/queues",
  adapter: ExpressAdapter,
  middleware: basicAuth({
    challenge: true,
    users: { admin: "passwordhere" },
  }),
}),

Fastify Authentication

For Fastify, you can use fastify-basic-auth:

$ npm install --save fastify-basic-auth

Then apply it using middleware:

import fastifyBasicAuth from "fastify-basic-auth";

BullBoardModule.forRoot({
  route: "/queues",
  adapter: FastifyAdapter,
  middleware: (req, res, next) => {
    fastifyBasicAuth({
      validate: async (username, password, req, reply) => {
        if (username === "admin" && password === "passwordhere") {
          return;
        }
        throw new Error("Unauthorized");
      },
    })(req, res, next);
  },
}),

Register your queues

To register a new queue, you need to register BullBoardModule.forFeature in the same module as where your queues are registered.

import { Module } from '@nestjs/common';
import { BullBoardModule } from "@bull-board/nestjs";
import { BullMQAdapter } from "@bull-board/api/bullMQAdapter";
import { BullModule } from "@nestjs/bullmq";

@Module({
  imports: [
    BullModule.registerQueue(
      {
        name: 'my_awesome_queue'
      }
    ),
    
    BullBoardModule.forFeature({
      name: 'my_awesome_queue',
      adapter: BullMQAdapter, //or use BullAdapter if you're using bull instead of bullMQ
    }),
  ],
})
export class FeatureModule {}

The forFeature method registers the given queues to the bull-board instance. The following options are available.

  • name the queue name to register
  • adapter either BullAdapter or BullMQAdapter depending on which package you use.
  • options queue adapter options as found in the bull-board package, such as readOnlyMode, description etc.

Using the bull-board instance in your controllers and/or services.

The created bull-board instance is available via the @InjectBullBoard() decorator. For example in a controller:

import { Controller, Get } from "@nestjs/common";
import { BullBoardInstance, InjectBullBoard } from "@bull-board/nestjs";

@Controller('my-feature')
export class FeatureController {

  constructor(
    @InjectBullBoard() private readonly boardInstance: BullBoardInstance
  ) {
  }
  
  //controller methods
}

Usage examples

  1. Simple NestJS setup

For more info visit the main README

6.5.0

1 year ago

6.6.1

1 year ago

6.6.0

1 year ago

6.6.2

1 year ago

6.7.0

1 year ago

6.7.2

1 year ago

6.7.1

1 year ago

6.7.4

1 year ago

6.7.3

1 year ago

6.7.6

1 year ago

6.7.5

1 year ago

6.7.8

1 year ago

6.7.7

1 year ago

6.7.9

1 year ago

6.8.1

11 months ago

6.8.0

11 months ago

6.8.3

11 months ago

6.8.2

11 months ago

6.4.1

1 year ago

6.4.0

1 year ago

6.7.10

1 year ago

6.10.1

9 months ago

6.10.0

9 months ago

6.5.2

1 year ago

6.5.1

1 year ago

6.9.0

11 months ago

6.5.4

1 year ago

6.5.3

1 year ago

6.9.2

11 months ago

6.9.1

11 months ago

6.9.4

10 months ago

6.9.3

10 months ago

6.9.6

10 months ago

6.9.5

10 months ago

6.3.3

1 year ago

6.3.2

1 year ago

6.3.1

1 year ago

6.3.0

1 year ago

6.2.4

1 year ago

6.2.3

1 year ago

6.2.2

1 year ago

6.1.0

1 year ago

6.0.1

1 year ago

6.0.0

1 year ago

6.2.1

1 year ago

6.2.0

1 year ago

6.0.2

1 year ago

5.21.7

1 year ago

5.21.6

1 year ago

5.21.5

1 year ago

5.23.0

1 year ago

5.22.0

1 year ago

5.18.3

2 years ago

5.18.2

2 years ago

5.18.1

2 years ago

5.18.0

2 years ago

5.21.4

2 years ago

5.21.3

2 years ago

5.21.2

2 years ago

5.21.1

2 years ago

5.21.0

2 years ago

5.19.2

2 years ago

5.19.1

2 years ago

5.19.0

2 years ago

5.20.5

2 years ago

5.20.4

2 years ago

5.20.3

2 years ago

5.20.2

2 years ago

5.20.1

2 years ago

5.20.0

2 years ago

5.17.1

2 years ago

5.17.0

2 years ago

5.16.0

2 years ago

5.15.5

2 years ago

5.15.4

2 years ago

5.15.3

2 years ago

5.15.2

2 years ago

5.15.0

2 years ago

5.15.1

2 years ago

5.14.2

2 years ago

5.14.1

2 years ago

5.14.0

2 years ago

5.13.0

2 years ago

5.12.0

2 years ago

5.11.0

2 years ago

5.10.3

2 years ago

5.10.2

2 years ago

5.10.1

2 years ago

5.10.0

2 years ago

5.9.2

2 years ago

5.8.4

2 years ago

5.8.3

2 years ago

5.9.1

2 years ago

5.8.2

2 years ago

5.9.0

2 years ago

5.8.1

3 years ago

5.7.2

3 years ago

5.8.0

3 years ago

5.7.1

3 years ago

5.7.0

3 years ago

5.6.1

3 years ago

5.6.0

3 years ago

5.5.3

3 years ago

5.5.2

3 years ago

5.5.1

3 years ago

5.5.0

3 years ago

5.4.0

3 years ago

5.3.1

3 years ago