@lightdash/common 0.1930.3 → 0.1932.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.
Files changed (78) hide show
  1. package/dist/cjs/authorization/parseScopes.d.ts +8 -0
  2. package/dist/cjs/authorization/parseScopes.d.ts.map +1 -0
  3. package/dist/cjs/authorization/parseScopes.js +27 -0
  4. package/dist/cjs/authorization/parseScopes.js.map +1 -0
  5. package/dist/cjs/authorization/parseScopes.test.d.ts +2 -0
  6. package/dist/cjs/authorization/parseScopes.test.d.ts.map +1 -0
  7. package/dist/cjs/authorization/parseScopes.test.js +109 -0
  8. package/dist/cjs/authorization/parseScopes.test.js.map +1 -0
  9. package/dist/cjs/authorization/scopeAbilityBuilder.d.ts +23 -0
  10. package/dist/cjs/authorization/scopeAbilityBuilder.d.ts.map +1 -0
  11. package/dist/cjs/authorization/scopeAbilityBuilder.js +58 -0
  12. package/dist/cjs/authorization/scopeAbilityBuilder.js.map +1 -0
  13. package/dist/cjs/authorization/scopeAbilityBuilder.test.d.ts +2 -0
  14. package/dist/cjs/authorization/scopeAbilityBuilder.test.d.ts.map +1 -0
  15. package/dist/cjs/authorization/scopeAbilityBuilder.test.js +955 -0
  16. package/dist/cjs/authorization/scopeAbilityBuilder.test.js.map +1 -0
  17. package/dist/cjs/authorization/scopes.d.ts +8 -0
  18. package/dist/cjs/authorization/scopes.d.ts.map +1 -0
  19. package/dist/cjs/authorization/scopes.js +633 -0
  20. package/dist/cjs/authorization/scopes.js.map +1 -0
  21. package/dist/cjs/types/scopes.d.ts +30 -3
  22. package/dist/cjs/types/scopes.d.ts.map +1 -1
  23. package/dist/cjs/types/scopes.js.map +1 -1
  24. package/dist/cjs/types/search.d.ts +1 -0
  25. package/dist/cjs/types/search.d.ts.map +1 -1
  26. package/dist/cjs/types/search.js.map +1 -1
  27. package/dist/esm/authorization/parseScopes.d.ts +8 -0
  28. package/dist/esm/authorization/parseScopes.d.ts.map +1 -0
  29. package/dist/esm/authorization/parseScopes.js +22 -0
  30. package/dist/esm/authorization/parseScopes.js.map +1 -0
  31. package/dist/esm/authorization/parseScopes.test.d.ts +2 -0
  32. package/dist/esm/authorization/parseScopes.test.d.ts.map +1 -0
  33. package/dist/esm/authorization/parseScopes.test.js +107 -0
  34. package/dist/esm/authorization/parseScopes.test.js.map +1 -0
  35. package/dist/esm/authorization/scopeAbilityBuilder.d.ts +23 -0
  36. package/dist/esm/authorization/scopeAbilityBuilder.d.ts.map +1 -0
  37. package/dist/esm/authorization/scopeAbilityBuilder.js +54 -0
  38. package/dist/esm/authorization/scopeAbilityBuilder.js.map +1 -0
  39. package/dist/esm/authorization/scopeAbilityBuilder.test.d.ts +2 -0
  40. package/dist/esm/authorization/scopeAbilityBuilder.test.d.ts.map +1 -0
  41. package/dist/esm/authorization/scopeAbilityBuilder.test.js +953 -0
  42. package/dist/esm/authorization/scopeAbilityBuilder.test.js.map +1 -0
  43. package/dist/esm/authorization/scopes.d.ts +8 -0
  44. package/dist/esm/authorization/scopes.d.ts.map +1 -0
  45. package/dist/esm/authorization/scopes.js +628 -0
  46. package/dist/esm/authorization/scopes.js.map +1 -0
  47. package/dist/esm/types/scopes.d.ts +30 -3
  48. package/dist/esm/types/scopes.d.ts.map +1 -1
  49. package/dist/esm/types/scopes.js.map +1 -1
  50. package/dist/esm/types/search.d.ts +1 -0
  51. package/dist/esm/types/search.d.ts.map +1 -1
  52. package/dist/esm/types/search.js.map +1 -1
  53. package/dist/tsconfig.types.tsbuildinfo +1 -1
  54. package/dist/types/authorization/parseScopes.d.ts +8 -0
  55. package/dist/types/authorization/parseScopes.d.ts.map +1 -0
  56. package/dist/types/authorization/parseScopes.test.d.ts +2 -0
  57. package/dist/types/authorization/parseScopes.test.d.ts.map +1 -0
  58. package/dist/types/authorization/scopeAbilityBuilder.d.ts +23 -0
  59. package/dist/types/authorization/scopeAbilityBuilder.d.ts.map +1 -0
  60. package/dist/types/authorization/scopeAbilityBuilder.test.d.ts +2 -0
  61. package/dist/types/authorization/scopeAbilityBuilder.test.d.ts.map +1 -0
  62. package/dist/types/authorization/scopes.d.ts +8 -0
  63. package/dist/types/authorization/scopes.d.ts.map +1 -0
  64. package/dist/types/types/scopes.d.ts +30 -3
  65. package/dist/types/types/scopes.d.ts.map +1 -1
  66. package/dist/types/types/search.d.ts +1 -0
  67. package/dist/types/types/search.d.ts.map +1 -1
  68. package/package.json +1 -1
  69. package/dist/cjs/authorization/scopes/index.d.ts +0 -5
  70. package/dist/cjs/authorization/scopes/index.d.ts.map +0 -1
  71. package/dist/cjs/authorization/scopes/index.js +0 -372
  72. package/dist/cjs/authorization/scopes/index.js.map +0 -1
  73. package/dist/esm/authorization/scopes/index.d.ts +0 -5
  74. package/dist/esm/authorization/scopes/index.d.ts.map +0 -1
  75. package/dist/esm/authorization/scopes/index.js +0 -368
  76. package/dist/esm/authorization/scopes/index.js.map +0 -1
  77. package/dist/types/authorization/scopes/index.d.ts +0 -5
  78. package/dist/types/authorization/scopes/index.d.ts.map +0 -1
@@ -0,0 +1,633 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAllScopeMap = exports.getScopes = void 0;
4
+ const projects_1 = require("../types/projects");
5
+ const scopes_1 = require("../types/scopes");
6
+ const space_1 = require("../types/space");
7
+ const addAccessCondition = (context, role) => ({
8
+ $elemMatch: {
9
+ userUuid: context.userUuid || false,
10
+ ...(role ? { role } : {}),
11
+ },
12
+ });
13
+ const addDefaultOrgIdCondition = (context) => [
14
+ {
15
+ organizationUuid: context.organizationUuid,
16
+ },
17
+ ];
18
+ const scopes = [
19
+ {
20
+ name: 'view:Dashboard',
21
+ description: 'View dashboards',
22
+ isEnterprise: false,
23
+ group: scopes_1.ScopeGroup.CONTENT,
24
+ getConditions: (context) => {
25
+ // Public dashboards
26
+ const conditions = [
27
+ {
28
+ organizationUuid: context.organizationUuid,
29
+ isPrivate: false,
30
+ },
31
+ ];
32
+ conditions.push({
33
+ organizationUuid: context.organizationUuid,
34
+ access: addAccessCondition(context),
35
+ });
36
+ return conditions;
37
+ },
38
+ },
39
+ {
40
+ name: 'manage:Dashboard',
41
+ description: 'Create, edit, and delete dashboards',
42
+ isEnterprise: false,
43
+ group: scopes_1.ScopeGroup.CONTENT,
44
+ getConditions: (context) => {
45
+ const { organizationUuid } = context;
46
+ if (context.scopes.has('manage:Organization')) {
47
+ return [{ organizationUuid }];
48
+ }
49
+ return [
50
+ {
51
+ organizationUuid,
52
+ access: addAccessCondition(context, space_1.SpaceMemberRole.EDITOR),
53
+ },
54
+ {
55
+ organizationUuid,
56
+ access: addAccessCondition(context, space_1.SpaceMemberRole.ADMIN),
57
+ },
58
+ ];
59
+ },
60
+ },
61
+ {
62
+ name: 'view:SavedChart',
63
+ description: 'View saved charts',
64
+ isEnterprise: false,
65
+ group: scopes_1.ScopeGroup.CONTENT,
66
+ getConditions: (context) => {
67
+ // Public saved charts
68
+ const conditions = [
69
+ {
70
+ organizationUuid: context.organizationUuid,
71
+ projectUuid: context.projectUuid,
72
+ isPrivate: false,
73
+ },
74
+ ];
75
+ // User's accessible saved charts via space access
76
+ conditions.push({
77
+ organizationUuid: context.organizationUuid,
78
+ projectUuid: context.projectUuid,
79
+ access: addAccessCondition(context),
80
+ });
81
+ return conditions;
82
+ },
83
+ },
84
+ {
85
+ name: 'manage:SavedChart',
86
+ description: 'Create, edit, and delete saved charts',
87
+ isEnterprise: false,
88
+ group: scopes_1.ScopeGroup.CONTENT,
89
+ getConditions: (context) => {
90
+ const { organizationUuid } = context;
91
+ if (context.scopes.has('manage:Organization')) {
92
+ return [{ organizationUuid }];
93
+ }
94
+ return [
95
+ {
96
+ organizationUuid,
97
+ access: addAccessCondition(context, space_1.SpaceMemberRole.EDITOR),
98
+ },
99
+ {
100
+ organizationUuid,
101
+ access: addAccessCondition(context, space_1.SpaceMemberRole.ADMIN),
102
+ },
103
+ ];
104
+ },
105
+ },
106
+ {
107
+ name: 'view:Space',
108
+ description: 'View spaces',
109
+ isEnterprise: false,
110
+ group: scopes_1.ScopeGroup.CONTENT,
111
+ getConditions: (context) => {
112
+ // Public spaces
113
+ const conditions = [
114
+ {
115
+ organizationUuid: context.organizationUuid,
116
+ projectUuid: context.projectUuid,
117
+ isPrivate: false,
118
+ },
119
+ ];
120
+ // User's accessible spaces
121
+ conditions.push({
122
+ organizationUuid: context.organizationUuid,
123
+ projectUuid: context.projectUuid,
124
+ access: addAccessCondition(context),
125
+ });
126
+ return conditions;
127
+ },
128
+ },
129
+ {
130
+ name: 'create:Space',
131
+ description: 'Create new spaces',
132
+ isEnterprise: false,
133
+ group: scopes_1.ScopeGroup.CONTENT,
134
+ getConditions: addDefaultOrgIdCondition,
135
+ },
136
+ {
137
+ name: 'manage:Space',
138
+ description: 'Edit and delete spaces',
139
+ isEnterprise: false,
140
+ group: scopes_1.ScopeGroup.CONTENT,
141
+ getConditions: (context) => {
142
+ const { organizationUuid } = context;
143
+ // Manage all spaces where user is admin of the organization
144
+ if (context.scopes.has('manage:Organization')) {
145
+ return [{ organizationUuid }];
146
+ }
147
+ const conditions = [
148
+ {
149
+ organizationUuid,
150
+ access: addAccessCondition(context, space_1.SpaceMemberRole.ADMIN),
151
+ },
152
+ ];
153
+ if (context.scopes.has('manage:Project')) {
154
+ // Manage public spaces where user is admin of the project
155
+ conditions.push({
156
+ organizationUuid: context.organizationUuid,
157
+ isPrivate: false,
158
+ });
159
+ }
160
+ return conditions;
161
+ },
162
+ },
163
+ {
164
+ name: 'view:DashboardComments',
165
+ description: 'View dashboard comments',
166
+ isEnterprise: false,
167
+ group: scopes_1.ScopeGroup.CONTENT,
168
+ getConditions: addDefaultOrgIdCondition,
169
+ },
170
+ {
171
+ name: 'create:DashboardComments',
172
+ description: 'Create dashboard comments',
173
+ isEnterprise: false,
174
+ group: scopes_1.ScopeGroup.CONTENT,
175
+ getConditions: addDefaultOrgIdCondition,
176
+ },
177
+ {
178
+ name: 'manage:DashboardComments',
179
+ description: 'Edit and delete dashboard comments',
180
+ isEnterprise: false,
181
+ group: scopes_1.ScopeGroup.CONTENT,
182
+ getConditions: addDefaultOrgIdCondition,
183
+ },
184
+ {
185
+ name: 'view:Tags',
186
+ description: 'View tags',
187
+ isEnterprise: false,
188
+ group: scopes_1.ScopeGroup.CONTENT,
189
+ getConditions: (context) => [
190
+ {
191
+ organizationUuid: context.organizationUuid,
192
+ },
193
+ ],
194
+ },
195
+ {
196
+ name: 'manage:Tags',
197
+ description: 'Create, edit, and delete tags',
198
+ isEnterprise: false,
199
+ group: scopes_1.ScopeGroup.CONTENT,
200
+ getConditions: addDefaultOrgIdCondition,
201
+ },
202
+ {
203
+ name: 'view:PinnedItems',
204
+ description: 'View pinned items',
205
+ isEnterprise: false,
206
+ group: scopes_1.ScopeGroup.CONTENT,
207
+ getConditions: addDefaultOrgIdCondition,
208
+ },
209
+ {
210
+ name: 'manage:PinnedItems',
211
+ description: 'Pin and unpin items',
212
+ isEnterprise: false,
213
+ group: scopes_1.ScopeGroup.CONTENT,
214
+ getConditions: addDefaultOrgIdCondition,
215
+ },
216
+ {
217
+ name: 'promote:SavedChart',
218
+ description: 'Promote saved charts to spaces',
219
+ isEnterprise: false,
220
+ group: scopes_1.ScopeGroup.CONTENT,
221
+ getConditions: (context) => {
222
+ if (context.scopes.has('manage:Organization')) {
223
+ return [
224
+ {
225
+ organizationUuid: context.organizationUuid,
226
+ },
227
+ ];
228
+ }
229
+ return [
230
+ {
231
+ organizationUuid: context.organizationUuid,
232
+ projectUuid: context.projectUuid,
233
+ access: addAccessCondition(context, space_1.SpaceMemberRole.EDITOR),
234
+ },
235
+ ];
236
+ },
237
+ },
238
+ {
239
+ name: 'promote:Dashboard',
240
+ description: 'Promote dashboards to spaces',
241
+ isEnterprise: false,
242
+ group: scopes_1.ScopeGroup.CONTENT,
243
+ getConditions: (context) => {
244
+ if (context.scopes.has('manage:Organization')) {
245
+ return [
246
+ {
247
+ organizationUuid: context.organizationUuid,
248
+ },
249
+ ];
250
+ }
251
+ return [
252
+ {
253
+ organizationUuid: context.organizationUuid,
254
+ projectUuid: context.projectUuid,
255
+ access: addAccessCondition(context, space_1.SpaceMemberRole.EDITOR),
256
+ },
257
+ ];
258
+ },
259
+ },
260
+ // Project Management Scopes
261
+ {
262
+ name: 'view:Project',
263
+ description: 'View project details',
264
+ isEnterprise: false,
265
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
266
+ getConditions: addDefaultOrgIdCondition,
267
+ },
268
+ {
269
+ name: 'create:Project',
270
+ description: 'Create new projects',
271
+ isEnterprise: false,
272
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
273
+ getConditions: (context) =>
274
+ // Allow creating preview projects by default
275
+ [
276
+ {
277
+ organizationUuid: context.organizationUuid,
278
+ type: projects_1.ProjectType.PREVIEW,
279
+ },
280
+ ],
281
+ },
282
+ {
283
+ name: 'update:Project',
284
+ description: 'Update project settings',
285
+ isEnterprise: false,
286
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
287
+ getConditions: addDefaultOrgIdCondition,
288
+ },
289
+ {
290
+ name: 'delete:Project',
291
+ description: 'Delete projects',
292
+ isEnterprise: false,
293
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
294
+ getConditions: (context) => {
295
+ if (context.projectUuid) {
296
+ return [
297
+ {
298
+ projectUuid: context.projectUuid,
299
+ },
300
+ ];
301
+ }
302
+ // Can delete preview projects in organization
303
+ return [
304
+ {
305
+ organizationUuid: context.organizationUuid,
306
+ type: projects_1.ProjectType.PREVIEW,
307
+ },
308
+ ];
309
+ },
310
+ },
311
+ {
312
+ name: 'manage:Project',
313
+ description: 'Full project management permissions',
314
+ isEnterprise: false,
315
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
316
+ getConditions: addDefaultOrgIdCondition,
317
+ },
318
+ {
319
+ name: 'manage:CompileProject',
320
+ description: 'Compile and refresh dbt projects',
321
+ isEnterprise: false,
322
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
323
+ getConditions: addDefaultOrgIdCondition,
324
+ },
325
+ {
326
+ name: 'manage:Validation',
327
+ description: 'Manage data validation rules',
328
+ isEnterprise: false,
329
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
330
+ getConditions: addDefaultOrgIdCondition,
331
+ },
332
+ {
333
+ name: 'create:ScheduledDeliveries',
334
+ description: 'Create scheduled deliveries',
335
+ isEnterprise: false,
336
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
337
+ getConditions: addDefaultOrgIdCondition,
338
+ },
339
+ {
340
+ name: 'manage:ScheduledDeliveries',
341
+ description: 'Manage scheduled deliveries',
342
+ isEnterprise: false,
343
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
344
+ getConditions: addDefaultOrgIdCondition,
345
+ },
346
+ {
347
+ name: 'view:Analytics',
348
+ description: 'View usage analytics',
349
+ isEnterprise: false,
350
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
351
+ getConditions: addDefaultOrgIdCondition,
352
+ },
353
+ {
354
+ name: 'create:Job',
355
+ description: 'Create background jobs',
356
+ isEnterprise: false,
357
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
358
+ getConditions: () => [{}],
359
+ },
360
+ {
361
+ name: 'view:Job',
362
+ description: 'View job details',
363
+ isEnterprise: false,
364
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
365
+ getConditions: (context) => [{ userUuid: context.userUuid || false }],
366
+ },
367
+ {
368
+ name: 'manage:Job',
369
+ description: 'Manage background jobs',
370
+ isEnterprise: false,
371
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
372
+ getConditions: () => [{}],
373
+ },
374
+ {
375
+ name: 'view:JobStatus',
376
+ description: 'View job status',
377
+ isEnterprise: false,
378
+ group: scopes_1.ScopeGroup.PROJECT_MANAGEMENT,
379
+ getConditions: (context) => {
380
+ if (context.scopes.has('manage:Organization')) {
381
+ return addDefaultOrgIdCondition(context);
382
+ }
383
+ return [
384
+ {
385
+ createdByUserUuid: context.userUuid || false,
386
+ },
387
+ ];
388
+ },
389
+ },
390
+ // Organization Management Scopes
391
+ {
392
+ name: 'view:Organization',
393
+ description: 'View organization details',
394
+ isEnterprise: false,
395
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
396
+ getConditions: addDefaultOrgIdCondition,
397
+ },
398
+ {
399
+ name: 'manage:Organization',
400
+ description: 'Manage organization settings',
401
+ isEnterprise: false,
402
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
403
+ getConditions: addDefaultOrgIdCondition,
404
+ },
405
+ {
406
+ name: 'view:OrganizationMemberProfile',
407
+ description: 'View organization member profiles',
408
+ isEnterprise: false,
409
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
410
+ getConditions: addDefaultOrgIdCondition,
411
+ },
412
+ {
413
+ name: 'manage:OrganizationMemberProfile',
414
+ description: 'Manage organization member profiles and roles',
415
+ isEnterprise: false,
416
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
417
+ getConditions: addDefaultOrgIdCondition,
418
+ },
419
+ {
420
+ name: 'manage:InviteLink',
421
+ description: 'Create and manage invite links',
422
+ isEnterprise: false,
423
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
424
+ getConditions: addDefaultOrgIdCondition,
425
+ },
426
+ {
427
+ name: 'manage:Group',
428
+ description: 'Manage user groups',
429
+ isEnterprise: false,
430
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
431
+ getConditions: addDefaultOrgIdCondition,
432
+ },
433
+ {
434
+ name: 'manage:ContentAsCode',
435
+ description: 'Manage content as code features',
436
+ isEnterprise: true,
437
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
438
+ getConditions: addDefaultOrgIdCondition,
439
+ },
440
+ {
441
+ name: 'manage:PersonalAccessToken',
442
+ description: 'Create and manage personal access tokens',
443
+ isEnterprise: true,
444
+ group: scopes_1.ScopeGroup.ORGANIZATION_MANAGEMENT,
445
+ getConditions: addDefaultOrgIdCondition,
446
+ },
447
+ // Data Scopes
448
+ {
449
+ name: 'view:UnderlyingData',
450
+ description: 'View underlying data in charts',
451
+ isEnterprise: false,
452
+ group: scopes_1.ScopeGroup.DATA,
453
+ getConditions: addDefaultOrgIdCondition,
454
+ },
455
+ {
456
+ name: 'view:SemanticViewer',
457
+ description: 'View data in semantic viewer',
458
+ isEnterprise: false,
459
+ group: scopes_1.ScopeGroup.DATA,
460
+ getConditions: addDefaultOrgIdCondition,
461
+ },
462
+ {
463
+ name: 'manage:SemanticViewer',
464
+ description: 'Create and edit semantic viewer queries',
465
+ isEnterprise: false,
466
+ group: scopes_1.ScopeGroup.DATA,
467
+ getConditions: (context) => {
468
+ if (context.scopes.has('manage:Organization')) {
469
+ return addDefaultOrgIdCondition(context);
470
+ }
471
+ return [
472
+ {
473
+ organizationUuid: context.organizationUuid,
474
+ access: addAccessCondition(context, space_1.SpaceMemberRole.EDITOR),
475
+ },
476
+ ];
477
+ },
478
+ },
479
+ {
480
+ name: 'manage:Explore',
481
+ description: 'Explore and query data',
482
+ isEnterprise: false,
483
+ group: scopes_1.ScopeGroup.DATA,
484
+ getConditions: addDefaultOrgIdCondition,
485
+ },
486
+ {
487
+ name: 'manage:SqlRunner',
488
+ description: 'Run SQL queries directly',
489
+ isEnterprise: false,
490
+ group: scopes_1.ScopeGroup.DATA,
491
+ getConditions: addDefaultOrgIdCondition,
492
+ },
493
+ {
494
+ name: 'manage:CustomSql',
495
+ description: 'Create custom SQL queries',
496
+ isEnterprise: false,
497
+ group: scopes_1.ScopeGroup.DATA,
498
+ getConditions: addDefaultOrgIdCondition,
499
+ },
500
+ {
501
+ name: 'manage:VirtualView',
502
+ description: 'Create and manage virtual views',
503
+ isEnterprise: false,
504
+ group: scopes_1.ScopeGroup.DATA,
505
+ getConditions: addDefaultOrgIdCondition,
506
+ },
507
+ {
508
+ name: 'manage:ExportCsv',
509
+ description: 'Export data to CSV',
510
+ isEnterprise: false,
511
+ group: scopes_1.ScopeGroup.DATA,
512
+ getConditions: addDefaultOrgIdCondition,
513
+ },
514
+ {
515
+ name: 'manage:ChangeCsvResults',
516
+ description: 'Modify CSV export results',
517
+ isEnterprise: false,
518
+ group: scopes_1.ScopeGroup.DATA,
519
+ getConditions: addDefaultOrgIdCondition,
520
+ },
521
+ // Sharing Scopes
522
+ {
523
+ name: 'export:DashboardCsv',
524
+ description: 'Can export dashboards and charts to CSV',
525
+ isEnterprise: false,
526
+ group: scopes_1.ScopeGroup.SHARING,
527
+ getConditions: () => [{}],
528
+ },
529
+ {
530
+ name: 'export:DashboardImage',
531
+ description: 'Can export dashboards and charts to images',
532
+ isEnterprise: false,
533
+ group: scopes_1.ScopeGroup.SHARING,
534
+ getConditions: () => [{}],
535
+ },
536
+ {
537
+ name: 'export:DashboardPdf',
538
+ description: 'Can export dashboards and charts to PDF',
539
+ isEnterprise: false,
540
+ group: scopes_1.ScopeGroup.SHARING,
541
+ getConditions: () => [{}],
542
+ },
543
+ // AI Agent
544
+ {
545
+ name: 'view:AiAgent',
546
+ description: 'View AI agent features',
547
+ isEnterprise: true,
548
+ group: scopes_1.ScopeGroup.AI,
549
+ getConditions: addDefaultOrgIdCondition,
550
+ },
551
+ {
552
+ name: 'manage:AiAgent',
553
+ description: 'Configure AI agent settings',
554
+ isEnterprise: true,
555
+ group: scopes_1.ScopeGroup.AI,
556
+ getConditions: addDefaultOrgIdCondition,
557
+ },
558
+ {
559
+ name: 'view:AiAgentThread',
560
+ description: 'View AI agent conversation threads',
561
+ isEnterprise: true,
562
+ group: scopes_1.ScopeGroup.AI,
563
+ getConditions: (context) =>
564
+ // View user's own AI agent threads
565
+ [
566
+ {
567
+ organizationUuid: context.organizationUuid,
568
+ projectUuid: context.projectUuid,
569
+ ...(context.userUuid && { userUuid: context.userUuid }),
570
+ },
571
+ ],
572
+ },
573
+ {
574
+ name: 'create:AiAgentThread',
575
+ description: 'Start new AI agent conversations',
576
+ isEnterprise: true,
577
+ group: scopes_1.ScopeGroup.AI,
578
+ getConditions: addDefaultOrgIdCondition,
579
+ },
580
+ {
581
+ name: 'manage:AiAgentThread',
582
+ description: 'Manage AI agent conversation threads',
583
+ isEnterprise: true,
584
+ group: scopes_1.ScopeGroup.AI,
585
+ getConditions: (context) => {
586
+ if (context.scopes.has('manage:Organization')) {
587
+ return addDefaultOrgIdCondition(context);
588
+ }
589
+ // Manage user's own AI agent threads
590
+ return [{ userUuid: context.userUuid || false }];
591
+ },
592
+ },
593
+ // Spotlight Scopes
594
+ {
595
+ name: 'manage:SpotlightTableConfig',
596
+ description: 'Configure spotlight table settings',
597
+ isEnterprise: true,
598
+ group: scopes_1.ScopeGroup.SPOTLIGHT,
599
+ getConditions: addDefaultOrgIdCondition,
600
+ },
601
+ {
602
+ name: 'view:SpotlightTableConfig',
603
+ description: 'View spotlight table configuration',
604
+ isEnterprise: true,
605
+ group: scopes_1.ScopeGroup.SPOTLIGHT,
606
+ getConditions: addDefaultOrgIdCondition,
607
+ },
608
+ {
609
+ name: 'view:MetricsTree',
610
+ description: 'View metrics tree',
611
+ isEnterprise: true,
612
+ group: scopes_1.ScopeGroup.SPOTLIGHT,
613
+ getConditions: addDefaultOrgIdCondition,
614
+ },
615
+ {
616
+ name: 'manage:MetricsTree',
617
+ description: 'Manage metrics tree configuration',
618
+ isEnterprise: true,
619
+ group: scopes_1.ScopeGroup.SPOTLIGHT,
620
+ getConditions: addDefaultOrgIdCondition,
621
+ },
622
+ ];
623
+ const getNonEnterpriseScopes = () => scopes.filter((scope) => !scope.isEnterprise);
624
+ // We will be using this
625
+ // eslint-disable-next-line import/export
626
+ const getScopes = ({ isEnterprise = false } = {}) => isEnterprise ? scopes : getNonEnterpriseScopes();
627
+ exports.getScopes = getScopes;
628
+ const getAllScopeMap = ({ isEnterprise = false } = {}) => (0, exports.getScopes)({ isEnterprise }).reduce((acc, scope) => {
629
+ acc[scope.name] = scope;
630
+ return acc;
631
+ }, Object.create({}));
632
+ exports.getAllScopeMap = getAllScopeMap;
633
+ //# sourceMappingURL=scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../src/authorization/scopes.ts"],"names":[],"mappings":"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"}