fix: correctly strip background job values (#2965)

This commit is contained in:
David Nguyen
2026-06-09 15:33:41 +10:00
committed by GitHub
parent ecc98fbd41
commit 9ccf50ed95
2 changed files with 14 additions and 6 deletions
+7 -3
View File
@@ -233,13 +233,17 @@ export class BullMQJobProvider extends BaseJobProvider {
backgroundJobId?: string; backgroundJobId?: string;
}; };
let payload = jobData.payload;
if (definition.trigger.schema) { if (definition.trigger.schema) {
const result = definition.trigger.schema.safeParse(jobData.payload); const result = definition.trigger.schema.safeParse(payload);
if (!result.success) { if (!result.success) {
console.error(`[JOBS]: Payload validation failed for ${definitionId}`, result.error); console.error(`[JOBS]: Payload validation failed for ${definitionId}`, result.error);
throw new Error(`Payload validation failed for ${definitionId}`); throw new Error(`Payload validation failed for ${definitionId}`);
} }
payload = result.data;
} }
const backgroundJobId = jobData.backgroundJobId; const backgroundJobId = jobData.backgroundJobId;
@@ -260,11 +264,11 @@ export class BullMQJobProvider extends BaseJobProvider {
.catch(() => null); .catch(() => null);
} }
console.log(`[JOBS]: Processing job ${definitionId} with payload`, jobData.payload); console.log(`[JOBS]: Processing job ${definitionId} with payload`, payload);
try { try {
await definition.handler({ await definition.handler({
payload: jobData.payload, payload,
io: this.createJobRunIO(backgroundJobId ?? job.id ?? definitionId), io: this.createJobRunIO(backgroundJobId ?? job.id ?? definitionId),
}); });
+7 -3
View File
@@ -260,15 +260,19 @@ export class LocalJobProvider extends BaseJobProvider {
return c.text('Unauthorized', 401); return c.text('Unauthorized', 401);
} }
let payload = options.payload;
if (definition.trigger.schema) { if (definition.trigger.schema) {
const result = definition.trigger.schema.safeParse(options.payload); const result = definition.trigger.schema.safeParse(payload);
if (!result.success) { if (!result.success) {
return c.text('Bad request', 400); return c.text('Bad request', 400);
} }
payload = result.data;
} }
console.log(`[JOBS]: Triggering job ${options.name} with payload`, options.payload); console.log(`[JOBS]: Triggering job ${options.name} with payload`, payload);
let backgroundJob = await prisma.backgroundJob let backgroundJob = await prisma.backgroundJob
.update({ .update({
@@ -292,7 +296,7 @@ export class LocalJobProvider extends BaseJobProvider {
try { try {
await definition.handler({ await definition.handler({
payload: options.payload, payload,
io: this.createJobRunIO(jobId), io: this.createJobRunIO(jobId),
}); });