UNPKG

strapi-plugin-request-id

Version:

Add a unique id to each request made to your server and track your users' activity in the logs.

31 lines (21 loc) 827 B
"use strict"; const { createNamespace } = require("cls-hooked"); const { v4: uuidv4 } = require("uuid"); const { getConfig } = require("../utils/get-config"); const session = createNamespace("logger"); module.exports = (options, { strapi }) => { const CORRELATION_ID_HEADER = getConfig("correlationIdHeader"); return async (ctx, next) => { const correlationId = ctx.request.get(CORRELATION_ID_HEADER) || uuidv4(); const requestId = uuidv4(); ctx.response.set(CORRELATION_ID_HEADER, correlationId); ctx.response.set("X-Request-Id", requestId); ctx.state.correlationId = correlationId; ctx.state.requestId = requestId; await session.runPromise(async () => { session.set("correlationId", correlationId); session.set("requestId", requestId); await next(); }); }; };