@aifabrix/miso-client 3.2.0 → 3.2.5
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 +57 -2
- package/dist/express/client-token-endpoint.d.ts.map +1 -1
- package/dist/express/client-token-endpoint.js +136 -13
- package/dist/express/client-token-endpoint.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.d.ts +26 -4
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +134 -3
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/logger.service.d.ts +95 -24
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +153 -44
- package/dist/services/logger.service.js.map +1 -1
- package/dist/services/redis.service.d.ts.map +1 -1
- package/dist/services/redis.service.js +3 -6
- package/dist/services/redis.service.js.map +1 -1
- package/dist/types/config.types.d.ts +22 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js.map +1 -1
- package/dist/types/data-client.types.d.ts +10 -0
- package/dist/types/data-client.types.d.ts.map +1 -1
- package/dist/types/data-client.types.js.map +1 -1
- package/dist/utils/data-client-auth.d.ts +17 -4
- package/dist/utils/data-client-auth.d.ts.map +1 -1
- package/dist/utils/data-client-auth.js +215 -131
- 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 +55 -11
- package/dist/utils/data-client-auto-init.js.map +1 -1
- package/dist/utils/data-client-redirect.d.ts +34 -4
- package/dist/utils/data-client-redirect.d.ts.map +1 -1
- package/dist/utils/data-client-redirect.js +142 -254
- package/dist/utils/data-client-redirect.js.map +1 -1
- package/dist/utils/data-client-request.d.ts +8 -1
- package/dist/utils/data-client-request.d.ts.map +1 -1
- package/dist/utils/data-client-request.js +25 -3
- package/dist/utils/data-client-request.js.map +1 -1
- package/dist/utils/data-client.d.ts +13 -0
- package/dist/utils/data-client.d.ts.map +1 -1
- package/dist/utils/data-client.js +78 -2
- package/dist/utils/data-client.js.map +1 -1
- package/dist/utils/logging-helpers.d.ts +51 -0
- package/dist/utils/logging-helpers.d.ts.map +1 -0
- package/dist/utils/logging-helpers.js +57 -0
- package/dist/utils/logging-helpers.js.map +1 -0
- package/dist/utils/request-context.d.ts +32 -0
- package/dist/utils/request-context.d.ts.map +1 -0
- package/dist/utils/request-context.js +81 -0
- package/dist/utils/request-context.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -190,6 +190,23 @@ const dataClient = new DataClient({
|
|
|
190
190
|
// Make authenticated requests with automatic audit logging
|
|
191
191
|
const users = await dataClient.get('/api/users');
|
|
192
192
|
const newUser = await dataClient.post('/api/users', { name: 'John' });
|
|
193
|
+
|
|
194
|
+
// OAuth callback is automatically handled on initialization
|
|
195
|
+
// Token is extracted from URL hash fragment (#token=...) and stored securely
|
|
196
|
+
// Hash fragment is immediately removed from URL (< 100ms) for security
|
|
197
|
+
|
|
198
|
+
// Token refresh callback (automatic refresh on 401 errors)
|
|
199
|
+
const dataClientWithRefresh = new DataClient({
|
|
200
|
+
baseUrl: 'https://api.example.com',
|
|
201
|
+
misoConfig: { /* ... */ },
|
|
202
|
+
onTokenRefresh: async () => {
|
|
203
|
+
// Call your backend endpoint that handles refresh token securely
|
|
204
|
+
const response = await fetch('/api/refresh-token', {
|
|
205
|
+
credentials: 'include', // Include cookies for auth
|
|
206
|
+
});
|
|
207
|
+
return await response.json(); // { token: string, expiresIn: number }
|
|
208
|
+
},
|
|
209
|
+
});
|
|
193
210
|
```
|
|
194
211
|
|
|
195
212
|
→ [DataClient Documentation](docs/data-client.md) - Includes security guide and Client Token Pattern
|
|
@@ -256,7 +273,7 @@ if (token) {
|
|
|
256
273
|
|
|
257
274
|
### Step 4: Activate RBAC (Roles)
|
|
258
275
|
|
|
259
|
-
**What happens:** Check user roles to control access. Roles are cached in Redis for performance.
|
|
276
|
+
**What happens:** Check user roles to control access. Roles are cached in Redis for performance. Token validation is also cached (15-minute TTL) to reduce API calls.
|
|
260
277
|
|
|
261
278
|
```typescript
|
|
262
279
|
import { MisoClient, loadConfig } from '@aifabrix/miso-client';
|
|
@@ -288,6 +305,8 @@ if (isAdmin) {
|
|
|
288
305
|
|
|
289
306
|
**What happens:** Application logs are sent to the Miso Controller with client token authentication.
|
|
290
307
|
|
|
308
|
+
**Basic Logging:**
|
|
309
|
+
|
|
291
310
|
```typescript
|
|
292
311
|
import { MisoClient, loadConfig } from '@aifabrix/miso-client';
|
|
293
312
|
|
|
@@ -304,7 +323,42 @@ await client.log.error('Operation failed', { error: err.message });
|
|
|
304
323
|
await client.log.warn('Unusual activity', { details: '...' });
|
|
305
324
|
```
|
|
306
325
|
|
|
307
|
-
**
|
|
326
|
+
**Fluent API with Request Context (Express):**
|
|
327
|
+
|
|
328
|
+
```typescript
|
|
329
|
+
import { Request } from 'express';
|
|
330
|
+
|
|
331
|
+
// Auto-extract context from Express Request
|
|
332
|
+
app.get('/api/users', async (req: Request, res) => {
|
|
333
|
+
await client.log
|
|
334
|
+
.withRequest(req)
|
|
335
|
+
.info('Users list accessed');
|
|
336
|
+
// Automatically includes: IP, method, path, userAgent, correlationId, userId
|
|
337
|
+
});
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Indexed Context for Fast Queries:**
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
import { extractLoggingContext } from '@aifabrix/miso-client';
|
|
344
|
+
|
|
345
|
+
const logContext = extractLoggingContext({
|
|
346
|
+
source: {
|
|
347
|
+
key: 'datasource-1',
|
|
348
|
+
displayName: 'PostgreSQL DB',
|
|
349
|
+
externalSystem: { key: 'system-1', displayName: 'External API' }
|
|
350
|
+
},
|
|
351
|
+
record: { key: 'record-123', displayName: 'User Profile' }
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
await client.log
|
|
355
|
+
.withIndexedContext(logContext)
|
|
356
|
+
.addCorrelation(correlationId)
|
|
357
|
+
.addUser(userId)
|
|
358
|
+
.error('Sync failed');
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**What happens to logs?** They're sent to the Miso Controller for centralized monitoring and analysis. Client token is automatically included. Indexed context fields enable fast database queries for observability and compliance.
|
|
308
362
|
|
|
309
363
|
**Event Emission Mode:** When embedding the SDK directly in your own application, enable `emitEvents = true` to receive logs as Node.js events instead of HTTP calls:
|
|
310
364
|
|
|
@@ -820,6 +874,7 @@ interface MisoClientConfig {
|
|
|
820
874
|
cache?: {
|
|
821
875
|
roleTTL?: number; // Role cache TTL (default: 900s)
|
|
822
876
|
permissionTTL?: number; // Permission cache TTL (default: 900s)
|
|
877
|
+
tokenValidationTTL?: number; // Token validation cache TTL (default: 900s)
|
|
823
878
|
};
|
|
824
879
|
audit?: AuditConfig; // Optional: Audit logging configuration
|
|
825
880
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-token-endpoint.d.ts","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAEhB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IAEtB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,qEAAqE;IACrE,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,mBAAmB,GAAG;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAE/H;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"client-token-endpoint.d.ts","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAEhB,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IAEtB,8DAA8D;IAC9D,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,gCAAgC;IAChC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAElB,qEAAqE;IACrE,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,QAAQ,IAAI,mBAAmB,GAAG;IAAE,MAAM,EAAE,wBAAwB,CAAA;CAAE,CAE/H;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,0BAA0B,GACnC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAuNhD"}
|
|
@@ -44,17 +44,126 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
44
44
|
...options,
|
|
45
45
|
};
|
|
46
46
|
return async (req, res) => {
|
|
47
|
+
// Helper to check if response was already sent
|
|
48
|
+
const isResponseSent = () => res.headersSent || res.writableEnded;
|
|
47
49
|
try {
|
|
48
50
|
// Check if misoClient is initialized
|
|
49
51
|
if (!misoClient.isInitialized()) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
if (!isResponseSent()) {
|
|
53
|
+
res.status(503).json({
|
|
54
|
+
error: "Service Unavailable",
|
|
55
|
+
message: "MisoClient is not initialized",
|
|
56
|
+
});
|
|
57
|
+
}
|
|
54
58
|
return;
|
|
55
59
|
}
|
|
56
60
|
// Get token with origin validation (throws if validation fails)
|
|
57
|
-
|
|
61
|
+
// Wrap in Promise.race with timeout to ensure we don't hang
|
|
62
|
+
// Fail fast after 5 seconds if controller is unreachable
|
|
63
|
+
const timeoutMs = 5000; // 5 seconds - fail fast if controller is unreachable
|
|
64
|
+
const tokenPromise = (0, environment_token_1.getEnvironmentToken)(misoClient, req);
|
|
65
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
reject(new Error("Request timeout: Failed to get environment token within 5 seconds"));
|
|
68
|
+
}, timeoutMs);
|
|
69
|
+
});
|
|
70
|
+
let token;
|
|
71
|
+
try {
|
|
72
|
+
token = await Promise.race([tokenPromise, timeoutPromise]);
|
|
73
|
+
}
|
|
74
|
+
catch (tokenError) {
|
|
75
|
+
// If response already sent, don't try to send again
|
|
76
|
+
if (isResponseSent()) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const errorMessage = tokenError instanceof Error ? tokenError.message : "Unknown error";
|
|
80
|
+
// Check if it's an origin validation error (403)
|
|
81
|
+
if (errorMessage.includes("Origin validation failed")) {
|
|
82
|
+
res.status(403).json({
|
|
83
|
+
error: "Forbidden",
|
|
84
|
+
message: errorMessage,
|
|
85
|
+
});
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Check if it's our timeout wrapper error (specific message from timeout promise)
|
|
89
|
+
const isTimeoutWrapperError = errorMessage.includes("Request timeout: Failed to get environment token within 5 seconds");
|
|
90
|
+
// Check if error message contains HTTP status codes (indicates HTTP error, not timeout)
|
|
91
|
+
// AuthService wraps axios errors with status info like "status: 401"
|
|
92
|
+
const httpStatusMatch = errorMessage.match(/status:\s*(\d+)/i);
|
|
93
|
+
const httpStatus = httpStatusMatch ? parseInt(httpStatusMatch[1], 10) : undefined;
|
|
94
|
+
const isHttpError = httpStatus !== undefined;
|
|
95
|
+
// Also try to extract axios error details from the error chain
|
|
96
|
+
let extractedHttpStatus = httpStatus;
|
|
97
|
+
let httpStatusText;
|
|
98
|
+
// Try to extract axios error details from the error chain
|
|
99
|
+
let currentError = tokenError;
|
|
100
|
+
for (let i = 0; i < 5 && currentError; i++) {
|
|
101
|
+
if (currentError &&
|
|
102
|
+
typeof currentError === "object" &&
|
|
103
|
+
"isAxiosError" in currentError &&
|
|
104
|
+
currentError.isAxiosError) {
|
|
105
|
+
const axiosError = currentError;
|
|
106
|
+
if (axiosError.response) {
|
|
107
|
+
// Has response = HTTP error (not timeout)
|
|
108
|
+
extractedHttpStatus = axiosError.response.status;
|
|
109
|
+
httpStatusText = axiosError.response.statusText;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
// No response but has request = network/timeout error
|
|
113
|
+
if (axiosError.request && !axiosError.response) {
|
|
114
|
+
// This is a network/timeout error
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Check if error has a cause (for chained errors)
|
|
119
|
+
if (currentError && typeof currentError === "object" && "cause" in currentError) {
|
|
120
|
+
currentError = currentError.cause;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Use extracted status if available, otherwise use parsed status
|
|
127
|
+
const finalHttpStatus = extractedHttpStatus || httpStatus;
|
|
128
|
+
// If it's an HTTP error (like 401), return appropriate status code
|
|
129
|
+
if (isHttpError && finalHttpStatus) {
|
|
130
|
+
// Map common HTTP errors to appropriate status codes
|
|
131
|
+
if (finalHttpStatus === 401) {
|
|
132
|
+
res.status(401).json({
|
|
133
|
+
error: "Unauthorized",
|
|
134
|
+
message: "Failed to get environment token: Invalid client credentials or application not found",
|
|
135
|
+
});
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
if (finalHttpStatus === 403) {
|
|
139
|
+
res.status(403).json({
|
|
140
|
+
error: "Forbidden",
|
|
141
|
+
message: "Failed to get environment token: Access denied",
|
|
142
|
+
});
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// Other HTTP errors
|
|
146
|
+
res.status(finalHttpStatus).json({
|
|
147
|
+
error: httpStatusText || "Error",
|
|
148
|
+
message: errorMessage,
|
|
149
|
+
});
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
// Check if it's a timeout error (from our wrapper or axios timeout)
|
|
153
|
+
if (isTimeoutWrapperError || errorMessage.includes("timeout") || errorMessage.includes("Timeout")) {
|
|
154
|
+
res.status(504).json({
|
|
155
|
+
error: "Gateway Timeout",
|
|
156
|
+
message: "Failed to get environment token: Controller request timed out",
|
|
157
|
+
});
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// Other errors (500)
|
|
161
|
+
res.status(500).json({
|
|
162
|
+
error: "Internal Server Error",
|
|
163
|
+
message: errorMessage,
|
|
164
|
+
});
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
58
167
|
// Build response
|
|
59
168
|
const response = {
|
|
60
169
|
token,
|
|
@@ -68,10 +177,12 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
68
177
|
// Get controller URL (prefer controllerPublicUrl for browser, fallback to controllerUrl)
|
|
69
178
|
const controllerUrl = config.controllerPublicUrl || config.controllerUrl;
|
|
70
179
|
if (!controllerUrl) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
180
|
+
if (!isResponseSent()) {
|
|
181
|
+
res.status(500).json({
|
|
182
|
+
error: "Internal Server Error",
|
|
183
|
+
message: "Controller URL not configured",
|
|
184
|
+
});
|
|
185
|
+
}
|
|
75
186
|
return;
|
|
76
187
|
}
|
|
77
188
|
response.config = {
|
|
@@ -82,12 +193,16 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
82
193
|
clientTokenUri: opts.clientTokenUri,
|
|
83
194
|
};
|
|
84
195
|
}
|
|
85
|
-
|
|
196
|
+
// Send response if not already sent
|
|
197
|
+
if (!isResponseSent()) {
|
|
198
|
+
res.json(response);
|
|
199
|
+
}
|
|
86
200
|
}
|
|
87
201
|
catch (error) {
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
|
|
202
|
+
// Final catch-all error handler
|
|
203
|
+
if (isResponseSent()) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
91
206
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
92
207
|
// Check if it's an origin validation error (403)
|
|
93
208
|
if (errorMessage.includes("Origin validation failed")) {
|
|
@@ -97,6 +212,14 @@ function createClientTokenEndpoint(misoClient, options) {
|
|
|
97
212
|
});
|
|
98
213
|
return;
|
|
99
214
|
}
|
|
215
|
+
// Check if it's a timeout error
|
|
216
|
+
if (errorMessage.includes("timeout") || errorMessage.includes("Timeout")) {
|
|
217
|
+
res.status(504).json({
|
|
218
|
+
error: "Gateway Timeout",
|
|
219
|
+
message: "Failed to get environment token: Request timed out",
|
|
220
|
+
});
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
100
223
|
// Other errors (500)
|
|
101
224
|
res.status(500).json({
|
|
102
225
|
error: "Internal Server Error",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-token-endpoint.js","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA8DH,8BAEC;AAoBD,
|
|
1
|
+
{"version":3,"file":"client-token-endpoint.js","sourceRoot":"","sources":["../../src/express/client-token-endpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -102,6 +102,13 @@ export declare class MisoClient {
|
|
|
102
102
|
logout(params: {
|
|
103
103
|
token: string;
|
|
104
104
|
}): Promise<import("./types/config.types").LogoutResponse>;
|
|
105
|
+
/**
|
|
106
|
+
* Refresh user access token using refresh token
|
|
107
|
+
* @param refreshToken - Refresh token to exchange for new access token
|
|
108
|
+
* @param authStrategy - Optional authentication strategy override
|
|
109
|
+
* @returns New access token, refresh token, and expiration info, or null on error
|
|
110
|
+
*/
|
|
111
|
+
refreshToken(refreshToken: string, authStrategy?: AuthStrategy): Promise<import("./types/config.types").RefreshTokenResponse | null>;
|
|
105
112
|
/**
|
|
106
113
|
* Get user roles (cached in Redis if available)
|
|
107
114
|
* @param token - User authentication token
|
|
@@ -238,6 +245,10 @@ export { extractClientTokenInfo } from "./utils/token-utils";
|
|
|
238
245
|
export type { ClientTokenInfo } from "./utils/token-utils";
|
|
239
246
|
export type { OriginValidationResult } from "./utils/origin-validator";
|
|
240
247
|
export { resolveControllerUrl, isBrowser, validateUrl } from "./utils/controller-url-resolver";
|
|
248
|
+
export { extractLoggingContext } from "./utils/logging-helpers";
|
|
249
|
+
export type { IndexedLoggingContext, HasKey, HasExternalSystem } from "./utils/logging-helpers";
|
|
250
|
+
export { extractRequestContext } from "./utils/request-context";
|
|
251
|
+
export type { RequestContext } from "./utils/request-context";
|
|
241
252
|
export * from "./utils/pagination.utils";
|
|
242
253
|
export * from "./utils/filter.utils";
|
|
243
254
|
export * from "./utils/sort.utils";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKxD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAwC,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,gBAAgB;IA4CpC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACH,aAAa,IAAI,OAAO;IAMxB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE;YAAE,aAAa,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,MAAM,GAAG,IAAI;IAerE;;;;;;;OAOG;IACH,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,sBAAsB;IAK/E;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,OAAO,sBAAsB,EAAE,aAAa,CAAC;IAIzD;;;;OAIG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAInB;;;;OAIG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI3B;;;;OAIG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAI3B;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;OAKG;IACG,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,OAAO,sBAAsB,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ 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.getCachedDataClientConfig = exports.autoInitializeDataClient = exports.dataClient = exports.DataClient = exports.hasConfig = exports.createClientTokenEndpoint = exports.EncryptionUtil = 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.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.validateUrl = exports.isBrowser = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.HttpClient = exports.CacheService = exports.RedisService = exports.LoggerService = exports.BrowserRoleService = exports.BrowserPermissionService = exports.PermissionService = exports.RoleService = exports.AuthService = exports.MisoClient = void 0;
|
|
20
|
+
exports.getCachedDataClientConfig = exports.autoInitializeDataClient = exports.dataClient = exports.DataClient = exports.hasConfig = exports.createClientTokenEndpoint = exports.EncryptionUtil = 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.handleApiError = exports.transformError = exports.ApiErrorException = exports.MisoClientError = exports.extractRequestContext = exports.extractLoggingContext = exports.validateUrl = exports.isBrowser = exports.resolveControllerUrl = exports.extractClientTokenInfo = exports.getEnvironmentToken = exports.validateOrigin = exports.loadConfig = exports.HttpClient = exports.CacheService = exports.RedisService = exports.LoggerService = exports.BrowserRoleService = exports.BrowserPermissionService = exports.PermissionService = exports.RoleService = exports.AuthService = exports.MisoClient = void 0;
|
|
21
21
|
const auth_service_1 = require("./services/auth.service");
|
|
22
22
|
const role_service_1 = require("./services/role.service");
|
|
23
23
|
const permission_service_1 = require("./services/permission.service");
|
|
@@ -51,10 +51,10 @@ class MisoClient {
|
|
|
51
51
|
// Type assertion needed because httpClient property is private in LoggerService but needs to be updated
|
|
52
52
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
53
|
this.logger.httpClient = this.httpClient;
|
|
54
|
-
//
|
|
55
|
-
this.auth = new auth_service_1.AuthService(this.httpClient, this.redis);
|
|
56
|
-
// Initialize cache service with Redis support (used by roles and permissions)
|
|
54
|
+
// Initialize cache service with Redis support (used by auth, roles and permissions)
|
|
57
55
|
this.cacheService = new cache_service_1.CacheService(this.redis);
|
|
56
|
+
// Create services
|
|
57
|
+
this.auth = new auth_service_1.AuthService(this.httpClient, this.cacheService);
|
|
58
58
|
// Initialize services that use cache
|
|
59
59
|
this.roles = new role_service_1.RoleService(this.httpClient, this.cacheService);
|
|
60
60
|
this.permissions = new permission_service_1.PermissionService(this.httpClient, this.cacheService);
|
|
@@ -181,6 +181,15 @@ class MisoClient {
|
|
|
181
181
|
async logout(params) {
|
|
182
182
|
return this.auth.logout(params);
|
|
183
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Refresh user access token using refresh token
|
|
186
|
+
* @param refreshToken - Refresh token to exchange for new access token
|
|
187
|
+
* @param authStrategy - Optional authentication strategy override
|
|
188
|
+
* @returns New access token, refresh token, and expiration info, or null on error
|
|
189
|
+
*/
|
|
190
|
+
async refreshToken(refreshToken, authStrategy) {
|
|
191
|
+
return this.auth.refreshToken(refreshToken, authStrategy);
|
|
192
|
+
}
|
|
184
193
|
// ==================== AUTHORIZATION METHODS ====================
|
|
185
194
|
/**
|
|
186
195
|
* Get user roles (cached in Redis if available)
|
|
@@ -382,6 +391,10 @@ var controller_url_resolver_1 = require("./utils/controller-url-resolver");
|
|
|
382
391
|
Object.defineProperty(exports, "resolveControllerUrl", { enumerable: true, get: function () { return controller_url_resolver_1.resolveControllerUrl; } });
|
|
383
392
|
Object.defineProperty(exports, "isBrowser", { enumerable: true, get: function () { return controller_url_resolver_1.isBrowser; } });
|
|
384
393
|
Object.defineProperty(exports, "validateUrl", { enumerable: true, get: function () { return controller_url_resolver_1.validateUrl; } });
|
|
394
|
+
var logging_helpers_1 = require("./utils/logging-helpers");
|
|
395
|
+
Object.defineProperty(exports, "extractLoggingContext", { enumerable: true, get: function () { return logging_helpers_1.extractLoggingContext; } });
|
|
396
|
+
var request_context_1 = require("./utils/request-context");
|
|
397
|
+
Object.defineProperty(exports, "extractRequestContext", { enumerable: true, get: function () { return request_context_1.extractRequestContext; } });
|
|
385
398
|
// Export pagination, filter, sort utilities
|
|
386
399
|
__exportStar(require("./utils/pagination.utils"), exports);
|
|
387
400
|
__exportStar(require("./utils/filter.utils"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;AAEH,0DAAsD;AACtD,0DAAsD;AACtD,sEAAkE;AAClE,8DAA0D;AAC1D,4DAAwD;AACxD,4DAAwD;AACxD,qDAAiD;AACjD,uEAAkE;AAClE,qDAAiD;AACjD,yDAA4D;AAE5D,+DAAwG;AAGxG,MAAa,UAAU;IAWrB,YAAY,MAAwB;QAF5B,gBAAW,GAAG,KAAK,CAAC;QAG1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,4DAA4D;QAC5D,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACjC,wBAAU,CAAC,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACzD,CAAC;QAED,4DAA4D;QAC5D,MAAM,cAAc,GAAG,IAAI,yCAAkB,CAAC,MAAM,CAAC,CAAC;QAEtD,uBAAuB;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,4BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE5C,wGAAwG;QACxG,kEAAkE;QAClE,4FAA4F;QAC5F,IAAI,CAAC,MAAM,GAAG,IAAI,8BAAa,CAC7B,cAAuC,EACvC,IAAI,CAAC,KAAK,CACX,CAAC;QAEF,qEAAqE;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtD,sEAAsE;QACtE,wGAAwG;QACxG,8DAA8D;QAC7D,IAAI,CAAC,MAAc,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAElD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,24 @@
|
|
|
2
2
|
* Authentication service for token validation and user management
|
|
3
3
|
*/
|
|
4
4
|
import { HttpClient } from "../utils/http-client";
|
|
5
|
-
import {
|
|
6
|
-
import { UserInfo, AuthStrategy, LoginResponse, LogoutResponse } from "../types/config.types";
|
|
5
|
+
import { CacheService } from "./cache.service";
|
|
6
|
+
import { UserInfo, AuthStrategy, LoginResponse, LogoutResponse, RefreshTokenResponse } from "../types/config.types";
|
|
7
7
|
export declare class AuthService {
|
|
8
8
|
private httpClient;
|
|
9
|
-
private
|
|
9
|
+
private cache;
|
|
10
10
|
private config;
|
|
11
|
-
|
|
11
|
+
private tokenValidationTTL;
|
|
12
|
+
constructor(httpClient: HttpClient, cache: CacheService);
|
|
12
13
|
/**
|
|
13
14
|
* Check if token matches configured API key for testing
|
|
14
15
|
* @private
|
|
15
16
|
*/
|
|
16
17
|
private isApiKeyToken;
|
|
18
|
+
/**
|
|
19
|
+
* Extract userId from JWT token without making API call
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
private extractUserIdFromToken;
|
|
17
23
|
/**
|
|
18
24
|
* Generate unique correlation ID for request tracking
|
|
19
25
|
*/
|
|
@@ -42,9 +48,11 @@ export declare class AuthService {
|
|
|
42
48
|
}): Promise<LoginResponse>;
|
|
43
49
|
/**
|
|
44
50
|
* Validate token with controller
|
|
51
|
+
* Caches validation results by userId with configurable TTL (default 15 minutes)
|
|
45
52
|
* If API_KEY is configured and token matches, returns true without calling controller
|
|
46
53
|
* @param token - User authentication token
|
|
47
54
|
* @param authStrategy - Optional authentication strategy override
|
|
55
|
+
* @returns true if token is valid, false otherwise
|
|
48
56
|
*/
|
|
49
57
|
validateToken(token: string, authStrategy?: AuthStrategy): Promise<boolean>;
|
|
50
58
|
/**
|
|
@@ -61,10 +69,17 @@ export declare class AuthService {
|
|
|
61
69
|
* @param authStrategy - Optional authentication strategy override
|
|
62
70
|
*/
|
|
63
71
|
getUserInfo(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Clear cached token validation result for a user
|
|
74
|
+
* Extracts userId from JWT token directly (no API call)
|
|
75
|
+
* @param token - User authentication token
|
|
76
|
+
*/
|
|
77
|
+
clearTokenCache(token: string): void;
|
|
64
78
|
/**
|
|
65
79
|
* Logout user
|
|
66
80
|
* Gracefully handles cases where there's no active session (400 Bad Request)
|
|
67
81
|
* Only throws errors for unexpected failures (network errors, 5xx errors, etc.)
|
|
82
|
+
* Automatically clears token validation cache on logout
|
|
68
83
|
* @param params - Logout parameters
|
|
69
84
|
* @param params.token - Access token to invalidate
|
|
70
85
|
* @returns Logout response with success message
|
|
@@ -72,6 +87,13 @@ export declare class AuthService {
|
|
|
72
87
|
logout(params: {
|
|
73
88
|
token: string;
|
|
74
89
|
}): Promise<LogoutResponse>;
|
|
90
|
+
/**
|
|
91
|
+
* Refresh user access token using refresh token
|
|
92
|
+
* @param refreshToken - Refresh token to exchange for new access token
|
|
93
|
+
* @param authStrategy - Optional authentication strategy override
|
|
94
|
+
* @returns New access token, refresh token, and expiration info, or null on error
|
|
95
|
+
*/
|
|
96
|
+
refreshToken(refreshToken: string, authStrategy?: AuthStrategy): Promise<RefreshTokenResponse | null>;
|
|
75
97
|
/**
|
|
76
98
|
* Check if user is authenticated (has valid token)
|
|
77
99
|
* @param token - User authentication token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,QAAQ,EAER,YAAY,EACZ,aAAa,EACb,cAAc,
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,QAAQ,EAER,YAAY,EACZ,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAU/B,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IAOvD;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAsF5C;;;;;;;;;;;;OAYG;IACG,KAAK,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsF1B;;;;;;;OAOG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IA2CnB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuB3B;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAuB3B;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAcpC;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAwHhE;;;;;OAKG;IACG,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAsFvC;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;CAGpB"}
|