@digital-science-dsl/dimensions-analytics-mcp 1.4.0 → 1.4.1

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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Replace non-null assertions with typed public/internal client config, and bump `@types/node` to 24 and `fast-check` to 4.9.
8
+
3
9
  ## 1.4.0
4
10
 
5
11
  ### Minor Changes
@@ -7,13 +7,15 @@ import { z } from "zod";
7
7
  * Zod schema for DimensionsClient configuration.
8
8
  * Validates and provides defaults for all configuration options.
9
9
  */
10
- export declare const DimensionsClientConfigSchema: z.ZodObject<{
11
- apiKey: z.ZodOptional<z.ZodString>;
12
- backend: z.ZodDefault<z.ZodEnum<{
13
- internal: "internal";
14
- public: "public";
15
- }>>;
16
- internal: z.ZodOptional<z.ZodObject<{
10
+ export declare const DimensionsClientConfigSchema: z.ZodUnion<readonly [z.ZodObject<{
11
+ baseUrl: z.ZodDefault<z.ZodString>;
12
+ timeout: z.ZodDefault<z.ZodNumber>;
13
+ maxRetries: z.ZodDefault<z.ZodNumber>;
14
+ retryDelay: z.ZodDefault<z.ZodNumber>;
15
+ rateLimitPerMinute: z.ZodDefault<z.ZodNumber>;
16
+ validateQueries: z.ZodDefault<z.ZodBoolean>;
17
+ backend: z.ZodLiteral<"internal">;
18
+ internal: z.ZodObject<{
17
19
  service: z.ZodObject<{
18
20
  serviceUrl: z.ZodString;
19
21
  username: z.ZodString;
@@ -24,14 +26,17 @@ export declare const DimensionsClientConfigSchema: z.ZodObject<{
24
26
  }, z.core.$strip>;
25
27
  userEmail: z.ZodString;
26
28
  clientIp: z.ZodOptional<z.ZodString>;
27
- }, z.core.$strip>>;
29
+ }, z.core.$strip>;
30
+ }, z.core.$strip>, z.ZodObject<{
28
31
  baseUrl: z.ZodDefault<z.ZodString>;
29
32
  timeout: z.ZodDefault<z.ZodNumber>;
30
33
  maxRetries: z.ZodDefault<z.ZodNumber>;
31
34
  retryDelay: z.ZodDefault<z.ZodNumber>;
32
35
  rateLimitPerMinute: z.ZodDefault<z.ZodNumber>;
33
36
  validateQueries: z.ZodDefault<z.ZodBoolean>;
34
- }, z.core.$strip>;
37
+ backend: z.ZodDefault<z.ZodLiteral<"public">>;
38
+ apiKey: z.ZodString;
39
+ }, z.core.$strip>]>;
35
40
  /**
36
41
  * Configuration options for DimensionsClient.
37
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;iBAwCrC,CAAC;AAEL;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAGvC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -9,18 +9,7 @@ const InternalClientConfigSchema = z.object({
9
9
  userEmail: z.string().min(1),
10
10
  clientIp: z.string().optional(),
11
11
  });
12
- /**
13
- * Zod schema for DimensionsClient configuration.
14
- * Validates and provides defaults for all configuration options.
15
- */
16
- export const DimensionsClientConfigSchema = z
17
- .object({
18
- /** Dimensions API key (required for public backend) */
19
- apiKey: z.string().min(1).optional(),
20
- /** DSL backend: public JWT API or internal dsl-service */
21
- backend: z.enum(["public", "internal"]).default("public"),
22
- /** Internal dsl-service settings (required when backend is internal) */
23
- internal: InternalClientConfigSchema.optional(),
12
+ const SharedClientConfigSchema = z.object({
24
13
  /** Base URL for Dimensions API (public backend only) */
25
14
  baseUrl: z.string().url().default("https://app.dimensions.ai"),
26
15
  /** Request timeout in milliseconds */
@@ -33,24 +22,21 @@ export const DimensionsClientConfigSchema = z
33
22
  rateLimitPerMinute: z.number().positive().default(30),
34
23
  /** Validate DSL queries before sending. Default: true */
35
24
  validateQueries: z.boolean().default(false),
36
- })
37
- .superRefine((value, ctx) => {
38
- if (value.backend === "public") {
39
- if (!value.apiKey) {
40
- ctx.addIssue({
41
- code: "custom",
42
- message: "apiKey is required for public backend",
43
- path: ["apiKey"],
44
- });
45
- }
46
- return;
47
- }
48
- if (!value.internal) {
49
- ctx.addIssue({
50
- code: "custom",
51
- message: "internal config is required for internal backend",
52
- path: ["internal"],
53
- });
54
- }
55
25
  });
26
+ const PublicClientConfigSchema = SharedClientConfigSchema.extend({
27
+ backend: z.literal("public").default("public"),
28
+ apiKey: z.string().min(1),
29
+ });
30
+ const InternalBackendConfigSchema = SharedClientConfigSchema.extend({
31
+ backend: z.literal("internal"),
32
+ internal: InternalClientConfigSchema,
33
+ });
34
+ /**
35
+ * Zod schema for DimensionsClient configuration.
36
+ * Validates and provides defaults for all configuration options.
37
+ */
38
+ export const DimensionsClientConfigSchema = z.union([
39
+ InternalBackendConfigSchema,
40
+ PublicClientConfigSchema,
41
+ ]);
56
42
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC1C,MAAM,CAAC;IACN,uDAAuD;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,0DAA0D;IAC1D,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzD,wEAAwE;IACxE,QAAQ,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IAC/C,wDAAwD;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAC9D,sCAAsC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,uCAAuC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,4CAA4C;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,uEAAuE;IACvE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,yDAAyD;IACzD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC5C,CAAC;KACD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IAC1B,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uCAAuC;gBAChD,IAAI,EAAE,CAAC,QAAQ,CAAC;aACjB,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,kDAAkD;YAC3D,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/client/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,wDAAwD;IACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,2BAA2B,CAAC;IAC9D,sCAAsC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC7C,uCAAuC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,4CAA4C;IAC5C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC/C,uEAAuE;IACvE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,yDAAyD;IACzD,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,MAAM,CAAC;IAC/D,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,MAAM,CAAC;IAClE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC9B,QAAQ,EAAE,0BAA0B;CACrC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,2BAA2B;IAC3B,wBAAwB;CACzB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-config.d.ts","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,oBAAoB;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,CAAC;AAanE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,CAyC1D"}
1
+ {"version":3,"file":"deployment-config.d.ts","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,eAAO,MAAM,oBAAoB;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,CAAC;AAanE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,mBAAmB,CA8C1D"}
@@ -65,17 +65,21 @@ export function loadDeploymentConfig() {
65
65
  if (missing.length > 0) {
66
66
  throw new Error(`Hosted deployment requires: ${missing.join(", ")}`);
67
67
  }
68
- const internal = InternalDslEnvSchema.parse({
68
+ const hosted = InternalDslEnvSchema.extend({
69
+ radarAuthUrl: z.string().url(),
70
+ }).parse({
69
71
  serviceUrl,
70
72
  username,
71
73
  password,
72
74
  dslSchema,
73
75
  host,
74
76
  variant,
77
+ radarAuthUrl,
75
78
  });
79
+ const { radarAuthUrl: parsedRadarAuthUrl, ...internal } = hosted;
76
80
  return {
77
81
  deploymentMode: "hosted",
78
- radarAuthUrl: radarAuthUrl.replace(/\/$/, ""),
82
+ radarAuthUrl: parsedRadarAuthUrl.replace(/\/$/, ""),
79
83
  internal,
80
84
  httpPort: readIntEnv(process.env.MCP_HTTP_PORT, 8080, 1),
81
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-config.js","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-config.js","sourceRoot":"","sources":["../../src/client/deployment-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/dsl/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/dsl/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,OAAO,EACP,sBAAsB,EACtB,WAAW,EACX,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EAAsB,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EACV,aAAa,EACb,OAAO,EACP,KAAK,EACL,YAAY,EACZ,MAAM,EACN,cAAc,EACd,WAAW,EACX,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAoB;IACpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC;;;;OAIG;gBACS,MAAM,EAAE,sBAAsB;YAkD5B,eAAe;IAe7B;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBhF;;;OAGG;IACH,gBAAgB,IAAI,aAAa;IAOjC;;;OAGG;IACH,eAAe,IAAI,IAAI;IAIvB;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAYjF;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAI3C;;;OAGG;IACH,kBAAkB,IAAI,YAAY;IAMlC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;;;;;;;;;OAaG;IACH,YAAY,IAAI,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC;IAI/D;;;;;;;;;;;;OAYG;IACH,MAAM,IAAI,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC;IAI7C;;;;;;;;;;;;OAYG;IACH,WAAW,IAAI,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC;IAI5D;;;;;;;;;;;;OAYG;IACH,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC;IAIhD;;;;;;;;;;;;OAYG;IACH,cAAc,IAAI,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAItE;;;;;;;;;;;;OAYG;IACH,QAAQ,IAAI,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC;IAInD;;;;;;;;;;;OAWG;IACH,eAAe,IAAI,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAIzE;;;;;;;;;;;OAWG;IACH,aAAa,IAAI,kBAAkB,CAAC,YAAY,EAAE,eAAe,CAAC;IAQlE;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,QAAQ,CAAC,CAAC,SAAS,oBAAoB,EAC3C,OAAO,EAAE,aAAa,GAAG;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,eAAe,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACtD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,UAAU,CAAA;KAAE,GACtC,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAS/C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,mBAAmB,CACvB,YAAY,EAAE,SAAS,gBAAgB,EAAE,GACxC,OAAO,CAAC,2BAA2B,CAAC;IAIvC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAKjF"}
@@ -42,7 +42,7 @@ export class DimensionsClient {
42
42
  }
43
43
  this.config = parseResult.data;
44
44
  if (this.config.backend === "internal") {
45
- const internal = this.config.internal;
45
+ const { internal } = this.config;
46
46
  this.rateLimiter = new RateLimiter({
47
47
  maxRequests: 1000,
48
48
  windowMs: 60_000,
@@ -81,6 +81,9 @@ export class DimensionsClient {
81
81
  if (this.internalClient) {
82
82
  return this.internalClient.query(dsl, options);
83
83
  }
84
+ if (!this.httpClient) {
85
+ throw new Error("DimensionsClient HTTP backend is not configured");
86
+ }
84
87
  const response = await this.httpClient.query(dsl, endpoint, options);
85
88
  return response;
86
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/dsl/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/dsl/client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digital-science-dsl/dimensions-analytics-mcp",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Dimensions Analytics MCP server for Dimensions DSL querying",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "devDependencies": {
26
26
  "@modelcontextprotocol/client": "^2.0.0",
27
27
  "@types/express": "^5.0.0",
28
- "fast-check": "^4.6.0",
28
+ "fast-check": "^4.9.0",
29
29
  "typescript": "^5.9.3"
30
30
  },
31
31
  "publishConfig": {
@@ -12,51 +12,39 @@ const InternalClientConfigSchema = z.object({
12
12
  clientIp: z.string().optional(),
13
13
  });
14
14
 
15
+ const SharedClientConfigSchema = z.object({
16
+ /** Base URL for Dimensions API (public backend only) */
17
+ baseUrl: z.string().url().default("https://app.dimensions.ai"),
18
+ /** Request timeout in milliseconds */
19
+ timeout: z.number().positive().default(30000),
20
+ /** Maximum number of retry attempts */
21
+ maxRetries: z.number().nonnegative().default(3),
22
+ /** Delay between retries in milliseconds */
23
+ retryDelay: z.number().positive().default(1000),
24
+ /** Maximum requests per minute (public backend client-side limiter) */
25
+ rateLimitPerMinute: z.number().positive().default(30),
26
+ /** Validate DSL queries before sending. Default: true */
27
+ validateQueries: z.boolean().default(false),
28
+ });
29
+
30
+ const PublicClientConfigSchema = SharedClientConfigSchema.extend({
31
+ backend: z.literal("public").default("public"),
32
+ apiKey: z.string().min(1),
33
+ });
34
+
35
+ const InternalBackendConfigSchema = SharedClientConfigSchema.extend({
36
+ backend: z.literal("internal"),
37
+ internal: InternalClientConfigSchema,
38
+ });
39
+
15
40
  /**
16
41
  * Zod schema for DimensionsClient configuration.
17
42
  * Validates and provides defaults for all configuration options.
18
43
  */
19
- export const DimensionsClientConfigSchema = z
20
- .object({
21
- /** Dimensions API key (required for public backend) */
22
- apiKey: z.string().min(1).optional(),
23
- /** DSL backend: public JWT API or internal dsl-service */
24
- backend: z.enum(["public", "internal"]).default("public"),
25
- /** Internal dsl-service settings (required when backend is internal) */
26
- internal: InternalClientConfigSchema.optional(),
27
- /** Base URL for Dimensions API (public backend only) */
28
- baseUrl: z.string().url().default("https://app.dimensions.ai"),
29
- /** Request timeout in milliseconds */
30
- timeout: z.number().positive().default(30000),
31
- /** Maximum number of retry attempts */
32
- maxRetries: z.number().nonnegative().default(3),
33
- /** Delay between retries in milliseconds */
34
- retryDelay: z.number().positive().default(1000),
35
- /** Maximum requests per minute (public backend client-side limiter) */
36
- rateLimitPerMinute: z.number().positive().default(30),
37
- /** Validate DSL queries before sending. Default: true */
38
- validateQueries: z.boolean().default(false),
39
- })
40
- .superRefine((value, ctx) => {
41
- if (value.backend === "public") {
42
- if (!value.apiKey) {
43
- ctx.addIssue({
44
- code: "custom",
45
- message: "apiKey is required for public backend",
46
- path: ["apiKey"],
47
- });
48
- }
49
- return;
50
- }
51
-
52
- if (!value.internal) {
53
- ctx.addIssue({
54
- code: "custom",
55
- message: "internal config is required for internal backend",
56
- path: ["internal"],
57
- });
58
- }
59
- });
44
+ export const DimensionsClientConfigSchema = z.union([
45
+ InternalBackendConfigSchema,
46
+ PublicClientConfigSchema,
47
+ ]);
60
48
 
61
49
  /**
62
50
  * Configuration options for DimensionsClient.
@@ -84,18 +84,23 @@ export function loadDeploymentConfig(): AppDeploymentConfig {
84
84
  throw new Error(`Hosted deployment requires: ${missing.join(", ")}`);
85
85
  }
86
86
 
87
- const internal = InternalDslEnvSchema.parse({
87
+ const hosted = InternalDslEnvSchema.extend({
88
+ radarAuthUrl: z.string().url(),
89
+ }).parse({
88
90
  serviceUrl,
89
91
  username,
90
92
  password,
91
93
  dslSchema,
92
94
  host,
93
95
  variant,
96
+ radarAuthUrl,
94
97
  });
95
98
 
99
+ const { radarAuthUrl: parsedRadarAuthUrl, ...internal } = hosted;
100
+
96
101
  return {
97
102
  deploymentMode: "hosted",
98
- radarAuthUrl: radarAuthUrl!.replace(/\/$/, ""),
103
+ radarAuthUrl: parsedRadarAuthUrl.replace(/\/$/, ""),
99
104
  internal,
100
105
  httpPort: readIntEnv(process.env.MCP_HTTP_PORT, 8080, 1),
101
106
  };
package/src/dsl/client.ts CHANGED
@@ -97,7 +97,7 @@ export class DimensionsClient {
97
97
  this.config = parseResult.data;
98
98
 
99
99
  if (this.config.backend === "internal") {
100
- const internal = this.config.internal!;
100
+ const { internal } = this.config;
101
101
  this.rateLimiter = new RateLimiter({
102
102
  maxRequests: 1000,
103
103
  windowMs: 60_000,
@@ -116,7 +116,7 @@ export class DimensionsClient {
116
116
 
117
117
  this.authProvider = createAuthProvider({
118
118
  type: "jwt",
119
- apiKey: this.config.apiKey!,
119
+ apiKey: this.config.apiKey,
120
120
  authUrl: `${this.config.baseUrl}/api/auth.json`,
121
121
  timeout: this.config.timeout,
122
122
  });
@@ -144,7 +144,10 @@ export class DimensionsClient {
144
144
  if (this.internalClient) {
145
145
  return this.internalClient.query(dsl, options);
146
146
  }
147
- const response = await this.httpClient!.query(dsl, endpoint, options);
147
+ if (!this.httpClient) {
148
+ throw new Error("DimensionsClient HTTP backend is not configured");
149
+ }
150
+ const response = await this.httpClient.query(dsl, endpoint, options);
148
151
  return response as DslResponse;
149
152
  }
150
153
 
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Tests for DimensionsClientConfigSchema backend variants.
3
+ * @module test/client/config-schema
4
+ */
5
+
6
+ import { describe, expect, it } from "vitest";
7
+ import { DimensionsClientConfigSchema } from "../../src/client/config.js";
8
+
9
+ const INTERNAL_SERVICE = {
10
+ serviceUrl: "https://dsl.example.com",
11
+ username: "svc",
12
+ password: "secret",
13
+ dslSchema: "external",
14
+ host: "app.example.com",
15
+ variant: "standard",
16
+ };
17
+
18
+ describe("DimensionsClientConfigSchema", () => {
19
+ it("defaults to the public backend when backend is omitted", () => {
20
+ const parsed = DimensionsClientConfigSchema.parse({ apiKey: "test-key" });
21
+ expect(parsed.backend).toBe("public");
22
+ expect(parsed.apiKey).toBe("test-key");
23
+ });
24
+
25
+ it("rejects a public backend without an apiKey", () => {
26
+ expect(DimensionsClientConfigSchema.safeParse({}).success).toBe(false);
27
+ expect(DimensionsClientConfigSchema.safeParse({ backend: "public" }).success).toBe(false);
28
+ });
29
+
30
+ it("rejects an internal backend without internal config", () => {
31
+ expect(DimensionsClientConfigSchema.safeParse({ backend: "internal" }).success).toBe(false);
32
+ });
33
+
34
+ it("parses a complete internal backend config", () => {
35
+ const parsed = DimensionsClientConfigSchema.parse({
36
+ backend: "internal",
37
+ internal: {
38
+ service: INTERNAL_SERVICE,
39
+ userEmail: "user@example.com",
40
+ },
41
+ });
42
+ expect(parsed.backend).toBe("internal");
43
+ expect(parsed.internal.userEmail).toBe("user@example.com");
44
+ expect(parsed.internal.service.host).toBe("app.example.com");
45
+ });
46
+ });
@@ -54,6 +54,17 @@ describe("loadDeploymentConfig", () => {
54
54
  });
55
55
  });
56
56
 
57
+ it("strips a trailing slash from RADAR_AUTH_URL", () => {
58
+ Object.assign(process.env, HOSTED_ENV, {
59
+ RADAR_AUTH_URL: "https://app.example.com/",
60
+ });
61
+
62
+ expect(loadDeploymentConfig()).toMatchObject({
63
+ deploymentMode: "hosted",
64
+ radarAuthUrl: "https://app.example.com",
65
+ });
66
+ });
67
+
57
68
  it("throws when hosted mode is missing required variables", () => {
58
69
  process.env.DEPLOYMENT_MODE = "hosted";
59
70
  process.env.DSL_SERVICE_URL = "https://dsl.example.com";
@@ -91,6 +91,28 @@ describe("DimensionsClient", () => {
91
91
  });
92
92
  expect(client).toBeInstanceOf(DimensionsClient);
93
93
  });
94
+
95
+ it("throws ValidationError for an internal backend without internal config", () => {
96
+ expect(() => new DimensionsClient({ backend: "internal" })).toThrow(ValidationError);
97
+ });
98
+
99
+ it("accepts a valid internal backend configuration", () => {
100
+ const client = new DimensionsClient({
101
+ backend: "internal",
102
+ internal: {
103
+ service: {
104
+ serviceUrl: "https://dsl.example.com",
105
+ username: "svc",
106
+ password: "secret",
107
+ dslSchema: "external",
108
+ host: "app.example.com",
109
+ variant: "standard",
110
+ },
111
+ userEmail: "user@example.com",
112
+ },
113
+ });
114
+ expect(client).toBeInstanceOf(DimensionsClient);
115
+ });
94
116
  });
95
117
 
96
118
  describe("send()", () => {