Skip to content

Commit 8d75e09

Browse files
authored
feat: mark req.id as deprecated (#65)
1 parent 8335030 commit 8d75e09

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

src/base-middleware.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ import {DEFAULT_REQUEST_ID_HEADER} from './constants';
77
export function setupBaseMiddleware(ctx: AppContext, expressApp: Express) {
88
expressApp.use((req, res, next) => {
99
try {
10-
req.id = (req.headers[DEFAULT_REQUEST_ID_HEADER] || uuidv4()) as string;
11-
res.setHeader(DEFAULT_REQUEST_ID_HEADER, req.id);
10+
const requestId = (req.headers[DEFAULT_REQUEST_ID_HEADER] || uuidv4()) as string;
11+
req.id = requestId;
12+
res.setHeader(DEFAULT_REQUEST_ID_HEADER, requestId);
1213

1314
res.setHeader('Surrogate-Control', 'no-store');
1415
res.setHeader(
@@ -25,18 +26,18 @@ export function setupBaseMiddleware(ctx: AppContext, expressApp: Express) {
2526

2627
req.originalContext = req.ctx = ctx.create(`Express ${req.method}`, {
2728
parentSpanContext,
28-
loggerPostfix: `[${req.id}]`,
29+
loggerPostfix: `[${requestId}]`,
2930
spanKind: 1, // SERVER
3031
});
31-
req.ctx.set(REQUEST_ID_PARAM_NAME, req.id);
32+
req.ctx.set(REQUEST_ID_PARAM_NAME, requestId);
3233

3334
req.ctx.setTag('http.hostname', req.hostname);
3435
req.ctx.setTag('http.method', req.method);
3536
req.ctx.setTag('http.url', ctx.utils.redactSensitiveQueryParams(req.url));
3637
req.ctx.setTag('path', ctx.utils.redactSensitiveQueryParams(req.path));
3738
req.ctx.setTag('referer', ctx.utils.redactSensitiveQueryParams(req.get('referer')));
3839
req.ctx.setTag('remote_ip', req.ip ?? 'unknown');
39-
req.ctx.setTag('request_id', req.id);
40+
req.ctx.setTag('request_id', requestId);
4041
req.ctx.setTag('user_agent', userAgent);
4142

4243
const traceId = req.ctx.getTraceId();
@@ -46,7 +47,7 @@ export function setupBaseMiddleware(ctx: AppContext, expressApp: Express) {
4647
}
4748

4849
req.ctx.addLoggerExtra('req', {
49-
id: req.id,
50+
id: requestId,
5051
method: req.method,
5152
url: ctx.utils.redactSensitiveQueryParams(req.path),
5253
});
@@ -56,7 +57,7 @@ export function setupBaseMiddleware(ctx: AppContext, expressApp: Express) {
5657
: {
5758
traceId,
5859
req: {
59-
id: req.id,
60+
id: requestId,
6061
method: req.method,
6162
url: ctx.utils.redactSensitiveQueryParams(req.url),
6263
headers: ctx.utils.redactSensitiveHeaders(req.headers),

src/router.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {AppContext} from '@gravity-ui/nodekit';
1+
import {type AppContext, REQUEST_ID_PARAM_NAME} from '@gravity-ui/nodekit';
22
import {Express, Router} from 'express';
33

44
import {cspMiddleware, getAppPresets} from './csp/middleware';
@@ -106,7 +106,7 @@ export function setupRoutes(ctx: AppContext, expressApp: Express, routes: AppRou
106106
service: 'self',
107107
action: req.routeInfo.handlerName || UNNAMED_CONTROLLER,
108108
responseStatus: res.statusCode,
109-
requestId: req.id,
109+
requestId: req.ctx.get(REQUEST_ID_PARAM_NAME) || '',
110110
requestTime: req.originalContext.getTime(), //We have to use req.originalContext here to get full time
111111
requestMethod: req.method,
112112
requestUrl: req.originalUrl,

src/types.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ declare global {
1717
// eslint-disable-next-line
1818
namespace Express {
1919
export interface Request {
20+
/**
21+
* @deprecated Use req.ctx.get(REQUEST_ID_PARAM_NAME) instead of req.id
22+
*/
2023
id: string;
2124
ctx: AppContext;
2225
originalContext: AppContext;
@@ -27,6 +30,9 @@ declare global {
2730

2831
declare module 'express' {
2932
export interface Request {
33+
/**
34+
* @deprecated Use req.ctx.get(REQUEST_ID_PARAM_NAME) instead of req.id
35+
*/
3036
id: string;
3137
ctx: AppContext;
3238
originalContext: AppContext;

0 commit comments

Comments
 (0)