@lightdash/common 0.1724.2 → 0.1725.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.
Files changed (30) hide show
  1. package/dist/cjs/authorization/organizationMemberAbility.test.js +148 -0
  2. package/dist/cjs/authorization/organizationMemberAbility.test.js.map +1 -1
  3. package/dist/cjs/authorization/projectMemberAbility.d.ts.map +1 -1
  4. package/dist/cjs/authorization/projectMemberAbility.js +27 -0
  5. package/dist/cjs/authorization/projectMemberAbility.js.map +1 -1
  6. package/dist/cjs/authorization/projectMemberAbility.test.js +158 -0
  7. package/dist/cjs/authorization/projectMemberAbility.test.js.map +1 -1
  8. package/dist/cjs/ee/Ai/schemas.d.ts +206 -0
  9. package/dist/cjs/ee/Ai/schemas.d.ts.map +1 -1
  10. package/dist/cjs/ee/Ai/schemas.js +78 -1
  11. package/dist/cjs/ee/Ai/schemas.js.map +1 -1
  12. package/dist/cjs/utils/i18n/dashboardAsCode.d.ts +19 -19
  13. package/dist/esm/authorization/organizationMemberAbility.test.js +148 -0
  14. package/dist/esm/authorization/organizationMemberAbility.test.js.map +1 -1
  15. package/dist/esm/authorization/projectMemberAbility.d.ts.map +1 -1
  16. package/dist/esm/authorization/projectMemberAbility.js +27 -0
  17. package/dist/esm/authorization/projectMemberAbility.js.map +1 -1
  18. package/dist/esm/authorization/projectMemberAbility.test.js +158 -0
  19. package/dist/esm/authorization/projectMemberAbility.test.js.map +1 -1
  20. package/dist/esm/ee/Ai/schemas.d.ts +206 -0
  21. package/dist/esm/ee/Ai/schemas.d.ts.map +1 -1
  22. package/dist/esm/ee/Ai/schemas.js +77 -0
  23. package/dist/esm/ee/Ai/schemas.js.map +1 -1
  24. package/dist/esm/utils/i18n/dashboardAsCode.d.ts +19 -19
  25. package/dist/tsconfig.types.tsbuildinfo +1 -1
  26. package/dist/types/authorization/projectMemberAbility.d.ts.map +1 -1
  27. package/dist/types/ee/Ai/schemas.d.ts +206 -0
  28. package/dist/types/ee/Ai/schemas.d.ts.map +1 -1
  29. package/dist/types/utils/i18n/dashboardAsCode.d.ts +19 -19
  30. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.aiFindFieldsToolSchema = exports.aiSummarySchema = exports.aiAskForAdditionalInformationSchema = exports.lighterMetricQuerySchema = exports.SortFieldSchema = exports.GenerateQueryFiltersToolSchema = exports.filterSchema = exports.FilterGroupSchema = exports.FieldIdSchema = void 0;
3
+ exports.csvFileVizConfigSchema = exports.verticalBarMetricVizConfigSchema = exports.timeSeriesMetricVizConfigSchema = exports.aiFindFieldsToolSchema = exports.aiSummarySchema = exports.aiAskForAdditionalInformationSchema = exports.lighterMetricQuerySchema = exports.SortFieldSchema = exports.GenerateQueryFiltersToolSchema = exports.filterSchema = exports.FilterGroupSchema = exports.FieldIdSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const conditionalRule_1 = require("../../types/conditionalRule");
6
6
  const field_1 = require("../../types/field");
@@ -233,4 +233,81 @@ exports.aiFindFieldsToolSchema = zod_1.z.object({
233
233
  }))
234
234
  .describe(`Break down user input sentence into field names and descriptions to find the most relevant fields in the explore.`),
235
235
  });
236
+ exports.timeSeriesMetricVizConfigSchema = zod_1.z.object({
237
+ title: zod_1.z
238
+ .string()
239
+ .describe('The title of the chart. If not provided the chart will have no title.')
240
+ .nullable(),
241
+ exploreName: zod_1.z
242
+ .string()
243
+ .describe('The name of the explore containing the metrics and dimensions used for the chart.'),
244
+ xDimension: zod_1.z
245
+ .string()
246
+ .describe('The field id of the time dimension to be displayed on the x-axis.'),
247
+ yMetrics: zod_1.z
248
+ .array(zod_1.z.string())
249
+ .min(1)
250
+ .describe('At least one metric is required. The field ids of the metrics to be displayed on the y-axis. If there are multiple metrics there will be one line per metric'),
251
+ sorts: zod_1.z
252
+ .array(exports.SortFieldSchema)
253
+ .describe('Sort configuration for the query, it can use a combination of metrics and dimensions.'),
254
+ breakdownByDimension: zod_1.z
255
+ .string()
256
+ .nullable()
257
+ .describe('The field id of the dimension used to split the metrics into series for each dimension value. For example if you wanted to split a metric into multiple series based on City you would use the City dimension field id here. If this is not provided then the metric will be displayed as a single series.'),
258
+ lineType: zod_1.z
259
+ .union([zod_1.z.literal('line'), zod_1.z.literal('area')])
260
+ .describe('default line. The type of line to display. If area then the area under the line will be filled in.'),
261
+ });
262
+ exports.verticalBarMetricVizConfigSchema = zod_1.z.object({
263
+ exploreName: zod_1.z
264
+ .string()
265
+ .describe('The name of the explore containing the metrics and dimensions used for the chart.'),
266
+ xDimension: zod_1.z
267
+ .string()
268
+ .describe('The field id of the dimension to be displayed on the x-axis.'),
269
+ yMetrics: zod_1.z
270
+ .array(zod_1.z.string())
271
+ .min(1)
272
+ .describe('At least one metric is required. The field ids of the metrics to be displayed on the y-axis. The height of the bars'),
273
+ sorts: zod_1.z
274
+ .array(exports.SortFieldSchema)
275
+ .describe('Sort configuration for the query, it can use a combination of metrics and dimensions.'),
276
+ breakdownByDimension: zod_1.z
277
+ .string()
278
+ .nullable()
279
+ .describe('The field id of the dimension used to split the metrics into groups along the x-axis. If stacking is false then this will create multiple bars around each x value, if stacking is true then this will create multiple bars for each metric stacked on top of each other'),
280
+ stackBars: zod_1.z
281
+ .boolean()
282
+ .nullable()
283
+ .describe('If using breakdownByDimension then this will stack the bars on top of each other instead of side by side.'),
284
+ xAxisType: zod_1.z
285
+ .union([zod_1.z.literal('category'), zod_1.z.literal('time')])
286
+ .describe('The x-axis type can be categorical for string value or time if the dimension is a date or timestamp.'),
287
+ xAxisLabel: zod_1.z
288
+ .string()
289
+ .nullable()
290
+ .describe('A helpful label to explain the x-axis'),
291
+ yAxisLabel: zod_1.z
292
+ .string()
293
+ .nullable()
294
+ .describe('A helpful label to explain the y-axis'),
295
+ title: zod_1.z.string().nullable().describe('a descriptive title for the chart'),
296
+ });
297
+ exports.csvFileVizConfigSchema = zod_1.z.object({
298
+ exploreName: zod_1.z
299
+ .string()
300
+ .describe('The name of the explore containing the metrics and dimensions used for csv query'),
301
+ metrics: zod_1.z
302
+ .array(zod_1.z.string())
303
+ .min(1)
304
+ .describe('At least one metric is required. The field ids of the metrics to be calculated for the CSV. They will be grouped by the dimensions.'),
305
+ dimensions: zod_1.z
306
+ .array(zod_1.z.string())
307
+ .nullable()
308
+ .describe('The field id for the dimensions to group the metrics by'),
309
+ sorts: zod_1.z
310
+ .array(exports.SortFieldSchema)
311
+ .describe('Sort configuration for the query, it can use a combination of metrics and dimensions.'),
312
+ });
236
313
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/ee/Ai/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/ee/Ai/schemas.ts"],"names":[],"mappings":"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"}
@@ -35,23 +35,23 @@ declare const dashboardAsCodeSchema: z.ZodObject<{
35
35
  title: z.ZodString;
36
36
  content: z.ZodString;
37
37
  }, "strip", z.ZodTypeAny, {
38
- content: string;
39
38
  title: string;
40
- }, {
41
39
  content: string;
40
+ }, {
42
41
  title: string;
42
+ content: string;
43
43
  }>;
44
44
  }, "strip", z.ZodTypeAny, {
45
45
  type: DashboardTileTypes.MARKDOWN;
46
46
  properties: {
47
- content: string;
48
47
  title: string;
48
+ content: string;
49
49
  };
50
50
  }, {
51
51
  type: DashboardTileTypes.MARKDOWN;
52
52
  properties: {
53
- content: string;
54
53
  title: string;
54
+ content: string;
55
55
  };
56
56
  }>, z.ZodObject<{
57
57
  type: z.ZodLiteral<DashboardTileTypes.LOOM>;
@@ -84,8 +84,8 @@ declare const dashboardAsCodeSchema: z.ZodObject<{
84
84
  } | {
85
85
  type: DashboardTileTypes.MARKDOWN;
86
86
  properties: {
87
- content: string;
88
87
  title: string;
88
+ content: string;
89
89
  };
90
90
  } | {
91
91
  type: DashboardTileTypes.LOOM;
@@ -105,8 +105,8 @@ declare const dashboardAsCodeSchema: z.ZodObject<{
105
105
  } | {
106
106
  type: DashboardTileTypes.MARKDOWN;
107
107
  properties: {
108
- content: string;
109
108
  title: string;
109
+ content: string;
110
110
  };
111
111
  } | {
112
112
  type: DashboardTileTypes.LOOM;
@@ -153,23 +153,23 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
153
153
  title: z.ZodString;
154
154
  content: z.ZodString;
155
155
  }, "strip", z.ZodTypeAny, {
156
- content: string;
157
156
  title: string;
158
- }, {
159
157
  content: string;
158
+ }, {
160
159
  title: string;
160
+ content: string;
161
161
  }>;
162
162
  }, "strip", z.ZodTypeAny, {
163
163
  type: DashboardTileTypes.MARKDOWN;
164
164
  properties: {
165
- content: string;
166
165
  title: string;
166
+ content: string;
167
167
  };
168
168
  }, {
169
169
  type: DashboardTileTypes.MARKDOWN;
170
170
  properties: {
171
- content: string;
172
171
  title: string;
172
+ content: string;
173
173
  };
174
174
  }>, z.ZodObject<{
175
175
  type: z.ZodLiteral<DashboardTileTypes.LOOM>;
@@ -202,8 +202,8 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
202
202
  } | {
203
203
  type: DashboardTileTypes.MARKDOWN;
204
204
  properties: {
205
- content: string;
206
205
  title: string;
206
+ content: string;
207
207
  };
208
208
  } | {
209
209
  type: DashboardTileTypes.LOOM;
@@ -223,8 +223,8 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
223
223
  } | {
224
224
  type: DashboardTileTypes.MARKDOWN;
225
225
  properties: {
226
- content: string;
227
226
  title: string;
227
+ content: string;
228
228
  };
229
229
  } | {
230
230
  type: DashboardTileTypes.LOOM;
@@ -267,23 +267,23 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
267
267
  title: z.ZodString;
268
268
  content: z.ZodString;
269
269
  }, "strip", z.ZodTypeAny, {
270
- content: string;
271
270
  title: string;
272
- }, {
273
271
  content: string;
272
+ }, {
274
273
  title: string;
274
+ content: string;
275
275
  }>;
276
276
  }, "strip", z.ZodTypeAny, {
277
277
  type: DashboardTileTypes.MARKDOWN;
278
278
  properties: {
279
- content: string;
280
279
  title: string;
280
+ content: string;
281
281
  };
282
282
  }, {
283
283
  type: DashboardTileTypes.MARKDOWN;
284
284
  properties: {
285
- content: string;
286
285
  title: string;
286
+ content: string;
287
287
  };
288
288
  }>, z.ZodObject<{
289
289
  type: z.ZodLiteral<DashboardTileTypes.LOOM>;
@@ -316,8 +316,8 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
316
316
  } | {
317
317
  type: DashboardTileTypes.MARKDOWN;
318
318
  properties: {
319
- content: string;
320
319
  title: string;
320
+ content: string;
321
321
  };
322
322
  } | {
323
323
  type: DashboardTileTypes.LOOM;
@@ -337,8 +337,8 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
337
337
  } | {
338
338
  type: DashboardTileTypes.MARKDOWN;
339
339
  properties: {
340
- content: string;
341
340
  title: string;
341
+ content: string;
342
342
  };
343
343
  } | {
344
344
  type: DashboardTileTypes.LOOM;
@@ -362,8 +362,8 @@ export declare class DashboardAsCodeInternalization extends AsCodeInternalizatio
362
362
  } | {
363
363
  type: DashboardTileTypes.MARKDOWN;
364
364
  properties: {
365
- content: string;
366
365
  title: string;
366
+ content: string;
367
367
  };
368
368
  } | {
369
369
  type: DashboardTileTypes.LOOM;
@@ -247,6 +247,38 @@ describe('Organization member permissions', () => {
247
247
  expect(ability.can('view', subject('JobStatus', { organizationUuid: '54678' }))).toEqual(false);
248
248
  });
249
249
  });
250
+ describe('AiAgent', () => {
251
+ it('can manage AiAgent', () => {
252
+ expect(ability.can('manage', subject('AiAgent', {
253
+ organizationUuid: ORGANIZATION_ADMIN.organizationUuid,
254
+ }))).toEqual(true);
255
+ });
256
+ it('cannot manage AiAgent from another organization', () => {
257
+ expect(ability.can('manage', subject('AiAgent', { organizationUuid: '5678' }))).toEqual(false);
258
+ });
259
+ });
260
+ describe('AiAgentThread', () => {
261
+ it('can view all AiAgentThreads in the organization', () => {
262
+ expect(ability.can('view', subject('AiAgentThread', {
263
+ organizationUuid: ORGANIZATION_ADMIN.organizationUuid,
264
+ }))).toEqual(true);
265
+ });
266
+ it('can manage all AiAgentThreads in the organization', () => {
267
+ expect(ability.can('manage', subject('AiAgentThread', {
268
+ organizationUuid: ORGANIZATION_ADMIN.organizationUuid,
269
+ }))).toEqual(true);
270
+ });
271
+ it('cannot view AiAgentThread from another organization', () => {
272
+ expect(ability.can('view', subject('AiAgentThread', {
273
+ organizationUuid: '5678',
274
+ }))).toEqual(false);
275
+ });
276
+ it('cannot manage AiAgentThread from another organization', () => {
277
+ expect(ability.can('manage', subject('AiAgentThread', {
278
+ organizationUuid: '5678',
279
+ }))).toEqual(false);
280
+ });
281
+ });
250
282
  });
251
283
  describe('when user is an editor', () => {
252
284
  beforeEach(() => {
@@ -520,6 +552,35 @@ describe('Organization member permissions', () => {
520
552
  expect(ability.can('view', subject('JobStatus', { organizationUuid: '54678' }))).toEqual(false);
521
553
  });
522
554
  });
555
+ describe('AiAgent', () => {
556
+ it('can manage AiAgent', () => {
557
+ expect(ability.can('manage', subject('AiAgent', {
558
+ organizationUuid: ORGANIZATION_DEVELOPER.organizationUuid,
559
+ }))).toEqual(true);
560
+ });
561
+ it('cannot manage AiAgent from another organization', () => {
562
+ expect(ability.can('manage', subject('AiAgent', { organizationUuid: '5678' }))).toEqual(false);
563
+ });
564
+ });
565
+ describe('AiAgentThread', () => {
566
+ it('can manage only his own AiAgentThread', () => {
567
+ expect(ability.can('manage', subject('AiAgentThread', {
568
+ organizationUuid: ORGANIZATION_DEVELOPER.organizationUuid,
569
+ userUuid: ORGANIZATION_DEVELOPER.userUuid,
570
+ }))).toEqual(true);
571
+ });
572
+ it('cannot manage other users AiAgentThread', () => {
573
+ expect(ability.can('manage', subject('AiAgentThread', {
574
+ organizationUuid: ORGANIZATION_DEVELOPER.organizationUuid,
575
+ userUuid: 'another-user-uuid',
576
+ }))).toEqual(false);
577
+ });
578
+ it('cannot manage AiAgentThread from another organization', () => {
579
+ expect(ability.can('manage', subject('AiAgentThread', {
580
+ organizationUuid: '5678',
581
+ }))).toEqual(false);
582
+ });
583
+ });
523
584
  });
524
585
  describe('when user is a member', () => {
525
586
  beforeEach(() => {
@@ -855,6 +916,48 @@ describe('Organization member permissions', () => {
855
916
  it('cannot view the SemanticViewer', () => {
856
917
  expect(ability.can('view', 'SemanticViewer')).toEqual(false);
857
918
  });
919
+ describe('AiAgent', () => {
920
+ it('cannot view AiAgent', () => {
921
+ expect(ability.can('view', subject('AiAgent', {
922
+ organizationUuid: ORGANIZATION_VIEWER.organizationUuid,
923
+ }))).toEqual(false);
924
+ });
925
+ it('cannot manage AiAgent', () => {
926
+ expect(ability.can('manage', subject('AiAgent', {
927
+ organizationUuid: ORGANIZATION_VIEWER.organizationUuid,
928
+ }))).toEqual(false);
929
+ });
930
+ });
931
+ describe('AiAgentThread', () => {
932
+ it('can view only his own AiAgentThread', () => {
933
+ expect(ability.can('view', subject('AiAgentThread', {
934
+ organizationUuid: ORGANIZATION_VIEWER.organizationUuid,
935
+ userUuid: ORGANIZATION_VIEWER.userUuid,
936
+ }))).toEqual(true);
937
+ });
938
+ it('cannot view other users AiAgentThread', () => {
939
+ expect(ability.can('view', subject('AiAgentThread', {
940
+ organizationUuid: ORGANIZATION_VIEWER.organizationUuid,
941
+ userUuid: 'another-user-uuid',
942
+ }))).toEqual(false);
943
+ });
944
+ it('cannot manage his own AiAgentThread', () => {
945
+ expect(ability.can('manage', subject('AiAgentThread', {
946
+ organizationUuid: ORGANIZATION_VIEWER.organizationUuid,
947
+ userUuid: ORGANIZATION_VIEWER.userUuid,
948
+ }))).toEqual(false);
949
+ });
950
+ it('cannot create AiAgentThread', () => {
951
+ expect(ability.can('create', subject('AiAgentThread', {
952
+ organizationUuid: ORGANIZATION_VIEWER.organizationUuid,
953
+ }))).toEqual(false);
954
+ });
955
+ it('cannot view AiAgentThread from another organization', () => {
956
+ expect(ability.can('view', subject('AiAgentThread', {
957
+ organizationUuid: '5678',
958
+ }))).toEqual(false);
959
+ });
960
+ });
858
961
  });
859
962
  describe('when user is an interactive viewer', () => {
860
963
  beforeEach(() => {
@@ -976,6 +1079,51 @@ describe('Organization member permissions', () => {
976
1079
  it('cannot view jobs from another user', () => {
977
1080
  expect(ability.can('view', subject('Job', { userUuid: 'another-user-uuid' }))).toEqual(false);
978
1081
  });
1082
+ describe('AiAgent', () => {
1083
+ it('can view AiAgent', () => {
1084
+ expect(ability.can('view', subject('AiAgent', {
1085
+ organizationUuid: ORGANIZATION_INTERACTIVE_VIEWER.organizationUuid,
1086
+ }))).toEqual(true);
1087
+ });
1088
+ it('cannot manage AiAgent', () => {
1089
+ expect(ability.can('manage', subject('AiAgent', {
1090
+ organizationUuid: ORGANIZATION_INTERACTIVE_VIEWER.organizationUuid,
1091
+ }))).toEqual(false);
1092
+ });
1093
+ it('cannot view AiAgent from another organization', () => {
1094
+ expect(ability.can('view', subject('AiAgent', { organizationUuid: '5678' }))).toEqual(false);
1095
+ });
1096
+ });
1097
+ describe('AiAgentThread', () => {
1098
+ it('can create AiAgentThread', () => {
1099
+ expect(ability.can('create', subject('AiAgentThread', {
1100
+ organizationUuid: ORGANIZATION_INTERACTIVE_VIEWER.organizationUuid,
1101
+ }))).toEqual(true);
1102
+ });
1103
+ it('can view only his own AiAgentThread', () => {
1104
+ expect(ability.can('view', subject('AiAgentThread', {
1105
+ organizationUuid: ORGANIZATION_INTERACTIVE_VIEWER.organizationUuid,
1106
+ userUuid: ORGANIZATION_INTERACTIVE_VIEWER.userUuid,
1107
+ }))).toEqual(true);
1108
+ });
1109
+ it('cannot view other users AiAgentThread', () => {
1110
+ expect(ability.can('view', subject('AiAgentThread', {
1111
+ organizationUuid: ORGANIZATION_INTERACTIVE_VIEWER.organizationUuid,
1112
+ userUuid: 'another-user-uuid',
1113
+ }))).toEqual(false);
1114
+ });
1115
+ it('cannot manage his own AiAgentThread', () => {
1116
+ expect(ability.can('manage', subject('AiAgentThread', {
1117
+ organizationUuid: ORGANIZATION_INTERACTIVE_VIEWER.organizationUuid,
1118
+ userUuid: ORGANIZATION_INTERACTIVE_VIEWER.userUuid,
1119
+ }))).toEqual(false);
1120
+ });
1121
+ it('cannot create AiAgentThread in another organization', () => {
1122
+ expect(ability.can('create', subject('AiAgentThread', {
1123
+ organizationUuid: '5678',
1124
+ }))).toEqual(false);
1125
+ });
1126
+ });
979
1127
  });
980
1128
  });
981
1129
  describe('Project creation permissions', () => {