feat: Add http basic auth for BullMQ dashboard

This commit is contained in:
Faruk AYDIN
2022-10-30 15:10:33 +01:00
parent 53bbde4314
commit cd5502fdde
7 changed files with 62 additions and 25 deletions

View File

@@ -4,10 +4,18 @@ import { BullMQAdapter } from '@bull-board/api/bullMQAdapter';
import flowQueue from '../queues/flow';
import triggerQueue from '../queues/trigger';
import actionQueue from '../queues/action';
import appConfig from '../config/app';
const serverAdapter = new ExpressAdapter();
const createBullBoardHandler = async (serverAdapter: ExpressAdapter) => {
if (
!appConfig.enableBullMQDashboard ||
!appConfig.bullMQDashboardUsername ||
!appConfig.bullMQDashboardPassword
)
return;
createBullBoard({
queues: [
new BullMQAdapter(flowQueue),

View File

@@ -1,13 +1,32 @@
import { Application } from 'express';
import { ExpressAdapter } from '@bull-board/express';
import basicAuth from 'express-basic-auth';
import appConfig from '../config/app';
const injectBullBoardHandler = async (
app: Application,
serverAdapter: ExpressAdapter
) => {
if (
!appConfig.enableBullMQDashboard ||
!appConfig.bullMQDashboardUsername ||
!appConfig.bullMQDashboardPassword
)
return;
const queueDashboardBasePath = '/admin/queues';
serverAdapter.setBasePath(queueDashboardBasePath);
app.use(queueDashboardBasePath, serverAdapter.getRouter());
app.use(
queueDashboardBasePath,
basicAuth({
users: {
[appConfig.bullMQDashboardUsername]: appConfig.bullMQDashboardPassword,
},
challenge: true,
}),
serverAdapter.getRouter()
);
};
export default injectBullBoardHandler;