merlyn/collector/middleware/verifyIntegrity.js
Marcello Fitton 8f33203ade
chore: add ESLint to /collector (#5128)
* add eslint config to /collector

* prettier formatting

* fix unused

* fix undefined

* disable lines

* lockfile

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-05 16:25:23 -08:00

33 lines
942 B
JavaScript

const { CommunicationKey } = require("../utils/comKey");
const RuntimeSettings = require("../utils/runtimeSettings");
const runtimeSettings = new RuntimeSettings();
function verifyPayloadIntegrity(request, response, next) {
const comKey = new CommunicationKey();
if (process.env.NODE_ENV === "development") {
comKey.log("verifyPayloadIntegrity is skipped in development.");
runtimeSettings.parseOptionsFromRequest(request);
next();
return;
}
const signature = request.header("X-Integrity");
if (!signature)
return response
.status(400)
.json({ msg: "Failed integrity signature check." });
const validSignedPayload = comKey.verify(signature, request.body);
if (!validSignedPayload)
return response
.status(400)
.json({ msg: "Failed integrity signature check." });
runtimeSettings.parseOptionsFromRequest(request);
next();
}
module.exports = {
verifyPayloadIntegrity,
};