@aifabrix/miso-client 4.0.0 → 4.2.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 +73 -6
- package/dist/api/types/encryption.types.d.ts +4 -0
- package/dist/api/types/encryption.types.d.ts.map +1 -1
- 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.js +2 -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/encryption.service.d.ts +15 -3
- package/dist/services/encryption.service.d.ts.map +1 -1
- package/dist/services/encryption.service.js +22 -3
- package/dist/services/encryption.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 +2 -0
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js.map +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +79 -94
- 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/encryption-error.d.ts +5 -5
- package/dist/utils/encryption-error.d.ts.map +1 -1
- package/dist/utils/encryption-error.js +2 -2
- package/dist/utils/encryption-error.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +39 -60
- 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/internal-http-client.d.ts +54 -2
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +93 -76
- package/dist/utils/internal-http-client.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ export declare class AuthService {
|
|
|
12
12
|
private config;
|
|
13
13
|
private tokenValidationTTL;
|
|
14
14
|
private minValidationTTL;
|
|
15
|
+
private userTTL;
|
|
15
16
|
constructor(httpClient: HttpClient, apiClient: ApiClient, cache: CacheService);
|
|
16
17
|
/**
|
|
17
18
|
* Check if token matches configured API key for testing
|
|
@@ -42,22 +43,17 @@ export declare class AuthService {
|
|
|
42
43
|
* Generate unique correlation ID for request tracking
|
|
43
44
|
*/
|
|
44
45
|
private generateCorrelationId;
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
/** Extract token from response (handles nested and flat formats) */
|
|
47
|
+
private extractTokenFromEnvResponse;
|
|
48
|
+
/** Get environment token using client credentials */
|
|
48
49
|
getEnvironmentToken(): Promise<string>;
|
|
49
50
|
/**
|
|
50
|
-
* Initiate login flow by calling controller
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* Important: Your application only needs to know about your own app URLs and the miso-controller.
|
|
54
|
-
* The miso-controller manages all authentication flows internally, including OAuth callbacks with Keycloak.
|
|
55
|
-
* You don't need to handle OAuth callbacks in your application.
|
|
56
|
-
*
|
|
51
|
+
* Initiate login flow by calling controller. Returns login URL and state for browser redirect.
|
|
52
|
+
* Your app only needs to know your own URLs and miso-controller - it handles OAuth callbacks with Keycloak.
|
|
57
53
|
* @param params - Login parameters
|
|
58
|
-
* @param params.redirect -
|
|
54
|
+
* @param params.redirect - Final destination URL in your app after authentication (e.g., 'https://myapp.com/dashboard')
|
|
59
55
|
* @param params.state - Optional CSRF protection token (auto-generated by controller if omitted)
|
|
60
|
-
* @returns Login response with loginUrl
|
|
56
|
+
* @returns Login response with loginUrl and state
|
|
61
57
|
*/
|
|
62
58
|
login(params: {
|
|
63
59
|
redirect: string;
|
|
@@ -81,6 +77,7 @@ export declare class AuthService {
|
|
|
81
77
|
getUser(token: string, authStrategy?: AuthStrategy): Promise<UserInfo | null>;
|
|
82
78
|
/**
|
|
83
79
|
* Get user information from GET /api/v1/auth/user endpoint
|
|
80
|
+
* Caches user info by userId with configurable TTL (default 5 minutes)
|
|
84
81
|
* If API_KEY is configured and token matches, returns null (by design for testing)
|
|
85
82
|
* @param token - User authentication token
|
|
86
83
|
* @param authStrategy - Optional authentication strategy override
|
|
@@ -93,12 +90,14 @@ export declare class AuthService {
|
|
|
93
90
|
*/
|
|
94
91
|
clearTokenCache(token: string): void;
|
|
95
92
|
/**
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
93
|
+
* Clear cached user info
|
|
94
|
+
* Uses userId extracted from token for cache key
|
|
95
|
+
* @param token - User authentication token
|
|
96
|
+
*/
|
|
97
|
+
clearUserCache(token: string): void;
|
|
98
|
+
/**
|
|
99
|
+
* Logout user. Gracefully handles no active session (400). Clears token/user caches.
|
|
100
|
+
* @param params - Logout parameters with token to invalidate
|
|
102
101
|
* @returns Logout response with success message
|
|
103
102
|
*/
|
|
104
103
|
logout(params: {
|
|
@@ -106,8 +105,7 @@ export declare class AuthService {
|
|
|
106
105
|
}): Promise<LogoutResponse>;
|
|
107
106
|
/**
|
|
108
107
|
* Refresh user access token using refresh token
|
|
109
|
-
* @param refreshToken - Refresh token to exchange for new
|
|
110
|
-
* @param authStrategy - Optional authentication strategy override
|
|
108
|
+
* @param refreshToken - Refresh token to exchange for new tokens
|
|
111
109
|
* @returns New access token, refresh token, and expiration info, or null on error
|
|
112
110
|
*/
|
|
113
111
|
refreshToken(refreshToken: string, authStrategy?: AuthStrategy): Promise<RefreshTokenResponse | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAW/B,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAU7E;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAsB5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B,oEAAoE;IACpE,OAAO,CAAC,2BAA2B;IAOnC,qDAAqD;IAC/C,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAqC5C;;;;;;;OAOG;IACG,KAAK,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,aAAa,CAAC;IAoC1B;;;;;;;OAOG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IA4CnB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAgC3B;;;;;;OAMG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAqD3B;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWpC;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAanC;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBhE;;;;OAIG;IACG,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA8BvC;;;;OAIG;IACG,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;CAGpB"}
|
|
@@ -52,6 +52,7 @@ class AuthService {
|
|
|
52
52
|
this.apiClient = apiClient;
|
|
53
53
|
this.tokenValidationTTL = this.config.cache?.tokenValidationTTL || 900; // 15 minutes default
|
|
54
54
|
this.minValidationTTL = this.config.cache?.minValidationTTL || 60; // 60 seconds default
|
|
55
|
+
this.userTTL = this.config.cache?.userTTL || 300; // 5 minutes default
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
* Check if token matches configured API key for testing
|
|
@@ -121,27 +122,29 @@ class AuthService {
|
|
|
121
122
|
const clientPrefix = this.config.clientId.substring(0, 10);
|
|
122
123
|
return `${clientPrefix}-${timestamp}-${random}`;
|
|
123
124
|
}
|
|
124
|
-
/**
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
/** Extract token from response (handles nested and flat formats) */
|
|
126
|
+
extractTokenFromEnvResponse(data) {
|
|
127
|
+
const rd = data;
|
|
128
|
+
const dataObj = rd?.data;
|
|
129
|
+
const nestedData = dataObj?.data;
|
|
130
|
+
return (nestedData?.token || dataObj?.token || rd?.token);
|
|
131
|
+
}
|
|
132
|
+
/** Get environment token using client credentials */
|
|
127
133
|
async getEnvironmentToken() {
|
|
128
134
|
const correlationId = this.generateCorrelationId();
|
|
129
135
|
const clientId = this.config.clientId;
|
|
136
|
+
const axiosTimeout = 4000;
|
|
130
137
|
try {
|
|
131
138
|
const axios = (await Promise.resolve().then(() => __importStar(require("axios")))).default;
|
|
132
|
-
const controllerUrl = (0, controller_url_resolver_1.resolveControllerUrl)(this.config);
|
|
133
|
-
const tokenUri = this.config.clientTokenUri || "/api/v1/auth/token";
|
|
134
|
-
const axiosTimeout = 4000;
|
|
135
|
-
const controller = new AbortController();
|
|
136
|
-
const timeoutId = setTimeout(() => controller.abort(), axiosTimeout);
|
|
137
139
|
const http = await Promise.resolve().then(() => __importStar(require("http")));
|
|
138
140
|
const https = await Promise.resolve().then(() => __importStar(require("https")));
|
|
141
|
+
const controllerUrl = (0, controller_url_resolver_1.resolveControllerUrl)(this.config);
|
|
139
142
|
const isHttps = controllerUrl.startsWith("https://");
|
|
140
143
|
const agentOpts = { family: 4, timeout: axiosTimeout };
|
|
144
|
+
const controller = new AbortController();
|
|
145
|
+
const timeoutId = setTimeout(() => controller.abort(), axiosTimeout);
|
|
141
146
|
const tempAxios = axios.create({
|
|
142
|
-
baseURL: controllerUrl,
|
|
143
|
-
timeout: axiosTimeout,
|
|
144
|
-
signal: controller.signal,
|
|
147
|
+
baseURL: controllerUrl, timeout: axiosTimeout, signal: controller.signal,
|
|
145
148
|
httpAgent: !isHttps ? new http.Agent(agentOpts) : undefined,
|
|
146
149
|
httpsAgent: isHttps ? new https.Agent(agentOpts) : undefined,
|
|
147
150
|
headers: { "Content-Type": "application/json", "x-client-id": clientId, "x-client-secret": this.config.clientSecret },
|
|
@@ -149,21 +152,16 @@ class AuthService {
|
|
|
149
152
|
const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error(`Request timeout after ${axiosTimeout}ms`)), axiosTimeout));
|
|
150
153
|
let response;
|
|
151
154
|
try {
|
|
152
|
-
response = await Promise.race([tempAxios.post(
|
|
155
|
+
response = await Promise.race([tempAxios.post(this.config.clientTokenUri || "/api/v1/auth/token"), timeoutPromise]);
|
|
153
156
|
clearTimeout(timeoutId);
|
|
154
157
|
}
|
|
155
158
|
catch (e) {
|
|
156
159
|
clearTimeout(timeoutId);
|
|
157
160
|
throw e;
|
|
158
161
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
const dataObj = rd?.data;
|
|
162
|
-
const nestedData = dataObj?.data;
|
|
163
|
-
const token = (nestedData?.token || dataObj?.token || rd?.token);
|
|
164
|
-
if (response.status >= 200 && response.status < 300 && token) {
|
|
162
|
+
const token = this.extractTokenFromEnvResponse(response.data);
|
|
163
|
+
if (response.status >= 200 && response.status < 300 && token)
|
|
165
164
|
return token;
|
|
166
|
-
}
|
|
167
165
|
throw new Error(`Invalid response format. Status: ${response.status}`);
|
|
168
166
|
}
|
|
169
167
|
catch (error) {
|
|
@@ -171,17 +169,12 @@ class AuthService {
|
|
|
171
169
|
}
|
|
172
170
|
}
|
|
173
171
|
/**
|
|
174
|
-
* Initiate login flow by calling controller
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
* Important: Your application only needs to know about your own app URLs and the miso-controller.
|
|
178
|
-
* The miso-controller manages all authentication flows internally, including OAuth callbacks with Keycloak.
|
|
179
|
-
* You don't need to handle OAuth callbacks in your application.
|
|
180
|
-
*
|
|
172
|
+
* Initiate login flow by calling controller. Returns login URL and state for browser redirect.
|
|
173
|
+
* Your app only needs to know your own URLs and miso-controller - it handles OAuth callbacks with Keycloak.
|
|
181
174
|
* @param params - Login parameters
|
|
182
|
-
* @param params.redirect -
|
|
175
|
+
* @param params.redirect - Final destination URL in your app after authentication (e.g., 'https://myapp.com/dashboard')
|
|
183
176
|
* @param params.state - Optional CSRF protection token (auto-generated by controller if omitted)
|
|
184
|
-
* @returns Login response with loginUrl
|
|
177
|
+
* @returns Login response with loginUrl and state
|
|
185
178
|
*/
|
|
186
179
|
async login(params) {
|
|
187
180
|
const correlationId = this.generateCorrelationId();
|
|
@@ -283,6 +276,7 @@ class AuthService {
|
|
|
283
276
|
}
|
|
284
277
|
/**
|
|
285
278
|
* Get user information from GET /api/v1/auth/user endpoint
|
|
279
|
+
* Caches user info by userId with configurable TTL (default 5 minutes)
|
|
286
280
|
* If API_KEY is configured and token matches, returns null (by design for testing)
|
|
287
281
|
* @param token - User authentication token
|
|
288
282
|
* @param authStrategy - Optional authentication strategy override
|
|
@@ -293,17 +287,33 @@ class AuthService {
|
|
|
293
287
|
return null;
|
|
294
288
|
}
|
|
295
289
|
try {
|
|
290
|
+
// Extract userId from token to check cache first (avoids API call on cache hit)
|
|
291
|
+
const userId = this.extractUserIdFromToken(token);
|
|
292
|
+
const cacheKey = userId ? `user:${userId}` : null;
|
|
293
|
+
// Check cache first if we have userId
|
|
294
|
+
if (cacheKey) {
|
|
295
|
+
const cached = await this.cache.get(cacheKey);
|
|
296
|
+
if (cached) {
|
|
297
|
+
return cached.user;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// Cache miss - fetch from controller
|
|
296
301
|
const authStrategyToUse = authStrategy || this.config.authStrategy;
|
|
297
302
|
const authStrategyWithToken = authStrategyToUse
|
|
298
303
|
? { ...authStrategyToUse, bearerToken: token }
|
|
299
304
|
: { methods: ['bearer'], bearerToken: token };
|
|
300
305
|
const result = await this.apiClient.auth.getUser(authStrategyWithToken);
|
|
301
306
|
if (result.data?.authenticated && result.data.user) {
|
|
302
|
-
|
|
307
|
+
const user = {
|
|
303
308
|
id: result.data.user.id,
|
|
304
309
|
username: result.data.user.username,
|
|
305
310
|
email: result.data.user.email,
|
|
306
311
|
};
|
|
312
|
+
// Cache the result if we have userId
|
|
313
|
+
if (cacheKey) {
|
|
314
|
+
await this.cache.set(cacheKey, { user, timestamp: Date.now() }, this.userTTL);
|
|
315
|
+
}
|
|
316
|
+
return user;
|
|
307
317
|
}
|
|
308
318
|
return null;
|
|
309
319
|
}
|
|
@@ -329,12 +339,26 @@ class AuthService {
|
|
|
329
339
|
}
|
|
330
340
|
}
|
|
331
341
|
/**
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
342
|
+
* Clear cached user info
|
|
343
|
+
* Uses userId extracted from token for cache key
|
|
344
|
+
* @param token - User authentication token
|
|
345
|
+
*/
|
|
346
|
+
clearUserCache(token) {
|
|
347
|
+
try {
|
|
348
|
+
const userId = this.extractUserIdFromToken(token);
|
|
349
|
+
if (userId) {
|
|
350
|
+
// Use void to ignore promise result - cache clearing should not block
|
|
351
|
+
void this.cache.delete(`user:${userId}`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
// Log but don't throw - cache clearing failures should not break flow
|
|
356
|
+
console.warn("Failed to clear user cache:", error);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Logout user. Gracefully handles no active session (400). Clears token/user caches.
|
|
361
|
+
* @param params - Logout parameters with token to invalidate
|
|
338
362
|
* @returns Logout response with success message
|
|
339
363
|
*/
|
|
340
364
|
async logout(params) {
|
|
@@ -343,8 +367,9 @@ class AuthService {
|
|
|
343
367
|
try {
|
|
344
368
|
// Use ApiClient for typed API call
|
|
345
369
|
const response = await this.apiClient.auth.logoutWithToken(params.token);
|
|
346
|
-
// Clear
|
|
370
|
+
// Clear caches after successful logout
|
|
347
371
|
this.clearTokenCache(params.token);
|
|
372
|
+
this.clearUserCache(params.token);
|
|
348
373
|
return response;
|
|
349
374
|
}
|
|
350
375
|
catch (error) {
|
|
@@ -352,6 +377,7 @@ class AuthService {
|
|
|
352
377
|
if ((0, auth_error_handler_1.isHttpStatus)(error, 400)) {
|
|
353
378
|
console.warn(`Logout: No active session (400) [correlationId: ${correlationId}]`);
|
|
354
379
|
this.clearTokenCache(params.token);
|
|
380
|
+
this.clearUserCache(params.token);
|
|
355
381
|
return { success: true, message: "Logout successful (no active session)", timestamp: new Date().toISOString() };
|
|
356
382
|
}
|
|
357
383
|
(0, auth_error_handler_1.handleAuthError)(error, "Logout", correlationId, clientId);
|
|
@@ -359,8 +385,7 @@ class AuthService {
|
|
|
359
385
|
}
|
|
360
386
|
/**
|
|
361
387
|
* Refresh user access token using refresh token
|
|
362
|
-
* @param refreshToken - Refresh token to exchange for new
|
|
363
|
-
* @param authStrategy - Optional authentication strategy override
|
|
388
|
+
* @param refreshToken - Refresh token to exchange for new tokens
|
|
364
389
|
* @returns New access token, refresh token, and expiration info, or null on error
|
|
365
390
|
*/
|
|
366
391
|
async refreshToken(refreshToken, authStrategy) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/services/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,13 +20,20 @@ export declare class EncryptionService {
|
|
|
20
20
|
private apiClient;
|
|
21
21
|
/** Parameter name validation regex (matches controller validation) */
|
|
22
22
|
private static readonly PARAMETER_NAME_REGEX;
|
|
23
|
-
|
|
23
|
+
/** Encryption key for server-side validation */
|
|
24
|
+
private encryptionKey;
|
|
25
|
+
/**
|
|
26
|
+
* Create encryption service
|
|
27
|
+
* @param apiClient - API client for controller communication
|
|
28
|
+
* @param encryptionKey - Encryption key for server-side validation (from MISO_ENCRYPTION_KEY)
|
|
29
|
+
*/
|
|
30
|
+
constructor(apiClient: ApiClient, encryptionKey?: string);
|
|
24
31
|
/**
|
|
25
32
|
* Encrypt a plaintext value and store as security parameter
|
|
26
33
|
* @param plaintext - The value to encrypt (max 32KB)
|
|
27
34
|
* @param parameterName - Name identifier (alphanumeric, dots, underscores, hyphens, 1-128 chars)
|
|
28
35
|
* @returns Encrypt result with value reference and storage type
|
|
29
|
-
* @throws EncryptionError if parameter name is invalid or encryption fails
|
|
36
|
+
* @throws EncryptionError if encryption key is missing, parameter name is invalid, or encryption fails
|
|
30
37
|
*/
|
|
31
38
|
encrypt(plaintext: string, parameterName: string): Promise<EncryptResult>;
|
|
32
39
|
/**
|
|
@@ -34,9 +41,14 @@ export declare class EncryptionService {
|
|
|
34
41
|
* @param value - Encrypted reference (kv:// or enc://v1:)
|
|
35
42
|
* @param parameterName - Name identifier (must match encryption)
|
|
36
43
|
* @returns Decrypted plaintext value
|
|
37
|
-
* @throws EncryptionError if parameter name is invalid or decryption fails
|
|
44
|
+
* @throws EncryptionError if encryption key is missing, parameter name is invalid, or decryption fails
|
|
38
45
|
*/
|
|
39
46
|
decrypt(value: string, parameterName: string): Promise<string>;
|
|
47
|
+
/**
|
|
48
|
+
* Validate that encryption key is configured
|
|
49
|
+
* @throws EncryptionError if encryption key is not set
|
|
50
|
+
*/
|
|
51
|
+
private validateEncryptionKey;
|
|
40
52
|
/**
|
|
41
53
|
* Validate parameter name against allowed pattern
|
|
42
54
|
* @param name - Parameter name to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.service.d.ts","sourceRoot":"","sources":["../../src/services/encryption.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"encryption.service.d.ts","sourceRoot":"","sources":["../../src/services/encryption.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAYhB,OAAO,CAAC,SAAS;IAX7B,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAEzE,gDAAgD;IAChD,OAAO,CAAC,aAAa,CAAqB;IAE1C;;;;OAIG;gBACiB,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM;IAIhE;;;;;;OAMG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAgB/E;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAapE;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;CAS9B"}
|
|
@@ -11,21 +11,29 @@ const encryption_error_1 = require("../utils/encryption-error");
|
|
|
11
11
|
* Provides encrypt/decrypt methods with client-side parameter validation
|
|
12
12
|
*/
|
|
13
13
|
class EncryptionService {
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Create encryption service
|
|
16
|
+
* @param apiClient - API client for controller communication
|
|
17
|
+
* @param encryptionKey - Encryption key for server-side validation (from MISO_ENCRYPTION_KEY)
|
|
18
|
+
*/
|
|
19
|
+
constructor(apiClient, encryptionKey) {
|
|
15
20
|
this.apiClient = apiClient;
|
|
21
|
+
this.encryptionKey = encryptionKey;
|
|
16
22
|
}
|
|
17
23
|
/**
|
|
18
24
|
* Encrypt a plaintext value and store as security parameter
|
|
19
25
|
* @param plaintext - The value to encrypt (max 32KB)
|
|
20
26
|
* @param parameterName - Name identifier (alphanumeric, dots, underscores, hyphens, 1-128 chars)
|
|
21
27
|
* @returns Encrypt result with value reference and storage type
|
|
22
|
-
* @throws EncryptionError if parameter name is invalid or encryption fails
|
|
28
|
+
* @throws EncryptionError if encryption key is missing, parameter name is invalid, or encryption fails
|
|
23
29
|
*/
|
|
24
30
|
async encrypt(plaintext, parameterName) {
|
|
31
|
+
this.validateEncryptionKey();
|
|
25
32
|
this.validateParameterName(parameterName);
|
|
26
33
|
const response = await this.apiClient.encryption.encrypt({
|
|
27
34
|
plaintext,
|
|
28
35
|
parameterName,
|
|
36
|
+
encryptionKey: this.encryptionKey,
|
|
29
37
|
});
|
|
30
38
|
return {
|
|
31
39
|
value: response.value,
|
|
@@ -37,16 +45,27 @@ class EncryptionService {
|
|
|
37
45
|
* @param value - Encrypted reference (kv:// or enc://v1:)
|
|
38
46
|
* @param parameterName - Name identifier (must match encryption)
|
|
39
47
|
* @returns Decrypted plaintext value
|
|
40
|
-
* @throws EncryptionError if parameter name is invalid or decryption fails
|
|
48
|
+
* @throws EncryptionError if encryption key is missing, parameter name is invalid, or decryption fails
|
|
41
49
|
*/
|
|
42
50
|
async decrypt(value, parameterName) {
|
|
51
|
+
this.validateEncryptionKey();
|
|
43
52
|
this.validateParameterName(parameterName);
|
|
44
53
|
const response = await this.apiClient.encryption.decrypt({
|
|
45
54
|
value,
|
|
46
55
|
parameterName,
|
|
56
|
+
encryptionKey: this.encryptionKey,
|
|
47
57
|
});
|
|
48
58
|
return response.plaintext;
|
|
49
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Validate that encryption key is configured
|
|
62
|
+
* @throws EncryptionError if encryption key is not set
|
|
63
|
+
*/
|
|
64
|
+
validateEncryptionKey() {
|
|
65
|
+
if (!this.encryptionKey) {
|
|
66
|
+
throw new encryption_error_1.EncryptionError('Encryption key is required. Set MISO_ENCRYPTION_KEY environment variable or provide encryptionKey in config.', 'ENCRYPTION_KEY_REQUIRED');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
50
69
|
/**
|
|
51
70
|
* Validate parameter name against allowed pattern
|
|
52
71
|
* @param name - Parameter name to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption.service.js","sourceRoot":"","sources":["../../src/services/encryption.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,gEAA4D;AAY5D;;;GAGG;AACH,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"encryption.service.js","sourceRoot":"","sources":["../../src/services/encryption.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,gEAA4D;AAY5D;;;GAGG;AACH,MAAa,iBAAiB;IAO5B;;;;OAIG;IACH,YAAoB,SAAoB,EAAE,aAAsB;QAA5C,cAAS,GAAT,SAAS,CAAW;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,aAAqB;QACpD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACvD,SAAS;YACT,aAAa;YACb,aAAa,EAAE,IAAI,CAAC,aAAc;SACnC,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,aAAqB;QAChD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC;YACvD,KAAK;YACL,aAAa;YACb,aAAa,EAAE,IAAI,CAAC,aAAc;SACnC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,SAAS,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACK,qBAAqB;QAC3B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,kCAAe,CACvB,8GAA8G,EAC9G,yBAAyB,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,IAAY;QACxC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,kCAAe,CACvB,sGAAsG,EACtG,wBAAwB,EACxB,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC;;AArFH,8CAsFC;AArFC,sEAAsE;AAC9C,sCAAoB,GAAG,yBAAyB,CAAC"}
|
|
@@ -13,13 +13,20 @@ export declare class PermissionService {
|
|
|
13
13
|
private permissionTTL;
|
|
14
14
|
private applicationContextService;
|
|
15
15
|
constructor(httpClient: HttpClient, apiClient: ApiClient, cache: CacheService);
|
|
16
|
+
/** Build auth strategy with bearer token */
|
|
17
|
+
private buildAuthStrategy;
|
|
18
|
+
/** Get environment query params from application context */
|
|
19
|
+
private getEnvironmentParams;
|
|
20
|
+
/** Get userId from token, validating via API if not in JWT */
|
|
21
|
+
private resolveUserId;
|
|
16
22
|
/**
|
|
17
23
|
* Get user permissions with caching
|
|
18
|
-
* Optimized to extract userId from token first to check cache before API call
|
|
19
24
|
* @param token - User authentication token
|
|
20
25
|
* @param authStrategy - Optional authentication strategy override
|
|
21
26
|
*/
|
|
22
27
|
getPermissions(token: string, authStrategy?: AuthStrategy): Promise<string[]>;
|
|
28
|
+
/** Fetch permissions from controller API */
|
|
29
|
+
private fetchPermissionsFromController;
|
|
23
30
|
/**
|
|
24
31
|
* Check if user has specific permission
|
|
25
32
|
* @param token - User authentication token
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../src/services/permission.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAS/B,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,yBAAyB,CAA4B;gBAEjD,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAS7E
|
|
1
|
+
{"version":3,"file":"permission.service.d.ts","sourceRoot":"","sources":["../../src/services/permission.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAS/B,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,yBAAyB,CAA4B;gBAEjD,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY;IAS7E,4CAA4C;IAC5C,OAAO,CAAC,iBAAiB;IAKzB,4DAA4D;IAC5D,OAAO,CAAC,oBAAoB;IAK5B,8DAA8D;YAChD,aAAa;IAQ3B;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BnF,4CAA4C;YAC9B,8BAA8B;IAO5C;;;;;OAKG;IACG,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;OAKG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;OAIG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBvF;;;;OAIG;IACG,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAWvF"}
|