@querypanel/node-sdk 1.0.17 → 1.0.18

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.
Files changed (35) hide show
  1. package/dist/cjs/__tests__/ingest.test.d.ts +5 -0
  2. package/dist/cjs/__tests__/ingest.test.d.ts.map +1 -0
  3. package/dist/cjs/__tests__/ingest.test.js +95 -0
  4. package/dist/cjs/__tests__/ingest.test.js.map +1 -0
  5. package/dist/cjs/connectors/__tests__/clickhouse.introspect.test.d.ts +2 -0
  6. package/dist/cjs/connectors/__tests__/clickhouse.introspect.test.d.ts.map +1 -0
  7. package/dist/cjs/connectors/__tests__/clickhouse.introspect.test.js +119 -0
  8. package/dist/cjs/connectors/__tests__/clickhouse.introspect.test.js.map +1 -0
  9. package/dist/cjs/connectors/base.d.ts +2 -3
  10. package/dist/cjs/connectors/base.d.ts.map +1 -1
  11. package/dist/cjs/connectors/clickhouse.d.ts +28 -10
  12. package/dist/cjs/connectors/clickhouse.d.ts.map +1 -1
  13. package/dist/cjs/connectors/clickhouse.js +55 -77
  14. package/dist/cjs/connectors/clickhouse.js.map +1 -1
  15. package/dist/cjs/index.d.ts +26 -0
  16. package/dist/cjs/index.d.ts.map +1 -1
  17. package/dist/cjs/index.js +114 -5
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/tenant-isolation.spec.d.ts +2 -0
  20. package/dist/cjs/tenant-isolation.spec.d.ts.map +1 -0
  21. package/dist/cjs/tenant-isolation.spec.js +345 -0
  22. package/dist/cjs/tenant-isolation.spec.js.map +1 -0
  23. package/dist/esm/connectors/clickhouse.d.ts +4 -4
  24. package/dist/esm/connectors/clickhouse.d.ts.map +1 -1
  25. package/dist/esm/connectors/clickhouse.js +25 -32
  26. package/dist/esm/connectors/clickhouse.js.map +1 -1
  27. package/dist/esm/index.d.ts +26 -0
  28. package/dist/esm/index.d.ts.map +1 -1
  29. package/dist/esm/index.js +114 -5
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/tenant-isolation.spec.d.ts +2 -0
  32. package/dist/esm/tenant-isolation.spec.d.ts.map +1 -0
  33. package/dist/esm/tenant-isolation.spec.js +343 -0
  34. package/dist/esm/tenant-isolation.spec.js.map +1 -0
  35. package/package.json +1 -1
@@ -0,0 +1,343 @@
1
+ import { beforeEach, describe, expect, it } from "vitest";
2
+ import { QueryPanelSdkAPI } from "./index.js";
3
+ describe("Tenant Isolation", () => {
4
+ let sdk;
5
+ const mockBaseUrl = "https://api.test.com";
6
+ const mockToken = "test-token";
7
+ beforeEach(() => {
8
+ sdk = new QueryPanelSdkAPI(mockBaseUrl, mockToken);
9
+ });
10
+ describe("ClickHouse - ensureTenantIsolation", () => {
11
+ it("should add WHERE clause with tenant filter when missing", () => {
12
+ const metadata = {
13
+ name: "analytics",
14
+ dialect: "clickhouse",
15
+ tenantFieldName: "customer_id",
16
+ tenantFieldType: "String",
17
+ enforceTenantIsolation: true,
18
+ };
19
+ const sql = "SELECT * FROM transactions ORDER BY created_at DESC";
20
+ const params = {};
21
+ const tenantId = "customer-123";
22
+ // Access private method for testing
23
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
24
+ expect(result).toContain("WHERE customer_id = {customer_id:String}");
25
+ expect(result).toContain("ORDER BY created_at DESC");
26
+ expect(params).toHaveProperty("customer_id", "customer-123");
27
+ });
28
+ it("should add AND condition when WHERE clause exists", () => {
29
+ const metadata = {
30
+ name: "analytics",
31
+ dialect: "clickhouse",
32
+ tenantFieldName: "customer_id",
33
+ tenantFieldType: "String",
34
+ enforceTenantIsolation: true,
35
+ };
36
+ const sql = "SELECT * FROM transactions WHERE status = 'active' ORDER BY date";
37
+ const params = {};
38
+ const tenantId = "customer-123";
39
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
40
+ expect(result).toContain("customer_id = {customer_id:String}");
41
+ expect(result).toContain("AND");
42
+ expect(result).toContain("status = 'active'");
43
+ expect(params).toHaveProperty("customer_id", "customer-123");
44
+ });
45
+ it("should insert before GROUP BY when no WHERE clause", () => {
46
+ const metadata = {
47
+ name: "analytics",
48
+ dialect: "clickhouse",
49
+ tenantFieldName: "customer_id",
50
+ tenantFieldType: "UUID",
51
+ enforceTenantIsolation: true,
52
+ };
53
+ const sql = "SELECT product_id, COUNT(*) FROM orders GROUP BY product_id";
54
+ const params = {};
55
+ const tenantId = "customer-123";
56
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
57
+ expect(result).toContain("WHERE customer_id = {customer_id:UUID}");
58
+ expect(result).toMatch(/WHERE customer_id.*GROUP BY product_id/);
59
+ expect(params).toHaveProperty("customer_id", "customer-123");
60
+ });
61
+ it("should insert before LIMIT when no WHERE clause", () => {
62
+ const metadata = {
63
+ name: "analytics",
64
+ dialect: "clickhouse",
65
+ tenantFieldName: "tenant_id",
66
+ tenantFieldType: "Int64",
67
+ enforceTenantIsolation: true,
68
+ };
69
+ const sql = "SELECT * FROM events LIMIT 100";
70
+ const params = {};
71
+ const tenantId = "customer-123";
72
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
73
+ expect(result).toContain("WHERE tenant_id = {tenant_id:Int64}");
74
+ expect(result).toMatch(/WHERE tenant_id.*LIMIT 100/);
75
+ expect(params).toHaveProperty("tenant_id", "customer-123");
76
+ });
77
+ it("should not modify SQL if tenant field already present", () => {
78
+ const metadata = {
79
+ name: "analytics",
80
+ dialect: "clickhouse",
81
+ tenantFieldName: "customer_id",
82
+ tenantFieldType: "String",
83
+ enforceTenantIsolation: true,
84
+ };
85
+ const sql = "SELECT * FROM transactions WHERE customer_id = {customer_id:String} AND status = 'active'";
86
+ const params = {};
87
+ const tenantId = "customer-123";
88
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
89
+ // Should not modify SQL since tenant field is already present
90
+ expect(result).toBe(sql);
91
+ expect(params).toHaveProperty("customer_id", "customer-123");
92
+ });
93
+ it("should recognize {tenant_field} syntax without type", () => {
94
+ const metadata = {
95
+ name: "analytics",
96
+ dialect: "clickhouse",
97
+ tenantFieldName: "customer_id",
98
+ tenantFieldType: "String",
99
+ enforceTenantIsolation: true,
100
+ };
101
+ const sql = "SELECT * FROM transactions WHERE customer_id = {customer_id}";
102
+ const params = {};
103
+ const tenantId = "customer-123";
104
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
105
+ // Should not modify SQL since tenant field is already present (without type)
106
+ expect(result).toBe(sql);
107
+ expect(params).toHaveProperty("customer_id", "customer-123");
108
+ });
109
+ it("should handle different field types", () => {
110
+ const testCases = [
111
+ { type: "String", expected: "{org_id:String}" },
112
+ { type: "UUID", expected: "{org_id:UUID}" },
113
+ { type: "Int64", expected: "{org_id:Int64}" },
114
+ { type: "UInt64", expected: "{org_id:UInt64}" },
115
+ ];
116
+ testCases.forEach(({ type, expected }) => {
117
+ const metadata = {
118
+ name: "analytics",
119
+ dialect: "clickhouse",
120
+ tenantFieldName: "org_id",
121
+ tenantFieldType: type,
122
+ enforceTenantIsolation: true,
123
+ };
124
+ const sql = "SELECT * FROM data";
125
+ const params = {};
126
+ const tenantId = "org-123";
127
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
128
+ expect(result).toContain(`org_id = ${expected}`);
129
+ });
130
+ });
131
+ it("should default to String type when not specified", () => {
132
+ const metadata = {
133
+ name: "analytics",
134
+ dialect: "clickhouse",
135
+ tenantFieldName: "customer_id",
136
+ // tenantFieldType not specified
137
+ enforceTenantIsolation: true,
138
+ };
139
+ const sql = "SELECT * FROM transactions";
140
+ const params = {};
141
+ const tenantId = "customer-123";
142
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
143
+ expect(result).toContain("{customer_id:String}"); // Default to String
144
+ });
145
+ });
146
+ describe("Postgres - ensureTenantIsolation", () => {
147
+ it("should add WHERE clause for Postgres", () => {
148
+ const metadata = {
149
+ name: "users",
150
+ dialect: "postgres",
151
+ tenantFieldName: "tenant_id",
152
+ enforceTenantIsolation: true,
153
+ };
154
+ const sql = "SELECT * FROM users ORDER BY created_at DESC";
155
+ const params = {};
156
+ const tenantId = "tenant-123";
157
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
158
+ expect(result).toContain("WHERE tenant_id = 'tenant-123'");
159
+ expect(params).toHaveProperty("tenant_id", "tenant-123");
160
+ });
161
+ it("should not modify if tenant field already in SQL", () => {
162
+ const metadata = {
163
+ name: "users",
164
+ dialect: "postgres",
165
+ tenantFieldName: "tenant_id",
166
+ enforceTenantIsolation: true,
167
+ };
168
+ const sql = "SELECT * FROM users WHERE tenant_id = $1 AND active = true";
169
+ const params = { tenant_id: "tenant-123" };
170
+ const tenantId = "tenant-123";
171
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
172
+ // Should not modify since tenant_id is in SQL
173
+ expect(result).toBe(sql);
174
+ });
175
+ });
176
+ describe("Enforcement Control", () => {
177
+ it("should not modify SQL when enforceTenantIsolation is false", () => {
178
+ const metadata = {
179
+ name: "public_data",
180
+ dialect: "clickhouse",
181
+ tenantFieldName: "customer_id",
182
+ tenantFieldType: "String",
183
+ enforceTenantIsolation: false, // Disabled
184
+ };
185
+ const sql = "SELECT * FROM public_transactions";
186
+ const params = {};
187
+ const tenantId = "customer-123";
188
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
189
+ // SQL should not be modified
190
+ expect(result).toBe(sql);
191
+ });
192
+ it("should not modify SQL when tenantFieldName is not set", () => {
193
+ const metadata = {
194
+ name: "analytics",
195
+ dialect: "clickhouse",
196
+ // No tenantFieldName
197
+ enforceTenantIsolation: true,
198
+ };
199
+ const sql = "SELECT * FROM transactions";
200
+ const params = {};
201
+ const tenantId = "customer-123";
202
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
203
+ // SQL should not be modified
204
+ expect(result).toBe(sql);
205
+ });
206
+ it("should still add param when enforcement is disabled but field is set", () => {
207
+ const metadata = {
208
+ name: "analytics",
209
+ dialect: "clickhouse",
210
+ tenantFieldName: "customer_id",
211
+ tenantFieldType: "String",
212
+ enforceTenantIsolation: false,
213
+ };
214
+ const sql = "SELECT * FROM transactions";
215
+ const params = {};
216
+ const tenantId = "customer-123";
217
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
218
+ // SQL not modified, but param should be added
219
+ expect(result).toBe(sql);
220
+ // Note: params won't be added because enforcement is disabled
221
+ // The ensureTenantIsolation returns early
222
+ });
223
+ });
224
+ describe("Edge Cases", () => {
225
+ it("should handle SQL with semicolon at end", () => {
226
+ const metadata = {
227
+ name: "analytics",
228
+ dialect: "clickhouse",
229
+ tenantFieldName: "customer_id",
230
+ tenantFieldType: "String",
231
+ enforceTenantIsolation: true,
232
+ };
233
+ const sql = "SELECT * FROM transactions;";
234
+ const params = {};
235
+ const tenantId = "customer-123";
236
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
237
+ expect(result).toContain("WHERE customer_id = {customer_id:String}");
238
+ expect(result).toMatch(/WHERE.*customer_id.*;$/);
239
+ });
240
+ it("should handle multi-line SQL", () => {
241
+ const metadata = {
242
+ name: "analytics",
243
+ dialect: "clickhouse",
244
+ tenantFieldName: "customer_id",
245
+ tenantFieldType: "String",
246
+ enforceTenantIsolation: true,
247
+ };
248
+ const sql = `
249
+ SELECT
250
+ product_id,
251
+ COUNT(*) as count
252
+ FROM orders
253
+ GROUP BY product_id
254
+ ORDER BY count DESC
255
+ `;
256
+ const params = {};
257
+ const tenantId = "customer-123";
258
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
259
+ expect(result).toContain("WHERE customer_id = {customer_id:String}");
260
+ expect(result).toMatch(/WHERE.*GROUP BY/s);
261
+ });
262
+ it("should be case-insensitive for SQL keywords", () => {
263
+ const metadata = {
264
+ name: "analytics",
265
+ dialect: "clickhouse",
266
+ tenantFieldName: "customer_id",
267
+ tenantFieldType: "String",
268
+ enforceTenantIsolation: true,
269
+ };
270
+ const sql = "select * from transactions order by date";
271
+ const params = {};
272
+ const tenantId = "customer-123";
273
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
274
+ expect(result).toContain("customer_id = {customer_id:String}");
275
+ });
276
+ it("should handle HAVING clause", () => {
277
+ const metadata = {
278
+ name: "analytics",
279
+ dialect: "clickhouse",
280
+ tenantFieldName: "customer_id",
281
+ tenantFieldType: "String",
282
+ enforceTenantIsolation: true,
283
+ };
284
+ const sql = "SELECT product_id, COUNT(*) as cnt FROM orders GROUP BY product_id HAVING cnt > 10";
285
+ const params = {};
286
+ const tenantId = "customer-123";
287
+ const result = sdk.ensureTenantIsolation(sql, params, metadata, tenantId);
288
+ expect(result).toContain("WHERE customer_id = {customer_id:String}");
289
+ expect(result).toMatch(/WHERE.*GROUP BY/);
290
+ });
291
+ });
292
+ describe("attachClickhouse configuration", () => {
293
+ it("should default enforceTenantIsolation to true when tenantFieldName is set", () => {
294
+ const mockFn = async () => ({});
295
+ sdk.attachClickhouse("test", mockFn, {
296
+ tenantFieldName: "customer_id",
297
+ tenantFieldType: "String",
298
+ // enforceTenantIsolation not specified
299
+ });
300
+ const metadata = sdk.databaseMetadata.get("test");
301
+ expect(metadata.enforceTenantIsolation).toBe(true);
302
+ });
303
+ it("should respect explicit enforceTenantIsolation value", () => {
304
+ const mockFn = async () => ({});
305
+ sdk.attachClickhouse("test", mockFn, {
306
+ tenantFieldName: "customer_id",
307
+ tenantFieldType: "String",
308
+ enforceTenantIsolation: false,
309
+ });
310
+ const metadata = sdk.databaseMetadata.get("test");
311
+ expect(metadata.enforceTenantIsolation).toBe(false);
312
+ });
313
+ it("should default tenantFieldType to String", () => {
314
+ const mockFn = async () => ({});
315
+ sdk.attachClickhouse("test", mockFn, {
316
+ tenantFieldName: "customer_id",
317
+ // tenantFieldType not specified
318
+ });
319
+ const metadata = sdk.databaseMetadata.get("test");
320
+ expect(metadata.tenantFieldType).toBe("String");
321
+ });
322
+ });
323
+ describe("attachPostgres configuration", () => {
324
+ it("should default enforceTenantIsolation to true when tenantFieldName is set", () => {
325
+ const mockFn = async () => ({ rows: [], fields: [] });
326
+ sdk.attachPostgres("test", mockFn, {
327
+ tenantFieldName: "tenant_id",
328
+ // enforceTenantIsolation not specified
329
+ });
330
+ const metadata = sdk.databaseMetadata.get("test");
331
+ expect(metadata.enforceTenantIsolation).toBe(true);
332
+ });
333
+ it("should not set tenantFieldType for Postgres", () => {
334
+ const mockFn = async () => ({ rows: [], fields: [] });
335
+ sdk.attachPostgres("test", mockFn, {
336
+ tenantFieldName: "tenant_id",
337
+ });
338
+ const metadata = sdk.databaseMetadata.get("test");
339
+ expect(metadata.tenantFieldType).toBeUndefined();
340
+ });
341
+ });
342
+ });
343
+ //# sourceMappingURL=tenant-isolation.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-isolation.spec.js","sourceRoot":"","sources":["../../src/tenant-isolation.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@querypanel/node-sdk",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "type": "module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",