@aifabrix/miso-client 4.1.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/dist/express/client-token-endpoint.d.ts +0 -12
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +97 -218
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/express/error-handler.d.ts +1 -4
- package/dist/express/error-handler.d.ts.map +1 -1
- package/dist/express/error-handler.js +39 -84
- package/dist/express/error-handler.js.map +1 -1
- package/dist/express/error-response.d.ts.map +1 -1
- package/dist/express/error-response.js +2 -0
- package/dist/express/error-response.js.map +1 -1
- package/dist/express/error-types.d.ts +1 -3
- package/dist/express/error-types.d.ts.map +1 -1
- package/dist/express/error-types.js +17 -37
- package/dist/express/error-types.js.map +1 -1
- package/dist/express/logger-context.middleware.d.ts +7 -21
- package/dist/express/logger-context.middleware.d.ts.map +1 -1
- package/dist/express/logger-context.middleware.js +25 -62
- package/dist/express/logger-context.middleware.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.d.ts +18 -20
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +63 -38
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/permission.service.d.ts +8 -1
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +49 -60
- package/dist/services/permission.service.js.map +1 -1
- package/dist/services/role.service.d.ts +8 -1
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +44 -47
- package/dist/services/role.service.js.map +1 -1
- package/dist/types/config.types.d.ts +3 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js.map +1 -1
- package/dist/types/errors.types.d.ts +7 -0
- package/dist/types/errors.types.d.ts.map +1 -1
- package/dist/utils/client-token-manager.d.ts +68 -0
- package/dist/utils/client-token-manager.d.ts.map +1 -0
- package/dist/utils/client-token-manager.js +219 -0
- package/dist/utils/client-token-manager.js.map +1 -0
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +78 -97
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/data-client.d.ts +6 -0
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +40 -39
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/errors.d.ts +4 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +41 -61
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/http-client.d.ts +47 -2
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +47 -7
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/http-error-handler.d.ts +9 -1
- package/dist/utils/http-error-handler.d.ts.map +1 -1
- package/dist/utils/http-error-handler.js +32 -1
- package/dist/utils/http-error-handler.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts +63 -21
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +130 -277
- package/dist/utils/internal-http-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,53 +20,32 @@ let customErrorLogger = null;
|
|
|
20
20
|
function setErrorLogger(logger) {
|
|
21
21
|
customErrorLogger = logger;
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
*/
|
|
23
|
+
/** Prisma error code to HTTP status mapping */
|
|
24
|
+
const PRISMA_ERROR_MAP = { P2002: 409, P2025: 404, P2003: 400 };
|
|
25
|
+
/** Error message patterns to HTTP status mapping */
|
|
26
|
+
const MESSAGE_PATTERN_MAP = [
|
|
27
|
+
{ pattern: /not found/i, status: 404 },
|
|
28
|
+
{ pattern: /already exists|duplicate/i, status: 409 },
|
|
29
|
+
{ pattern: /validation|invalid/i, status: 400 },
|
|
30
|
+
{ pattern: /unauthorized|authentication/i, status: 401 },
|
|
31
|
+
{ pattern: /forbidden|permission/i, status: 403 },
|
|
32
|
+
];
|
|
33
|
+
/** Map error to appropriate HTTP status code */
|
|
26
34
|
function mapErrorToStatusCode(error) {
|
|
27
|
-
|
|
28
|
-
if (error instanceof error_types_1.AppError) {
|
|
35
|
+
if (error instanceof error_types_1.AppError)
|
|
29
36
|
return error.statusCode;
|
|
30
|
-
|
|
31
|
-
// Prisma errors (duck typing - no import needed)
|
|
37
|
+
// Prisma errors
|
|
32
38
|
if (error && typeof error === "object" && "code" in error) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// Unique constraint violation
|
|
37
|
-
return 409;
|
|
38
|
-
}
|
|
39
|
-
if (code === "P2025") {
|
|
40
|
-
// Record not found
|
|
41
|
-
return 404;
|
|
42
|
-
}
|
|
43
|
-
if (code === "P2003") {
|
|
44
|
-
// Foreign key constraint violation
|
|
45
|
-
return 400;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Error message patterns
|
|
49
|
-
const errorMessage = error instanceof Error ? error.message : String(error || "Unknown error");
|
|
50
|
-
if (errorMessage.toLowerCase().includes("not found")) {
|
|
51
|
-
return 404;
|
|
39
|
+
const status = PRISMA_ERROR_MAP[error.code];
|
|
40
|
+
if (status)
|
|
41
|
+
return status;
|
|
52
42
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
// Message pattern matching
|
|
44
|
+
const msg = error instanceof Error ? error.message : String(error || "");
|
|
45
|
+
for (const { pattern, status } of MESSAGE_PATTERN_MAP) {
|
|
46
|
+
if (pattern.test(msg))
|
|
47
|
+
return status;
|
|
56
48
|
}
|
|
57
|
-
if (errorMessage.toLowerCase().includes("validation") ||
|
|
58
|
-
errorMessage.toLowerCase().includes("invalid")) {
|
|
59
|
-
return 400;
|
|
60
|
-
}
|
|
61
|
-
if (errorMessage.toLowerCase().includes("unauthorized") ||
|
|
62
|
-
errorMessage.toLowerCase().includes("authentication")) {
|
|
63
|
-
return 401;
|
|
64
|
-
}
|
|
65
|
-
if (errorMessage.toLowerCase().includes("forbidden") ||
|
|
66
|
-
errorMessage.toLowerCase().includes("permission")) {
|
|
67
|
-
return 403;
|
|
68
|
-
}
|
|
69
|
-
// Default to 500
|
|
70
49
|
return 500;
|
|
71
50
|
}
|
|
72
51
|
/**
|
|
@@ -100,65 +79,41 @@ function createErrorResponseFromError(error, statusCode, request, correlationId)
|
|
|
100
79
|
}
|
|
101
80
|
return (0, error_response_1.createErrorResponse)(error, statusCode, request, correlationId, validationErrors);
|
|
102
81
|
}
|
|
103
|
-
/**
|
|
104
|
-
|
|
105
|
-
* Logs error and sends RFC 7807 compliant error response
|
|
106
|
-
*/
|
|
107
|
-
async function handleRouteError(error, req, res, operation) {
|
|
108
|
-
// Extract request context (includes correlation ID from headers)
|
|
109
|
-
const requestContext = (0, request_context_1.extractRequestContext)(req);
|
|
110
|
-
// Get correlation ID from request property, context, or generate one
|
|
111
|
-
const correlationId = req.correlationId ||
|
|
112
|
-
requestContext.correlationId ||
|
|
113
|
-
generateCorrelationId();
|
|
114
|
-
const statusCode = mapErrorToStatusCode(error);
|
|
115
|
-
const errorMessage = extractErrorMessage(error);
|
|
116
|
-
// Extract structured error info with endpoint and method context
|
|
117
|
-
const errorInfo = (0, error_extractor_1.extractErrorInfo)(error, {
|
|
118
|
-
endpoint: req.originalUrl || req.path,
|
|
119
|
-
method: req.method,
|
|
120
|
-
correlationId,
|
|
121
|
-
});
|
|
122
|
-
// Log error using custom logger or stderr
|
|
123
|
-
const operationName = operation || "unknown operation";
|
|
124
|
-
const logMessage = `${operationName} failed: ${errorMessage}`;
|
|
125
|
-
// Enhance console logging with structured format
|
|
82
|
+
/** Log error using custom logger or stderr */
|
|
83
|
+
async function logError(error, errorInfo, logMessage, req, correlationId, statusCode, operationName) {
|
|
126
84
|
(0, console_logger_1.logErrorWithContext)(errorInfo, "[Express]");
|
|
127
85
|
if (customErrorLogger) {
|
|
128
86
|
try {
|
|
129
87
|
await customErrorLogger.logError(logMessage, {
|
|
130
|
-
req,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
statusCode: errorInfo.statusCode || statusCode,
|
|
134
|
-
url: req.originalUrl,
|
|
135
|
-
method: req.method,
|
|
136
|
-
errorMessage: errorInfo.message,
|
|
137
|
-
errorName: errorInfo.errorName,
|
|
138
|
-
errorType: errorInfo.errorType,
|
|
139
|
-
stack: errorInfo.stackTrace,
|
|
88
|
+
req, correlationId: errorInfo.correlationId || correlationId, operation: operationName,
|
|
89
|
+
statusCode: errorInfo.statusCode || statusCode, url: req.originalUrl, method: req.method,
|
|
90
|
+
errorMessage: errorInfo.message, errorName: errorInfo.errorName, errorType: errorInfo.errorType, stack: errorInfo.stackTrace,
|
|
140
91
|
});
|
|
141
92
|
}
|
|
142
93
|
catch (logError) {
|
|
143
|
-
// If logging itself fails, fall back to stderr
|
|
144
94
|
const logErr = logError instanceof Error ? logError : new Error(String(logError));
|
|
145
95
|
process.stderr.write(`[ERROR] Failed to log error: ${logErr.message}\n`);
|
|
146
|
-
process.stderr.write(`[ERROR] Original error: ${
|
|
96
|
+
process.stderr.write(`[ERROR] Original error: ${extractErrorMessage(error)}\n`);
|
|
147
97
|
}
|
|
148
98
|
}
|
|
149
99
|
else {
|
|
150
|
-
// Fallback to stderr if no logger configured
|
|
151
100
|
process.stderr.write(`[ERROR] ${logMessage}\n`);
|
|
152
|
-
if (error instanceof Error && error.stack)
|
|
101
|
+
if (error instanceof Error && error.stack)
|
|
153
102
|
process.stderr.write(`[ERROR] Stack: ${error.stack}\n`);
|
|
154
|
-
}
|
|
155
103
|
}
|
|
156
|
-
|
|
104
|
+
}
|
|
105
|
+
/** Generic route error handler - logs error and sends RFC 7807 compliant response */
|
|
106
|
+
async function handleRouteError(error, req, res, operation) {
|
|
107
|
+
const requestContext = (0, request_context_1.extractRequestContext)(req);
|
|
108
|
+
const correlationId = req.correlationId || requestContext.correlationId || generateCorrelationId();
|
|
109
|
+
const statusCode = mapErrorToStatusCode(error);
|
|
110
|
+
const errorMessage = extractErrorMessage(error);
|
|
111
|
+
const operationName = operation || "unknown operation";
|
|
112
|
+
const errorInfo = (0, error_extractor_1.extractErrorInfo)(error, { endpoint: req.originalUrl || req.path, method: req.method, correlationId });
|
|
113
|
+
await logError(error, errorInfo, `${operationName} failed: ${errorMessage}`, req, correlationId, statusCode, operationName);
|
|
157
114
|
const errorResponse = createErrorResponseFromError(error, statusCode, req, correlationId);
|
|
158
|
-
|
|
159
|
-
if (error instanceof error_types_1.AppError && error.correlationId) {
|
|
115
|
+
if (error instanceof error_types_1.AppError && error.correlationId)
|
|
160
116
|
errorResponse.correlationId = error.correlationId;
|
|
161
|
-
}
|
|
162
117
|
(0, error_response_1.sendErrorResponse)(res, errorResponse);
|
|
163
118
|
}
|
|
164
119
|
//# sourceMappingURL=error-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/express/error-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA4BH,wCAEC;
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/express/error-handler.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA4BH,wCAEC;AAsGD,4CAaC;AA9ID,+CAAyC;AACzC,qDAI0B;AAC1B,8DAA4D;AAC5D,4DAA8D;AAC9D,8DAAiE;AAUjE,+CAA+C;AAC/C,IAAI,iBAAiB,GAAuB,IAAI,CAAC;AAEjD;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAA0B;IACvD,iBAAiB,GAAG,MAAM,CAAC;AAC7B,CAAC;AAED,+CAA+C;AAC/C,MAAM,gBAAgB,GAA2B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAExF,oDAAoD;AACpD,MAAM,mBAAmB,GAA+C;IACtE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE;IACtC,EAAE,OAAO,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE;IACrD,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE;IAC/C,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,EAAE,GAAG,EAAE;IACxD,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,GAAG,EAAE;CAClD,CAAC;AAEF,gDAAgD;AAChD,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,KAAK,YAAY,sBAAQ;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAEvD,gBAAgB;IAChB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,gBAAgB,CAAE,KAA0B,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,2BAA2B;IAC3B,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzE,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,mBAAmB,EAAE,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;IACvC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,8BAA8B,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,WAAW,SAAS,IAAI,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,4BAA4B,CACnC,KAAc,EACd,UAAkB,EAClB,OAAiB,EACjB,aAAsB;IAEtB,IAAI,gBAAgB,CAAC;IACrB,IAAI,KAAK,YAAY,sBAAQ,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACxD,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IAC5C,CAAC;IAED,OAAO,IAAA,oCAAmB,EACxB,KAAK,EACL,UAAU,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,CACjB,CAAC;AACJ,CAAC;AAED,8CAA8C;AAC9C,KAAK,UAAU,QAAQ,CAAC,KAAc,EAAE,SAA8C,EAAE,UAAkB,EAAE,GAAY,EAAE,aAAqB,EAAE,UAAkB,EAAE,aAAqB;IACxL,IAAA,oCAAmB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAE5C,IAAI,iBAAiB,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE;gBAC3C,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,aAAa,EAAE,SAAS,EAAE,aAAa;gBACtF,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM;gBACxF,YAAY,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,UAAU;aAC7H,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;YACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,UAAU,IAAI,CAAC,CAAC;QAChD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACrG,CAAC;AACH,CAAC;AAED,qFAAqF;AAC9E,KAAK,UAAU,gBAAgB,CAAC,KAAc,EAAE,GAAY,EAAE,GAAa,EAAE,SAAkB;IACpG,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,GAAG,CAAC,CAAC;IAClD,MAAM,aAAa,GAAI,GAA4C,CAAC,aAAa,IAAI,cAAc,CAAC,aAAa,IAAI,qBAAqB,EAAE,CAAC;IAC7I,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,SAAS,IAAI,mBAAmB,CAAC;IAEvD,MAAM,SAAS,GAAG,IAAA,kCAAgB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACxH,MAAM,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa,YAAY,YAAY,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAE5H,MAAM,aAAa,GAAG,4BAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC1F,IAAI,KAAK,YAAY,sBAAQ,IAAI,KAAK,CAAC,aAAa;QAAE,aAAa,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IACxG,IAAA,kCAAiB,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"error-response.d.ts","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAmBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAexD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,aAAa,CAqCf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,QAAQ,EACb,aAAa,EAAE,aAAa,GAC3B,IAAI,CAGN"}
|
|
@@ -22,6 +22,7 @@ const ERROR_TYPE_URI_MAP = {
|
|
|
22
22
|
429: "/Errors/TooManyRequests",
|
|
23
23
|
500: "/Errors/InternalServerError",
|
|
24
24
|
503: "/Errors/ServiceUnavailable",
|
|
25
|
+
504: "/Errors/GatewayTimeout",
|
|
25
26
|
};
|
|
26
27
|
/**
|
|
27
28
|
* Get error type URI for a given status code
|
|
@@ -44,6 +45,7 @@ function getErrorTitle(statusCode) {
|
|
|
44
45
|
429: "Too Many Requests",
|
|
45
46
|
500: "Internal Server Error",
|
|
46
47
|
503: "Service Unavailable",
|
|
48
|
+
504: "Gateway Timeout",
|
|
47
49
|
};
|
|
48
50
|
return titles[statusCode] || "Internal Server Error";
|
|
49
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-response.js","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"error-response.js","sourceRoot":"","sources":["../../src/express/error-response.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA4DH,0CAEC;AAKD,sCAeC;AAKD,kDA2CC;AAKD,8CAMC;AArGD;;GAEG;AACH,MAAM,kBAAkB,GAA2B;IACjD,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,4BAA4B;IACjC,GAAG,EAAE,wBAAwB;CAC9B,CAAC;AAEF;;GAEG;AACH,SAAgB,eAAe,CAAC,UAAkB;IAChD,OAAO,kBAAkB,CAAC,UAAU,CAAC,IAAI,6BAA6B,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,UAAkB;IAC9C,MAAM,MAAM,GAA2B;QACrC,GAAG,EAAE,aAAa;QAClB,GAAG,EAAE,cAAc;QACnB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,oBAAoB;QACzB,GAAG,EAAE,UAAU;QACf,GAAG,EAAE,sBAAsB;QAC3B,GAAG,EAAE,mBAAmB;QACxB,GAAG,EAAE,uBAAuB;QAC5B,GAAG,EAAE,qBAAqB;QAC1B,GAAG,EAAE,iBAAiB;KACvB,CAAC;IACF,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,uBAAuB,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,KAAc,EACd,UAAkB,EAClB,OAAiB,EACjB,aAAsB,EACtB,gBAAoC;IAEpC,IAAI,YAAoB,CAAC;IACzB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACjD,YAAY,GAAG,mBAAmB,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC;IACtD,CAAC;IAED,kFAAkF;IAClF,kDAAkD;IAClD,MAAM,kBAAkB,GACtB,aAAa;QACZ,OAAgD,EAAE,aAAa;QAC/D,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAY,CAAC;IAEnD,MAAM,aAAa,GAAkB;QACnC,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC;QACjC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC;QAChC,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,OAAO,EAAE,WAAW;KAC/B,CAAC;IAEF,oEAAoE;IACpE,IAAI,kBAAkB,EAAE,CAAC;QACvB,aAAa,CAAC,aAAa,GAAG,kBAAkB,CAAC;IACnD,CAAC;IAED,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,aAAa,CAAC,MAAM,GAAG,gBAAgB,CAAC;IAC1C,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,GAAa,EACb,aAA4B;IAE5B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IAC1D,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -28,9 +28,7 @@ export declare class AppError extends Error implements ApiError {
|
|
|
28
28
|
readonly instance?: string;
|
|
29
29
|
readonly correlationId?: string;
|
|
30
30
|
constructor(message: string, statusCode?: number, isOperational?: boolean, validationErrors?: ValidationError[], errorType?: string, instance?: string, correlationId?: string);
|
|
31
|
-
/**
|
|
32
|
-
* Convert AppError to RFC 7807 ErrorResponse format
|
|
33
|
-
*/
|
|
31
|
+
/** Convert AppError to RFC 7807 ErrorResponse format */
|
|
34
32
|
toErrorResponse(requestUrl?: string): {
|
|
35
33
|
type: string;
|
|
36
34
|
title: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-types.d.ts","sourceRoot":"","sources":["../../src/express/error-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"error-types.d.ts","sourceRoot":"","sources":["../../src/express/error-types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAiBD,qBAAa,QAAS,SAAQ,KAAM,YAAW,QAAQ;IACrD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,aAAa,EAAE,OAAO,CAAC;IACvC,SAAgB,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrD,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClC,SAAgB,aAAa,CAAC,EAAE,MAAM,CAAC;gBAGrC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,EAAE,aAAa,GAAE,OAAc,EACxE,gBAAgB,CAAC,EAAE,eAAe,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAYrG,wDAAwD;IACxD,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG;QACpC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;KACvE;CAWF;AAED,eAAO,MAAM,qBAAqB,GAAI,CAAC,EACrC,MAAM,CAAC,EACP,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACrB,WAAW,CAAC,CAAC,CAgBf,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,EACb,gBAAgB,MAAM,KACrB,WAYF,CAAC"}
|
|
@@ -5,6 +5,19 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = void 0;
|
|
8
|
+
/** HTTP status to error type URI mapping */
|
|
9
|
+
const ERROR_TYPE_MAP = {
|
|
10
|
+
400: "/Errors/BadRequest", 401: "/Errors/Unauthorized", 403: "/Errors/Forbidden",
|
|
11
|
+
404: "/Errors/NotFound", 405: "/Errors/MethodNotAllowed", 409: "/Errors/Conflict",
|
|
12
|
+
422: "/Errors/UnprocessableEntity", 429: "/Errors/TooManyRequests",
|
|
13
|
+
500: "/Errors/InternalServerError", 503: "/Errors/ServiceUnavailable",
|
|
14
|
+
};
|
|
15
|
+
/** HTTP status to title mapping */
|
|
16
|
+
const ERROR_TITLE_MAP = {
|
|
17
|
+
400: "Bad Request", 401: "Unauthorized", 403: "Forbidden", 404: "Not Found",
|
|
18
|
+
405: "Method Not Allowed", 409: "Conflict", 422: "Unprocessable Entity",
|
|
19
|
+
429: "Too Many Requests", 500: "Internal Server Error", 503: "Service Unavailable",
|
|
20
|
+
};
|
|
8
21
|
class AppError extends Error {
|
|
9
22
|
constructor(message, statusCode = 500, isOperational = true, validationErrors, errorType, instance, correlationId) {
|
|
10
23
|
super(message);
|
|
@@ -16,49 +29,16 @@ class AppError extends Error {
|
|
|
16
29
|
this.correlationId = correlationId;
|
|
17
30
|
Error.captureStackTrace(this, this.constructor);
|
|
18
31
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Convert AppError to RFC 7807 ErrorResponse format
|
|
21
|
-
*/
|
|
32
|
+
/** Convert AppError to RFC 7807 ErrorResponse format */
|
|
22
33
|
toErrorResponse(requestUrl) {
|
|
23
|
-
// Use error type from error if available, otherwise generate from status code
|
|
24
|
-
const typeMap = {
|
|
25
|
-
400: "/Errors/BadRequest",
|
|
26
|
-
401: "/Errors/Unauthorized",
|
|
27
|
-
403: "/Errors/Forbidden",
|
|
28
|
-
404: "/Errors/NotFound",
|
|
29
|
-
405: "/Errors/MethodNotAllowed",
|
|
30
|
-
409: "/Errors/Conflict",
|
|
31
|
-
422: "/Errors/UnprocessableEntity",
|
|
32
|
-
429: "/Errors/TooManyRequests",
|
|
33
|
-
500: "/Errors/InternalServerError",
|
|
34
|
-
503: "/Errors/ServiceUnavailable",
|
|
35
|
-
};
|
|
36
|
-
const titleMap = {
|
|
37
|
-
400: "Bad Request",
|
|
38
|
-
401: "Unauthorized",
|
|
39
|
-
403: "Forbidden",
|
|
40
|
-
404: "Not Found",
|
|
41
|
-
405: "Method Not Allowed",
|
|
42
|
-
409: "Conflict",
|
|
43
|
-
422: "Unprocessable Entity",
|
|
44
|
-
429: "Too Many Requests",
|
|
45
|
-
500: "Internal Server Error",
|
|
46
|
-
503: "Service Unavailable",
|
|
47
|
-
};
|
|
48
|
-
const type = this.errorType ||
|
|
49
|
-
typeMap[this.statusCode] ||
|
|
50
|
-
"/Errors/InternalServerError";
|
|
51
|
-
const title = titleMap[this.statusCode] || "Internal Server Error";
|
|
52
34
|
return {
|
|
53
|
-
type,
|
|
54
|
-
title,
|
|
35
|
+
type: this.errorType || ERROR_TYPE_MAP[this.statusCode] || "/Errors/InternalServerError",
|
|
36
|
+
title: ERROR_TITLE_MAP[this.statusCode] || "Internal Server Error",
|
|
55
37
|
status: this.statusCode,
|
|
56
38
|
detail: this.message,
|
|
57
39
|
instance: this.instance || requestUrl,
|
|
58
40
|
correlationId: this.correlationId,
|
|
59
|
-
errors: this.validationErrors && this.validationErrors.length > 0
|
|
60
|
-
? this.validationErrors
|
|
61
|
-
: undefined,
|
|
41
|
+
errors: this.validationErrors && this.validationErrors.length > 0 ? this.validationErrors : undefined,
|
|
62
42
|
};
|
|
63
43
|
}
|
|
64
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-types.js","sourceRoot":"","sources":["../../src/express/error-types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuBH,
|
|
1
|
+
{"version":3,"file":"error-types.js","sourceRoot":"","sources":["../../src/express/error-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,34 +13,20 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { Request, Response, NextFunction } from "express";
|
|
15
15
|
/**
|
|
16
|
-
* Express middleware to set logger context from request
|
|
17
|
-
* Extracts context from Request object and sets it in AsyncLocalStorage
|
|
18
|
-
* Context is automatically available to all code in the same async context
|
|
16
|
+
* Express middleware to set logger context from request.
|
|
17
|
+
* Extracts context from Request object and sets it in AsyncLocalStorage.
|
|
19
18
|
*
|
|
20
|
-
* ⚠️ SECURITY:
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* - Trustworthy fields (server-side): IP address, HTTP method, request path
|
|
25
|
-
* - Validated fields: userId, sessionId (extracted from server-validated JWT tokens)
|
|
26
|
-
* - Client-provided fields (for logging only): correlationId, userAgent
|
|
27
|
-
* - Correlation IDs from headers are client-provided but standard for distributed tracing
|
|
28
|
-
* - If no correlation ID provided, server generates a secure server-side ID
|
|
29
|
-
* - These fields are used for logging/tracing only, NOT for security decisions
|
|
30
|
-
*
|
|
31
|
-
* Call this early in middleware chain (after auth middleware if you need JWT context)
|
|
19
|
+
* ⚠️ SECURITY: SERVER-SIDE ONLY middleware. ISO 27001 compliant:
|
|
20
|
+
* - Trustworthy: IP, method, path (from server request)
|
|
21
|
+
* - Validated: userId, sessionId (from server-validated JWT)
|
|
22
|
+
* - Client-provided (logging only): correlationId, userAgent
|
|
32
23
|
*
|
|
33
24
|
* @example
|
|
34
|
-
* ```typescript
|
|
35
|
-
* import { loggerContextMiddleware } from '@aifabrix/miso-client';
|
|
36
|
-
*
|
|
37
25
|
* app.use(loggerContextMiddleware);
|
|
38
|
-
*
|
|
39
26
|
* app.get('/api/users', async (req, res) => {
|
|
40
27
|
* const logger = getLogger();
|
|
41
|
-
* await logger.info('Users list accessed'); // Auto-extracts context
|
|
28
|
+
* await logger.info('Users list accessed'); // Auto-extracts context
|
|
42
29
|
* });
|
|
43
|
-
* ```
|
|
44
30
|
*/
|
|
45
31
|
export declare function loggerContextMiddleware(req: Request, res: Response, next: NextFunction): void;
|
|
46
32
|
//# sourceMappingURL=logger-context.middleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-context.middleware.d.ts","sourceRoot":"","sources":["../../src/express/logger-context.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"logger-context.middleware.d.ts","sourceRoot":"","sources":["../../src/express/logger-context.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAyB1D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAG7F"}
|
|
@@ -17,83 +17,46 @@ exports.loggerContextMiddleware = loggerContextMiddleware;
|
|
|
17
17
|
const unified_logger_factory_1 = require("../services/logger/unified-logger.factory");
|
|
18
18
|
const request_context_1 = require("../utils/request-context");
|
|
19
19
|
const logger_context_1 = require("../services/logger/logger-context");
|
|
20
|
-
/**
|
|
21
|
-
* Generate server-side correlation ID
|
|
22
|
-
* Used when client doesn't provide correlation ID in headers
|
|
23
|
-
* ISO 27001 compliant: Server-generated, not client-provided
|
|
24
|
-
*/
|
|
20
|
+
/** Generate server-side correlation ID (ISO 27001 compliant) */
|
|
25
21
|
function generateServerCorrelationId() {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
return `server-${Date.now()}-${Math.random().toString(36).substring(2, 8)}`;
|
|
23
|
+
}
|
|
24
|
+
/** Build logger context from request and JWT data */
|
|
25
|
+
function buildLoggerContext(req) {
|
|
26
|
+
const requestContext = (0, request_context_1.extractRequestContext)(req);
|
|
27
|
+
const token = req.headers.authorization?.replace("Bearer ", "");
|
|
28
|
+
const jwtContext = token ? (0, logger_context_1.extractJwtContext)(token) : {};
|
|
29
|
+
const correlationId = requestContext.correlationId || generateServerCorrelationId();
|
|
30
|
+
return {
|
|
31
|
+
ipAddress: requestContext.ipAddress, method: requestContext.method, path: requestContext.path,
|
|
32
|
+
userId: requestContext.userId || jwtContext.userId, sessionId: requestContext.sessionId || jwtContext.sessionId,
|
|
33
|
+
applicationId: jwtContext.applicationId, userAgent: requestContext.userAgent,
|
|
34
|
+
correlationId, requestId: requestContext.requestId, token,
|
|
35
|
+
};
|
|
29
36
|
}
|
|
30
37
|
/**
|
|
31
|
-
* Express middleware to set logger context from request
|
|
32
|
-
* Extracts context from Request object and sets it in AsyncLocalStorage
|
|
33
|
-
* Context is automatically available to all code in the same async context
|
|
38
|
+
* Express middleware to set logger context from request.
|
|
39
|
+
* Extracts context from Request object and sets it in AsyncLocalStorage.
|
|
34
40
|
*
|
|
35
|
-
* ⚠️ SECURITY:
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* - Trustworthy fields (server-side): IP address, HTTP method, request path
|
|
40
|
-
* - Validated fields: userId, sessionId (extracted from server-validated JWT tokens)
|
|
41
|
-
* - Client-provided fields (for logging only): correlationId, userAgent
|
|
42
|
-
* - Correlation IDs from headers are client-provided but standard for distributed tracing
|
|
43
|
-
* - If no correlation ID provided, server generates a secure server-side ID
|
|
44
|
-
* - These fields are used for logging/tracing only, NOT for security decisions
|
|
45
|
-
*
|
|
46
|
-
* Call this early in middleware chain (after auth middleware if you need JWT context)
|
|
41
|
+
* ⚠️ SECURITY: SERVER-SIDE ONLY middleware. ISO 27001 compliant:
|
|
42
|
+
* - Trustworthy: IP, method, path (from server request)
|
|
43
|
+
* - Validated: userId, sessionId (from server-validated JWT)
|
|
44
|
+
* - Client-provided (logging only): correlationId, userAgent
|
|
47
45
|
*
|
|
48
46
|
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* import { loggerContextMiddleware } from '@aifabrix/miso-client';
|
|
51
|
-
*
|
|
52
47
|
* app.use(loggerContextMiddleware);
|
|
53
|
-
*
|
|
54
48
|
* app.get('/api/users', async (req, res) => {
|
|
55
49
|
* const logger = getLogger();
|
|
56
|
-
* await logger.info('Users list accessed'); // Auto-extracts context
|
|
50
|
+
* await logger.info('Users list accessed'); // Auto-extracts context
|
|
57
51
|
* });
|
|
58
|
-
* ```
|
|
59
52
|
*/
|
|
60
53
|
function loggerContextMiddleware(req, res, next) {
|
|
61
54
|
try {
|
|
62
|
-
|
|
63
|
-
// NOTE: IP address, method, and path come from server-side Express Request object (trustworthy)
|
|
64
|
-
const requestContext = (0, request_context_1.extractRequestContext)(req);
|
|
65
|
-
// Extract JWT context if token is available
|
|
66
|
-
// NOTE: JWT tokens are validated by server before extraction (trustworthy)
|
|
67
|
-
const token = req.headers.authorization?.replace("Bearer ", "");
|
|
68
|
-
const jwtContext = token ? (0, logger_context_1.extractJwtContext)(token) : {};
|
|
69
|
-
// ISO 27001: Generate server-side correlation ID if client doesn't provide one
|
|
70
|
-
// Client-provided correlation IDs are acceptable for distributed tracing but not for security
|
|
71
|
-
// Server-generated IDs ensure traceability without relying on client input
|
|
72
|
-
const correlationId = requestContext.correlationId || generateServerCorrelationId();
|
|
73
|
-
// Set context in AsyncLocalStorage
|
|
74
|
-
// This context will be available to all code in the same async context
|
|
75
|
-
(0, unified_logger_factory_1.setLoggerContext)({
|
|
76
|
-
// Server-trustworthy fields (from server-side Express Request)
|
|
77
|
-
ipAddress: requestContext.ipAddress, // From req.ip or req.socket.remoteAddress (server-side)
|
|
78
|
-
method: requestContext.method, // From req.method (server-side)
|
|
79
|
-
path: requestContext.path, // From req.originalUrl or req.path (server-side)
|
|
80
|
-
// Server-validated fields (from validated JWT tokens)
|
|
81
|
-
userId: requestContext.userId || jwtContext.userId, // From validated JWT token
|
|
82
|
-
sessionId: requestContext.sessionId || jwtContext.sessionId, // From validated JWT token
|
|
83
|
-
applicationId: jwtContext.applicationId, // From validated JWT token
|
|
84
|
-
// Client-provided fields (for logging/tracing only, not for security decisions)
|
|
85
|
-
userAgent: requestContext.userAgent, // From User-Agent header (client-provided, standard for logging)
|
|
86
|
-
correlationId: correlationId, // Server-generated if not provided (ISO 27001 compliant)
|
|
87
|
-
requestId: requestContext.requestId, // From x-request-id header (client-provided, for tracing)
|
|
88
|
-
// Store token for later extraction if needed (already validated by server)
|
|
89
|
-
token: token,
|
|
90
|
-
});
|
|
55
|
+
(0, unified_logger_factory_1.setLoggerContext)(buildLoggerContext(req));
|
|
91
56
|
next();
|
|
92
57
|
}
|
|
93
|
-
catch
|
|
94
|
-
// If context extraction fails, continue without context
|
|
95
|
-
// Don't break the request flow
|
|
58
|
+
catch {
|
|
96
59
|
next();
|
|
97
|
-
}
|
|
60
|
+
} // Continue without context if extraction fails
|
|
98
61
|
}
|
|
99
62
|
//# sourceMappingURL=logger-context.middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-context.middleware.js","sourceRoot":"","sources":["../../src/express/logger-context.middleware.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;
|
|
1
|
+
{"version":3,"file":"logger-context.middleware.js","sourceRoot":"","sources":["../../src/express/logger-context.middleware.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AA2CH,0DAGC;AA3CD,sFAA6E;AAC7E,8DAAiE;AACjE,sEAAsE;AAEtE,gEAAgE;AAChE,SAAS,2BAA2B;IAClC,OAAO,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,qDAAqD;AACrD,SAAS,kBAAkB,CAAC,GAAY;IACtC,MAAM,cAAc,GAAG,IAAA,uCAAqB,EAAC,GAAG,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAA,kCAAiB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG,cAAc,CAAC,aAAa,IAAI,2BAA2B,EAAE,CAAC;IAEpF,OAAO;QACL,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI;QAC7F,MAAM,EAAE,cAAc,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS;QAC/G,aAAa,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS;QAC5E,aAAa,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,uBAAuB,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IACrF,IAAI,CAAC;QAAC,IAAA,yCAAgB,EAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAC1D,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC;IAAC,CAAC,CAAC,+CAA+C;AACnE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -136,7 +136,8 @@ export * from "./types/pagination.types";
|
|
|
136
136
|
export * from "./types/filter.types";
|
|
137
137
|
export * from "./types/filter-schema.types";
|
|
138
138
|
export * from "./types/sort.types";
|
|
139
|
-
export type { ErrorResponse as ErrorResponseFromErrors, ErrorEnvelope, } from "./types/errors.types";
|
|
139
|
+
export type { ErrorResponse as ErrorResponseFromErrors, ErrorEnvelope, AuthErrorMethod, } from "./types/errors.types";
|
|
140
|
+
export { detectAuthMethodFromHeaders } from "./utils/http-error-handler";
|
|
140
141
|
export { AuthService } from "./services/auth.service";
|
|
141
142
|
export { RoleService } from "./services/role.service";
|
|
142
143
|
export { PermissionService } from "./services/permission.service";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,8 +17,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
17
17
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.
|
|
21
|
-
exports.TokenValidationService = void 0;
|
|
20
|
+
exports.autoInitializeDataClient = exports.dataClient = exports.DataClient = exports.loggerContextMiddleware = exports.hasConfig = exports.createClientTokenEndpoint = exports.sendErrorResponse = exports.getErrorTitle = exports.getErrorTypeUri = exports.handleRouteError = exports.setErrorLogger = exports.createErrorResponse = exports.createSuccessResponse = exports.AppError = exports.ValidationHelper = exports.asyncHandlerNamed = exports.asyncHandler = exports.injectResponseHelpers = exports.ResponseHelper = exports.EncryptionError = exports.EncryptionService = exports.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.extractRequestContext = exports.extractLoggingContext = exports.validateUrl = exports.isBrowser = exports.resolveKeycloakUrl = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.mergeLoggerContext = exports.clearLoggerContext = exports.setLoggerContext = exports.getLogger = exports.HttpClient = exports.CacheService = exports.RedisService = exports.LoggerService = exports.BrowserRoleService = exports.BrowserPermissionService = exports.PermissionService = exports.RoleService = exports.AuthService = exports.detectAuthMethodFromHeaders = exports.MisoClient = void 0;
|
|
21
|
+
exports.TokenValidationService = exports.getCachedDataClientConfig = void 0;
|
|
22
22
|
const auth_service_1 = require("./services/auth.service");
|
|
23
23
|
const role_service_1 = require("./services/role.service");
|
|
24
24
|
const permission_service_1 = require("./services/permission.service");
|
|
@@ -285,6 +285,9 @@ __exportStar(require("./types/pagination.types"), exports);
|
|
|
285
285
|
__exportStar(require("./types/filter.types"), exports);
|
|
286
286
|
__exportStar(require("./types/filter-schema.types"), exports);
|
|
287
287
|
__exportStar(require("./types/sort.types"), exports);
|
|
288
|
+
// Export detectAuthMethodFromHeaders helper for advanced usage
|
|
289
|
+
var http_error_handler_1 = require("./utils/http-error-handler");
|
|
290
|
+
Object.defineProperty(exports, "detectAuthMethodFromHeaders", { enumerable: true, get: function () { return http_error_handler_1.detectAuthMethodFromHeaders; } });
|
|
288
291
|
// Export services for advanced usage
|
|
289
292
|
var auth_service_2 = require("./services/auth.service");
|
|
290
293
|
Object.defineProperty(exports, "AuthService", { enumerable: true, get: function () { return auth_service_2.AuthService; } });
|