@finos/legend-application-query 7.0.1 → 8.1.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 (83) hide show
  1. package/lib/LegendQueryAppEvent.d.ts +1 -1
  2. package/lib/LegendQueryAppEvent.d.ts.map +1 -1
  3. package/lib/LegendQueryAppEvent.js +1 -1
  4. package/lib/LegendQueryAppEvent.js.map +1 -1
  5. package/lib/application/LegendQuery.d.ts.map +1 -1
  6. package/lib/application/LegendQuery.js +1 -1
  7. package/lib/application/LegendQuery.js.map +1 -1
  8. package/lib/application/LegendQueryApplicationConfig.d.ts +6 -7
  9. package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
  10. package/lib/application/LegendQueryApplicationConfig.js +9 -4
  11. package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
  12. package/lib/components/LegendQueryApplication.d.ts +1 -2
  13. package/lib/components/LegendQueryApplication.d.ts.map +1 -1
  14. package/lib/components/LegendQueryApplication.js +2 -3
  15. package/lib/components/LegendQueryApplication.js.map +1 -1
  16. package/lib/components/LegendQueryBaseStoreProvider.d.ts +1 -3
  17. package/lib/components/LegendQueryBaseStoreProvider.d.ts.map +1 -1
  18. package/lib/components/LegendQueryBaseStoreProvider.js +2 -2
  19. package/lib/components/LegendQueryBaseStoreProvider.js.map +1 -1
  20. package/lib/components/QueryEditor.d.ts +1 -0
  21. package/lib/components/QueryEditor.d.ts.map +1 -1
  22. package/lib/components/QueryEditor.js +42 -28
  23. package/lib/components/QueryEditor.js.map +1 -1
  24. package/lib/components/QueryEditorComponentTestUtils.d.ts.map +1 -1
  25. package/lib/components/QueryEditorComponentTestUtils.js +2 -2
  26. package/lib/components/QueryEditorComponentTestUtils.js.map +1 -1
  27. package/lib/components/QueryEditorStoreProvider.d.ts.map +1 -1
  28. package/lib/components/QueryEditorStoreProvider.js +6 -8
  29. package/lib/components/QueryEditorStoreProvider.js.map +1 -1
  30. package/lib/components/QuerySetup.d.ts +6 -0
  31. package/lib/components/QuerySetup.d.ts.map +1 -1
  32. package/lib/components/QuerySetup.js +152 -34
  33. package/lib/components/QuerySetup.js.map +1 -1
  34. package/lib/components/QuerySetupStoreProvider.d.ts.map +1 -1
  35. package/lib/components/QuerySetupStoreProvider.js +2 -3
  36. package/lib/components/QuerySetupStoreProvider.js.map +1 -1
  37. package/lib/index.css +2 -2
  38. package/lib/index.css.map +1 -1
  39. package/lib/index.d.ts +1 -1
  40. package/lib/index.d.ts.map +1 -1
  41. package/lib/index.js +1 -1
  42. package/lib/index.js.map +1 -1
  43. package/lib/package.json +9 -9
  44. package/lib/stores/LegendQueryApplicationPlugin.d.ts +10 -2
  45. package/lib/stores/LegendQueryApplicationPlugin.d.ts.map +1 -1
  46. package/lib/stores/LegendQueryApplicationPlugin.js.map +1 -1
  47. package/lib/stores/LegendQueryBaseStore.d.ts +2 -3
  48. package/lib/stores/LegendQueryBaseStore.d.ts.map +1 -1
  49. package/lib/stores/LegendQueryBaseStore.js +2 -2
  50. package/lib/stores/LegendQueryBaseStore.js.map +1 -1
  51. package/lib/stores/LegendQueryRouter.d.ts +16 -1
  52. package/lib/stores/LegendQueryRouter.d.ts.map +1 -1
  53. package/lib/stores/LegendQueryRouter.js +17 -2
  54. package/lib/stores/LegendQueryRouter.js.map +1 -1
  55. package/lib/stores/QueryEditorStore.d.ts +15 -12
  56. package/lib/stores/QueryEditorStore.d.ts.map +1 -1
  57. package/lib/stores/QueryEditorStore.js +24 -19
  58. package/lib/stores/QueryEditorStore.js.map +1 -1
  59. package/lib/stores/QueryEditorStoreTestUtils.d.ts.map +1 -1
  60. package/lib/stores/QueryEditorStoreTestUtils.js +1 -0
  61. package/lib/stores/QueryEditorStoreTestUtils.js.map +1 -1
  62. package/lib/stores/QuerySetupStore.d.ts +35 -9
  63. package/lib/stores/QuerySetupStore.d.ts.map +1 -1
  64. package/lib/stores/QuerySetupStore.js +188 -17
  65. package/lib/stores/QuerySetupStore.js.map +1 -1
  66. package/package.json +17 -17
  67. package/src/LegendQueryAppEvent.ts +1 -1
  68. package/src/application/LegendQuery.tsx +1 -4
  69. package/src/application/LegendQueryApplicationConfig.ts +30 -10
  70. package/src/components/LegendQueryApplication.tsx +3 -9
  71. package/src/components/LegendQueryBaseStoreProvider.tsx +4 -14
  72. package/src/components/QueryEditor.tsx +77 -61
  73. package/src/components/QueryEditorComponentTestUtils.tsx +1 -6
  74. package/src/components/QueryEditorStoreProvider.tsx +3 -14
  75. package/src/components/QuerySetup.tsx +411 -50
  76. package/src/components/QuerySetupStoreProvider.tsx +2 -11
  77. package/src/index.ts +1 -0
  78. package/src/stores/LegendQueryApplicationPlugin.ts +18 -2
  79. package/src/stores/LegendQueryBaseStore.ts +2 -4
  80. package/src/stores/LegendQueryRouter.ts +35 -2
  81. package/src/stores/QueryEditorStore.ts +34 -30
  82. package/src/stores/QueryEditorStoreTestUtils.ts +1 -0
  83. package/src/stores/QuerySetupStore.ts +275 -20
@@ -34,23 +34,39 @@ import {
34
34
  type Mapping,
35
35
  type PackageableRuntime,
36
36
  type Service,
37
+ type QueryInfo,
37
38
  QuerySearchSpecification,
38
39
  BasicGraphManagerState,
40
+ CORE_PURE_PATH,
39
41
  } from '@finos/legend-graph';
40
42
  import {
41
43
  type DepotServerClient,
44
+ type StoredEntity,
42
45
  ProjectData,
46
+ DepotScope,
43
47
  } from '@finos/legend-server-depot';
44
- import type { Entity } from '@finos/legend-storage';
48
+ import { type Entity, parseProjectIdentifier } from '@finos/legend-storage';
45
49
  import { LEGEND_QUERY_APP_EVENT } from '../LegendQueryAppEvent.js';
46
- import { APPLICATION_EVENT, TAB_SIZE } from '@finos/legend-application';
50
+ import {
51
+ APPLICATION_EVENT,
52
+ DEFAULT_TYPEAHEAD_SEARCH_LIMIT,
53
+ DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH,
54
+ TAB_SIZE,
55
+ } from '@finos/legend-application';
47
56
  import type { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
48
57
  import type { LegendQueryApplicationStore } from './LegendQueryBaseStore.js';
49
58
  import {
50
59
  type MappingRuntimeCompatibilityAnalysisResult,
51
60
  type ServiceExecutionAnalysisResult,
61
+ type ServiceInfo,
52
62
  getQueryBuilderGraphManagerExtension,
63
+ extractServiceInfo,
53
64
  } from '@finos/legend-query-builder';
65
+ import {
66
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioProductionizeQueryUrl,
67
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateExistingServiceQueryUrl,
68
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateProjectServiceQueryUrl,
69
+ } from './LegendQueryRouter.js';
54
70
 
55
71
  export abstract class QuerySetupState {
56
72
  setupStore: QuerySetupStore;
@@ -65,6 +81,7 @@ export class EditExistingQuerySetupState extends QuerySetupState {
65
81
  loadQueriesState = ActionState.create();
66
82
  loadQueryState = ActionState.create();
67
83
  currentQuery?: LightQuery | undefined;
84
+ currentQueryInfo?: QueryInfo | undefined;
68
85
  showCurrentUserQueriesOnly = false;
69
86
 
70
87
  constructor(setupStore: QuerySetupStore) {
@@ -73,6 +90,7 @@ export class EditExistingQuerySetupState extends QuerySetupState {
73
90
  makeObservable(this, {
74
91
  queries: observable,
75
92
  currentQuery: observable,
93
+ currentQueryInfo: observable,
76
94
  showCurrentUserQueriesOnly: observable,
77
95
  setShowCurrentUserQueriesOnly: action,
78
96
  setCurrentQuery: flow,
@@ -92,6 +110,10 @@ export class EditExistingQuerySetupState extends QuerySetupState {
92
110
  (yield this.setupStore.graphManagerState.graphManager.getLightQuery(
93
111
  queryId,
94
112
  )) as LightQuery;
113
+ this.currentQueryInfo =
114
+ (yield this.setupStore.graphManagerState.graphManager.getQueryInfo(
115
+ queryId,
116
+ )) as QueryInfo;
95
117
  } catch (error) {
96
118
  assertErrorThrown(error);
97
119
  this.setupStore.applicationStore.notifyError(error);
@@ -104,14 +126,15 @@ export class EditExistingQuerySetupState extends QuerySetupState {
104
126
  }
105
127
 
106
128
  *loadQueries(searchText: string): GeneratorFn<void> {
107
- const isValidSearchString = searchText.length >= 3;
129
+ const isValidSearchString =
130
+ searchText.length >= DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH;
108
131
  this.loadQueriesState.inProgress();
109
132
  try {
110
133
  const searchSpecification = new QuerySearchSpecification();
111
134
  searchSpecification.searchTerm = isValidSearchString
112
135
  ? searchText
113
136
  : undefined;
114
- searchSpecification.limit = 10;
137
+ searchSpecification.limit = DEFAULT_TYPEAHEAD_SEARCH_LIMIT;
115
138
  searchSpecification.showCurrentUserQueriesOnly =
116
139
  this.showCurrentUserQueriesOnly;
117
140
  this.queries =
@@ -121,8 +144,186 @@ export class EditExistingQuerySetupState extends QuerySetupState {
121
144
  this.loadQueriesState.pass();
122
145
  } catch (error) {
123
146
  assertErrorThrown(error);
147
+ this.setupStore.applicationStore.notifyError(error);
148
+ this.loadQueriesState.fail();
149
+ }
150
+ }
151
+ }
152
+
153
+ export class QueryProductionizationSetupState extends QuerySetupState {
154
+ queries: LightQuery[] = [];
155
+ loadQueriesState = ActionState.create();
156
+ loadQueryState = ActionState.create();
157
+ currentQuery?: LightQuery | undefined;
158
+ currentQueryInfo?: QueryInfo | undefined;
159
+
160
+ constructor(setupStore: QuerySetupStore) {
161
+ super(setupStore);
162
+
163
+ makeObservable(this, {
164
+ queries: observable,
165
+ currentQuery: observable,
166
+ currentQueryInfo: observable,
167
+ setCurrentQuery: flow,
168
+ loadQueries: flow,
169
+ });
170
+ }
171
+
172
+ async loadQueryProductionizer(): Promise<void> {
173
+ if (!this.currentQuery) {
174
+ return;
175
+ }
176
+
177
+ // fetch project data
178
+ const project = ProjectData.serialization.fromJson(
179
+ await this.setupStore.depotServerClient.getProject(
180
+ this.currentQuery.groupId,
181
+ this.currentQuery.artifactId,
182
+ ),
183
+ );
184
+
185
+ // find the matching SDLC instance
186
+ const projectIDPrefix = parseProjectIdentifier(project.projectId).prefix;
187
+ const matchingSDLCEntry =
188
+ this.setupStore.applicationStore.config.studioInstances.find(
189
+ (entry) => entry.sdlcProjectIDPrefix === projectIDPrefix,
190
+ );
191
+ if (matchingSDLCEntry) {
192
+ this.setupStore.applicationStore.setBlockingAlert({
193
+ message: `Loading query...`,
194
+ prompt: 'Please do not close the application',
195
+ showLoading: true,
196
+ });
197
+ this.setupStore.applicationStore.navigator.jumpTo(
198
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioProductionizeQueryUrl(
199
+ matchingSDLCEntry.url,
200
+ this.currentQuery.id,
201
+ ),
202
+ );
203
+ } else {
204
+ this.setupStore.applicationStore.notifyWarning(
205
+ `Can't find the corresponding SDLC instance to productionize the query`,
206
+ );
207
+ }
208
+ }
209
+
210
+ *setCurrentQuery(queryId: string | undefined): GeneratorFn<void> {
211
+ if (queryId) {
212
+ try {
213
+ this.loadQueryState.inProgress();
214
+ this.currentQuery =
215
+ (yield this.setupStore.graphManagerState.graphManager.getLightQuery(
216
+ queryId,
217
+ )) as LightQuery;
218
+ this.currentQueryInfo =
219
+ (yield this.setupStore.graphManagerState.graphManager.getQueryInfo(
220
+ queryId,
221
+ )) as QueryInfo;
222
+ } catch (error) {
223
+ assertErrorThrown(error);
224
+ this.setupStore.applicationStore.notifyError(error);
225
+ } finally {
226
+ this.loadQueryState.reset();
227
+ }
228
+ } else {
229
+ this.currentQuery = undefined;
230
+ }
231
+ }
232
+
233
+ *loadQueries(searchText: string): GeneratorFn<void> {
234
+ const isValidSearchString =
235
+ searchText.length >= DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH;
236
+ this.loadQueriesState.inProgress();
237
+ try {
238
+ const searchSpecification = new QuerySearchSpecification();
239
+ searchSpecification.searchTerm = isValidSearchString
240
+ ? searchText
241
+ : undefined;
242
+ searchSpecification.limit = DEFAULT_TYPEAHEAD_SEARCH_LIMIT;
243
+ this.queries =
244
+ (yield this.setupStore.graphManagerState.graphManager.searchQueries(
245
+ searchSpecification,
246
+ )) as LightQuery[];
247
+ this.loadQueriesState.pass();
248
+ } catch (error) {
249
+ assertErrorThrown(error);
250
+ this.setupStore.applicationStore.notifyError(error);
124
251
  this.loadQueriesState.fail();
252
+ }
253
+ }
254
+ }
255
+
256
+ export class UpdateExistingServiceQuerySetupState extends QuerySetupState {
257
+ services: ServiceInfo[] = [];
258
+ loadServicesState = ActionState.create();
259
+
260
+ constructor(setupStore: QuerySetupStore) {
261
+ super(setupStore);
262
+
263
+ makeObservable(this, {
264
+ services: observable,
265
+ loadServices: flow,
266
+ });
267
+ }
268
+
269
+ async loadServiceUpdater(serviceInfo: ServiceInfo): Promise<void> {
270
+ // fetch project data
271
+ const project = ProjectData.serialization.fromJson(
272
+ await this.setupStore.depotServerClient.getProject(
273
+ serviceInfo.groupId,
274
+ serviceInfo.artifactId,
275
+ ),
276
+ );
277
+
278
+ // find the matching SDLC instance
279
+ const projectIDPrefix = parseProjectIdentifier(project.projectId).prefix;
280
+ const matchingSDLCEntry =
281
+ this.setupStore.applicationStore.config.studioInstances.find(
282
+ (entry) => entry.sdlcProjectIDPrefix === projectIDPrefix,
283
+ );
284
+ if (matchingSDLCEntry) {
285
+ this.setupStore.applicationStore.setBlockingAlert({
286
+ message: `Loading service...`,
287
+ prompt: 'Please do not close the application',
288
+ showLoading: true,
289
+ });
290
+ this.setupStore.applicationStore.navigator.jumpTo(
291
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateExistingServiceQueryUrl(
292
+ matchingSDLCEntry.url,
293
+ serviceInfo.groupId,
294
+ serviceInfo.artifactId,
295
+ serviceInfo.path,
296
+ ),
297
+ );
298
+ } else {
299
+ this.setupStore.applicationStore.notifyWarning(
300
+ `Can't find the corresponding SDLC instance to update the service`,
301
+ );
302
+ }
303
+ }
304
+
305
+ *loadServices(searchText: string): GeneratorFn<void> {
306
+ const isValidSearchString =
307
+ searchText.length >= DEFAULT_TYPEAHEAD_SEARCH_MINIMUM_SEARCH_LENGTH;
308
+ this.loadServicesState.inProgress();
309
+ try {
310
+ this.services = (
311
+ (yield this.setupStore.depotServerClient.getEntitiesByClassifierPath(
312
+ CORE_PURE_PATH.SERVICE,
313
+ {
314
+ search: isValidSearchString ? searchText : undefined,
315
+ // NOTE: since this mode is meant for contribution, we want to load services
316
+ // on the snapshot version (i.e. merged to the default branch on the projects)
317
+ scope: DepotScope.SNAPSHOT,
318
+ limit: DEFAULT_TYPEAHEAD_SEARCH_LIMIT,
319
+ },
320
+ )) as StoredEntity[]
321
+ ).map((storedEntity) => extractServiceInfo(storedEntity));
322
+ this.loadServicesState.pass();
323
+ } catch (error) {
324
+ assertErrorThrown(error);
125
325
  this.setupStore.applicationStore.notifyError(error);
326
+ this.loadServicesState.fail();
126
327
  }
127
328
  }
128
329
  }
@@ -195,8 +396,8 @@ export class CreateMappingQuerySetupState extends QuerySetupState {
195
396
  this.loadProjectsState.pass();
196
397
  } catch (error) {
197
398
  assertErrorThrown(error);
198
- this.loadProjectsState.fail();
199
399
  this.setupStore.applicationStore.notifyError(error);
400
+ this.loadProjectsState.fail();
200
401
  }
201
402
  }
202
403
 
@@ -226,13 +427,67 @@ export class CreateMappingQuerySetupState extends QuerySetupState {
226
427
 
227
428
  this.surveyMappingRuntimeCompatibilityState.pass();
228
429
  } catch (error) {
229
- this.surveyMappingRuntimeCompatibilityState.fail();
230
430
  assertErrorThrown(error);
231
431
  this.setupStore.applicationStore.log.error(
232
- LogEvent.create(LEGEND_QUERY_APP_EVENT.QUERY_PROBLEM),
432
+ LogEvent.create(LEGEND_QUERY_APP_EVENT.GENERIC_FAILURE),
233
433
  error,
234
434
  );
235
435
  this.setupStore.applicationStore.notifyError(error);
436
+ this.surveyMappingRuntimeCompatibilityState.fail();
437
+ }
438
+ }
439
+ }
440
+
441
+ export class LoadProjectServiceQuerySetupState extends QuerySetupState {
442
+ projects: ProjectData[] = [];
443
+ loadProjectsState = ActionState.create();
444
+
445
+ constructor(setupStore: QuerySetupStore) {
446
+ super(setupStore);
447
+
448
+ makeObservable(this, {
449
+ projects: observable,
450
+ loadProjects: flow,
451
+ });
452
+ }
453
+
454
+ *loadProjects(): GeneratorFn<void> {
455
+ this.loadProjectsState.inProgress();
456
+ try {
457
+ this.projects = (
458
+ (yield this.setupStore.depotServerClient.getProjects()) as PlainObject<ProjectData>[]
459
+ ).map((v) => ProjectData.serialization.fromJson(v));
460
+ this.loadProjectsState.pass();
461
+ } catch (error) {
462
+ assertErrorThrown(error);
463
+ this.setupStore.applicationStore.notifyError(error);
464
+ this.loadProjectsState.fail();
465
+ }
466
+ }
467
+
468
+ async loadProjectServiceUpdater(project: ProjectData): Promise<void> {
469
+ // find the matching SDLC instance
470
+ const projectIDPrefix = parseProjectIdentifier(project.projectId).prefix;
471
+ const matchingSDLCEntry =
472
+ this.setupStore.applicationStore.config.studioInstances.find(
473
+ (entry) => entry.sdlcProjectIDPrefix === projectIDPrefix,
474
+ );
475
+ if (matchingSDLCEntry) {
476
+ this.setupStore.applicationStore.setBlockingAlert({
477
+ message: `Loading service project...`,
478
+ prompt: 'Please do not close the application',
479
+ showLoading: true,
480
+ });
481
+ this.setupStore.applicationStore.navigator.jumpTo(
482
+ EXTERNAL_APPLICATION_NAVIGATION__generateStudioUpdateProjectServiceQueryUrl(
483
+ matchingSDLCEntry.url,
484
+ project.projectId,
485
+ ),
486
+ );
487
+ } else {
488
+ this.setupStore.applicationStore.notifyWarning(
489
+ `Can't find the corresponding SDLC instance to load project '${project.projectId}'`,
490
+ );
236
491
  }
237
492
  }
238
493
  }
@@ -242,7 +497,7 @@ export interface ServiceExecutionOption {
242
497
  key?: string | undefined;
243
498
  }
244
499
 
245
- export class LoadServiceQuerySetupState extends QuerySetupState {
500
+ export class CloneServiceQuerySetupState extends QuerySetupState {
246
501
  projects: ProjectData[] = [];
247
502
  loadProjectsState = ActionState.create();
248
503
  loadServiceExecutionsState = ActionState.create();
@@ -296,8 +551,8 @@ export class LoadServiceQuerySetupState extends QuerySetupState {
296
551
  this.loadProjectsState.pass();
297
552
  } catch (error) {
298
553
  assertErrorThrown(error);
299
- this.loadProjectsState.fail();
300
554
  this.setupStore.applicationStore.notifyError(error);
555
+ this.loadProjectsState.fail();
301
556
  }
302
557
  }
303
558
 
@@ -340,29 +595,29 @@ export class LoadServiceQuerySetupState extends QuerySetupState {
340
595
  );
341
596
  this.loadServiceExecutionsState.pass();
342
597
  } catch (error) {
343
- this.loadServiceExecutionsState.fail();
344
598
  assertErrorThrown(error);
345
599
  this.setupStore.applicationStore.log.error(
346
- LogEvent.create(LEGEND_QUERY_APP_EVENT.QUERY_PROBLEM),
600
+ LogEvent.create(LEGEND_QUERY_APP_EVENT.GENERIC_FAILURE),
347
601
  error,
348
602
  );
349
603
  this.setupStore.applicationStore.notifyError(error);
604
+ this.loadServiceExecutionsState.fail();
350
605
  }
351
606
  }
352
607
  }
353
608
 
354
609
  export class QuerySetupStore {
355
- applicationStore: LegendQueryApplicationStore;
356
- graphManagerState: BasicGraphManagerState;
357
- depotServerClient: DepotServerClient;
358
- pluginManager: LegendQueryPluginManager;
610
+ readonly applicationStore: LegendQueryApplicationStore;
611
+ readonly graphManagerState: BasicGraphManagerState;
612
+ readonly depotServerClient: DepotServerClient;
613
+ readonly pluginManager: LegendQueryPluginManager;
614
+
615
+ readonly initState = ActionState.create();
359
616
  querySetupState?: QuerySetupState | undefined;
360
- initState = ActionState.create();
361
617
 
362
618
  constructor(
363
619
  applicationStore: LegendQueryApplicationStore,
364
620
  depotServerClient: DepotServerClient,
365
- pluginManager: LegendQueryPluginManager,
366
621
  ) {
367
622
  makeObservable(this, {
368
623
  querySetupState: observable,
@@ -372,11 +627,11 @@ export class QuerySetupStore {
372
627
 
373
628
  this.applicationStore = applicationStore;
374
629
  this.graphManagerState = new BasicGraphManagerState(
375
- pluginManager,
630
+ applicationStore.pluginManager,
376
631
  applicationStore.log,
377
632
  );
378
633
  this.depotServerClient = depotServerClient;
379
- this.pluginManager = pluginManager;
634
+ this.pluginManager = applicationStore.pluginManager;
380
635
  }
381
636
 
382
637
  setSetupState(val: QuerySetupState | undefined): void {
@@ -420,7 +675,7 @@ export class QuerySetupStore {
420
675
  } catch (error) {
421
676
  assertErrorThrown(error);
422
677
  this.applicationStore.log.error(
423
- LogEvent.create(LEGEND_QUERY_APP_EVENT.QUERY_PROBLEM),
678
+ LogEvent.create(LEGEND_QUERY_APP_EVENT.GENERIC_FAILURE),
424
679
  error,
425
680
  );
426
681
  this.applicationStore.setBlockingAlert({