@aifabrix/miso-client 4.4.2 → 4.4.3
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 +18 -0
- package/README.md +20 -38
- package/dist/api/auth-token.api.d.ts.map +1 -1
- package/dist/api/auth-token.api.js +45 -48
- package/dist/api/auth-token.api.js.map +1 -1
- package/dist/api/logs-create.api.d.ts.map +1 -1
- package/dist/api/logs-create.api.js +37 -50
- package/dist/api/logs-create.api.js.map +1 -1
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +88 -82
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/express/error-handler.d.ts.map +1 -1
- package/dist/express/error-handler.js +15 -7
- package/dist/express/error-handler.js.map +1 -1
- package/dist/express/error-types.d.ts +8 -1
- package/dist/express/error-types.d.ts.map +1 -1
- package/dist/express/error-types.js +11 -5
- package/dist/express/error-types.js.map +1 -1
- package/dist/express/index.d.ts +1 -1
- package/dist/express/index.d.ts.map +1 -1
- package/dist/express/response-helper.d.ts.map +1 -1
- package/dist/express/response-helper.js +4 -1
- package/dist/express/response-helper.js.map +1 -1
- package/dist/express/validation-helper.d.ts +1 -1
- package/dist/express/validation-helper.d.ts.map +1 -1
- package/dist/express/validation-helper.js +8 -10
- package/dist/express/validation-helper.js.map +1 -1
- package/dist/index.d.ts +3 -354
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -542
- package/dist/index.js.map +1 -1
- package/dist/miso-client.d.ts +82 -0
- package/dist/miso-client.d.ts.map +1 -0
- package/dist/miso-client.js +187 -0
- package/dist/miso-client.js.map +1 -0
- package/dist/sdk-exports.d.ts +56 -0
- package/dist/sdk-exports.d.ts.map +1 -0
- package/dist/sdk-exports.js +105 -0
- package/dist/sdk-exports.js.map +1 -0
- package/dist/services/application-context.service.d.ts +9 -1
- package/dist/services/application-context.service.d.ts.map +1 -1
- package/dist/services/application-context.service.js +46 -60
- package/dist/services/application-context.service.js.map +1 -1
- package/dist/services/auth-cache-helpers.d.ts.map +1 -1
- package/dist/services/auth-cache-helpers.js +4 -6
- package/dist/services/auth-cache-helpers.js.map +1 -1
- package/dist/services/auth-error-handler.d.ts.map +1 -1
- package/dist/services/auth-error-handler.js +12 -1
- package/dist/services/auth-error-handler.js.map +1 -1
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +9 -13
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/browser-permission.service.d.ts +4 -4
- package/dist/services/browser-permission.service.d.ts.map +1 -1
- package/dist/services/browser-permission.service.js +35 -80
- package/dist/services/browser-permission.service.js.map +1 -1
- package/dist/services/browser-role.service.d.ts +4 -4
- package/dist/services/browser-role.service.d.ts.map +1 -1
- package/dist/services/browser-role.service.js +40 -96
- package/dist/services/browser-role.service.js.map +1 -1
- package/dist/services/cache.service.d.ts +1 -0
- package/dist/services/cache.service.d.ts.map +1 -1
- package/dist/services/cache.service.js +19 -32
- package/dist/services/cache.service.js.map +1 -1
- package/dist/services/logger/logger-context.d.ts +17 -17
- package/dist/services/logger/logger-context.d.ts.map +1 -1
- package/dist/services/logger/logger-context.js +7 -17
- package/dist/services/logger/logger-context.js.map +1 -1
- package/dist/services/logger/logger-http-utils.d.ts +9 -0
- package/dist/services/logger/logger-http-utils.d.ts.map +1 -0
- package/dist/services/logger/logger-http-utils.js +45 -0
- package/dist/services/logger/logger-http-utils.js.map +1 -0
- package/dist/services/logger/logger.service.d.ts +1 -4
- package/dist/services/logger/logger.service.d.ts.map +1 -1
- package/dist/services/logger/logger.service.js +61 -77
- package/dist/services/logger/logger.service.js.map +1 -1
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +17 -30
- package/dist/services/permission.service.js.map +1 -1
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +12 -20
- package/dist/services/role.service.js.map +1 -1
- package/dist/services/token-validation.service.js +1 -3
- package/dist/services/token-validation.service.js.map +1 -1
- package/dist/types/config.types.d.ts +1 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js.map +1 -1
- package/dist/utils/audit-log-queue.d.ts +3 -0
- package/dist/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/utils/audit-log-queue.js +47 -66
- package/dist/utils/audit-log-queue.js.map +1 -1
- package/dist/utils/client-token-manager.d.ts +0 -7
- package/dist/utils/client-token-manager.d.ts.map +1 -1
- package/dist/utils/client-token-manager.js +40 -46
- package/dist/utils/client-token-manager.js.map +1 -1
- package/dist/utils/config-loader.d.ts +0 -5
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +14 -11
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/console-logger.d.ts +4 -0
- package/dist/utils/console-logger.d.ts.map +1 -1
- package/dist/utils/console-logger.js +21 -5
- package/dist/utils/console-logger.js.map +1 -1
- package/dist/utils/data-client-audit.d.ts +19 -1
- package/dist/utils/data-client-audit.d.ts.map +1 -1
- package/dist/utils/data-client-audit.js +87 -117
- package/dist/utils/data-client-audit.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +139 -95
- package/dist/utils/data-client-auth.js.map +1 -1
- package/dist/utils/data-client-auto-init.d.ts.map +1 -1
- package/dist/utils/data-client-auto-init.js +57 -72
- package/dist/utils/data-client-auto-init.js.map +1 -1
- package/dist/utils/data-client-init.d.ts.map +1 -1
- package/dist/utils/data-client-init.js +3 -3
- package/dist/utils/data-client-init.js.map +1 -1
- package/dist/utils/data-client-oauth.d.ts.map +1 -1
- package/dist/utils/data-client-oauth.js +84 -60
- package/dist/utils/data-client-oauth.js.map +1 -1
- package/dist/utils/data-client-redirect.d.ts.map +1 -1
- package/dist/utils/data-client-redirect.js +75 -98
- package/dist/utils/data-client-redirect.js.map +1 -1
- package/dist/utils/data-client-request.d.ts +24 -5
- package/dist/utils/data-client-request.d.ts.map +1 -1
- package/dist/utils/data-client-request.js +80 -42
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client-response.d.ts +63 -15
- package/dist/utils/data-client-response.d.ts.map +1 -1
- package/dist/utils/data-client-response.js +89 -33
- package/dist/utils/data-client-response.js.map +1 -1
- package/dist/utils/data-client.d.ts +4 -0
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +57 -30
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/environment-token.d.ts.map +1 -1
- package/dist/utils/environment-token.js +49 -59
- package/dist/utils/environment-token.js.map +1 -1
- package/dist/utils/error-extractor.d.ts.map +1 -1
- package/dist/utils/error-extractor.js +56 -79
- package/dist/utils/error-extractor.js.map +1 -1
- package/dist/utils/filter-colon.utils.d.ts.map +1 -1
- package/dist/utils/filter-colon.utils.js +34 -45
- package/dist/utils/filter-colon.utils.js.map +1 -1
- package/dist/utils/filter-schema-loader.d.ts +12 -0
- package/dist/utils/filter-schema-loader.d.ts.map +1 -0
- package/dist/utils/filter-schema-loader.js +69 -0
- package/dist/utils/filter-schema-loader.js.map +1 -0
- package/dist/utils/filter-schema.utils.d.ts +1 -14
- package/dist/utils/filter-schema.utils.d.ts.map +1 -1
- package/dist/utils/filter-schema.utils.js +78 -136
- package/dist/utils/filter-schema.utils.js.map +1 -1
- package/dist/utils/filter.utils.d.ts.map +1 -1
- package/dist/utils/filter.utils.js +38 -36
- package/dist/utils/filter.utils.js.map +1 -1
- package/dist/utils/http-client-audit.d.ts.map +1 -1
- package/dist/utils/http-client-audit.js +3 -12
- package/dist/utils/http-client-audit.js.map +1 -1
- package/dist/utils/http-client-masking.d.ts +13 -2
- package/dist/utils/http-client-masking.d.ts.map +1 -1
- package/dist/utils/http-client-masking.js +27 -27
- package/dist/utils/http-client-masking.js.map +1 -1
- package/dist/utils/http-response-validator.d.ts.map +1 -1
- package/dist/utils/http-response-validator.js +8 -3
- package/dist/utils/http-response-validator.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +5 -3
- package/dist/utils/internal-http-client.js.map +1 -1
- package/dist/utils/response-validator.d.ts.map +1 -1
- package/dist/utils/response-validator.js +29 -44
- package/dist/utils/response-validator.js.map +1 -1
- package/dist/utils/sensitive-fields.loader.d.ts +0 -7
- package/dist/utils/sensitive-fields.loader.d.ts.map +1 -1
- package/dist/utils/sensitive-fields.loader.js +68 -114
- package/dist/utils/sensitive-fields.loader.js.map +1 -1
- package/dist/utils/token-utils.d.ts.map +1 -1
- package/dist/utils/token-utils.js +28 -37
- package/dist/utils/token-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -65,93 +65,74 @@ class AuditLogQueue {
|
|
|
65
65
|
* @param _sync - Reserved for future use (wait for flush to complete for shutdown)
|
|
66
66
|
*/
|
|
67
67
|
async flush(_sync = false) {
|
|
68
|
-
if (this.isFlushing) {
|
|
68
|
+
if (this.isFlushing || this.queue.length === 0) {
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
|
-
// Clear flush timer
|
|
72
71
|
if (this.flushTimer) {
|
|
73
72
|
clearTimeout(this.flushTimer);
|
|
74
73
|
this.flushTimer = null;
|
|
75
74
|
}
|
|
76
|
-
if (this.queue.length === 0) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
75
|
this.isFlushing = true;
|
|
80
76
|
try {
|
|
81
|
-
const entries = this.queue.splice(0);
|
|
77
|
+
const entries = this.queue.splice(0);
|
|
82
78
|
if (entries.length === 0) {
|
|
83
|
-
this.isFlushing = false;
|
|
84
79
|
return;
|
|
85
80
|
}
|
|
86
81
|
const logEntries = entries.map((e) => e.entry);
|
|
87
|
-
|
|
88
|
-
if (this.config.emitEvents && this.eventEmitter) {
|
|
89
|
-
// Emit batch event - same payload structure as REST API
|
|
90
|
-
this.eventEmitter.emit("log:batch", logEntries);
|
|
91
|
-
this.isFlushing = false;
|
|
82
|
+
if (await this.flushToEvents(logEntries))
|
|
92
83
|
return;
|
|
93
|
-
|
|
94
|
-
// Try Redis first (if available)
|
|
95
|
-
if (this.redis.isConnected()) {
|
|
96
|
-
const queueName = `audit-logs:${this.config.clientId}`;
|
|
97
|
-
const success = await this.redis.rpush(queueName, JSON.stringify(logEntries));
|
|
98
|
-
if (success) {
|
|
99
|
-
this.isFlushing = false;
|
|
100
|
-
return; // Successfully queued in Redis
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
// Check circuit breaker - skip HTTP logging if we've had too many failures
|
|
104
|
-
const now = Date.now();
|
|
105
|
-
if (this.httpLoggingDisabledUntil && now < this.httpLoggingDisabledUntil) {
|
|
106
|
-
// Circuit breaker is open - skip HTTP logging attempt
|
|
84
|
+
if (await this.flushToRedis(logEntries))
|
|
107
85
|
return;
|
|
108
|
-
|
|
109
|
-
// Fallback to HTTP batch endpoint
|
|
110
|
-
try {
|
|
111
|
-
// Use ApiClient if available, otherwise fallback to HttpClient
|
|
112
|
-
if (this.apiClient) {
|
|
113
|
-
await this.apiClient.logs.createBatchLogs({
|
|
114
|
-
logs: logEntries.map((e) => ({
|
|
115
|
-
...e,
|
|
116
|
-
// Remove fields that backend extracts from credentials
|
|
117
|
-
environment: undefined,
|
|
118
|
-
application: undefined,
|
|
119
|
-
})),
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
// Fallback to HttpClient (shouldn't happen after initialization)
|
|
124
|
-
await this.httpClient.request("POST", "/api/v1/logs/batch", {
|
|
125
|
-
logs: logEntries.map((e) => ({
|
|
126
|
-
...e,
|
|
127
|
-
// Remove fields that backend extracts from credentials
|
|
128
|
-
environment: undefined,
|
|
129
|
-
application: undefined,
|
|
130
|
-
})),
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
// Success - reset failure counter
|
|
134
|
-
this.httpLoggingFailures = 0;
|
|
135
|
-
this.httpLoggingDisabledUntil = null;
|
|
136
|
-
}
|
|
137
|
-
catch (error) {
|
|
138
|
-
// Failed to send logs - increment failure counter and open circuit breaker
|
|
139
|
-
this.httpLoggingFailures++;
|
|
140
|
-
if (this.httpLoggingFailures >= AuditLogQueue.MAX_FAILURES) {
|
|
141
|
-
// Open circuit breaker - disable HTTP logging for a period
|
|
142
|
-
this.httpLoggingDisabledUntil = now + AuditLogQueue.DISABLE_DURATION_MS;
|
|
143
|
-
this.httpLoggingFailures = 0; // Reset counter for next attempt after cooldown
|
|
144
|
-
}
|
|
145
|
-
// Silently fail to avoid infinite loops
|
|
146
|
-
}
|
|
86
|
+
await this.flushToHttp(logEntries);
|
|
147
87
|
}
|
|
148
|
-
catch
|
|
88
|
+
catch {
|
|
149
89
|
// Silently swallow errors - never break logging
|
|
150
90
|
}
|
|
151
91
|
finally {
|
|
152
92
|
this.isFlushing = false;
|
|
153
93
|
}
|
|
154
94
|
}
|
|
95
|
+
async flushToEvents(logEntries) {
|
|
96
|
+
if (!this.config.emitEvents || !this.eventEmitter)
|
|
97
|
+
return false;
|
|
98
|
+
this.eventEmitter.emit("log:batch", logEntries);
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
async flushToRedis(logEntries) {
|
|
102
|
+
if (!this.redis.isConnected())
|
|
103
|
+
return false;
|
|
104
|
+
const queueName = `audit-logs:${this.config.clientId}`;
|
|
105
|
+
const success = await this.redis.rpush(queueName, JSON.stringify(logEntries));
|
|
106
|
+
return success;
|
|
107
|
+
}
|
|
108
|
+
async flushToHttp(logEntries) {
|
|
109
|
+
const now = Date.now();
|
|
110
|
+
if (this.httpLoggingDisabledUntil && now < this.httpLoggingDisabledUntil) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const sanitizedLogs = logEntries.map((e) => ({
|
|
114
|
+
...e,
|
|
115
|
+
environment: undefined,
|
|
116
|
+
application: undefined,
|
|
117
|
+
}));
|
|
118
|
+
try {
|
|
119
|
+
if (this.apiClient) {
|
|
120
|
+
await this.apiClient.logs.createBatchLogs({ logs: sanitizedLogs });
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
await this.httpClient.request("POST", "/api/v1/logs/batch", { logs: sanitizedLogs });
|
|
124
|
+
}
|
|
125
|
+
this.httpLoggingFailures = 0;
|
|
126
|
+
this.httpLoggingDisabledUntil = null;
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
this.httpLoggingFailures++;
|
|
130
|
+
if (this.httpLoggingFailures >= AuditLogQueue.MAX_FAILURES) {
|
|
131
|
+
this.httpLoggingDisabledUntil = now + AuditLogQueue.DISABLE_DURATION_MS;
|
|
132
|
+
this.httpLoggingFailures = 0;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
155
136
|
/**
|
|
156
137
|
* Get current queue size
|
|
157
138
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log-queue.js","sourceRoot":"","sources":["../../src/utils/audit-log-queue.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAaH,MAAa,aAAa;IAiBxB,YACE,UAAsB,EACtB,KAAmB,EACnB,MAAwB,EACxB,YAA2B;QApBrB,UAAK,GAAqB,EAAE,CAAC;QAC7B,eAAU,GAAyC,IAAI,CAAC;QAOxD,eAAU,GAAG,KAAK,CAAC;QAE3B,2EAA2E;QACnE,wBAAmB,GAAG,CAAC,CAAC;QACxB,6BAAwB,GAAkB,IAAI,CAAC;QAUrD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,IAAI,GAAG,CAAC;QAEtD,iDAAiD;QACjD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,SAAoB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,KAAe;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,KAAK;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;oBAC3B,gCAAgC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBACnE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,QAAiB,KAAK;QAChC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"audit-log-queue.js","sourceRoot":"","sources":["../../src/utils/audit-log-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,13 +42,6 @@ export declare function extractTokenFromResponse(response: {
|
|
|
42
42
|
* @returns MisoClientError with structured error response and authMethod
|
|
43
43
|
*/
|
|
44
44
|
export declare function formatTokenFetchError(error: unknown, correlationId: string, clientId: string): MisoClientError;
|
|
45
|
-
/**
|
|
46
|
-
* Fetch client token from controller using clientSecret (server-side only)
|
|
47
|
-
* @param config - MisoClient configuration
|
|
48
|
-
* @param tokenState - Token state to update
|
|
49
|
-
* @returns Fetched token string
|
|
50
|
-
* @throws MisoClientError if fetch fails
|
|
51
|
-
*/
|
|
52
45
|
export declare function fetchClientToken(config: MisoClientConfig, tokenState: TokenState): Promise<string>;
|
|
53
46
|
/**
|
|
54
47
|
* Refresh client token using callback (for browser usage)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-token-manager.d.ts","sourceRoot":"","sources":["../../src/utils/client-token-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,KAAK,CAAC,CAItG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvD,UAAU,EAAE,UAAU,GACrB,MAAM,GAAG,IAAI,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,eAAe,CA0BjB;
|
|
1
|
+
{"version":3,"file":"client-token-manager.d.ts","sourceRoot":"","sources":["../../src/utils/client-token-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,MAAM,EAAE,KAAK,CAAC,CAItG;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvD,UAAU,EAAE,UAAU,GACrB,MAAM,GAAG,IAAI,CAcf;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,eAAe,CA0BjB;AA8CD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,GAAE,MAAc,GAAG,OAAO,CAOtF"}
|
|
@@ -118,59 +118,53 @@ function formatTokenFetchError(error, correlationId, clientId) {
|
|
|
118
118
|
};
|
|
119
119
|
return new errors_1.MisoClientError(`Failed to authenticate with client credentials (clientId: ${clientId}) [correlationId: ${correlationId}]`, errorResponse, undefined, statusCode || 401, "client-credentials");
|
|
120
120
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
async function executeTokenRequest(config) {
|
|
122
|
+
const requestTimeout = 30000;
|
|
123
|
+
const controller = new AbortController();
|
|
124
|
+
const timeoutId = setTimeout(() => controller.abort(), requestTimeout);
|
|
125
|
+
if (typeof timeoutId.unref === "function")
|
|
126
|
+
timeoutId.unref();
|
|
127
|
+
const controllerUrl = (0, controller_url_resolver_1.resolveControllerUrl)(config);
|
|
128
|
+
const isHttps = controllerUrl.startsWith("https://");
|
|
129
|
+
const httpAgent = await createHttpAgent(isHttps, requestTimeout);
|
|
130
|
+
const tempAxios = axios_1.default.create({
|
|
131
|
+
baseURL: controllerUrl,
|
|
132
|
+
timeout: requestTimeout,
|
|
133
|
+
signal: controller.signal,
|
|
134
|
+
httpAgent: !isHttps ? httpAgent : undefined,
|
|
135
|
+
httpsAgent: isHttps ? httpAgent : undefined,
|
|
136
|
+
headers: {
|
|
137
|
+
"Content-Type": "application/json",
|
|
138
|
+
"x-client-id": config.clientId,
|
|
139
|
+
"x-client-secret": config.clientSecret,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
143
|
+
const t = setTimeout(() => reject(new Error(`Request timeout after ${requestTimeout}ms`)), requestTimeout);
|
|
144
|
+
if (typeof t.unref === "function")
|
|
145
|
+
t.unref();
|
|
146
|
+
});
|
|
147
|
+
try {
|
|
148
|
+
const response = await Promise.race([
|
|
149
|
+
tempAxios.post(config.clientTokenUri || "/api/v1/auth/token"),
|
|
150
|
+
timeoutPromise,
|
|
151
|
+
]);
|
|
152
|
+
clearTimeout(timeoutId);
|
|
153
|
+
return response;
|
|
154
|
+
}
|
|
155
|
+
catch (e) {
|
|
156
|
+
clearTimeout(timeoutId);
|
|
157
|
+
throw e;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
128
160
|
async function fetchClientToken(config, tokenState) {
|
|
129
161
|
if (!config.clientSecret) {
|
|
130
162
|
throw new Error("Cannot fetch client token: clientSecret is required but not provided");
|
|
131
163
|
}
|
|
132
164
|
const correlationId = generateCorrelationId(config.clientId);
|
|
133
165
|
const clientId = config.clientId;
|
|
134
|
-
const requestTimeout = 30000;
|
|
135
166
|
try {
|
|
136
|
-
const
|
|
137
|
-
const timeoutId = setTimeout(() => controller.abort(), requestTimeout);
|
|
138
|
-
if (typeof timeoutId.unref === "function") {
|
|
139
|
-
timeoutId.unref();
|
|
140
|
-
}
|
|
141
|
-
const controllerUrl = (0, controller_url_resolver_1.resolveControllerUrl)(config);
|
|
142
|
-
const isHttps = controllerUrl.startsWith("https://");
|
|
143
|
-
const httpAgent = await createHttpAgent(isHttps, requestTimeout);
|
|
144
|
-
const tempAxios = axios_1.default.create({
|
|
145
|
-
baseURL: controllerUrl,
|
|
146
|
-
timeout: requestTimeout,
|
|
147
|
-
signal: controller.signal,
|
|
148
|
-
httpAgent: !isHttps ? httpAgent : undefined,
|
|
149
|
-
httpsAgent: isHttps ? httpAgent : undefined,
|
|
150
|
-
headers: {
|
|
151
|
-
"Content-Type": "application/json",
|
|
152
|
-
"x-client-id": config.clientId,
|
|
153
|
-
"x-client-secret": config.clientSecret,
|
|
154
|
-
},
|
|
155
|
-
});
|
|
156
|
-
const timeoutPromise = new Promise((_, reject) => {
|
|
157
|
-
const rejectTimeout = setTimeout(() => reject(new Error(`Request timeout after ${requestTimeout}ms`)), requestTimeout);
|
|
158
|
-
if (typeof rejectTimeout.unref === "function") {
|
|
159
|
-
rejectTimeout.unref();
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
let response;
|
|
163
|
-
try {
|
|
164
|
-
response = await Promise.race([
|
|
165
|
-
tempAxios.post(config.clientTokenUri || "/api/v1/auth/token"),
|
|
166
|
-
timeoutPromise,
|
|
167
|
-
]);
|
|
168
|
-
clearTimeout(timeoutId);
|
|
169
|
-
}
|
|
170
|
-
catch (requestError) {
|
|
171
|
-
clearTimeout(timeoutId);
|
|
172
|
-
throw requestError;
|
|
173
|
-
}
|
|
167
|
+
const response = await executeTokenRequest(config);
|
|
174
168
|
const token = extractTokenFromResponse(response, tokenState);
|
|
175
169
|
if (token)
|
|
176
170
|
return token;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-token-manager.js","sourceRoot":"","sources":["../../src/utils/client-token-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBH,sDAKC;AAQD,0CAIC;AAQD,4DAiBC;AASD,sDA8BC;
|
|
1
|
+
{"version":3,"file":"client-token-manager.js","sourceRoot":"","sources":["../../src/utils/client-token-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,5 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import "dotenv/config";
|
|
6
6
|
import { MisoClientConfig } from "../types/config.types";
|
|
7
|
-
/**
|
|
8
|
-
* Loads configuration from environment variables with defaults.
|
|
9
|
-
* @returns MisoClient configuration object.
|
|
10
|
-
* @throws Error when required environment variables are missing.
|
|
11
|
-
*/
|
|
12
7
|
export declare function loadConfig(): MisoClientConfig;
|
|
13
8
|
//# sourceMappingURL=config-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAIjB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAIjB,MAAM,uBAAuB,CAAC;AA+F/B,wBAAgB,UAAU,IAAI,gBAAgB,CAM7C"}
|
|
@@ -13,11 +13,11 @@ function loadRedisConfig() {
|
|
|
13
13
|
return undefined;
|
|
14
14
|
const redisConfig = {
|
|
15
15
|
host: redisHost,
|
|
16
|
-
port: parseInt(process.env.REDIS_PORT || "6379"),
|
|
16
|
+
port: parseInt(process.env.REDIS_PORT || "6379", 10),
|
|
17
17
|
password: process.env.REDIS_PASSWORD,
|
|
18
18
|
};
|
|
19
19
|
if (process.env.REDIS_DB)
|
|
20
|
-
redisConfig.db = parseInt(process.env.REDIS_DB);
|
|
20
|
+
redisConfig.db = parseInt(process.env.REDIS_DB, 10);
|
|
21
21
|
if (process.env.REDIS_KEY_PREFIX)
|
|
22
22
|
redisConfig.keyPrefix = process.env.REDIS_KEY_PREFIX;
|
|
23
23
|
return redisConfig;
|
|
@@ -62,26 +62,22 @@ function loadAllowedOrigins() {
|
|
|
62
62
|
* @returns MisoClient configuration object.
|
|
63
63
|
* @throws Error when required environment variables are missing.
|
|
64
64
|
*/
|
|
65
|
-
function
|
|
65
|
+
function buildBaseConfig() {
|
|
66
66
|
const config = {
|
|
67
67
|
controllerUrl: process.env.MISO_CONTROLLER_URL || "https://controller.aifabrix.ai",
|
|
68
68
|
clientId: process.env.MISO_CLIENTID || process.env.MISO_CLIENT_ID || "",
|
|
69
69
|
clientSecret: process.env.MISO_CLIENTSECRET || process.env.MISO_CLIENT_SECRET || "",
|
|
70
70
|
logLevel: process.env.MISO_LOG_LEVEL || "debug",
|
|
71
71
|
};
|
|
72
|
-
// Controller URLs
|
|
73
72
|
if (process.env.MISO_WEB_SERVER_URL)
|
|
74
73
|
config.controllerPublicUrl = process.env.MISO_WEB_SERVER_URL;
|
|
75
74
|
if (process.env.MISO_CONTROLLER_URL) {
|
|
76
75
|
config.controllerPrivateUrl = process.env.MISO_CONTROLLER_URL;
|
|
77
76
|
config.controllerUrl = process.env.MISO_CONTROLLER_URL;
|
|
78
77
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (!config.clientSecret)
|
|
83
|
-
throw new Error("MISO_CLIENTSECRET environment variable is required");
|
|
84
|
-
// Optional configurations
|
|
78
|
+
return config;
|
|
79
|
+
}
|
|
80
|
+
function applyOptionalConfig(config) {
|
|
85
81
|
const redis = loadRedisConfig();
|
|
86
82
|
if (redis)
|
|
87
83
|
config.redis = redis;
|
|
@@ -99,7 +95,6 @@ function loadConfig() {
|
|
|
99
95
|
const allowedOrigins = loadAllowedOrigins();
|
|
100
96
|
if (allowedOrigins)
|
|
101
97
|
config.allowedOrigins = allowedOrigins;
|
|
102
|
-
// Response validation (default: true in dev, false in prod)
|
|
103
98
|
config.validateResponses = process.env.MISO_VALIDATE_RESPONSES !== undefined
|
|
104
99
|
? process.env.MISO_VALIDATE_RESPONSES.toLowerCase() === "true"
|
|
105
100
|
: process.env.NODE_ENV !== "production";
|
|
@@ -108,6 +103,14 @@ function loadConfig() {
|
|
|
108
103
|
config.keycloak = keycloak;
|
|
109
104
|
if (process.env.ENCRYPTION_KEY)
|
|
110
105
|
config.encryptionKey = process.env.ENCRYPTION_KEY;
|
|
106
|
+
}
|
|
107
|
+
function loadConfig() {
|
|
108
|
+
const config = buildBaseConfig();
|
|
109
|
+
if (!config.clientId)
|
|
110
|
+
throw new Error("MISO_CLIENTID environment variable is required");
|
|
111
|
+
if (!config.clientSecret)
|
|
112
|
+
throw new Error("MISO_CLIENTSECRET environment variable is required");
|
|
113
|
+
applyOptionalConfig(config);
|
|
111
114
|
return config;
|
|
112
115
|
}
|
|
113
116
|
//# sourceMappingURL=config-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,4 +18,8 @@ import { StructuredErrorInfo } from "./error-extractor";
|
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
20
|
export declare function logErrorWithContext(errorInfo: StructuredErrorInfo, prefix?: string): void;
|
|
21
|
+
/** Write warning to console. */
|
|
22
|
+
export declare function writeWarn(msg: string): void;
|
|
23
|
+
/** Write error to console. */
|
|
24
|
+
export declare function writeErr(msg: string): void;
|
|
21
25
|
//# sourceMappingURL=console-logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/utils/console-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,GAAE,MAAuB,GAC9B,IAAI,
|
|
1
|
+
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/utils/console-logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,mBAAmB,EAC9B,MAAM,GAAE,MAAuB,GAC9B,IAAI,CAmDN;AAED,gCAAgC;AAChC,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED,8BAA8B;AAC9B,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG1C"}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.logErrorWithContext = logErrorWithContext;
|
|
8
|
+
exports.writeWarn = writeWarn;
|
|
9
|
+
exports.writeErr = writeErr;
|
|
8
10
|
/**
|
|
9
11
|
* Log error with context to console
|
|
10
12
|
* Formats error with correlation ID prefix and structured details
|
|
@@ -40,19 +42,33 @@ function logErrorWithContext(errorInfo, prefix = "[MisoClient]") {
|
|
|
40
42
|
}
|
|
41
43
|
// Build final message
|
|
42
44
|
const message = parts.join(" | ");
|
|
43
|
-
|
|
44
|
-
console
|
|
45
|
+
const prefixed = `${prefix} [${correlationId}]`;
|
|
46
|
+
// eslint-disable-next-line no-console -- Architecture-approved error logging utility
|
|
47
|
+
console.error(prefixed, message);
|
|
45
48
|
// Log response body if available
|
|
46
49
|
if (errorInfo.responseBody) {
|
|
47
|
-
console
|
|
50
|
+
// eslint-disable-next-line no-console -- Architecture-approved error logging utility
|
|
51
|
+
console.error(prefixed, `Response Body: ${JSON.stringify(errorInfo.responseBody, null, 2)}`);
|
|
48
52
|
}
|
|
49
53
|
// Log stack trace if available
|
|
50
54
|
if (errorInfo.stackTrace) {
|
|
51
|
-
console
|
|
55
|
+
// eslint-disable-next-line no-console -- Architecture-approved error logging utility
|
|
56
|
+
console.error(prefixed, `Stack Trace: ${errorInfo.stackTrace}`);
|
|
52
57
|
}
|
|
53
58
|
// Log original error if available
|
|
54
59
|
if (errorInfo.originalError) {
|
|
55
|
-
console
|
|
60
|
+
// eslint-disable-next-line no-console -- Architecture-approved error logging utility
|
|
61
|
+
console.error(prefixed, `Original Error: ${String(errorInfo.originalError)}`);
|
|
56
62
|
}
|
|
57
63
|
}
|
|
64
|
+
/** Write warning to console. */
|
|
65
|
+
function writeWarn(msg) {
|
|
66
|
+
// eslint-disable-next-line no-console -- Architecture-approved warning logging utility
|
|
67
|
+
console.warn(msg);
|
|
68
|
+
}
|
|
69
|
+
/** Write error to console. */
|
|
70
|
+
function writeErr(msg) {
|
|
71
|
+
// eslint-disable-next-line no-console -- Architecture-approved error logging utility
|
|
72
|
+
console.error(msg);
|
|
73
|
+
}
|
|
58
74
|
//# sourceMappingURL=console-logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/utils/console-logger.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAkBH,
|
|
1
|
+
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/utils/console-logger.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAkBH,kDAsDC;AAGD,8BAGC;AAGD,4BAGC;AAhFD;;;;;;;;;;;;;GAaG;AACH,SAAgB,mBAAmB,CACjC,SAA8B,EAC9B,SAAiB,cAAc;IAE/B,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,IAAI,mBAAmB,CAAC;IACrE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,0BAA0B;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAE3D,+BAA+B;IAC/B,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,uCAAuC;IACvC,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,WAAW,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,GAAG,MAAM,KAAK,aAAa,GAAG,CAAC;IAEhD,qFAAqF;IACrF,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEjC,iCAAiC;IACjC,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3B,qFAAqF;QACrF,OAAO,CAAC,KAAK,CACX,QAAQ,EACR,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,qFAAqF;QACrF,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,gBAAgB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,kCAAkC;IAClC,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;QAC5B,qFAAqF;QACrF,OAAO,CAAC,KAAK,CACX,QAAQ,EACR,mBAAmB,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CACrD,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,SAAgB,SAAS,CAAC,GAAW;IACnC,uFAAuF;IACvF,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,8BAA8B;AAC9B,SAAgB,QAAQ,CAAC,GAAW;IAClC,qFAAqF;IACrF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -16,9 +16,27 @@ export type HasAnyTokenFn = () => boolean;
|
|
|
16
16
|
* Get user token
|
|
17
17
|
*/
|
|
18
18
|
export type GetTokenFn = () => string | null;
|
|
19
|
+
/** Parameters for logDataClientAudit */
|
|
20
|
+
export interface LogDataClientAuditParams {
|
|
21
|
+
method: string;
|
|
22
|
+
url: string;
|
|
23
|
+
statusCode: number;
|
|
24
|
+
duration: number;
|
|
25
|
+
misoClient: MisoClient | null;
|
|
26
|
+
auditConfig: AuditConfig | undefined;
|
|
27
|
+
hasAnyToken: HasAnyTokenFn;
|
|
28
|
+
getToken: GetTokenFn;
|
|
29
|
+
requestSize?: number;
|
|
30
|
+
responseSize?: number;
|
|
31
|
+
error?: Error;
|
|
32
|
+
requestHeaders?: Record<string, string>;
|
|
33
|
+
responseHeaders?: Record<string, string>;
|
|
34
|
+
requestBody?: unknown;
|
|
35
|
+
responseBody?: unknown;
|
|
36
|
+
}
|
|
19
37
|
/**
|
|
20
38
|
* Log audit event (ISO 27001 compliance)
|
|
21
39
|
* Skips audit logging if no authentication token is available (user token OR client token)
|
|
22
40
|
*/
|
|
23
|
-
export declare function logDataClientAudit(
|
|
41
|
+
export declare function logDataClientAudit(params: LogDataClientAuditParams): Promise<void>;
|
|
24
42
|
//# sourceMappingURL=data-client-audit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-client-audit.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"data-client-audit.d.ts","sourceRoot":"","sources":["../../src/utils/data-client-audit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAMzD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,SAAS,GACnC,OAAO,CAIT;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,MAAM,GAAG,IAAI,CAAC;AA6G7C,wCAAwC;AACxC,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,WAAW,EAAE,aAAa,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxF"}
|