@aifabrix/miso-client 1.6.0 → 1.7.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/README.md +20 -1
- package/dist/examples/event-emission-mode.example.d.ts +14 -0
- package/dist/examples/event-emission-mode.example.d.ts.map +1 -0
- package/dist/examples/event-emission-mode.example.js +121 -0
- package/dist/examples/event-emission-mode.example.js.map +1 -0
- package/dist/src/services/logger.service.d.ts +2 -1
- package/dist/src/services/logger.service.d.ts.map +1 -1
- package/dist/src/services/logger.service.js +11 -2
- package/dist/src/services/logger.service.js.map +1 -1
- package/dist/src/types/config.types.d.ts +1 -0
- package/dist/src/types/config.types.d.ts.map +1 -1
- package/dist/src/types/config.types.js.map +1 -1
- package/dist/src/utils/audit-log-queue.d.ts +3 -1
- package/dist/src/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/src/utils/audit-log-queue.js +13 -4
- package/dist/src/utils/audit-log-queue.js.map +1 -1
- package/dist/src/utils/config-loader.d.ts.map +1 -1
- package/dist/src/utils/config-loader.js +4 -0
- package/dist/src/utils/config-loader.js.map +1 -1
- package/dist/src/utils/http-client-audit.d.ts +22 -0
- package/dist/src/utils/http-client-audit.d.ts.map +1 -0
- package/dist/src/utils/http-client-audit.js +179 -0
- package/dist/src/utils/http-client-audit.js.map +1 -0
- package/dist/src/utils/http-client-masking.d.ts +72 -0
- package/dist/src/utils/http-client-masking.d.ts.map +1 -0
- package/dist/src/utils/http-client-masking.js +196 -0
- package/dist/src/utils/http-client-masking.js.map +1 -0
- package/dist/src/utils/http-client-metadata.d.ts +40 -0
- package/dist/src/utils/http-client-metadata.d.ts.map +1 -0
- package/dist/src/utils/http-client-metadata.js +95 -0
- package/dist/src/utils/http-client-metadata.js.map +1 -0
- package/dist/src/utils/http-client.d.ts +0 -14
- package/dist/src/utils/http-client.d.ts.map +1 -1
- package/dist/src/utils/http-client.js +4 -272
- package/dist/src/utils/http-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
* Public HTTP client with automatic audit and debug logging
|
|
4
4
|
* Wraps InternalHttpClient and adds ISO 27001 compliant logging
|
|
5
5
|
*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
7
|
exports.HttpClient = void 0;
|
|
11
8
|
const internal_http_client_1 = require("./internal-http-client");
|
|
12
9
|
const data_masker_1 = require("./data-masker");
|
|
13
|
-
const
|
|
10
|
+
const http_client_metadata_1 = require("./http-client-metadata");
|
|
11
|
+
const http_client_audit_1 = require("./http-client-audit");
|
|
14
12
|
class HttpClient {
|
|
15
13
|
constructor(config, logger) {
|
|
16
14
|
this.config = config;
|
|
@@ -88,87 +86,6 @@ class HttpClient {
|
|
|
88
86
|
}
|
|
89
87
|
return true;
|
|
90
88
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Extract user ID from JWT token
|
|
93
|
-
*/
|
|
94
|
-
extractUserIdFromToken(authHeader) {
|
|
95
|
-
if (!authHeader || !authHeader.startsWith('Bearer ')) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
const token = authHeader.substring(7);
|
|
99
|
-
try {
|
|
100
|
-
const decoded = jsonwebtoken_1.default.decode(token);
|
|
101
|
-
if (!decoded)
|
|
102
|
-
return null;
|
|
103
|
-
return (decoded.sub || decoded.userId || decoded.user_id || decoded.id);
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
return null;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Quick size estimation without full JSON.stringify
|
|
111
|
-
* Uses property count and string length for fast estimation
|
|
112
|
-
*/
|
|
113
|
-
estimateObjectSize(obj) {
|
|
114
|
-
if (obj === null || obj === undefined) {
|
|
115
|
-
return 0;
|
|
116
|
-
}
|
|
117
|
-
if (typeof obj === 'string') {
|
|
118
|
-
return obj.length;
|
|
119
|
-
}
|
|
120
|
-
if (typeof obj !== 'object') {
|
|
121
|
-
return 10; // Estimate for primitives
|
|
122
|
-
}
|
|
123
|
-
if (Array.isArray(obj)) {
|
|
124
|
-
// Estimate based on array length and first few items
|
|
125
|
-
const length = obj.length;
|
|
126
|
-
if (length === 0)
|
|
127
|
-
return 10;
|
|
128
|
-
// Sample first few items for estimation
|
|
129
|
-
const sampleSize = Math.min(3, length);
|
|
130
|
-
let estimatedItemSize = 0;
|
|
131
|
-
for (let i = 0; i < sampleSize; i++) {
|
|
132
|
-
estimatedItemSize += this.estimateObjectSize(obj[i]);
|
|
133
|
-
}
|
|
134
|
-
const avgItemSize = sampleSize > 0 ? estimatedItemSize / sampleSize : 100;
|
|
135
|
-
return length * avgItemSize;
|
|
136
|
-
}
|
|
137
|
-
// Object: estimate based on property count and values
|
|
138
|
-
const entries = Object.entries(obj);
|
|
139
|
-
let size = 0;
|
|
140
|
-
for (const [key, value] of entries) {
|
|
141
|
-
size += key.length + this.estimateObjectSize(value);
|
|
142
|
-
}
|
|
143
|
-
return size;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Truncate response body to reduce processing cost
|
|
147
|
-
* Returns truncated body with flag indicating truncation
|
|
148
|
-
*/
|
|
149
|
-
truncateResponseBody(body, maxSize = 10000) {
|
|
150
|
-
if (body === null || body === undefined) {
|
|
151
|
-
return { data: body, truncated: false };
|
|
152
|
-
}
|
|
153
|
-
// For strings, truncate directly
|
|
154
|
-
if (typeof body === 'string') {
|
|
155
|
-
if (body.length <= maxSize) {
|
|
156
|
-
return { data: body, truncated: false };
|
|
157
|
-
}
|
|
158
|
-
return { data: body.substring(0, maxSize) + '...', truncated: true };
|
|
159
|
-
}
|
|
160
|
-
// For objects/arrays, estimate size first
|
|
161
|
-
const estimatedSize = this.estimateObjectSize(body);
|
|
162
|
-
if (estimatedSize <= maxSize) {
|
|
163
|
-
return { data: body, truncated: false };
|
|
164
|
-
}
|
|
165
|
-
// If estimated size is too large, return placeholder
|
|
166
|
-
// Full body only processed in debug mode
|
|
167
|
-
return {
|
|
168
|
-
data: { _message: 'Response body too large, truncated for performance', _estimatedSize: estimatedSize },
|
|
169
|
-
truncated: true
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
89
|
/**
|
|
173
90
|
* Log HTTP request audit event
|
|
174
91
|
* Masks all sensitive data before logging (ISO 27001 compliance)
|
|
@@ -176,193 +93,8 @@ class HttpClient {
|
|
|
176
93
|
*/
|
|
177
94
|
async logHttpRequestAudit(response, error) {
|
|
178
95
|
try {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if (!config) {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
const metadata = config.metadata;
|
|
185
|
-
if (!metadata) {
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
// Get audit configuration with defaults
|
|
189
|
-
const auditConfig = this.config.audit || {};
|
|
190
|
-
const auditLevel = auditConfig.level || 'detailed';
|
|
191
|
-
const maxResponseSize = auditConfig.maxResponseSize ?? 10000;
|
|
192
|
-
const maxMaskingSize = auditConfig.maxMaskingSize ?? 50000;
|
|
193
|
-
const isDebugMode = this.config.logLevel === 'debug';
|
|
194
|
-
const duration = Date.now() - metadata.startTime;
|
|
195
|
-
const method = metadata.method || 'UNKNOWN';
|
|
196
|
-
const url = metadata.url || '';
|
|
197
|
-
const baseURL = metadata.baseURL || this.config.controllerUrl;
|
|
198
|
-
const fullUrl = `${baseURL}${url}`;
|
|
199
|
-
const statusCode = response?.status || error?.response?.status || 0;
|
|
200
|
-
const authHeader = config.headers?.authorization;
|
|
201
|
-
const userId = this.extractUserIdFromToken(authHeader);
|
|
202
|
-
// Extract request/response data
|
|
203
|
-
const requestHeaders = config.headers || {};
|
|
204
|
-
const requestBody = config.data || error?.config?.data;
|
|
205
|
-
const responseBody = response?.data || error?.response?.data;
|
|
206
|
-
const responseHeaders = response?.headers || error?.response?.headers || {};
|
|
207
|
-
// Minimal audit level: Only metadata, no masking, no sizes
|
|
208
|
-
if (auditLevel === 'minimal') {
|
|
209
|
-
await this.logger.audit(`http.request.${method}`, url, {
|
|
210
|
-
method,
|
|
211
|
-
url: fullUrl,
|
|
212
|
-
statusCode,
|
|
213
|
-
duration,
|
|
214
|
-
userId: userId || undefined,
|
|
215
|
-
error: error?.message || undefined
|
|
216
|
-
}, {
|
|
217
|
-
token: userId ? undefined : authHeader?.replace('Bearer ', '')
|
|
218
|
-
});
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
// Estimate sizes for routing decisions
|
|
222
|
-
const estimatedRequestSize = requestBody ? this.estimateObjectSize(requestBody) : 0;
|
|
223
|
-
const estimatedResponseSize = responseBody ? this.estimateObjectSize(responseBody) : 0;
|
|
224
|
-
// Fast path for small requests (< 1KB) - minimal masking
|
|
225
|
-
const isSmallRequest = estimatedRequestSize < 1024 && estimatedResponseSize < 1024;
|
|
226
|
-
// Metadata-only path for large requests (> maxMaskingSize)
|
|
227
|
-
const isLargeRequest = estimatedRequestSize > maxMaskingSize || estimatedResponseSize > maxMaskingSize;
|
|
228
|
-
// Truncate response body before masking (performance optimization)
|
|
229
|
-
const { data: truncatedResponseBody, truncated: responseTruncated } = this.truncateResponseBody(responseBody, maxResponseSize);
|
|
230
|
-
// Truncate request body if needed
|
|
231
|
-
const { data: truncatedRequestBody, truncated: requestTruncated } = requestBody && this.estimateObjectSize(requestBody) > maxResponseSize
|
|
232
|
-
? this.truncateResponseBody(requestBody, maxResponseSize)
|
|
233
|
-
: { data: requestBody, truncated: false };
|
|
234
|
-
// Masking strategy based on size and audit level
|
|
235
|
-
let maskedHeaders;
|
|
236
|
-
let maskedRequestBody;
|
|
237
|
-
let maskedResponseBody;
|
|
238
|
-
let maskedResponseHeaders;
|
|
239
|
-
if (auditLevel === 'standard') {
|
|
240
|
-
// Standard level: Light masking (headers only, skip body masking for large objects)
|
|
241
|
-
maskedHeaders = data_masker_1.DataMasker.maskSensitiveData(requestHeaders);
|
|
242
|
-
maskedResponseHeaders = data_masker_1.DataMasker.maskSensitiveData(responseHeaders);
|
|
243
|
-
if (isSmallRequest) {
|
|
244
|
-
maskedRequestBody = data_masker_1.DataMasker.maskSensitiveData(truncatedRequestBody);
|
|
245
|
-
maskedResponseBody = data_masker_1.DataMasker.maskSensitiveData(truncatedResponseBody);
|
|
246
|
-
}
|
|
247
|
-
else if (isLargeRequest) {
|
|
248
|
-
maskedRequestBody = { _message: 'Request body too large, masking skipped' };
|
|
249
|
-
maskedResponseBody = { _message: 'Response body too large, masking skipped' };
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
maskedRequestBody = data_masker_1.DataMasker.maskSensitiveData(truncatedRequestBody);
|
|
253
|
-
maskedResponseBody = data_masker_1.DataMasker.maskSensitiveData(truncatedResponseBody);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
else {
|
|
257
|
-
// Detailed/Full level: Full masking with parallelization
|
|
258
|
-
if (isLargeRequest) {
|
|
259
|
-
// Skip masking for very large objects
|
|
260
|
-
maskedHeaders = requestHeaders;
|
|
261
|
-
maskedResponseHeaders = responseHeaders;
|
|
262
|
-
maskedRequestBody = { _message: 'Request body too large, masking skipped' };
|
|
263
|
-
maskedResponseBody = { _message: 'Response body too large, masking skipped' };
|
|
264
|
-
}
|
|
265
|
-
else if (isSmallRequest) {
|
|
266
|
-
// Fast path: sequential masking (small objects, no benefit from parallelization)
|
|
267
|
-
maskedHeaders = data_masker_1.DataMasker.maskSensitiveData(requestHeaders);
|
|
268
|
-
maskedRequestBody = data_masker_1.DataMasker.maskSensitiveData(truncatedRequestBody);
|
|
269
|
-
maskedResponseBody = data_masker_1.DataMasker.maskSensitiveData(truncatedResponseBody);
|
|
270
|
-
maskedResponseHeaders = data_masker_1.DataMasker.maskSensitiveData(responseHeaders);
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
// Parallelize masking for medium-sized objects
|
|
274
|
-
const [maskedHeadersResult, maskedRequestBodyResult, maskedResponseBodyResult, maskedResponseHeadersResult] = await Promise.all([
|
|
275
|
-
Promise.resolve(data_masker_1.DataMasker.maskSensitiveData(requestHeaders)),
|
|
276
|
-
Promise.resolve(data_masker_1.DataMasker.maskSensitiveData(truncatedRequestBody)),
|
|
277
|
-
Promise.resolve(data_masker_1.DataMasker.maskSensitiveData(truncatedResponseBody)),
|
|
278
|
-
Promise.resolve(data_masker_1.DataMasker.maskSensitiveData(responseHeaders))
|
|
279
|
-
]);
|
|
280
|
-
maskedHeaders = maskedHeadersResult;
|
|
281
|
-
maskedRequestBody = maskedRequestBodyResult;
|
|
282
|
-
maskedResponseBody = maskedResponseBodyResult;
|
|
283
|
-
maskedResponseHeaders = maskedResponseHeadersResult;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
// Calculate sizes efficiently (only for detailed/full levels)
|
|
287
|
-
let requestSize;
|
|
288
|
-
let responseSize;
|
|
289
|
-
if (auditLevel === 'detailed' || auditLevel === 'full') {
|
|
290
|
-
// Reuse stringified results if available, otherwise calculate
|
|
291
|
-
let requestStr;
|
|
292
|
-
let responseStr;
|
|
293
|
-
if (requestBody) {
|
|
294
|
-
requestStr = JSON.stringify(requestBody);
|
|
295
|
-
const calculatedSize = Buffer.byteLength(requestStr);
|
|
296
|
-
// Treat empty objects/arrays as size 0 (they serialize to "{}" or "[]")
|
|
297
|
-
requestSize = calculatedSize <= 2 ? 0 : calculatedSize;
|
|
298
|
-
}
|
|
299
|
-
if (responseBody) {
|
|
300
|
-
responseStr = JSON.stringify(responseBody);
|
|
301
|
-
const calculatedSize = Buffer.byteLength(responseStr);
|
|
302
|
-
// Treat empty objects/arrays as size 0 (they serialize to "{}" or "[]")
|
|
303
|
-
responseSize = calculatedSize <= 2 ? 0 : calculatedSize;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
// Build audit context
|
|
307
|
-
const auditContext = {
|
|
308
|
-
method,
|
|
309
|
-
url: fullUrl,
|
|
310
|
-
statusCode,
|
|
311
|
-
duration,
|
|
312
|
-
userId: userId || undefined,
|
|
313
|
-
error: error?.message || undefined
|
|
314
|
-
};
|
|
315
|
-
// Add sizes only for detailed/full levels
|
|
316
|
-
if (auditLevel === 'detailed' || auditLevel === 'full') {
|
|
317
|
-
// Include size field even if 0 (as undefined) for consistency with old behavior
|
|
318
|
-
auditContext.requestSize = requestSize !== undefined && requestSize > 0 ? requestSize : undefined;
|
|
319
|
-
auditContext.responseSize = responseSize !== undefined && responseSize > 0 ? responseSize : undefined;
|
|
320
|
-
if (requestTruncated) {
|
|
321
|
-
auditContext.requestTruncated = true;
|
|
322
|
-
}
|
|
323
|
-
if (responseTruncated) {
|
|
324
|
-
auditContext.responseTruncated = true;
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
// Audit log - always log
|
|
328
|
-
await this.logger.audit(`http.request.${method}`, url, auditContext, {
|
|
329
|
-
token: userId ? undefined : authHeader?.replace('Bearer ', '')
|
|
330
|
-
});
|
|
331
|
-
// Debug log - only if debug mode enabled
|
|
332
|
-
// Note: auditLevel cannot be 'minimal' here due to early return above
|
|
333
|
-
if (isDebugMode) {
|
|
334
|
-
// Limit response body size for debug logs
|
|
335
|
-
let responseBodySnippet = maskedResponseBody;
|
|
336
|
-
if (maskedResponseBody && typeof maskedResponseBody === 'object') {
|
|
337
|
-
const responseStr = JSON.stringify(maskedResponseBody);
|
|
338
|
-
if (responseStr.length > 1000) {
|
|
339
|
-
try {
|
|
340
|
-
responseBodySnippet = JSON.parse(responseStr.substring(0, 1000) + '...');
|
|
341
|
-
}
|
|
342
|
-
catch {
|
|
343
|
-
responseBodySnippet = { _message: 'Response body truncated' };
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
await this.logger.debug(`HTTP ${method} ${url}`, {
|
|
348
|
-
method,
|
|
349
|
-
url: fullUrl,
|
|
350
|
-
baseURL,
|
|
351
|
-
statusCode,
|
|
352
|
-
duration,
|
|
353
|
-
userId: userId || undefined,
|
|
354
|
-
timeout: config.timeout || 30000,
|
|
355
|
-
requestHeaders: maskedHeaders,
|
|
356
|
-
responseHeaders: maskedResponseHeaders,
|
|
357
|
-
requestBody: maskedRequestBody,
|
|
358
|
-
responseBody: responseBodySnippet,
|
|
359
|
-
requestSize: requestSize !== undefined && requestSize > 0 ? requestSize : undefined,
|
|
360
|
-
responseSize: responseSize !== undefined && responseSize > 0 ? responseSize : undefined,
|
|
361
|
-
error: error?.message || undefined
|
|
362
|
-
}, {
|
|
363
|
-
token: userId ? undefined : authHeader?.replace('Bearer ', '')
|
|
364
|
-
});
|
|
365
|
-
}
|
|
96
|
+
const metadata = (0, http_client_metadata_1.extractRequestMetadata)(response, error, this.config);
|
|
97
|
+
await (0, http_client_audit_1.logHttpRequestAudit)(metadata, error, this.config, this.logger);
|
|
366
98
|
}
|
|
367
99
|
catch {
|
|
368
100
|
// Silently swallow all logging errors - never break HTTP requests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../src/utils/http-client.ts"],"names":[],"mappings":"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"}
|