1
0
Fork 0
mirror of synced 2024-09-18 02:08:34 +12:00

Minor fix for audit log system - after the switch to use an async queue for handling of audit log storage, context was lost - in multi-tenant environments need to carry the tenant ID into the queue job so that context can be applied.

This commit is contained in:
mike12345567 2023-03-01 16:38:19 +00:00
parent c3806c0605
commit bba6f6941c
2 changed files with 24 additions and 20 deletions

View file

@ -8,7 +8,7 @@ import {
HostInfo, HostInfo,
} from "@budibase/types" } from "@budibase/types"
import { EventProcessor } from "./types" import { EventProcessor } from "./types"
import { getAppId } from "../../context" import { getAppId, doInTenant } from "../../context"
import BullQueue from "bull" import BullQueue from "bull"
import { createQueue, JobQueue } from "../../queue" import { createQueue, JobQueue } from "../../queue"
import { isAudited } from "../../utils" import { isAudited } from "../../utils"
@ -26,6 +26,7 @@ export default class AuditLogsProcessor implements EventProcessor {
JobQueue.AUDIT_LOG JobQueue.AUDIT_LOG
) )
return AuditLogsProcessor.auditLogQueue.process(async job => { return AuditLogsProcessor.auditLogQueue.process(async job => {
return doInTenant(job.data.tenantId, async () => {
let properties = job.data.properties let properties = job.data.properties
if (properties.audited) { if (properties.audited) {
properties = { properties = {
@ -50,6 +51,7 @@ export default class AuditLogsProcessor implements EventProcessor {
hostInfo, hostInfo,
}) })
}) })
})
} }
async processEvent( async processEvent(
@ -72,6 +74,7 @@ export default class AuditLogsProcessor implements EventProcessor {
appId: getAppId(), appId: getAppId(),
hostInfo: identity.hostInfo, hostInfo: identity.hostInfo,
}, },
tenantId: identity.tenantId!,
}) })
} }
} }

View file

@ -18,4 +18,5 @@ export type AuditLogQueueEvent = {
event: Event event: Event
properties: any properties: any
opts: AuditWriteOpts opts: AuditWriteOpts
tenantId: string
} }