@aifabrix/miso-client 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +231 -2
- package/dist/express/async-handler.d.ts +41 -0
- package/dist/express/async-handler.d.ts.map +1 -0
- package/dist/express/async-handler.js +58 -0
- package/dist/express/async-handler.js.map +1 -0
- package/dist/express/encryption.d.ts +29 -0
- package/dist/express/encryption.d.ts.map +1 -0
- package/dist/express/encryption.js +95 -0
- package/dist/express/encryption.js.map +1 -0
- package/dist/express/error-handler.d.ts +23 -0
- package/dist/express/error-handler.d.ts.map +1 -0
- package/dist/express/error-handler.js +140 -0
- package/dist/express/error-handler.js.map +1 -0
- package/dist/express/error-response.d.ts +55 -0
- package/dist/express/error-response.d.ts.map +1 -0
- package/dist/express/error-response.js +95 -0
- package/dist/express/error-response.js.map +1 -0
- package/dist/express/error-types.d.ts +46 -0
- package/dist/express/error-types.d.ts.map +1 -0
- package/dist/express/error-types.js +93 -0
- package/dist/express/error-types.js.map +1 -0
- package/dist/express/index.d.ts +14 -0
- package/dist/express/index.d.ts.map +1 -0
- package/dist/express/index.js +39 -0
- package/dist/express/index.js.map +1 -0
- package/dist/express/response-helper.d.ts +67 -0
- package/dist/express/response-helper.d.ts.map +1 -0
- package/dist/express/response-helper.js +83 -0
- package/dist/express/response-helper.js.map +1 -0
- package/dist/express/response-middleware.d.ts +18 -0
- package/dist/express/response-middleware.d.ts.map +1 -0
- package/dist/express/response-middleware.js +29 -0
- package/dist/express/response-middleware.js.map +1 -0
- package/dist/express/validation-helper.d.ts +66 -0
- package/dist/express/validation-helper.d.ts.map +1 -0
- package/dist/express/validation-helper.js +102 -0
- package/dist/express/validation-helper.js.map +1 -0
- package/dist/index.d.ts +23 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -23
- package/dist/index.js.map +1 -1
- package/dist/services/auth.service.d.ts +3 -3
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +24 -18
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/cache.service.d.ts +1 -1
- package/dist/services/cache.service.d.ts.map +1 -1
- package/dist/services/cache.service.js +1 -1
- package/dist/services/cache.service.js.map +1 -1
- package/dist/services/logger.service.d.ts +3 -3
- package/dist/services/logger.service.d.ts.map +1 -1
- package/dist/services/logger.service.js +32 -25
- package/dist/services/logger.service.js.map +1 -1
- package/dist/services/permission.service.d.ts +3 -3
- package/dist/services/permission.service.d.ts.map +1 -1
- package/dist/services/permission.service.js +9 -6
- package/dist/services/permission.service.js.map +1 -1
- package/dist/services/redis.service.d.ts +1 -1
- package/dist/services/redis.service.js +10 -10
- package/dist/services/role.service.d.ts +3 -3
- package/dist/services/role.service.d.ts.map +1 -1
- package/dist/services/role.service.js +8 -5
- package/dist/services/role.service.js.map +1 -1
- package/dist/types/config.types.d.ts +4 -4
- package/dist/types/config.types.d.ts.map +1 -1
- package/dist/types/config.types.js +6 -5
- package/dist/types/config.types.js.map +1 -1
- package/dist/types/filter.types.d.ts +1 -1
- package/dist/types/filter.types.d.ts.map +1 -1
- package/dist/types/filter.types.js +2 -2
- package/dist/types/filter.types.js.map +1 -1
- package/dist/types/sort.types.d.ts +1 -1
- package/dist/utils/audit-log-queue.d.ts +4 -4
- package/dist/utils/audit-log-queue.d.ts.map +1 -1
- package/dist/utils/audit-log-queue.js +11 -11
- package/dist/utils/audit-log-queue.js.map +1 -1
- package/dist/utils/auth-strategy.d.ts +1 -1
- package/dist/utils/auth-strategy.d.ts.map +1 -1
- package/dist/utils/auth-strategy.js +19 -17
- package/dist/utils/auth-strategy.js.map +1 -1
- package/dist/utils/config-loader.d.ts +2 -2
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +11 -10
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/data-masker.d.ts.map +1 -1
- package/dist/utils/data-masker.js +7 -7
- package/dist/utils/data-masker.js.map +1 -1
- package/dist/utils/errors.d.ts +2 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +37 -30
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/filter.utils.d.ts +2 -2
- package/dist/utils/filter.utils.d.ts.map +1 -1
- package/dist/utils/filter.utils.js +24 -18
- package/dist/utils/filter.utils.js.map +1 -1
- package/dist/utils/http-client-audit.d.ts +4 -4
- package/dist/utils/http-client-audit.d.ts.map +1 -1
- package/dist/utils/http-client-audit.js +30 -22
- package/dist/utils/http-client-audit.js.map +1 -1
- package/dist/utils/http-client-masking.d.ts +1 -1
- package/dist/utils/http-client-masking.d.ts.map +1 -1
- package/dist/utils/http-client-masking.js +31 -21
- package/dist/utils/http-client-masking.js.map +1 -1
- package/dist/utils/http-client-metadata.d.ts +2 -2
- package/dist/utils/http-client-metadata.d.ts.map +1 -1
- package/dist/utils/http-client-metadata.js +7 -7
- package/dist/utils/http-client-metadata.js.map +1 -1
- package/dist/utils/http-client.d.ts +6 -6
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +8 -9
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/internal-http-client.d.ts +5 -5
- package/dist/utils/internal-http-client.d.ts.map +1 -1
- package/dist/utils/internal-http-client.js +48 -42
- package/dist/utils/internal-http-client.js.map +1 -1
- package/dist/utils/pagination.utils.d.ts +1 -1
- package/dist/utils/pagination.utils.d.ts.map +1 -1
- package/dist/utils/pagination.utils.js +3 -3
- package/dist/utils/pagination.utils.js.map +1 -1
- package/dist/utils/sensitive-fields.loader.d.ts.map +1 -1
- package/dist/utils/sensitive-fields.loader.js +77 -60
- package/dist/utils/sensitive-fields.loader.js.map +1 -1
- package/dist/utils/sort.utils.d.ts +14 -3
- package/dist/utils/sort.utils.d.ts.map +1 -1
- package/dist/utils/sort.utils.js +73 -9
- package/dist/utils/sort.utils.js.map +1 -1
- package/package.json +11 -2
- package/dist/services/encryption.service.d.ts +0 -32
- package/dist/services/encryption.service.d.ts.map +0 -1
- package/dist/services/encryption.service.js +0 -135
- package/dist/services/encryption.service.js.map +0 -1
|
@@ -16,7 +16,7 @@ class RedisService {
|
|
|
16
16
|
async connect() {
|
|
17
17
|
if (!this.config) {
|
|
18
18
|
// eslint-disable-next-line no-console
|
|
19
|
-
console.log(
|
|
19
|
+
console.log("Redis not configured, using controller fallback");
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
try {
|
|
@@ -25,18 +25,18 @@ class RedisService {
|
|
|
25
25
|
port: this.config.port,
|
|
26
26
|
password: this.config.password,
|
|
27
27
|
db: this.config.db || 0,
|
|
28
|
-
keyPrefix: this.config.keyPrefix ||
|
|
28
|
+
keyPrefix: this.config.keyPrefix || "miso:",
|
|
29
29
|
maxRetriesPerRequest: 3,
|
|
30
|
-
lazyConnect: true
|
|
30
|
+
lazyConnect: true,
|
|
31
31
|
});
|
|
32
32
|
await this.redis.connect();
|
|
33
33
|
this.connected = true;
|
|
34
34
|
// eslint-disable-next-line no-console
|
|
35
|
-
console.log(
|
|
35
|
+
console.log("Connected to Redis");
|
|
36
36
|
}
|
|
37
37
|
catch (error) {
|
|
38
38
|
// eslint-disable-next-line no-console
|
|
39
|
-
console.error(
|
|
39
|
+
console.error("Failed to connect to Redis:", error);
|
|
40
40
|
this.connected = false;
|
|
41
41
|
throw error;
|
|
42
42
|
}
|
|
@@ -46,7 +46,7 @@ class RedisService {
|
|
|
46
46
|
await this.redis.disconnect();
|
|
47
47
|
this.connected = false;
|
|
48
48
|
// eslint-disable-next-line no-console
|
|
49
|
-
console.log(
|
|
49
|
+
console.log("Disconnected from Redis");
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
async get(key) {
|
|
@@ -58,7 +58,7 @@ class RedisService {
|
|
|
58
58
|
}
|
|
59
59
|
catch (error) {
|
|
60
60
|
// eslint-disable-next-line no-console
|
|
61
|
-
console.error(
|
|
61
|
+
console.error("Redis get error:", error);
|
|
62
62
|
return null;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -72,7 +72,7 @@ class RedisService {
|
|
|
72
72
|
}
|
|
73
73
|
catch (error) {
|
|
74
74
|
// eslint-disable-next-line no-console
|
|
75
|
-
console.error(
|
|
75
|
+
console.error("Redis set error:", error);
|
|
76
76
|
return false;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -86,7 +86,7 @@ class RedisService {
|
|
|
86
86
|
}
|
|
87
87
|
catch (error) {
|
|
88
88
|
// eslint-disable-next-line no-console
|
|
89
|
-
console.error(
|
|
89
|
+
console.error("Redis delete error:", error);
|
|
90
90
|
return false;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -100,7 +100,7 @@ class RedisService {
|
|
|
100
100
|
}
|
|
101
101
|
catch (error) {
|
|
102
102
|
// eslint-disable-next-line no-console
|
|
103
|
-
console.error(
|
|
103
|
+
console.error("Redis rpush error:", error);
|
|
104
104
|
return false;
|
|
105
105
|
}
|
|
106
106
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Role service for completely authorization with caching
|
|
3
3
|
*/
|
|
4
|
-
import { HttpClient } from
|
|
5
|
-
import { CacheService } from
|
|
6
|
-
import { AuthStrategy } from
|
|
4
|
+
import { HttpClient } from "../utils/http-client";
|
|
5
|
+
import { CacheService } from "./cache.service";
|
|
6
|
+
import { AuthStrategy } from "../types/config.types";
|
|
7
7
|
export declare class RoleService {
|
|
8
8
|
private httpClient;
|
|
9
9
|
private cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../src/services/role.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,
|
|
1
|
+
{"version":3,"file":"role.service.d.ts","sourceRoot":"","sources":["../../src/services/role.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,EAGL,YAAY,EACb,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IAOvD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;OAKG;IACG,QAAQ,CACZ,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;IAsDpB;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;CAwCrB"}
|
|
@@ -24,7 +24,10 @@ class RoleService {
|
|
|
24
24
|
if (!decoded)
|
|
25
25
|
return null;
|
|
26
26
|
// Try common JWT claim fields for user ID
|
|
27
|
-
return (decoded.sub ||
|
|
27
|
+
return (decoded.sub ||
|
|
28
|
+
decoded.userId ||
|
|
29
|
+
decoded.user_id ||
|
|
30
|
+
decoded.id);
|
|
28
31
|
}
|
|
29
32
|
catch (error) {
|
|
30
33
|
return null;
|
|
@@ -58,7 +61,7 @@ class RoleService {
|
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
// Cache miss - fetch from controller
|
|
61
|
-
const roleResult = await this.httpClient.authenticatedRequest(
|
|
64
|
+
const roleResult = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/roles", // Backend knows app/env from client token
|
|
62
65
|
token, undefined, undefined, authStrategy);
|
|
63
66
|
const roles = roleResult.roles || [];
|
|
64
67
|
// Cache the result (use userId-based key)
|
|
@@ -68,7 +71,7 @@ class RoleService {
|
|
|
68
71
|
}
|
|
69
72
|
catch (error) {
|
|
70
73
|
// eslint-disable-next-line no-console
|
|
71
|
-
console.error(
|
|
74
|
+
console.error("Failed to get roles:", error);
|
|
72
75
|
return [];
|
|
73
76
|
}
|
|
74
77
|
}
|
|
@@ -117,7 +120,7 @@ class RoleService {
|
|
|
117
120
|
const userId = userInfo.user.id;
|
|
118
121
|
const cacheKey = `roles:${userId}`;
|
|
119
122
|
// Fetch fresh roles from controller using refresh endpoint
|
|
120
|
-
const roleResult = await this.httpClient.authenticatedRequest(
|
|
123
|
+
const roleResult = await this.httpClient.authenticatedRequest("GET", "/api/v1/auth/roles/refresh", token, undefined, undefined, authStrategy);
|
|
121
124
|
const roles = roleResult.roles || [];
|
|
122
125
|
// Update cache with fresh data
|
|
123
126
|
await this.cache.set(cacheKey, { roles, timestamp: Date.now() }, this.roleTTL);
|
|
@@ -125,7 +128,7 @@ class RoleService {
|
|
|
125
128
|
}
|
|
126
129
|
catch (error) {
|
|
127
130
|
// eslint-disable-next-line no-console
|
|
128
|
-
console.error(
|
|
131
|
+
console.error("Failed to refresh roles:", error);
|
|
129
132
|
return [];
|
|
130
133
|
}
|
|
131
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../src/services/role.service.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;
|
|
1
|
+
{"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../src/services/role.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export interface RedisConfig {
|
|
|
11
11
|
/**
|
|
12
12
|
* Authentication method types
|
|
13
13
|
*/
|
|
14
|
-
export type AuthMethod =
|
|
14
|
+
export type AuthMethod = "bearer" | "client-token" | "client-credentials" | "api-key";
|
|
15
15
|
/**
|
|
16
16
|
* Authentication strategy configuration
|
|
17
17
|
* Defines which authentication methods to try and in what order
|
|
@@ -38,7 +38,7 @@ export interface MisoClientConfig {
|
|
|
38
38
|
clientId: string;
|
|
39
39
|
clientSecret: string;
|
|
40
40
|
redis?: RedisConfig;
|
|
41
|
-
logLevel?:
|
|
41
|
+
logLevel?: "debug" | "info" | "warn" | "error";
|
|
42
42
|
encryptionKey?: string;
|
|
43
43
|
apiKey?: string;
|
|
44
44
|
cache?: {
|
|
@@ -52,7 +52,7 @@ export interface MisoClientConfig {
|
|
|
52
52
|
}
|
|
53
53
|
export interface AuditConfig {
|
|
54
54
|
enabled?: boolean;
|
|
55
|
-
level?:
|
|
55
|
+
level?: "minimal" | "standard" | "detailed" | "full";
|
|
56
56
|
maxResponseSize?: number;
|
|
57
57
|
maxMaskingSize?: number;
|
|
58
58
|
batchSize?: number;
|
|
@@ -74,7 +74,7 @@ export interface AuthResult {
|
|
|
74
74
|
}
|
|
75
75
|
export interface LogEntry {
|
|
76
76
|
timestamp: string;
|
|
77
|
-
level:
|
|
77
|
+
level: "error" | "audit" | "info" | "debug";
|
|
78
78
|
environment: string;
|
|
79
79
|
application: string;
|
|
80
80
|
applicationId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,23 +8,24 @@ exports.isErrorResponse = isErrorResponse;
|
|
|
8
8
|
* Type guard to check if data matches ErrorResponse structure
|
|
9
9
|
*/
|
|
10
10
|
function isErrorResponse(data) {
|
|
11
|
-
if (!data || typeof data !==
|
|
11
|
+
if (!data || typeof data !== "object") {
|
|
12
12
|
return false;
|
|
13
13
|
}
|
|
14
14
|
const obj = data;
|
|
15
15
|
// Check required fields
|
|
16
|
-
if (!Array.isArray(obj.errors) ||
|
|
16
|
+
if (!Array.isArray(obj.errors) ||
|
|
17
|
+
!obj.errors.every((e) => typeof e === "string")) {
|
|
17
18
|
return false;
|
|
18
19
|
}
|
|
19
|
-
if (typeof obj.type !==
|
|
20
|
+
if (typeof obj.type !== "string" || typeof obj.title !== "string") {
|
|
20
21
|
return false;
|
|
21
22
|
}
|
|
22
23
|
// Check statusCode (camelCase only)
|
|
23
|
-
if (typeof obj.statusCode !==
|
|
24
|
+
if (typeof obj.statusCode !== "number") {
|
|
24
25
|
return false;
|
|
25
26
|
}
|
|
26
27
|
// instance is optional
|
|
27
|
-
if (obj.instance !== undefined && typeof obj.instance !==
|
|
28
|
+
if (obj.instance !== undefined && typeof obj.instance !== "string") {
|
|
28
29
|
return false;
|
|
29
30
|
}
|
|
30
31
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../src/types/config.types.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA0KH,0CA8BC;AAjCD;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAa;IAC3C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,IAA+B,CAAC;IAE5C,wBAAwB;IACxB,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAC/C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;IACvB,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Filter operators supported by the API.
|
|
7
7
|
*/
|
|
8
|
-
export type FilterOperator =
|
|
8
|
+
export type FilterOperator = "eq" | "neq" | "in" | "nin" | "gt" | "lt" | "gte" | "lte" | "contains" | "like";
|
|
9
9
|
/**
|
|
10
10
|
* Single filter option with field, operator, and value.
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.types.d.ts","sourceRoot":"","sources":["../../src/types/filter.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,UAAU,GACV,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IAEd,uBAAuB;IACvB,EAAE,EAAE,cAAc,CAAC;IAEnB,mEAAmE;IACnE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAsB;IAErC;;;;;;OAMG;IACH,GAAG,
|
|
1
|
+
{"version":3,"file":"filter.types.d.ts","sourceRoot":"","sources":["../../src/types/filter.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,UAAU,GACV,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IAEd,uBAAuB;IACvB,EAAE,EAAE,cAAc,CAAC;IAEnB,mEAAmE;IACnE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAsB;IAErC;;;;;;OAMG;IACH,GAAG,CACD,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACxD,aAAa;IAKhB;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,aAAa;IAK/C;;;OAGG;IACH,KAAK,IAAI,YAAY,EAAE;IAIvB;;;OAGG;IACH,aAAa,IAAI,MAAM;CAQxB"}
|
|
@@ -47,8 +47,8 @@ class FilterBuilder {
|
|
|
47
47
|
toQueryString() {
|
|
48
48
|
const params = new URLSearchParams();
|
|
49
49
|
this.filters.forEach((f) => {
|
|
50
|
-
const val = Array.isArray(f.value) ? f.value.join(
|
|
51
|
-
params.append(
|
|
50
|
+
const val = Array.isArray(f.value) ? f.value.join(",") : String(f.value);
|
|
51
|
+
params.append("filter", `${f.field}:${f.op}:${val}`);
|
|
52
52
|
});
|
|
53
53
|
return params.toString();
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.types.js","sourceRoot":"","sources":["../../src/types/filter.types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmDH;;;GAGG;AACH,MAAa,aAAa;IAA1B;QACU,YAAO,GAAmB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.types.js","sourceRoot":"","sources":["../../src/types/filter.types.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAmDH;;;GAGG;AACH,MAAa,aAAa;IAA1B;QACU,YAAO,GAAmB,EAAE,CAAC;IAgDvC,CAAC;IA9CC;;;;;;OAMG;IACH,GAAG,CACD,KAAa,EACb,EAAkB,EAClB,KAAyD;QAEzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAuB;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;CACF;AAjDD,sCAiDC"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Audit log queue for batching multiple logs into single requests
|
|
3
3
|
* Reduces network overhead by batching audit logs
|
|
4
4
|
*/
|
|
5
|
-
import { EventEmitter } from
|
|
6
|
-
import { LogEntry, MisoClientConfig } from
|
|
7
|
-
import { HttpClient } from
|
|
8
|
-
import { RedisService } from
|
|
5
|
+
import { EventEmitter } from "events";
|
|
6
|
+
import { LogEntry, MisoClientConfig } from "../types/config.types";
|
|
7
|
+
import { HttpClient } from "./http-client";
|
|
8
|
+
import { RedisService } from "../services/redis.service";
|
|
9
9
|
export declare class AuditLogQueue {
|
|
10
10
|
private queue;
|
|
11
11
|
private flushTimer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log-queue.d.ts","sourceRoot":"","sources":["../../src/utils/audit-log-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAe;
|
|
1
|
+
{"version":3,"file":"audit-log-queue.d.ts","sourceRoot":"","sources":["../../src/utils/audit-log-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAOzD,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAC,CAAe;gBAGlC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,YAAY,CAAC,EAAE,YAAY;IAkB7B;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzC;;;OAGG;IACG,KAAK,CAAC,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAsElD;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;CAOd"}
|
|
@@ -18,10 +18,10 @@ class AuditLogQueue {
|
|
|
18
18
|
this.batchSize = auditConfig.batchSize ?? 10;
|
|
19
19
|
this.batchInterval = auditConfig.batchInterval ?? 100;
|
|
20
20
|
// Setup graceful shutdown handler (Node.js only)
|
|
21
|
-
if (typeof process !==
|
|
22
|
-
process.on(
|
|
23
|
-
process.on(
|
|
24
|
-
process.on(
|
|
21
|
+
if (typeof process !== "undefined") {
|
|
22
|
+
process.on("SIGINT", () => this.flush(true));
|
|
23
|
+
process.on("SIGTERM", () => this.flush(true));
|
|
24
|
+
process.on("beforeExit", () => this.flush(true));
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
@@ -31,7 +31,7 @@ class AuditLogQueue {
|
|
|
31
31
|
async add(entry) {
|
|
32
32
|
this.queue.push({
|
|
33
33
|
entry,
|
|
34
|
-
timestamp: Date.now()
|
|
34
|
+
timestamp: Date.now(),
|
|
35
35
|
});
|
|
36
36
|
// Flush if batch size reached
|
|
37
37
|
if (this.queue.length >= this.batchSize) {
|
|
@@ -70,11 +70,11 @@ class AuditLogQueue {
|
|
|
70
70
|
this.isFlushing = false;
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
const logEntries = entries.map(e => e.entry);
|
|
73
|
+
const logEntries = entries.map((e) => e.entry);
|
|
74
74
|
// If emitEvents is enabled, emit batch event and skip HTTP/Redis
|
|
75
75
|
if (this.config.emitEvents && this.eventEmitter) {
|
|
76
76
|
// Emit batch event - same payload structure as REST API
|
|
77
|
-
this.eventEmitter.emit(
|
|
77
|
+
this.eventEmitter.emit("log:batch", logEntries);
|
|
78
78
|
this.isFlushing = false;
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
@@ -89,13 +89,13 @@ class AuditLogQueue {
|
|
|
89
89
|
}
|
|
90
90
|
// Fallback to HTTP batch endpoint
|
|
91
91
|
try {
|
|
92
|
-
await this.httpClient.request(
|
|
93
|
-
logs: logEntries.map(e => ({
|
|
92
|
+
await this.httpClient.request("POST", "/api/v1/logs/batch", {
|
|
93
|
+
logs: logEntries.map((e) => ({
|
|
94
94
|
...e,
|
|
95
95
|
// Remove fields that backend extracts from credentials
|
|
96
96
|
environment: undefined,
|
|
97
|
-
application: undefined
|
|
98
|
-
}))
|
|
97
|
+
application: undefined,
|
|
98
|
+
})),
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log-queue.js","sourceRoot":"","sources":["../../src/utils/audit-log-queue.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAYH,MAAa,aAAa;IAWxB,
|
|
1
|
+
{"version":3,"file":"audit-log-queue.js","sourceRoot":"","sources":["../../src/utils/audit-log-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Authentication strategy handler
|
|
3
3
|
* Manages authentication methods and builds appropriate headers
|
|
4
4
|
*/
|
|
5
|
-
import { AuthStrategy, AuthMethod } from
|
|
5
|
+
import { AuthStrategy, AuthMethod } from "../types/config.types";
|
|
6
6
|
export declare class AuthStrategyHandler {
|
|
7
7
|
/**
|
|
8
8
|
* Build authentication headers based on strategy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-strategy.d.ts","sourceRoot":"","sources":["../../src/utils/auth-strategy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEjE,qBAAa,mBAAmB;IAC9B;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAyCzB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO;IAmB3E;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY;IAO7D;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,eAAe,EAAE,YAAY,GAC5B,YAAY;
|
|
1
|
+
{"version":3,"file":"auth-strategy.d.ts","sourceRoot":"","sources":["../../src/utils/auth-strategy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEjE,qBAAa,mBAAmB;IAC9B;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAyCzB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO;IAmB3E;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY;IAO7D;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,QAAQ,EAAE,YAAY,GAAG,SAAS,EAClC,eAAe,EAAE,YAAY,GAC5B,YAAY;CAehB"}
|
|
@@ -20,28 +20,28 @@ class AuthStrategyHandler {
|
|
|
20
20
|
// Try methods in priority order
|
|
21
21
|
for (const method of strategy.methods) {
|
|
22
22
|
switch (method) {
|
|
23
|
-
case
|
|
23
|
+
case "bearer":
|
|
24
24
|
if (strategy.bearerToken) {
|
|
25
|
-
headers[
|
|
25
|
+
headers["Authorization"] = `Bearer ${strategy.bearerToken}`;
|
|
26
26
|
return headers;
|
|
27
27
|
}
|
|
28
28
|
break;
|
|
29
|
-
case
|
|
29
|
+
case "client-token":
|
|
30
30
|
if (clientToken) {
|
|
31
|
-
headers[
|
|
31
|
+
headers["x-client-token"] = clientToken;
|
|
32
32
|
return headers;
|
|
33
33
|
}
|
|
34
34
|
break;
|
|
35
|
-
case
|
|
35
|
+
case "client-credentials":
|
|
36
36
|
if (clientId && clientSecret) {
|
|
37
|
-
headers[
|
|
38
|
-
headers[
|
|
37
|
+
headers["X-Client-Id"] = clientId;
|
|
38
|
+
headers["X-Client-Secret"] = clientSecret;
|
|
39
39
|
return headers;
|
|
40
40
|
}
|
|
41
41
|
break;
|
|
42
|
-
case
|
|
42
|
+
case "api-key":
|
|
43
43
|
if (strategy.apiKey) {
|
|
44
|
-
headers[
|
|
44
|
+
headers["Authorization"] = `Bearer ${strategy.apiKey}`;
|
|
45
45
|
return headers;
|
|
46
46
|
}
|
|
47
47
|
break;
|
|
@@ -61,13 +61,13 @@ class AuthStrategyHandler {
|
|
|
61
61
|
return false;
|
|
62
62
|
}
|
|
63
63
|
switch (method) {
|
|
64
|
-
case
|
|
64
|
+
case "bearer":
|
|
65
65
|
return !!strategy.bearerToken;
|
|
66
|
-
case
|
|
66
|
+
case "client-token":
|
|
67
67
|
return true; // Client token is managed internally
|
|
68
|
-
case
|
|
68
|
+
case "client-credentials":
|
|
69
69
|
return true; // Client credentials are from config
|
|
70
|
-
case
|
|
70
|
+
case "api-key":
|
|
71
71
|
return !!strategy.apiKey;
|
|
72
72
|
default:
|
|
73
73
|
return false;
|
|
@@ -80,8 +80,8 @@ class AuthStrategyHandler {
|
|
|
80
80
|
*/
|
|
81
81
|
static getDefaultStrategy(bearerToken) {
|
|
82
82
|
return {
|
|
83
|
-
methods: [
|
|
84
|
-
bearerToken
|
|
83
|
+
methods: ["bearer", "client-token"],
|
|
84
|
+
bearerToken,
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
/**
|
|
@@ -96,9 +96,11 @@ class AuthStrategyHandler {
|
|
|
96
96
|
}
|
|
97
97
|
// Use provided strategy, but fill in missing required fields from default
|
|
98
98
|
return {
|
|
99
|
-
methods: strategy.methods.length > 0
|
|
99
|
+
methods: strategy.methods.length > 0
|
|
100
|
+
? strategy.methods
|
|
101
|
+
: defaultStrategy.methods,
|
|
100
102
|
bearerToken: strategy.bearerToken || defaultStrategy.bearerToken,
|
|
101
|
-
apiKey: strategy.apiKey || defaultStrategy.apiKey
|
|
103
|
+
apiKey: strategy.apiKey || defaultStrategy.apiKey,
|
|
102
104
|
};
|
|
103
105
|
}
|
|
104
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-strategy.js","sourceRoot":"","sources":["../../src/utils/auth-strategy.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAa,mBAAmB;IAC9B;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CACrB,QAAsB,EACtB,WAA0B,EAC1B,QAAiB,EACjB,YAAqB;QAErB,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,gCAAgC;QAChC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,QAAQ;oBACX,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;wBACzB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,CAAC,WAAW,EAAE,CAAC;wBAC5D,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;gBAER,KAAK,cAAc;oBACjB,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;wBACxC,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;gBAER,KAAK,oBAAoB;oBACvB,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;wBAC7B,OAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;wBAClC,OAAO,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;wBAC1C,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;gBAER,KAAK,SAAS;oBACZ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACvD,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,MAAkB,EAAE,QAAsB;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YAChC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,CAAC,qCAAqC;YACpD,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,CAAC,qCAAqC;YACpD,KAAK,SAAS;gBACZ,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAoB;QAC5C,OAAO;YACL,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;YACnC,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,QAAkC,EAClC,eAA6B;QAE7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,0EAA0E;QAC1E,OAAO;YACL,OAAO,
|
|
1
|
+
{"version":3,"file":"auth-strategy.js","sourceRoot":"","sources":["../../src/utils/auth-strategy.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,MAAa,mBAAmB;IAC9B;;;;;;;;OAQG;IACH,MAAM,CAAC,gBAAgB,CACrB,QAAsB,EACtB,WAA0B,EAC1B,QAAiB,EACjB,YAAqB;QAErB,MAAM,OAAO,GAA2B,EAAE,CAAC;QAE3C,gCAAgC;QAChC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,QAAQ;oBACX,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;wBACzB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,CAAC,WAAW,EAAE,CAAC;wBAC5D,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;gBAER,KAAK,cAAc;oBACjB,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;wBACxC,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;gBAER,KAAK,oBAAoB;oBACvB,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;wBAC7B,OAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;wBAClC,OAAO,CAAC,iBAAiB,CAAC,GAAG,YAAY,CAAC;wBAC1C,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;gBAER,KAAK,SAAS;oBACZ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACvD,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM;YACV,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,MAAkB,EAAE,QAAsB;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,QAAQ;gBACX,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;YAChC,KAAK,cAAc;gBACjB,OAAO,IAAI,CAAC,CAAC,qCAAqC;YACpD,KAAK,oBAAoB;gBACvB,OAAO,IAAI,CAAC,CAAC,qCAAqC;YACpD,KAAK,SAAS;gBACZ,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAoB;QAC5C,OAAO;YACL,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;YACnC,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,QAAkC,EAClC,eAA6B;QAE7B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,0EAA0E;QAC1E,OAAO;YACL,OAAO,EACL,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBACzB,CAAC,CAAC,QAAQ,CAAC,OAAO;gBAClB,CAAC,CAAC,eAAe,CAAC,OAAO;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,eAAe,CAAC,WAAW;YAChE,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,eAAe,CAAC,MAAM;SAClD,CAAC;IACJ,CAAC;CACF;AArHD,kDAqHC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Configuration loader utility
|
|
3
3
|
* Automatically loads environment variables with sensible defaults
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
6
|
-
import { MisoClientConfig } from
|
|
5
|
+
import "dotenv/config";
|
|
6
|
+
import { MisoClientConfig } from "../types/config.types";
|
|
7
7
|
/**
|
|
8
8
|
* Loads configuration from environment variables with defaults
|
|
9
9
|
*/
|
|
@@ -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,
|
|
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;AAE/B;;GAEG;AACH,wBAAgB,UAAU,IAAI,gBAAgB,CAwF7C"}
|
|
@@ -11,24 +11,25 @@ require("dotenv/config");
|
|
|
11
11
|
*/
|
|
12
12
|
function loadConfig() {
|
|
13
13
|
const config = {
|
|
14
|
-
controllerUrl: process.env.MISO_CONTROLLER_URL ||
|
|
15
|
-
clientId: process.env.MISO_CLIENTID || process.env.MISO_CLIENT_ID ||
|
|
16
|
-
clientSecret: process.env.MISO_CLIENTSECRET || process.env.MISO_CLIENT_SECRET ||
|
|
17
|
-
logLevel: process.env.MISO_LOG_LEVEL ||
|
|
14
|
+
controllerUrl: process.env.MISO_CONTROLLER_URL || "https://controller.aifabrix.ai",
|
|
15
|
+
clientId: process.env.MISO_CLIENTID || process.env.MISO_CLIENT_ID || "",
|
|
16
|
+
clientSecret: process.env.MISO_CLIENTSECRET || process.env.MISO_CLIENT_SECRET || "",
|
|
17
|
+
logLevel: process.env.MISO_LOG_LEVEL ||
|
|
18
|
+
"debug",
|
|
18
19
|
};
|
|
19
20
|
// Validate required fields
|
|
20
21
|
if (!config.clientId) {
|
|
21
|
-
throw new Error(
|
|
22
|
+
throw new Error("MISO_CLIENTID environment variable is required");
|
|
22
23
|
}
|
|
23
24
|
if (!config.clientSecret) {
|
|
24
|
-
throw new Error(
|
|
25
|
+
throw new Error("MISO_CLIENTSECRET environment variable is required");
|
|
25
26
|
}
|
|
26
27
|
// Optional Redis configuration
|
|
27
28
|
const redisHost = process.env.REDIS_HOST;
|
|
28
29
|
if (redisHost) {
|
|
29
30
|
const redisConfig = {
|
|
30
31
|
host: redisHost,
|
|
31
|
-
port: parseInt(process.env.REDIS_PORT ||
|
|
32
|
+
port: parseInt(process.env.REDIS_PORT || "6379"),
|
|
32
33
|
password: process.env.REDIS_PASSWORD,
|
|
33
34
|
};
|
|
34
35
|
if (process.env.REDIS_DB) {
|
|
@@ -53,14 +54,14 @@ function loadConfig() {
|
|
|
53
54
|
}
|
|
54
55
|
// Optional emitEvents flag (for direct SDK embedding in your own application)
|
|
55
56
|
if (process.env.MISO_EMIT_EVENTS) {
|
|
56
|
-
config.emitEvents = process.env.MISO_EMIT_EVENTS.toLowerCase() ===
|
|
57
|
+
config.emitEvents = process.env.MISO_EMIT_EVENTS.toLowerCase() === "true";
|
|
57
58
|
}
|
|
58
59
|
// Optional auth strategy configuration
|
|
59
60
|
// Format: MISO_AUTH_STRATEGY=bearer,client-token,api-key
|
|
60
61
|
if (process.env.MISO_AUTH_STRATEGY) {
|
|
61
|
-
const methods = process.env.MISO_AUTH_STRATEGY.split(
|
|
62
|
+
const methods = process.env.MISO_AUTH_STRATEGY.split(",").map((m) => m.trim());
|
|
62
63
|
const authStrategy = {
|
|
63
|
-
methods: methods.filter(m => [
|
|
64
|
+
methods: methods.filter((m) => ["bearer", "client-token", "client-credentials", "api-key"].includes(m)),
|
|
64
65
|
};
|
|
65
66
|
// Add bearer token if provided
|
|
66
67
|
if (process.env.MISO_BEARER_TOKEN) {
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-masker.d.ts","sourceRoot":"","sources":["../../src/utils/data-masker.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"data-masker.d.ts","sourceRoot":"","sources":["../../src/utils/data-masker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAkB;IACtD,OAAO,CAAC,MAAM,CAAC,YAAY,CAA4B;IACvD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAyB;IAC3D,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiC;IAE1D;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAoBxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAIjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM9C;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAoB7C;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAoChD;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,SAAS,GAAE,MAAU,EACrB,QAAQ,GAAE,MAAU,GACnB,MAAM;IAYT;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAwBrD"}
|