40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import { BullAdapter } from "@bull-board/api/bullAdapter"
|
|
import { KoaAdapter } from "@bull-board/koa"
|
|
import { queue } from "@budibase/backend-core"
|
|
import * as automation from "../threads/automation"
|
|
import { backups } from "@budibase/pro"
|
|
import { getAppMigrationQueue } from "../appMigrations/queue"
|
|
import { createBullBoard } from "@bull-board/api"
|
|
import { AutomationData } from "@budibase/types"
|
|
|
|
export const automationQueue = queue.createQueue<AutomationData>(
|
|
queue.JobQueue.AUTOMATION,
|
|
{ removeStalledCb: automation.removeStalled }
|
|
)
|
|
|
|
const PATH_PREFIX = "/bulladmin"
|
|
|
|
export async function init() {
|
|
// Set up queues for bull board admin
|
|
const queues = [new BullAdapter(automationQueue)]
|
|
|
|
const backupQueue = backups.getBackupQueue()
|
|
if (backupQueue) {
|
|
queues.push(new BullAdapter(backupQueue))
|
|
}
|
|
|
|
const appMigrationQueue = getAppMigrationQueue()
|
|
if (appMigrationQueue) {
|
|
queues.push(new BullAdapter(appMigrationQueue))
|
|
}
|
|
|
|
const serverAdapter = new KoaAdapter()
|
|
createBullBoard({ queues, serverAdapter })
|
|
serverAdapter.setBasePath(PATH_PREFIX)
|
|
return serverAdapter.registerPlugin()
|
|
}
|
|
|
|
export async function shutdown() {
|
|
await queue.shutdown()
|
|
}
|