@lightdash/common 0.3315.5 → 0.3316.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 (94) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/authorization/scopes.d.ts.map +1 -1
  3. package/dist/cjs/authorization/scopes.js +441 -0
  4. package/dist/cjs/authorization/scopes.js.map +1 -1
  5. package/dist/cjs/ee/AiAgent/schemas/tools/index.d.ts +1 -0
  6. package/dist/cjs/ee/AiAgent/schemas/tools/index.d.ts.map +1 -1
  7. package/dist/cjs/ee/AiAgent/schemas/tools/index.js +1 -0
  8. package/dist/cjs/ee/AiAgent/schemas/tools/index.js.map +1 -1
  9. package/dist/cjs/ee/AiAgent/schemas/tools/toolClosePullRequestArgs.js +2 -2
  10. package/dist/cjs/ee/AiAgent/schemas/tools/toolClosePullRequestArgs.js.map +1 -1
  11. package/dist/cjs/ee/AiAgent/schemas/tools/toolDefinitions.d.ts +3 -0
  12. package/dist/cjs/ee/AiAgent/schemas/tools/toolDefinitions.d.ts.map +1 -1
  13. package/dist/cjs/ee/AiAgent/schemas/tools/toolDefinitions.js +13 -2
  14. package/dist/cjs/ee/AiAgent/schemas/tools/toolDefinitions.js.map +1 -1
  15. package/dist/cjs/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.d.ts +3 -0
  16. package/dist/cjs/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.d.ts.map +1 -1
  17. package/dist/cjs/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.js +6 -2
  18. package/dist/cjs/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.js.map +1 -1
  19. package/dist/cjs/ee/AiAgent/schemas/tools/toolEditRepoArgs.d.ts +2 -2
  20. package/dist/cjs/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.d.ts +32 -0
  21. package/dist/cjs/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.d.ts.map +1 -0
  22. package/dist/cjs/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.js +20 -0
  23. package/dist/cjs/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.js.map +1 -0
  24. package/dist/cjs/ee/AiAgent/schemas/tools/toolListWorkstreamsArgs.js +2 -2
  25. package/dist/cjs/ee/AiAgent/schemas/tools/toolListWorkstreamsArgs.js.map +1 -1
  26. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.d.ts +4 -4
  27. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.d.ts.map +1 -1
  28. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.js +3 -0
  29. package/dist/cjs/ee/AiAgent/schemas/visualizations/index.js.map +1 -1
  30. package/dist/cjs/types/scopes.d.ts +17 -0
  31. package/dist/cjs/types/scopes.d.ts.map +1 -1
  32. package/dist/esm/.tsbuildinfo +1 -1
  33. package/dist/esm/authorization/scopes.d.ts.map +1 -1
  34. package/dist/esm/authorization/scopes.js +441 -0
  35. package/dist/esm/authorization/scopes.js.map +1 -1
  36. package/dist/esm/ee/AiAgent/schemas/tools/index.d.ts +1 -0
  37. package/dist/esm/ee/AiAgent/schemas/tools/index.d.ts.map +1 -1
  38. package/dist/esm/ee/AiAgent/schemas/tools/index.js +1 -0
  39. package/dist/esm/ee/AiAgent/schemas/tools/index.js.map +1 -1
  40. package/dist/esm/ee/AiAgent/schemas/tools/toolClosePullRequestArgs.js +2 -2
  41. package/dist/esm/ee/AiAgent/schemas/tools/toolClosePullRequestArgs.js.map +1 -1
  42. package/dist/esm/ee/AiAgent/schemas/tools/toolDefinitions.d.ts +3 -0
  43. package/dist/esm/ee/AiAgent/schemas/tools/toolDefinitions.d.ts.map +1 -1
  44. package/dist/esm/ee/AiAgent/schemas/tools/toolDefinitions.js +11 -0
  45. package/dist/esm/ee/AiAgent/schemas/tools/toolDefinitions.js.map +1 -1
  46. package/dist/esm/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.d.ts +3 -0
  47. package/dist/esm/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.d.ts.map +1 -1
  48. package/dist/esm/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.js +6 -2
  49. package/dist/esm/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.js.map +1 -1
  50. package/dist/esm/ee/AiAgent/schemas/tools/toolEditRepoArgs.d.ts +2 -2
  51. package/dist/esm/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.d.ts +32 -0
  52. package/dist/esm/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.d.ts.map +1 -0
  53. package/dist/esm/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.js +17 -0
  54. package/dist/esm/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.js.map +1 -0
  55. package/dist/esm/ee/AiAgent/schemas/tools/toolListWorkstreamsArgs.js +2 -2
  56. package/dist/esm/ee/AiAgent/schemas/tools/toolListWorkstreamsArgs.js.map +1 -1
  57. package/dist/esm/ee/AiAgent/schemas/visualizations/index.d.ts +4 -4
  58. package/dist/esm/ee/AiAgent/schemas/visualizations/index.d.ts.map +1 -1
  59. package/dist/esm/ee/AiAgent/schemas/visualizations/index.js +3 -0
  60. package/dist/esm/ee/AiAgent/schemas/visualizations/index.js.map +1 -1
  61. package/dist/esm/types/scopes.d.ts +17 -0
  62. package/dist/esm/types/scopes.d.ts.map +1 -1
  63. package/dist/types/.tsbuildinfo +1 -1
  64. package/dist/types/authorization/scopes.d.ts.map +1 -1
  65. package/dist/types/authorization/scopes.js +441 -0
  66. package/dist/types/authorization/scopes.js.map +1 -1
  67. package/dist/types/ee/AiAgent/schemas/tools/index.d.ts +1 -0
  68. package/dist/types/ee/AiAgent/schemas/tools/index.d.ts.map +1 -1
  69. package/dist/types/ee/AiAgent/schemas/tools/index.js +1 -0
  70. package/dist/types/ee/AiAgent/schemas/tools/index.js.map +1 -1
  71. package/dist/types/ee/AiAgent/schemas/tools/toolClosePullRequestArgs.js +2 -2
  72. package/dist/types/ee/AiAgent/schemas/tools/toolClosePullRequestArgs.js.map +1 -1
  73. package/dist/types/ee/AiAgent/schemas/tools/toolDefinitions.d.ts +3 -0
  74. package/dist/types/ee/AiAgent/schemas/tools/toolDefinitions.d.ts.map +1 -1
  75. package/dist/types/ee/AiAgent/schemas/tools/toolDefinitions.js +11 -0
  76. package/dist/types/ee/AiAgent/schemas/tools/toolDefinitions.js.map +1 -1
  77. package/dist/types/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.d.ts +3 -0
  78. package/dist/types/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.d.ts.map +1 -1
  79. package/dist/types/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.js +6 -2
  80. package/dist/types/ee/AiAgent/schemas/tools/toolEditDbtProjectArgs.js.map +1 -1
  81. package/dist/types/ee/AiAgent/schemas/tools/toolEditRepoArgs.d.ts +2 -2
  82. package/dist/types/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.d.ts +32 -0
  83. package/dist/types/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.d.ts.map +1 -0
  84. package/dist/types/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.js +17 -0
  85. package/dist/types/ee/AiAgent/schemas/tools/toolGetPullRequestDiffArgs.js.map +1 -0
  86. package/dist/types/ee/AiAgent/schemas/tools/toolListWorkstreamsArgs.js +2 -2
  87. package/dist/types/ee/AiAgent/schemas/tools/toolListWorkstreamsArgs.js.map +1 -1
  88. package/dist/types/ee/AiAgent/schemas/visualizations/index.d.ts +4 -4
  89. package/dist/types/ee/AiAgent/schemas/visualizations/index.d.ts.map +1 -1
  90. package/dist/types/ee/AiAgent/schemas/visualizations/index.js +3 -0
  91. package/dist/types/ee/AiAgent/schemas/visualizations/index.js.map +1 -1
  92. package/dist/types/types/scopes.d.ts +17 -0
  93. package/dist/types/types/scopes.d.ts.map +1 -1
  94. package/package.json +1 -1
@@ -93,6 +93,13 @@ const scopes = [
93
93
  description: 'View dashboards',
94
94
  isEnterprise: false,
95
95
  group: ScopeGroup.CONTENT,
96
+ dependencies: [
97
+ { name: 'view:Project' },
98
+ {
99
+ name: 'view:SavedChart',
100
+ description: "Load the dashboard's chart tiles",
101
+ },
102
+ ],
96
103
  getConditions: (context) => [
97
104
  addUuidCondition(context, { inheritsFromOrgOrProject: true }),
98
105
  addAccessCondition(context),
@@ -103,6 +110,17 @@ const scopes = [
103
110
  description: 'Create, edit, and delete all dashboards',
104
111
  isEnterprise: false,
105
112
  group: ScopeGroup.CONTENT,
113
+ dependencies: [
114
+ { name: 'view:Project' },
115
+ {
116
+ name: 'view:SavedChart',
117
+ description: 'Load chart tiles while editing dashboards',
118
+ },
119
+ {
120
+ name: 'view:Space',
121
+ description: 'Create a dashboard without picking a space',
122
+ },
123
+ ],
106
124
  getConditions: addDefaultUuidCondition,
107
125
  },
108
126
  {
@@ -110,6 +128,17 @@ const scopes = [
110
128
  description: 'Create, edit, and delete dashboards in spaces where you have editor or admin access',
111
129
  isEnterprise: false,
112
130
  group: ScopeGroup.CONTENT,
131
+ dependencies: [
132
+ { name: 'view:Project' },
133
+ {
134
+ name: 'view:SavedChart',
135
+ description: 'Load chart tiles while editing dashboards',
136
+ },
137
+ {
138
+ name: 'view:Space',
139
+ description: 'Create a dashboard without picking a space',
140
+ },
141
+ ],
113
142
  getConditions: (context) => [
114
143
  addAccessCondition(context, SpaceMemberRole.EDITOR),
115
144
  addAccessCondition(context, SpaceMemberRole.ADMIN),
@@ -120,6 +149,18 @@ const scopes = [
120
149
  description: 'Create, edit, and delete dashboards in preview projects created by the user',
121
150
  isEnterprise: false,
122
151
  group: ScopeGroup.CONTENT,
152
+ dependencies: [
153
+ { name: 'view:Project' },
154
+ {
155
+ name: 'view:SavedChart',
156
+ description: 'Load chart tiles in your preview dashboards',
157
+ },
158
+ {
159
+ name: 'view:Space',
160
+ description: 'Create a dashboard without picking a space',
161
+ },
162
+ { name: 'create:Project@preview' },
163
+ ],
123
164
  getConditions: selfPreviewSpaceCondition,
124
165
  },
125
166
  {
@@ -127,6 +168,7 @@ const scopes = [
127
168
  description: 'View saved charts',
128
169
  isEnterprise: false,
129
170
  group: ScopeGroup.CONTENT,
171
+ dependencies: [{ name: 'view:Project' }],
130
172
  getConditions: (context) => [
131
173
  addUuidCondition(context, { inheritsFromOrgOrProject: true }),
132
174
  addAccessCondition(context),
@@ -137,6 +179,17 @@ const scopes = [
137
179
  description: 'Create, edit, and delete all saved charts',
138
180
  isEnterprise: false,
139
181
  group: ScopeGroup.CONTENT,
182
+ dependencies: [
183
+ { name: 'view:Project' },
184
+ {
185
+ name: 'view:Space',
186
+ description: 'Save a chart without picking a space',
187
+ },
188
+ {
189
+ name: 'manage:Explore',
190
+ description: 'Build and edit chart queries',
191
+ },
192
+ ],
140
193
  getConditions: addDefaultUuidCondition,
141
194
  },
142
195
  {
@@ -144,6 +197,17 @@ const scopes = [
144
197
  description: 'Create, edit, and delete saved charts in spaces where you have editor or admin access',
145
198
  isEnterprise: false,
146
199
  group: ScopeGroup.CONTENT,
200
+ dependencies: [
201
+ { name: 'view:Project' },
202
+ {
203
+ name: 'view:Space',
204
+ description: 'Save a chart without picking a space',
205
+ },
206
+ {
207
+ name: 'manage:Explore',
208
+ description: 'Build and edit chart queries',
209
+ },
210
+ ],
147
211
  getConditions: (context) => [
148
212
  addAccessCondition(context, SpaceMemberRole.EDITOR),
149
213
  addAccessCondition(context, SpaceMemberRole.ADMIN),
@@ -154,6 +218,18 @@ const scopes = [
154
218
  description: 'Create, edit, and delete saved charts in preview projects created by the user',
155
219
  isEnterprise: false,
156
220
  group: ScopeGroup.CONTENT,
221
+ dependencies: [
222
+ { name: 'view:Project' },
223
+ {
224
+ name: 'view:Space',
225
+ description: 'Save a chart without picking a space in your preview',
226
+ },
227
+ { name: 'create:Project@preview' },
228
+ {
229
+ name: 'manage:Explore@self',
230
+ description: 'Build and edit chart queries in your preview',
231
+ },
232
+ ],
157
233
  getConditions: selfPreviewSpaceCondition,
158
234
  },
159
235
  {
@@ -161,6 +237,7 @@ const scopes = [
161
237
  description: 'View spaces',
162
238
  isEnterprise: false,
163
239
  group: ScopeGroup.CONTENT,
240
+ dependencies: [{ name: 'view:Project' }],
164
241
  getConditions: (context) => [
165
242
  addUuidCondition(context, { inheritsFromOrgOrProject: true }),
166
243
  addAccessCondition(context),
@@ -171,6 +248,13 @@ const scopes = [
171
248
  description: 'Create new spaces',
172
249
  isEnterprise: false,
173
250
  group: ScopeGroup.CONTENT,
251
+ dependencies: [
252
+ { name: 'view:Project' },
253
+ {
254
+ name: 'view:Space',
255
+ description: 'Open and list the spaces you create',
256
+ },
257
+ ],
174
258
  getConditions: addDefaultUuidCondition,
175
259
  },
176
260
  {
@@ -178,6 +262,7 @@ const scopes = [
178
262
  description: 'Create, edit, and delete all spaces',
179
263
  isEnterprise: false,
180
264
  group: ScopeGroup.CONTENT,
265
+ dependencies: [{ name: 'view:Project' }],
181
266
  getConditions: addDefaultUuidCondition,
182
267
  },
183
268
  {
@@ -185,6 +270,7 @@ const scopes = [
185
270
  description: 'Create, edit, and delete public spaces',
186
271
  isEnterprise: false,
187
272
  group: ScopeGroup.CONTENT,
273
+ dependencies: [{ name: 'view:Project' }],
188
274
  getConditions: (context) => [
189
275
  addUuidCondition(context, { inheritsFromOrgOrProject: true }),
190
276
  ],
@@ -194,6 +280,7 @@ const scopes = [
194
280
  description: 'Create, edit, and delete spaces owned by the user',
195
281
  isEnterprise: false,
196
282
  group: ScopeGroup.CONTENT,
283
+ dependencies: [{ name: 'view:Project' }],
197
284
  getConditions: (context) => [
198
285
  addAccessCondition(context, SpaceMemberRole.ADMIN),
199
286
  ],
@@ -203,6 +290,10 @@ const scopes = [
203
290
  description: 'Create, edit, and delete spaces in preview projects created by the user',
204
291
  isEnterprise: false,
205
292
  group: ScopeGroup.CONTENT,
293
+ dependencies: [
294
+ { name: 'view:Project' },
295
+ { name: 'create:Project@preview' },
296
+ ],
206
297
  getConditions: (context) => selfPreviewSpaceCondition(context, true),
207
298
  },
208
299
  {
@@ -210,6 +301,7 @@ const scopes = [
210
301
  description: 'View dashboard comments',
211
302
  isEnterprise: false,
212
303
  group: ScopeGroup.CONTENT,
304
+ dependencies: [{ name: 'view:Project' }, { name: 'view:Space' }],
213
305
  getConditions: addDefaultUuidCondition,
214
306
  },
215
307
  {
@@ -217,6 +309,7 @@ const scopes = [
217
309
  description: 'Create dashboard comments',
218
310
  isEnterprise: false,
219
311
  group: ScopeGroup.CONTENT,
312
+ dependencies: [{ name: 'view:Project' }, { name: 'view:Space' }],
220
313
  getConditions: addDefaultUuidCondition,
221
314
  },
222
315
  {
@@ -224,6 +317,7 @@ const scopes = [
224
317
  description: 'Edit and delete dashboard comments',
225
318
  isEnterprise: false,
226
319
  group: ScopeGroup.CONTENT,
320
+ dependencies: [{ name: 'view:Project' }, { name: 'view:Space' }],
227
321
  getConditions: addDefaultUuidCondition,
228
322
  },
229
323
  {
@@ -231,6 +325,7 @@ const scopes = [
231
325
  description: 'View tags',
232
326
  isEnterprise: false,
233
327
  group: ScopeGroup.CONTENT,
328
+ dependencies: [{ name: 'view:Project' }],
234
329
  getConditions: addDefaultUuidCondition,
235
330
  },
236
331
  {
@@ -238,6 +333,7 @@ const scopes = [
238
333
  description: 'Create, edit, and delete tags',
239
334
  isEnterprise: false,
240
335
  group: ScopeGroup.CONTENT,
336
+ dependencies: [{ name: 'view:Project' }],
241
337
  getConditions: addDefaultUuidCondition,
242
338
  },
243
339
  {
@@ -245,6 +341,7 @@ const scopes = [
245
341
  description: 'View pinned items',
246
342
  isEnterprise: false,
247
343
  group: ScopeGroup.CONTENT,
344
+ dependencies: [{ name: 'view:Project' }, { name: 'view:Space' }],
248
345
  getConditions: addDefaultUuidCondition,
249
346
  },
250
347
  {
@@ -252,6 +349,14 @@ const scopes = [
252
349
  description: 'Pin and unpin items',
253
350
  isEnterprise: false,
254
351
  group: ScopeGroup.CONTENT,
352
+ dependencies: [
353
+ { name: 'view:Project' },
354
+ { name: 'view:Dashboard', description: 'Pin and unpin dashboards' },
355
+ {
356
+ name: 'view:Space',
357
+ description: 'Pin charts and list pinned items',
358
+ },
359
+ ],
255
360
  getConditions: addDefaultUuidCondition,
256
361
  },
257
362
  {
@@ -259,6 +364,7 @@ const scopes = [
259
364
  description: 'Manage soft-deleted content (restore, permanently delete)',
260
365
  isEnterprise: false,
261
366
  group: ScopeGroup.CONTENT,
367
+ dependencies: [{ name: 'view:Project' }],
262
368
  getConditions: addDefaultUuidCondition,
263
369
  },
264
370
  {
@@ -266,6 +372,7 @@ const scopes = [
266
372
  description: 'Verify and unverify charts and dashboards',
267
373
  isEnterprise: false,
268
374
  group: ScopeGroup.CONTENT,
375
+ dependencies: [{ name: 'view:Project' }],
269
376
  getConditions: addDefaultUuidCondition,
270
377
  },
271
378
  {
@@ -273,6 +380,21 @@ const scopes = [
273
380
  description: 'Promote saved charts to any space',
274
381
  isEnterprise: false,
275
382
  group: ScopeGroup.CONTENT,
383
+ dependencies: [
384
+ { name: 'view:Project' },
385
+ {
386
+ name: 'create:Space',
387
+ description: "Promote a chart whose space doesn't exist upstream yet",
388
+ },
389
+ {
390
+ name: 'manage:Space',
391
+ description: 'Rename an upstream space during promotion',
392
+ },
393
+ {
394
+ name: 'manage:SavedChart',
395
+ description: "Promote a chart that doesn't exist upstream yet",
396
+ },
397
+ ],
276
398
  getConditions: addDefaultUuidCondition,
277
399
  },
278
400
  {
@@ -280,6 +402,21 @@ const scopes = [
280
402
  description: 'Promote saved charts to spaces where the member has editor or admin access',
281
403
  isEnterprise: false,
282
404
  group: ScopeGroup.CONTENT,
405
+ dependencies: [
406
+ { name: 'view:Project' },
407
+ {
408
+ name: 'create:Space',
409
+ description: "Promote a chart whose space doesn't exist upstream yet",
410
+ },
411
+ {
412
+ name: 'manage:Space',
413
+ description: 'Rename an upstream space during promotion',
414
+ },
415
+ {
416
+ name: 'manage:SavedChart',
417
+ description: "Promote a chart that doesn't exist upstream yet",
418
+ },
419
+ ],
283
420
  getConditions: (context) => [
284
421
  addAccessCondition(context, SpaceMemberRole.EDITOR),
285
422
  addAccessCondition(context, SpaceMemberRole.ADMIN),
@@ -290,6 +427,29 @@ const scopes = [
290
427
  description: 'Promote dashboards to any space',
291
428
  isEnterprise: false,
292
429
  group: ScopeGroup.CONTENT,
430
+ dependencies: [
431
+ { name: 'view:Project' },
432
+ {
433
+ name: 'manage:Dashboard',
434
+ description: "Promote a dashboard that doesn't exist upstream yet",
435
+ },
436
+ {
437
+ name: 'create:Space',
438
+ description: "Promote a dashboard whose space doesn't exist upstream yet",
439
+ },
440
+ {
441
+ name: 'manage:Space',
442
+ description: 'Rename an upstream space during promotion',
443
+ },
444
+ {
445
+ name: 'manage:SavedChart',
446
+ description: "Promote tiles whose charts don't exist upstream yet",
447
+ },
448
+ {
449
+ name: 'promote:SavedChart',
450
+ description: 'Promote dashboards that contain chart tiles',
451
+ },
452
+ ],
293
453
  getConditions: addDefaultUuidCondition,
294
454
  },
295
455
  {
@@ -297,6 +457,25 @@ const scopes = [
297
457
  description: 'Promote dashboards to spaces where the member has editor or admin access',
298
458
  isEnterprise: false,
299
459
  group: ScopeGroup.CONTENT,
460
+ dependencies: [
461
+ { name: 'view:Project' },
462
+ {
463
+ name: 'manage:Dashboard@space',
464
+ description: "Promote a dashboard that doesn't exist upstream yet",
465
+ },
466
+ {
467
+ name: 'create:Space',
468
+ description: "Promote a dashboard whose space doesn't exist upstream yet",
469
+ },
470
+ {
471
+ name: 'manage:Space',
472
+ description: 'Rename an upstream space during promotion',
473
+ },
474
+ {
475
+ name: 'promote:SavedChart@space',
476
+ description: 'Promote dashboards that contain chart tiles',
477
+ },
478
+ ],
300
479
  getConditions: (context) => [
301
480
  addAccessCondition(context, SpaceMemberRole.EDITOR),
302
481
  addAccessCondition(context, SpaceMemberRole.ADMIN),
@@ -308,6 +487,7 @@ const scopes = [
308
487
  description: 'View project details',
309
488
  isEnterprise: false,
310
489
  group: ScopeGroup.PROJECT_MANAGEMENT,
490
+ dependencies: [],
311
491
  getConditions: addDefaultUuidCondition,
312
492
  },
313
493
  {
@@ -315,6 +495,17 @@ const scopes = [
315
495
  description: 'Create new preview projects',
316
496
  isEnterprise: false,
317
497
  group: ScopeGroup.PROJECT_MANAGEMENT,
498
+ dependencies: [
499
+ { name: 'view:Project' },
500
+ {
501
+ name: 'manage:CompileProject',
502
+ description: 'Compile the preview after creating it',
503
+ },
504
+ {
505
+ name: 'create:Job',
506
+ description: 'Compile the preview after creating it',
507
+ },
508
+ ],
318
509
  getConditions: (context) => [
319
510
  {
320
511
  upstreamProjectUuid: context.projectUuid,
@@ -327,6 +518,7 @@ const scopes = [
327
518
  description: 'Update project settings',
328
519
  isEnterprise: false,
329
520
  group: ScopeGroup.PROJECT_MANAGEMENT,
521
+ dependencies: [{ name: 'view:Project' }],
330
522
  getConditions: addDefaultUuidCondition,
331
523
  },
332
524
  {
@@ -334,6 +526,10 @@ const scopes = [
334
526
  description: 'Update projects created by the user',
335
527
  isEnterprise: false,
336
528
  group: ScopeGroup.PROJECT_MANAGEMENT,
529
+ dependencies: [
530
+ { name: 'view:Project' },
531
+ { name: 'create:Project@preview' },
532
+ ],
337
533
  getConditions: ownPreviewProjectConditions,
338
534
  },
339
535
  {
@@ -341,6 +537,7 @@ const scopes = [
341
537
  description: 'Delete projects',
342
538
  isEnterprise: false,
343
539
  group: ScopeGroup.PROJECT_MANAGEMENT,
540
+ dependencies: [{ name: 'view:Project' }],
344
541
  getConditions: addDefaultUuidCondition,
345
542
  },
346
543
  {
@@ -348,6 +545,10 @@ const scopes = [
348
545
  description: 'Delete projects created by the user',
349
546
  isEnterprise: false,
350
547
  group: ScopeGroup.PROJECT_MANAGEMENT,
548
+ dependencies: [
549
+ { name: 'view:Project' },
550
+ { name: 'create:Project@preview' },
551
+ ],
351
552
  getConditions: ownPreviewProjectConditions,
352
553
  },
353
554
  {
@@ -355,6 +556,7 @@ const scopes = [
355
556
  description: 'Full project management permissions',
356
557
  isEnterprise: false,
357
558
  group: ScopeGroup.PROJECT_MANAGEMENT,
559
+ dependencies: [{ name: 'view:Project' }],
358
560
  getConditions: addDefaultUuidCondition,
359
561
  },
360
562
  {
@@ -362,6 +564,7 @@ const scopes = [
362
564
  description: 'Compile and refresh dbt projects',
363
565
  isEnterprise: false,
364
566
  group: ScopeGroup.PROJECT_MANAGEMENT,
567
+ dependencies: [{ name: 'view:Project' }, { name: 'create:Job' }],
365
568
  getConditions: addDefaultUuidCondition,
366
569
  },
367
570
  {
@@ -369,6 +572,7 @@ const scopes = [
369
572
  description: 'Deploy dbt projects via CLI',
370
573
  isEnterprise: false,
371
574
  group: ScopeGroup.PROJECT_MANAGEMENT,
575
+ dependencies: [{ name: 'view:Project' }],
372
576
  getConditions: addDefaultUuidCondition,
373
577
  },
374
578
  {
@@ -376,6 +580,10 @@ const scopes = [
376
580
  description: 'Deploy to preview projects created by the user',
377
581
  isEnterprise: false,
378
582
  group: ScopeGroup.PROJECT_MANAGEMENT,
583
+ dependencies: [
584
+ { name: 'view:Project' },
585
+ { name: 'create:Project@preview' },
586
+ ],
379
587
  getConditions: ownPreviewProjectConditions,
380
588
  },
381
589
  {
@@ -383,6 +591,7 @@ const scopes = [
383
591
  description: 'Manage data validation rules',
384
592
  isEnterprise: false,
385
593
  group: ScopeGroup.PROJECT_MANAGEMENT,
594
+ dependencies: [{ name: 'view:Project' }],
386
595
  getConditions: addDefaultUuidCondition,
387
596
  },
388
597
  {
@@ -390,6 +599,7 @@ const scopes = [
390
599
  description: 'Manage user own scheduled deliveries',
391
600
  isEnterprise: false,
392
601
  group: ScopeGroup.PROJECT_MANAGEMENT,
602
+ dependencies: [{ name: 'view:Project' }],
393
603
  getConditions: (context) => [
394
604
  addUuidCondition(context, { userUuid: context.userUuid || false }),
395
605
  ],
@@ -399,6 +609,21 @@ const scopes = [
399
609
  description: 'Create scheduled deliveries',
400
610
  isEnterprise: false,
401
611
  group: ScopeGroup.PROJECT_MANAGEMENT,
612
+ dependencies: [
613
+ { name: 'view:Project' },
614
+ {
615
+ name: 'view:SavedChart',
616
+ description: 'Open and send chart deliveries after creating them',
617
+ },
618
+ {
619
+ name: 'view:Dashboard',
620
+ description: 'Create and send deliveries that target a dashboard',
621
+ },
622
+ {
623
+ name: 'view:Space',
624
+ description: 'Create and send deliveries that target a chart',
625
+ },
626
+ ],
402
627
  getConditions: addDefaultUuidCondition,
403
628
  },
404
629
  {
@@ -406,6 +631,17 @@ const scopes = [
406
631
  description: 'Manage scheduled deliveries',
407
632
  isEnterprise: false,
408
633
  group: ScopeGroup.PROJECT_MANAGEMENT,
634
+ dependencies: [
635
+ { name: 'view:Project' },
636
+ {
637
+ name: 'update:Project',
638
+ description: 'View the project-level delivery overview and logs',
639
+ },
640
+ {
641
+ name: 'manage:GoogleSheets',
642
+ description: 'Manage deliveries that sync to Google Sheets',
643
+ },
644
+ ],
409
645
  getConditions: addDefaultUuidCondition,
410
646
  },
411
647
  {
@@ -413,6 +649,17 @@ const scopes = [
413
649
  description: 'Manage google sheets',
414
650
  isEnterprise: false,
415
651
  group: ScopeGroup.PROJECT_MANAGEMENT,
652
+ dependencies: [
653
+ { name: 'view:Project' },
654
+ {
655
+ name: 'create:ScheduledDeliveries',
656
+ description: 'Create and send Google Sheets scheduled deliveries',
657
+ },
658
+ {
659
+ name: 'manage:ExportCsv',
660
+ description: 'Run one-off exports to Google Sheets',
661
+ },
662
+ ],
416
663
  getConditions: addDefaultUuidCondition,
417
664
  },
418
665
  {
@@ -420,6 +667,7 @@ const scopes = [
420
667
  description: 'View usage analytics',
421
668
  isEnterprise: false,
422
669
  group: ScopeGroup.PROJECT_MANAGEMENT,
670
+ dependencies: [{ name: 'view:Project' }],
423
671
  getConditions: addDefaultUuidCondition,
424
672
  },
425
673
  {
@@ -427,6 +675,17 @@ const scopes = [
427
675
  description: 'Create background jobs',
428
676
  isEnterprise: false,
429
677
  group: ScopeGroup.PROJECT_MANAGEMENT,
678
+ dependencies: [
679
+ { name: 'view:Project' },
680
+ {
681
+ name: 'manage:CompileProject',
682
+ description: 'Trigger dbt refreshes and compiles',
683
+ },
684
+ {
685
+ name: 'manage:SqlRunner',
686
+ description: 'Run legacy SQL runner jobs',
687
+ },
688
+ ],
430
689
  getConditions: () => [],
431
690
  },
432
691
  {
@@ -434,6 +693,7 @@ const scopes = [
434
693
  description: 'View all job details',
435
694
  isEnterprise: false,
436
695
  group: ScopeGroup.PROJECT_MANAGEMENT,
696
+ dependencies: [{ name: 'view:Project' }],
437
697
  getConditions: addDefaultUuidCondition,
438
698
  },
439
699
  {
@@ -441,6 +701,7 @@ const scopes = [
441
701
  description: 'View your own job details',
442
702
  isEnterprise: false,
443
703
  group: ScopeGroup.PROJECT_MANAGEMENT,
704
+ dependencies: [{ name: 'view:Project' }],
444
705
  getConditions: (context) => [{ userUuid: context.userUuid || false }],
445
706
  },
446
707
  {
@@ -448,6 +709,13 @@ const scopes = [
448
709
  description: 'Manage background jobs',
449
710
  isEnterprise: false,
450
711
  group: ScopeGroup.PROJECT_MANAGEMENT,
712
+ dependencies: [
713
+ { name: 'view:Project' },
714
+ {
715
+ name: 'manage:CompileProject',
716
+ description: 'Trigger dbt refreshes',
717
+ },
718
+ ],
451
719
  getConditions: () => [],
452
720
  },
453
721
  {
@@ -455,6 +723,13 @@ const scopes = [
455
723
  description: 'View all job status',
456
724
  isEnterprise: false,
457
725
  group: ScopeGroup.PROJECT_MANAGEMENT,
726
+ dependencies: [
727
+ { name: 'view:Project' },
728
+ {
729
+ name: 'update:Project',
730
+ description: 'Read project compile logs',
731
+ },
732
+ ],
458
733
  getConditions: addDefaultUuidCondition,
459
734
  },
460
735
  {
@@ -462,6 +737,7 @@ const scopes = [
462
737
  description: 'View status of jobs you created',
463
738
  isEnterprise: false,
464
739
  group: ScopeGroup.PROJECT_MANAGEMENT,
740
+ dependencies: [{ name: 'view:Project' }],
465
741
  getConditions: (context) => [
466
742
  {
467
743
  createdByUserUuid: context.userUuid || false,
@@ -474,6 +750,7 @@ const scopes = [
474
750
  description: 'View organization details',
475
751
  isEnterprise: false,
476
752
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
753
+ dependencies: [],
477
754
  level: 'organization',
478
755
  getConditions: addDefaultUuidCondition,
479
756
  },
@@ -482,6 +759,7 @@ const scopes = [
482
759
  description: 'Manage organization settings',
483
760
  isEnterprise: false,
484
761
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
762
+ dependencies: [],
485
763
  level: 'organization',
486
764
  getConditions: addDefaultUuidCondition,
487
765
  },
@@ -490,6 +768,7 @@ const scopes = [
490
768
  description: 'View organization member profiles',
491
769
  isEnterprise: false,
492
770
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
771
+ dependencies: [],
493
772
  level: 'organization',
494
773
  getConditions: addDefaultUuidCondition,
495
774
  },
@@ -498,6 +777,7 @@ const scopes = [
498
777
  description: 'Manage organization member profiles and roles',
499
778
  isEnterprise: false,
500
779
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
780
+ dependencies: [],
501
781
  level: 'organization',
502
782
  getConditions: addDefaultUuidCondition,
503
783
  },
@@ -506,6 +786,12 @@ const scopes = [
506
786
  description: 'Create and manage invite links',
507
787
  isEnterprise: false,
508
788
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
789
+ dependencies: [
790
+ {
791
+ name: 'manage:OrganizationMemberProfile',
792
+ description: 'Invite users with a role other than member',
793
+ },
794
+ ],
509
795
  level: 'organization',
510
796
  getConditions: addDefaultUuidCondition,
511
797
  },
@@ -514,6 +800,16 @@ const scopes = [
514
800
  description: 'Manage user groups',
515
801
  isEnterprise: false,
516
802
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
803
+ dependencies: [
804
+ {
805
+ name: 'update:Project',
806
+ description: 'Give groups access to a project',
807
+ },
808
+ {
809
+ name: 'view:OrganizationMemberProfile',
810
+ description: 'Browse organization members when managing group membership',
811
+ },
812
+ ],
517
813
  level: 'organization',
518
814
  getConditions: addDefaultUuidCondition,
519
815
  },
@@ -522,6 +818,13 @@ const scopes = [
522
818
  description: 'Manage Git integration settings and create repositories',
523
819
  isEnterprise: false,
524
820
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
821
+ dependencies: [
822
+ { name: 'view:Organization' },
823
+ {
824
+ name: 'manage:Organization',
825
+ description: 'Install the GitHub app',
826
+ },
827
+ ],
525
828
  level: 'organization',
526
829
  getConditions: addDefaultUuidCondition,
527
830
  },
@@ -530,6 +833,7 @@ const scopes = [
530
833
  description: 'View organization warehouse credentials',
531
834
  isEnterprise: true,
532
835
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
836
+ dependencies: [],
533
837
  level: 'organization',
534
838
  getConditions: addDefaultUuidCondition,
535
839
  },
@@ -538,6 +842,7 @@ const scopes = [
538
842
  description: 'Manage organization warehouse credentials',
539
843
  isEnterprise: true,
540
844
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
845
+ dependencies: [],
541
846
  level: 'organization',
542
847
  getConditions: addDefaultUuidCondition,
543
848
  },
@@ -546,6 +851,7 @@ const scopes = [
546
851
  description: 'Download content as code',
547
852
  isEnterprise: true,
548
853
  group: ScopeGroup.CONTENT,
854
+ dependencies: [{ name: 'view:Project' }, { name: 'view:Space' }],
549
855
  getConditions: addDefaultUuidCondition,
550
856
  },
551
857
  {
@@ -553,6 +859,15 @@ const scopes = [
553
859
  description: 'Download and upload content as code',
554
860
  isEnterprise: true,
555
861
  group: ScopeGroup.CONTENT,
862
+ dependencies: [
863
+ { name: 'view:Project' },
864
+ {
865
+ name: 'view:Space',
866
+ description: 'Upload into an existing space',
867
+ },
868
+ { name: 'manage:SavedChart', description: 'Upload SQL charts' },
869
+ { name: 'manage:CustomSql', description: 'Upload SQL charts' },
870
+ ],
556
871
  getConditions: addDefaultUuidCondition,
557
872
  },
558
873
  {
@@ -560,6 +875,20 @@ const scopes = [
560
875
  description: 'Upload content as code to preview projects created by the user',
561
876
  isEnterprise: true,
562
877
  group: ScopeGroup.CONTENT,
878
+ dependencies: [
879
+ { name: 'view:Project' },
880
+ {
881
+ name: 'view:Space',
882
+ description: 'Upload into an existing space in your preview',
883
+ },
884
+ {
885
+ name: 'view:ContentAsCode',
886
+ description: 'Download content as code',
887
+ },
888
+ { name: 'manage:SavedChart', description: 'Upload SQL charts' },
889
+ { name: 'manage:CustomSql', description: 'Upload SQL charts' },
890
+ { name: 'create:Project@preview' },
891
+ ],
563
892
  getConditions: ownPreviewProjectConditions,
564
893
  },
565
894
  {
@@ -567,6 +896,7 @@ const scopes = [
567
896
  description: 'Create and manage personal access tokens',
568
897
  isEnterprise: true,
569
898
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
899
+ dependencies: [],
570
900
  level: 'organization',
571
901
  getConditions: addDefaultUuidCondition,
572
902
  },
@@ -575,6 +905,7 @@ const scopes = [
575
905
  description: 'Impersonate other users in the organization',
576
906
  isEnterprise: false,
577
907
  group: ScopeGroup.ORGANIZATION_MANAGEMENT,
908
+ dependencies: [],
578
909
  level: 'organization',
579
910
  getConditions: (context) => [
580
911
  { ...addUuidCondition(context), isActive: true },
@@ -586,6 +917,7 @@ const scopes = [
586
917
  description: 'View underlying data in charts',
587
918
  isEnterprise: false,
588
919
  group: ScopeGroup.DATA,
920
+ dependencies: [{ name: 'view:Project' }],
589
921
  getConditions: addDefaultUuidCondition,
590
922
  },
591
923
  {
@@ -593,6 +925,7 @@ const scopes = [
593
925
  description: 'View data in semantic viewer',
594
926
  isEnterprise: false,
595
927
  group: ScopeGroup.DATA,
928
+ dependencies: [{ name: 'view:Project' }],
596
929
  getConditions: addDefaultUuidCondition,
597
930
  },
598
931
  {
@@ -600,6 +933,7 @@ const scopes = [
600
933
  description: 'Create and edit semantic viewer queries anywhere',
601
934
  isEnterprise: false,
602
935
  group: ScopeGroup.DATA,
936
+ dependencies: [{ name: 'view:Project' }],
603
937
  getConditions: addDefaultUuidCondition,
604
938
  },
605
939
  {
@@ -607,6 +941,7 @@ const scopes = [
607
941
  description: 'Create and edit semantic viewer queries in spaces where the member has editor access',
608
942
  isEnterprise: false,
609
943
  group: ScopeGroup.DATA,
944
+ dependencies: [{ name: 'view:Project' }],
610
945
  getConditions: (context) => [
611
946
  addAccessCondition(context, SpaceMemberRole.EDITOR),
612
947
  ],
@@ -616,6 +951,7 @@ const scopes = [
616
951
  description: 'Explore and query data',
617
952
  isEnterprise: false,
618
953
  group: ScopeGroup.DATA,
954
+ dependencies: [{ name: 'view:Project' }],
619
955
  getConditions: addDefaultUuidCondition,
620
956
  },
621
957
  {
@@ -623,6 +959,10 @@ const scopes = [
623
959
  description: 'Explore and query data in preview projects created by the user',
624
960
  isEnterprise: false,
625
961
  group: ScopeGroup.DATA,
962
+ dependencies: [
963
+ { name: 'view:Project' },
964
+ { name: 'create:Project@preview' },
965
+ ],
626
966
  getConditions: selfPreviewProjectCondition,
627
967
  },
628
968
  {
@@ -630,6 +970,10 @@ const scopes = [
630
970
  description: 'Run SQL queries, execute SQL charts, and browse warehouse schema',
631
971
  isEnterprise: false,
632
972
  group: ScopeGroup.DATA,
973
+ dependencies: [
974
+ { name: 'view:Project' },
975
+ { name: 'create:Job', description: 'Run legacy SQL runner jobs' },
976
+ ],
633
977
  getConditions: addDefaultUuidCondition,
634
978
  },
635
979
  {
@@ -637,6 +981,10 @@ const scopes = [
637
981
  description: 'Save SQL charts',
638
982
  isEnterprise: false,
639
983
  group: ScopeGroup.DATA,
984
+ dependencies: [
985
+ { name: 'view:Project' },
986
+ { name: 'manage:SavedChart@space' },
987
+ ],
640
988
  getConditions: addDefaultUuidCondition,
641
989
  },
642
990
  {
@@ -644,6 +992,13 @@ const scopes = [
644
992
  description: 'Create and edit custom dimensions',
645
993
  isEnterprise: false,
646
994
  group: ScopeGroup.DATA,
995
+ dependencies: [
996
+ { name: 'view:Project' },
997
+ {
998
+ name: 'manage:SavedChart@space',
999
+ description: 'Save custom dimensions to a chart',
1000
+ },
1001
+ ],
647
1002
  getConditions: addDefaultUuidCondition,
648
1003
  },
649
1004
  {
@@ -651,6 +1006,10 @@ const scopes = [
651
1006
  description: 'Create and edit SQL table calculations',
652
1007
  isEnterprise: false,
653
1008
  group: ScopeGroup.DATA,
1009
+ dependencies: [
1010
+ { name: 'view:Project' },
1011
+ { name: 'manage:SavedChart@space' },
1012
+ ],
654
1013
  getConditions: addDefaultUuidCondition,
655
1014
  },
656
1015
  {
@@ -658,6 +1017,7 @@ const scopes = [
658
1017
  description: 'Create virtual views',
659
1018
  isEnterprise: false,
660
1019
  group: ScopeGroup.DATA,
1020
+ dependencies: [{ name: 'view:Project' }],
661
1021
  getConditions: addDefaultUuidCondition,
662
1022
  },
663
1023
  {
@@ -665,6 +1025,7 @@ const scopes = [
665
1025
  description: 'Delete virtual views',
666
1026
  isEnterprise: false,
667
1027
  group: ScopeGroup.DATA,
1028
+ dependencies: [{ name: 'view:Project' }],
668
1029
  getConditions: addDefaultUuidCondition,
669
1030
  },
670
1031
  {
@@ -672,6 +1033,7 @@ const scopes = [
672
1033
  description: 'Create and manage virtual views',
673
1034
  isEnterprise: false,
674
1035
  group: ScopeGroup.DATA,
1036
+ dependencies: [{ name: 'view:Project' }],
675
1037
  getConditions: addDefaultUuidCondition,
676
1038
  },
677
1039
  {
@@ -679,6 +1041,7 @@ const scopes = [
679
1041
  description: 'View and query pre-aggregates in explore',
680
1042
  isEnterprise: true,
681
1043
  group: ScopeGroup.DATA,
1044
+ dependencies: [{ name: 'view:Project' }, { name: 'manage:Explore' }],
682
1045
  getConditions: addDefaultUuidCondition,
683
1046
  },
684
1047
  {
@@ -686,6 +1049,10 @@ const scopes = [
686
1049
  description: 'Export data to CSV',
687
1050
  isEnterprise: false,
688
1051
  group: ScopeGroup.DATA,
1052
+ dependencies: [
1053
+ { name: 'view:Project' },
1054
+ { name: 'view:SavedChart', description: 'Export dashboards' },
1055
+ ],
689
1056
  getConditions: addDefaultUuidCondition,
690
1057
  },
691
1058
  {
@@ -693,6 +1060,7 @@ const scopes = [
693
1060
  description: 'Modify CSV export results',
694
1061
  isEnterprise: false,
695
1062
  group: ScopeGroup.DATA,
1063
+ dependencies: [{ name: 'view:Project' }],
696
1064
  getConditions: addDefaultUuidCondition,
697
1065
  },
698
1066
  {
@@ -700,6 +1068,7 @@ const scopes = [
700
1068
  description: 'View source code for explores and models',
701
1069
  isEnterprise: false,
702
1070
  group: ScopeGroup.DATA,
1071
+ dependencies: [{ name: 'view:Project' }],
703
1072
  getConditions: addDefaultUuidCondition,
704
1073
  },
705
1074
  {
@@ -707,6 +1076,7 @@ const scopes = [
707
1076
  description: 'Create pull requests to update source code',
708
1077
  isEnterprise: false,
709
1078
  group: ScopeGroup.DATA,
1079
+ dependencies: [{ name: 'view:Project' }],
710
1080
  getConditions: addDefaultUuidCondition,
711
1081
  },
712
1082
  // AI Agent
@@ -715,6 +1085,7 @@ const scopes = [
715
1085
  description: 'View AI agents in a project',
716
1086
  isEnterprise: true,
717
1087
  group: ScopeGroup.AI,
1088
+ dependencies: [{ name: 'view:Project' }],
718
1089
  getConditions: addDefaultUuidCondition,
719
1090
  },
720
1091
  {
@@ -722,6 +1093,7 @@ const scopes = [
722
1093
  description: 'Create and manage AI agents in a project',
723
1094
  isEnterprise: true,
724
1095
  group: ScopeGroup.AI,
1096
+ dependencies: [{ name: 'view:Project' }],
725
1097
  getConditions: addDefaultUuidCondition,
726
1098
  },
727
1099
  {
@@ -730,6 +1102,7 @@ const scopes = [
730
1102
  isEnterprise: true,
731
1103
  level: 'organization',
732
1104
  group: ScopeGroup.AI,
1105
+ dependencies: [],
733
1106
  getConditions: addDefaultUuidCondition,
734
1107
  },
735
1108
  {
@@ -738,6 +1111,7 @@ const scopes = [
738
1111
  isEnterprise: true,
739
1112
  level: 'organization',
740
1113
  group: ScopeGroup.AI,
1114
+ dependencies: [],
741
1115
  getConditions: addDefaultUuidCondition,
742
1116
  },
743
1117
  {
@@ -745,6 +1119,7 @@ const scopes = [
745
1119
  description: 'View AI agent documents',
746
1120
  isEnterprise: true,
747
1121
  group: ScopeGroup.AI,
1122
+ dependencies: [{ name: 'view:Project' }],
748
1123
  getConditions: addDefaultUuidCondition,
749
1124
  },
750
1125
  {
@@ -752,6 +1127,7 @@ const scopes = [
752
1127
  description: 'Upload and manage AI agent documents',
753
1128
  isEnterprise: true,
754
1129
  group: ScopeGroup.AI,
1130
+ dependencies: [{ name: 'view:Project' }],
755
1131
  getConditions: addDefaultUuidCondition,
756
1132
  },
757
1133
  {
@@ -759,6 +1135,7 @@ const scopes = [
759
1135
  description: 'View all AI agent conversation threads',
760
1136
  isEnterprise: true,
761
1137
  group: ScopeGroup.AI,
1138
+ dependencies: [{ name: 'view:Project' }, { name: 'manage:AiAgent' }],
762
1139
  getConditions: addDefaultUuidCondition,
763
1140
  },
764
1141
  {
@@ -766,6 +1143,7 @@ const scopes = [
766
1143
  description: 'View owned AI agent conversation threads',
767
1144
  isEnterprise: true,
768
1145
  group: ScopeGroup.AI,
1146
+ dependencies: [{ name: 'view:Project' }],
769
1147
  getConditions: (context) => [
770
1148
  addUuidCondition(context, { userUuid: context.userUuid || false }),
771
1149
  ],
@@ -775,6 +1153,7 @@ const scopes = [
775
1153
  description: 'Start new AI agent conversations',
776
1154
  isEnterprise: true,
777
1155
  group: ScopeGroup.AI,
1156
+ dependencies: [{ name: 'view:Project' }],
778
1157
  getConditions: addDefaultUuidCondition,
779
1158
  },
780
1159
  {
@@ -782,6 +1161,7 @@ const scopes = [
782
1161
  description: 'Manage all AI agent conversation threads',
783
1162
  isEnterprise: true,
784
1163
  group: ScopeGroup.AI,
1164
+ dependencies: [{ name: 'view:Project' }, { name: 'manage:AiAgent' }],
785
1165
  getConditions: addDefaultUuidCondition,
786
1166
  },
787
1167
  {
@@ -789,6 +1169,7 @@ const scopes = [
789
1169
  description: 'Manage owned AI agent conversation threads',
790
1170
  isEnterprise: true,
791
1171
  group: ScopeGroup.AI,
1172
+ dependencies: [{ name: 'view:Project' }],
792
1173
  getConditions: (context) => [
793
1174
  addUuidCondition(context, { userUuid: context.userUuid || false }),
794
1175
  ],
@@ -799,6 +1180,17 @@ const scopes = [
799
1180
  description: 'View data apps',
800
1181
  isEnterprise: false,
801
1182
  group: ScopeGroup.AI,
1183
+ dependencies: [
1184
+ { name: 'view:Project' },
1185
+ {
1186
+ name: 'view:Space',
1187
+ description: 'Discover apps shared in spaces',
1188
+ },
1189
+ {
1190
+ name: 'manage:Explore',
1191
+ description: 'Run apps that query data on the fly',
1192
+ },
1193
+ ],
802
1194
  getConditions: (context) => [
803
1195
  addUuidCondition(context, { inheritsFromOrgOrProject: true }),
804
1196
  addAccessCondition(context),
@@ -809,6 +1201,7 @@ const scopes = [
809
1201
  description: 'Create and manage data apps',
810
1202
  isEnterprise: false,
811
1203
  group: ScopeGroup.AI,
1204
+ dependencies: [{ name: 'view:Project' }],
812
1205
  getConditions: addDefaultUuidCondition,
813
1206
  },
814
1207
  {
@@ -816,6 +1209,13 @@ const scopes = [
816
1209
  description: 'Create, edit, and delete data apps in spaces where you have editor or admin access',
817
1210
  isEnterprise: false,
818
1211
  group: ScopeGroup.AI,
1212
+ dependencies: [
1213
+ { name: 'view:Project' },
1214
+ {
1215
+ name: 'create:DataApp',
1216
+ description: 'Create new apps in the space',
1217
+ },
1218
+ ],
819
1219
  getConditions: (context) => [
820
1220
  addAccessCondition(context, SpaceMemberRole.EDITOR),
821
1221
  addAccessCondition(context, SpaceMemberRole.ADMIN),
@@ -826,6 +1226,25 @@ const scopes = [
826
1226
  description: 'Create new data apps',
827
1227
  isEnterprise: false,
828
1228
  group: ScopeGroup.AI,
1229
+ dependencies: [
1230
+ { name: 'view:Project' },
1231
+ {
1232
+ name: 'manage:Explore',
1233
+ description: 'Preview and run apps that query data on the fly',
1234
+ },
1235
+ {
1236
+ name: 'view:DataApp',
1237
+ description: 'Duplicate apps created by others',
1238
+ },
1239
+ {
1240
+ name: 'view:ExternalConnection',
1241
+ description: 'Browse external connections while building',
1242
+ },
1243
+ {
1244
+ name: 'manage:DataApp@self',
1245
+ description: 'Open and iterate on the apps you generate',
1246
+ },
1247
+ ],
829
1248
  getConditions: addDefaultUuidCondition,
830
1249
  },
831
1250
  {
@@ -833,6 +1252,13 @@ const scopes = [
833
1252
  description: 'View own personal data apps',
834
1253
  isEnterprise: false,
835
1254
  group: ScopeGroup.AI,
1255
+ dependencies: [
1256
+ { name: 'view:Project' },
1257
+ {
1258
+ name: 'create:DataApp',
1259
+ description: 'Create your own apps to view',
1260
+ },
1261
+ ],
836
1262
  getConditions: (context) => [
837
1263
  {
838
1264
  ...addUuidCondition(context),
@@ -845,6 +1271,13 @@ const scopes = [
845
1271
  description: 'Edit and delete own personal data apps',
846
1272
  isEnterprise: false,
847
1273
  group: ScopeGroup.AI,
1274
+ dependencies: [
1275
+ { name: 'view:Project' },
1276
+ {
1277
+ name: 'create:DataApp',
1278
+ description: 'Create your own apps to manage',
1279
+ },
1280
+ ],
848
1281
  getConditions: (context) => [
849
1282
  {
850
1283
  ...addUuidCondition(context),
@@ -861,6 +1294,7 @@ const scopes = [
861
1294
  description: 'View external API connections to link them in data apps',
862
1295
  isEnterprise: true,
863
1296
  group: ScopeGroup.AI,
1297
+ dependencies: [{ name: 'view:Project' }],
864
1298
  getConditions: addDefaultUuidCondition,
865
1299
  },
866
1300
  {
@@ -868,6 +1302,7 @@ const scopes = [
868
1302
  description: 'Create, edit, and delete external API connections used by data apps',
869
1303
  isEnterprise: true,
870
1304
  group: ScopeGroup.AI,
1305
+ dependencies: [{ name: 'view:Project' }],
871
1306
  getConditions: addDefaultUuidCondition,
872
1307
  },
873
1308
  // Organization Design Assets (shared CSS/fonts/images/instructions
@@ -878,6 +1313,7 @@ const scopes = [
878
1313
  description: 'View organization design assets',
879
1314
  isEnterprise: false,
880
1315
  group: ScopeGroup.AI,
1316
+ dependencies: [],
881
1317
  level: 'organization',
882
1318
  getConditions: addDefaultUuidCondition,
883
1319
  },
@@ -886,6 +1322,7 @@ const scopes = [
886
1322
  description: 'Create, edit, and delete organization design assets',
887
1323
  isEnterprise: false,
888
1324
  group: ScopeGroup.AI,
1325
+ dependencies: [],
889
1326
  level: 'organization',
890
1327
  getConditions: addDefaultUuidCondition,
891
1328
  },
@@ -895,6 +1332,7 @@ const scopes = [
895
1332
  description: 'Configure spotlight table settings',
896
1333
  isEnterprise: true,
897
1334
  group: ScopeGroup.SPOTLIGHT,
1335
+ dependencies: [{ name: 'view:Project' }],
898
1336
  getConditions: addDefaultUuidCondition,
899
1337
  },
900
1338
  {
@@ -902,6 +1340,7 @@ const scopes = [
902
1340
  description: 'View spotlight table configuration',
903
1341
  isEnterprise: true,
904
1342
  group: ScopeGroup.SPOTLIGHT,
1343
+ dependencies: [{ name: 'view:Project' }],
905
1344
  getConditions: addDefaultUuidCondition,
906
1345
  },
907
1346
  {
@@ -909,6 +1348,7 @@ const scopes = [
909
1348
  description: 'View metrics tree',
910
1349
  isEnterprise: true,
911
1350
  group: ScopeGroup.SPOTLIGHT,
1351
+ dependencies: [{ name: 'view:Project' }],
912
1352
  getConditions: addDefaultUuidCondition,
913
1353
  },
914
1354
  {
@@ -916,6 +1356,7 @@ const scopes = [
916
1356
  description: 'Manage metrics tree configuration',
917
1357
  isEnterprise: true,
918
1358
  group: ScopeGroup.SPOTLIGHT,
1359
+ dependencies: [{ name: 'view:Project' }],
919
1360
  getConditions: addDefaultUuidCondition,
920
1361
  },
921
1362
  ];