@finos/legend-extension-dsl-data-space 10.2.0 → 10.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.d.ts +18 -6
  2. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.d.ts.map +1 -1
  3. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.js +18 -6
  4. package/lib/__lib__/query/DSL_DataSpace_LegendQueryNavigation.js.map +1 -1
  5. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.d.ts.map +1 -1
  6. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +1 -0
  7. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
  8. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.d.ts +4 -1
  9. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.d.ts.map +1 -1
  10. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.js +55 -5
  11. package/lib/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.js.map +1 -1
  12. package/lib/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.js +1 -1
  13. package/lib/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.js.map +1 -1
  14. package/lib/components/query/DataSpaceTemplateQueryCreator.js +4 -4
  15. package/lib/components/query/DataSpaceTemplateQueryCreator.js.map +1 -1
  16. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts +2 -0
  17. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts.map +1 -1
  18. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.js +13 -0
  19. package/lib/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.js.map +1 -1
  20. package/lib/components/studio/DataSpaceTemplateQueryPromoteReview.d.ts +19 -0
  21. package/lib/components/studio/DataSpaceTemplateQueryPromoteReview.d.ts.map +1 -0
  22. package/lib/components/studio/DataSpaceTemplateQueryPromoteReview.js +79 -0
  23. package/lib/components/studio/DataSpaceTemplateQueryPromoteReview.js.map +1 -0
  24. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +1 -0
  25. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
  26. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +2 -0
  27. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
  28. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.d.ts +1 -0
  29. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.d.ts.map +1 -1
  30. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.js +1 -0
  31. package/lib/graph-manager/action/analytics/DataSpaceAnalysis.js.map +1 -1
  32. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.d.ts +10 -1
  33. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  34. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  35. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
  36. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +2 -0
  37. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
  38. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts +12 -1
  39. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.d.ts.map +1 -1
  40. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +28 -3
  41. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  42. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.d.ts +1 -0
  43. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.d.ts.map +1 -1
  44. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +2 -0
  45. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
  46. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +1 -0
  47. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
  48. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +2 -0
  49. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
  50. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
  51. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +1 -0
  52. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
  53. package/lib/index.css +2 -2
  54. package/lib/index.css.map +1 -1
  55. package/lib/package.json +2 -1
  56. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.d.ts +3 -2
  57. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.d.ts.map +1 -1
  58. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.js +9 -13
  59. package/lib/stores/query/DataSpaceTemplateQueryCreatorStore.js.map +1 -1
  60. package/lib/stores/query/DataSpaceTemplateQueryPromotionReviewerStore.d.ts +61 -0
  61. package/lib/stores/query/DataSpaceTemplateQueryPromotionReviewerStore.d.ts.map +1 -0
  62. package/lib/stores/query/DataSpaceTemplateQueryPromotionReviewerStore.js +407 -0
  63. package/lib/stores/query/DataSpaceTemplateQueryPromotionReviewerStore.js.map +1 -0
  64. package/package.json +8 -7
  65. package/src/__lib__/query/DSL_DataSpace_LegendQueryNavigation.ts +43 -9
  66. package/src/components/DSL_DataSpace_LegendApplicationPlugin.tsx +1 -0
  67. package/src/components/query/DSL_DataSpace_LegendQueryApplicationPlugin.tsx +117 -3
  68. package/src/components/query/DataSpaceQueryBuilderTemplateQueryPanelContent.tsx +1 -1
  69. package/src/components/query/DataSpaceTemplateQueryCreator.tsx +6 -6
  70. package/src/components/studio/DSL_DataSpace_LegendStudioApplicationPlugin.tsx +18 -1
  71. package/src/components/studio/DataSpaceTemplateQueryPromoteReview.tsx +285 -0
  72. package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +2 -0
  73. package/src/graph-manager/action/analytics/DataSpaceAnalysis.ts +1 -0
  74. package/src/graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.ts +15 -0
  75. package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +2 -0
  76. package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +66 -2
  77. package/src/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +2 -0
  78. package/src/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +2 -0
  79. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +1 -0
  80. package/src/stores/query/DataSpaceTemplateQueryCreatorStore.ts +12 -24
  81. package/src/stores/query/DataSpaceTemplateQueryPromotionReviewerStore.ts +636 -0
  82. package/tsconfig.json +2 -0
@@ -0,0 +1,407 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { GraphManagerState, } from '@finos/legend-graph';
17
+ import { StoreProjectData, ProjectDependencyCoordinates, ProjectVersionEntities, } from '@finos/legend-server-depot';
18
+ import { ActionState, assertErrorThrown, guaranteeNonNullable, LogEvent, } from '@finos/legend-shared';
19
+ import { generateDataSpaceQuerySetupRoute, generateDataSpaceTemplateQueryPromotionRoute, } from '../../__lib__/query/DSL_DataSpace_LegendQueryNavigation.js';
20
+ import {} from '@finos/legend-storage';
21
+ import { fetchProjectConfigurationStatus, generateEditorRoute, LEGEND_STUDIO_APP_EVENT, EditorStore, generateReviewRoute, } from '@finos/legend-application-studio';
22
+ import { DEFAULT_TAB_SIZE, ActionAlertType, ActionAlertActionType, } from '@finos/legend-application';
23
+ import { makeObservable, observable, computed, action, flow, flowResult, } from 'mobx';
24
+ import { Project, WorkspaceType, Workspace, ProjectConfiguration, EntityChangeType, } from '@finos/legend-server-sdlc';
25
+ import { DSL_DataSpace_getGraphManagerExtension, } from '../../graph-manager/protocol/pure/DSL_DataSpace_PureGraphManagerExtension.js';
26
+ import { DATA_SPACE_ELEMENT_CLASSIFIER_PATH } from '../../graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js';
27
+ const projectDependencyToProjectCoordinates = (projectDependency) => new ProjectDependencyCoordinates(guaranteeNonNullable(projectDependency.groupId), guaranteeNonNullable(projectDependency.artifactId), projectDependency.versionId);
28
+ const DEFAULT_WORKSPACE_NAME_PREFIX = 'promote-as-template-query';
29
+ export class DataSpaceTemplateQueryPromotionReviewerStore {
30
+ applicationStore;
31
+ sdlcServerClient;
32
+ depotServerClient;
33
+ graphManagerState;
34
+ initState = ActionState.create();
35
+ promoteState = ActionState.create();
36
+ loadQueryState = ActionState.create();
37
+ loadWorkspacesState = ActionState.create();
38
+ editorStore;
39
+ graphManagerExtension;
40
+ currentQuery;
41
+ currentQueryInfo;
42
+ currentQueryProject;
43
+ currentProject;
44
+ currentProjectConfiguration;
45
+ currentProjectConfigurationStatus;
46
+ currentProjectEntities = [];
47
+ dependencyEntities = [];
48
+ groupWorkspaces = [];
49
+ workspaceName = '';
50
+ dataSpacePath;
51
+ dataSpaceEntity;
52
+ templateQueryId = 'template_id';
53
+ templateQueryTitle = 'template_title';
54
+ templateQueryDescription = '';
55
+ constructor(applicationStore, sdlcServerClient, depotServerClient) {
56
+ makeObservable(this, {
57
+ editorStore: observable,
58
+ graphManagerExtension: observable,
59
+ currentQuery: observable,
60
+ currentQueryInfo: observable,
61
+ currentQueryProject: observable,
62
+ currentProject: observable,
63
+ currentProjectConfiguration: observable,
64
+ currentProjectConfigurationStatus: observable,
65
+ currentProjectEntities: observable,
66
+ dataSpaceEntity: observable,
67
+ groupWorkspaces: observable,
68
+ workspaceName: observable,
69
+ templateQueryId: observable,
70
+ templateQueryTitle: observable,
71
+ templateQueryDescription: observable,
72
+ isWorkspaceNameValid: computed,
73
+ isTemplateQueryIdValid: computed,
74
+ setWorkspaceName: action,
75
+ setTemplateQueryId: action,
76
+ setTemplateQueryTitle: action,
77
+ setTemplateQueryDescription: action,
78
+ initialize: flow,
79
+ loadQuery: flow,
80
+ loadProject: flow,
81
+ promoteAsTemplateQuery: flow,
82
+ });
83
+ this.applicationStore = applicationStore;
84
+ this.sdlcServerClient = sdlcServerClient;
85
+ this.depotServerClient = depotServerClient;
86
+ this.graphManagerState = new GraphManagerState(applicationStore.pluginManager, applicationStore.logService);
87
+ this.editorStore = new EditorStore(applicationStore, sdlcServerClient, depotServerClient);
88
+ this.graphManagerExtension = DSL_DataSpace_getGraphManagerExtension(this.editorStore.graphManagerState.graphManager);
89
+ }
90
+ setWorkspaceName(val) {
91
+ this.workspaceName = val;
92
+ }
93
+ setTemplateQueryId(val) {
94
+ this.templateQueryId = val;
95
+ }
96
+ setTemplateQueryTitle(val) {
97
+ this.templateQueryTitle = val;
98
+ }
99
+ setTemplateQueryDescription(val) {
100
+ this.templateQueryDescription = val;
101
+ }
102
+ get isWorkspaceNameValid() {
103
+ return !this.groupWorkspaces.some((ws) => ws.workspaceId === this.workspaceName);
104
+ }
105
+ get isTemplateQueryIdValid() {
106
+ if (this.dataSpaceEntity) {
107
+ return this.graphManagerExtension.IsTemplateQueryIdValid(this.dataSpaceEntity, this.templateQueryId);
108
+ }
109
+ return false;
110
+ }
111
+ *initialize(queryId, dataSpacePath) {
112
+ if (!this.initState.isInInitialState) {
113
+ return;
114
+ }
115
+ try {
116
+ this.initState.inProgress();
117
+ yield this.graphManagerState.graphManager.initialize({
118
+ env: this.applicationStore.config.env,
119
+ tabSize: DEFAULT_TAB_SIZE,
120
+ clientConfig: {
121
+ baseUrl: this.applicationStore.config.engineServerUrl,
122
+ queryBaseUrl: this.applicationStore.config.engineQueryServerUrl,
123
+ enableCompression: true,
124
+ },
125
+ }, {
126
+ tracerService: this.applicationStore.tracerService,
127
+ });
128
+ this.dataSpacePath = dataSpacePath;
129
+ if (queryId) {
130
+ let query;
131
+ try {
132
+ query = (yield this.graphManagerState.graphManager.getLightQuery(queryId));
133
+ }
134
+ catch {
135
+ query = undefined;
136
+ }
137
+ if (query) {
138
+ yield flowResult(this.loadQuery(query));
139
+ }
140
+ else {
141
+ this.applicationStore.navigationService.navigator.updateCurrentLocation(generateDataSpaceQuerySetupRoute());
142
+ }
143
+ }
144
+ if (this.currentQuery) {
145
+ this.currentQueryProject = StoreProjectData.serialization.fromJson((yield this.depotServerClient.getProject(this.currentQuery.groupId, this.currentQuery.artifactId)));
146
+ const projectData = (yield Promise.all([
147
+ this.depotServerClient.getVersionEntities(this.currentQuery.groupId, this.currentQuery.artifactId, this.currentQuery.versionId),
148
+ this.sdlcServerClient.getConfiguration(this.currentQueryProject.projectId, undefined),
149
+ ]));
150
+ const [currentProjectEntities, currentProjectConfiguration] = [
151
+ projectData[0],
152
+ ProjectConfiguration.serialization.fromJson(projectData[1]),
153
+ ];
154
+ this.currentProjectConfiguration = currentProjectConfiguration;
155
+ const dependencyEntities = (yield this.depotServerClient.collectDependencyEntities([
156
+ ...currentProjectConfiguration.projectDependencies,
157
+ ]
158
+ .map(projectDependencyToProjectCoordinates)
159
+ .map((p) => ProjectDependencyCoordinates.serialization.toJson(p)), true, true))
160
+ .map((p) => ProjectVersionEntities.serialization.fromJson(p))
161
+ .flatMap((info) => info.entities);
162
+ this.dependencyEntities = dependencyEntities;
163
+ this.currentProjectEntities = currentProjectEntities;
164
+ this.dataSpaceEntity = guaranteeNonNullable(currentProjectEntities.filter((entity) => entity.path === dataSpacePath &&
165
+ entity.classifierPath === DATA_SPACE_ELEMENT_CLASSIFIER_PATH)[0], `Can't find dataSpace entity with path ${this.dataSpaceEntity}`);
166
+ this.initState.pass();
167
+ }
168
+ }
169
+ catch (error) {
170
+ assertErrorThrown(error);
171
+ this.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.GENERIC_FAILURE), error);
172
+ this.applicationStore.alertService.setBlockingAlert({
173
+ message: `Can't initialize template query promotion reviewer store`,
174
+ });
175
+ this.initState.fail();
176
+ }
177
+ }
178
+ *loadQuery(query) {
179
+ this.currentQuery = query;
180
+ this.templateQueryTitle = query.name;
181
+ try {
182
+ this.loadQueryState.inProgress();
183
+ this.currentQueryInfo =
184
+ (yield this.graphManagerState.graphManager.getQueryInfo(query.id));
185
+ this.currentQueryProject = StoreProjectData.serialization.fromJson((yield this.depotServerClient.getProject(this.currentQuery.groupId, this.currentQuery.artifactId)));
186
+ this.setWorkspaceName(`${DEFAULT_WORKSPACE_NAME_PREFIX}-${query.name}`);
187
+ this.applicationStore.navigationService.navigator.updateCurrentLocation(generateDataSpaceTemplateQueryPromotionRoute(this.currentQuery.groupId, this.currentQuery.artifactId, this.currentQuery.versionId, this.dataSpacePath, query.id));
188
+ const currentProject = Project.serialization.fromJson((yield this.sdlcServerClient.getProject(this.currentQueryProject.projectId)));
189
+ yield flowResult(this.loadProject(currentProject));
190
+ }
191
+ catch (error) {
192
+ assertErrorThrown(error);
193
+ this.applicationStore.notificationService.notifyError(error);
194
+ }
195
+ finally {
196
+ this.loadQueryState.complete();
197
+ }
198
+ }
199
+ *loadProject(project) {
200
+ this.currentProject = project;
201
+ this.currentProjectConfigurationStatus = undefined;
202
+ this.loadWorkspacesState.inProgress();
203
+ try {
204
+ this.currentProjectConfigurationStatus =
205
+ (yield fetchProjectConfigurationStatus(project.projectId, undefined, this.applicationStore, this.sdlcServerClient));
206
+ this.groupWorkspaces = (yield this.sdlcServerClient.getGroupWorkspaces(project.projectId))
207
+ .map((v) => Workspace.serialization.fromJson(v))
208
+ .filter((workspace) => workspace.workspaceType === WorkspaceType.GROUP);
209
+ this.loadWorkspacesState.pass();
210
+ }
211
+ catch (error) {
212
+ assertErrorThrown(error);
213
+ this.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
214
+ this.applicationStore.notificationService.notifyError(error);
215
+ this.loadWorkspacesState.fail();
216
+ }
217
+ }
218
+ *promoteAsTemplateQuery() {
219
+ const query = this.currentQuery;
220
+ const project = this.currentProject;
221
+ if (this.promoteState.isInProgress ||
222
+ !query ||
223
+ !this.currentQueryInfo ||
224
+ !this.currentProjectConfiguration ||
225
+ !project ||
226
+ !this.workspaceName ||
227
+ !this.templateQueryTitle ||
228
+ !this.dataSpaceEntity ||
229
+ !this.isWorkspaceNameValid ||
230
+ !this.isTemplateQueryIdValid) {
231
+ return;
232
+ }
233
+ try {
234
+ this.promoteState.inProgress();
235
+ // 1. prepare project entities
236
+ this.applicationStore.alertService.setBlockingAlert({
237
+ message: `Fetching and updating project...`,
238
+ prompt: 'Please do not close the application',
239
+ showLoading: true,
240
+ });
241
+ // update datasapce entity
242
+ const updatedDataSpaceEntity = (yield this.graphManagerExtension.addNewExecutableToDataSpaceEntity(this.dataSpaceEntity, {
243
+ id: this.templateQueryId,
244
+ title: this.templateQueryTitle,
245
+ mapping: guaranteeNonNullable(this.currentQueryInfo).mapping,
246
+ runtime: guaranteeNonNullable(this.currentQueryInfo).runtime,
247
+ query: (yield this.graphManagerState.graphManager.pureCodeToLambda(this.currentQueryInfo.content)),
248
+ description: this.templateQueryDescription,
249
+ }));
250
+ guaranteeNonNullable(this.currentProjectEntities.filter((entity) => entity.path === this.dataSpacePath &&
251
+ entity.classifierPath === DATA_SPACE_ELEMENT_CLASSIFIER_PATH)[0]).content = updatedDataSpaceEntity.content;
252
+ // 2. check if the graph compiles properly
253
+ this.applicationStore.alertService.setBlockingAlert({
254
+ message: `Checking workspace compilation status...`,
255
+ prompt: 'Please do not close the application',
256
+ showLoading: true,
257
+ });
258
+ let compilationFailed = false;
259
+ try {
260
+ yield this.graphManagerState.graphManager.compileEntities([
261
+ ...this.dependencyEntities,
262
+ ...this.currentProjectEntities,
263
+ ]);
264
+ }
265
+ catch {
266
+ compilationFailed = true;
267
+ }
268
+ // 3. proceed to setup the workspace
269
+ const setupWorkspace = async () => {
270
+ let workspace;
271
+ try {
272
+ this.applicationStore.alertService.setBlockingAlert({
273
+ message: `Creating workspace...`,
274
+ prompt: 'Please do not close the application',
275
+ showLoading: true,
276
+ });
277
+ // i. create workspace
278
+ workspace = Workspace.serialization.fromJson(await this.sdlcServerClient.createWorkspace(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
279
+ // ii. update dataspace
280
+ this.applicationStore.alertService.setBlockingAlert({
281
+ message: `Generating code commit...`,
282
+ prompt: 'Please do not close the application',
283
+ showLoading: true,
284
+ });
285
+ await this.sdlcServerClient.performEntityChanges(project.projectId, workspace, {
286
+ message: 'promote-as-template-query: promote query as a template query to dataspace',
287
+ entityChanges: [
288
+ {
289
+ classifierPath: updatedDataSpaceEntity.classifierPath,
290
+ entityPath: updatedDataSpaceEntity.path,
291
+ content: updatedDataSpaceEntity.content,
292
+ type: EntityChangeType.MODIFY,
293
+ },
294
+ ],
295
+ });
296
+ // iii create review
297
+ this.applicationStore.alertService.setBlockingAlert({
298
+ message: `Generating code review...`,
299
+ prompt: 'Please do not close the application',
300
+ showLoading: true,
301
+ });
302
+ await flowResult(this.editorStore.initialize(project.projectId, undefined, workspace.workspaceId, workspace.workspaceType));
303
+ const workspaceReviewState = this.editorStore.workspaceReviewState;
304
+ const workspaceContainsSnapshotDependencies = this.editorStore.projectConfigurationEditorState
305
+ .containsSnapshotDependencies;
306
+ const isCreateReviewDisabled = Boolean(workspaceReviewState.workspaceReview) ||
307
+ workspaceContainsSnapshotDependencies ||
308
+ !workspaceReviewState.canCreateReview ||
309
+ workspaceReviewState.sdlcState.isActiveProjectSandbox;
310
+ workspaceReviewState.reviewTitle =
311
+ 'code review - promote query as a template query to dataspace';
312
+ if (!isCreateReviewDisabled) {
313
+ await flowResult(workspaceReviewState.createWorkspaceReview(workspaceReviewState.reviewTitle));
314
+ }
315
+ else {
316
+ this.applicationStore.notificationService.notifyError(`Can't create code review`);
317
+ }
318
+ // iv. complete, redirect user to the service query editor screen
319
+ this.applicationStore.alertService.setBlockingAlert(undefined);
320
+ this.promoteState.pass();
321
+ this.applicationStore.alertService.setActionAlertInfo({
322
+ message: `Successfully promoted query into dataspace '${this.dataSpacePath}'. Now your template query can be found in workspace '${this.workspaceName}' of project '${project.name}' (${project.projectId})`,
323
+ prompt: compilationFailed
324
+ ? `The workspace might not compile at the moment, please make sure to fix the issue and submit a review to make the dataspace part of the project to complete template query promotion`
325
+ : `Please make sure to get the generated code-review reviewed and approved`,
326
+ type: ActionAlertType.STANDARD,
327
+ actions: compilationFailed
328
+ ? [
329
+ {
330
+ label: 'Open Workspace',
331
+ type: ActionAlertActionType.PROCEED,
332
+ handler: () => {
333
+ this.applicationStore.navigationService.navigator.goToLocation(generateEditorRoute(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
334
+ },
335
+ default: true,
336
+ },
337
+ ]
338
+ : [
339
+ {
340
+ label: 'Open Code Review',
341
+ type: ActionAlertActionType.PROCEED,
342
+ handler: () => {
343
+ if (workspaceReviewState.workspaceReview) {
344
+ this.applicationStore.navigationService.navigator.visitAddress(this.applicationStore.navigationService.navigator.generateAddress(generateReviewRoute(workspaceReviewState.workspaceReview.projectId, workspaceReviewState.workspaceReview.id)));
345
+ }
346
+ },
347
+ default: true,
348
+ },
349
+ {
350
+ label: 'Open Workspace',
351
+ type: ActionAlertActionType.PROCEED,
352
+ handler: () => {
353
+ this.applicationStore.navigationService.navigator.goToLocation(generateEditorRoute(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
354
+ },
355
+ },
356
+ ],
357
+ });
358
+ }
359
+ catch (error) {
360
+ assertErrorThrown(error);
361
+ this.applicationStore.alertService.setBlockingAlert(undefined);
362
+ this.applicationStore.notificationService.notifyError(`Can't set up workspace: ${error.message}`);
363
+ if (workspace) {
364
+ await this.sdlcServerClient.deleteWorkspace(project.projectId, workspace);
365
+ }
366
+ this.promoteState.fail();
367
+ }
368
+ };
369
+ this.applicationStore.alertService.setBlockingAlert(undefined);
370
+ if (compilationFailed) {
371
+ this.applicationStore.alertService.setActionAlertInfo({
372
+ message: `We have found compilation issues with the workspace. Your query can still be promoted, but you would need to fix compilation issues afterwards`,
373
+ prompt: `Do you still want to proceed to promote the query as a template query?`,
374
+ type: ActionAlertType.STANDARD,
375
+ actions: [
376
+ {
377
+ label: `Proceed`,
378
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
379
+ handler: () => {
380
+ setupWorkspace().catch(this.applicationStore.alertUnhandledError);
381
+ },
382
+ },
383
+ {
384
+ label: 'Abort',
385
+ type: ActionAlertActionType.PROCEED,
386
+ handler: () => {
387
+ this.promoteState.fail();
388
+ },
389
+ default: true,
390
+ },
391
+ ],
392
+ });
393
+ }
394
+ else {
395
+ yield setupWorkspace();
396
+ }
397
+ this.promoteState.pass();
398
+ }
399
+ catch (error) {
400
+ assertErrorThrown(error);
401
+ this.applicationStore.alertService.setBlockingAlert(undefined);
402
+ this.applicationStore.notificationService.notifyError(error);
403
+ this.promoteState.fail();
404
+ }
405
+ }
406
+ }
407
+ //# sourceMappingURL=DataSpaceTemplateQueryPromotionReviewerStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSpaceTemplateQueryPromotionReviewerStore.js","sourceRoot":"","sources":["../../../src/stores/query/DataSpaceTemplateQueryPromotionReviewerStore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-extension-dsl-data-space",
3
- "version": "10.2.0",
3
+ "version": "10.2.1",
4
4
  "description": "Legend extension for Data Space DSL",
5
5
  "keywords": [
6
6
  "legend",
@@ -45,14 +45,15 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@finos/legend-application": "15.0.74",
48
- "@finos/legend-application-query": "13.3.1",
49
- "@finos/legend-application-studio": "28.16.9",
48
+ "@finos/legend-application-query": "13.3.2",
49
+ "@finos/legend-application-studio": "28.16.10",
50
50
  "@finos/legend-art": "7.1.26",
51
- "@finos/legend-extension-dsl-diagram": "8.0.153",
52
- "@finos/legend-graph": "31.9.8",
53
- "@finos/legend-lego": "1.2.21",
54
- "@finos/legend-query-builder": "4.14.22",
51
+ "@finos/legend-extension-dsl-diagram": "8.0.154",
52
+ "@finos/legend-graph": "31.9.9",
53
+ "@finos/legend-lego": "1.2.22",
54
+ "@finos/legend-query-builder": "4.14.23",
55
55
  "@finos/legend-server-depot": "6.0.39",
56
+ "@finos/legend-server-sdlc": "5.3.10",
56
57
  "@finos/legend-shared": "10.0.34",
57
58
  "@finos/legend-storage": "3.0.84",
58
59
  "@types/react": "18.2.31",
@@ -29,7 +29,6 @@ export enum DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN {
29
29
  DATA_SPACE_PATH = 'dataSpacePath',
30
30
  EXECUTION_CONTEXT = 'executionContext',
31
31
  RUNTIME_PATH = 'runtimePath',
32
- TEMPLATE = 'template',
33
32
  }
34
33
 
35
34
  export enum DATA_SPACE_QUERY_CREATOR_QUERY_PARAM_TOKEN {
@@ -39,7 +38,14 @@ export enum DATA_SPACE_QUERY_CREATOR_QUERY_PARAM_TOKEN {
39
38
  export enum DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN {
40
39
  GAV = 'gav',
41
40
  DATA_SPACE_PATH = 'dataSpacePath',
42
- TEMPLATE_QUERY_TITLE = 'templateQueryTitle',
41
+ TEMPLATE = 'template',
42
+ TEMPLATE_QUERY_ID = 'templateQueryId',
43
+ }
44
+
45
+ export enum DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN {
46
+ GAV = 'gav',
47
+ DATA_SPACE_PATH = 'dataSpacePath',
48
+ QUERY_ID = 'queryId',
43
49
  }
44
50
 
45
51
  export type DataSpaceQueryCreatorPathParams = {
@@ -52,7 +58,13 @@ export type DataSpaceQueryCreatorPathParams = {
52
58
  export type DataSpaceTemplateQueryCreatorPathParams = {
53
59
  [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV]: string;
54
60
  [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]: string;
55
- [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE]: string;
61
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_ID]: string;
62
+ };
63
+
64
+ export type DataSpaceTemplateQueryPromotionReviewerPathParams = {
65
+ [DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.GAV]: string;
66
+ [DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]: string;
67
+ [DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.QUERY_ID]: string;
56
68
  };
57
69
 
58
70
  export type DataSpaceQueryEditorQueryParams = {
@@ -62,7 +74,8 @@ export type DataSpaceQueryEditorQueryParams = {
62
74
  export const DATA_SPACE_QUERY_ROUTE_PATTERN = Object.freeze({
63
75
  SETUP: `/dataspace`,
64
76
  CREATE: `/dataspace/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.EXECUTION_CONTEXT}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.RUNTIME_PATH}?`,
65
- TEMPLATE_QUERY: `/dataspace/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH}/:${DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE}`,
77
+ TEMPLATE_QUERY: `/dataspace/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE}/:${DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_ID}`,
78
+ PROMOTE_TEMPLATE_QUERY: `/promote-template-query/:${DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.GAV}/:${DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH}/:${DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.QUERY_ID}?`,
66
79
  });
67
80
 
68
81
  export const generateDataSpaceQuerySetupRoute = (): string =>
@@ -106,7 +119,7 @@ export const generateDataSpaceTemplateQueryCreatorRoute = (
106
119
  artifactId: string,
107
120
  versionId: string,
108
121
  dataSpacePath: string,
109
- templateQueryTitle: string,
122
+ templateQueryId: string,
110
123
  ): string =>
111
124
  generatePath(
112
125
  generateExtensionUrlPattern(DATA_SPACE_QUERY_ROUTE_PATTERN.TEMPLATE_QUERY),
@@ -115,9 +128,30 @@ export const generateDataSpaceTemplateQueryCreatorRoute = (
115
128
  generateGAVCoordinates(groupId, artifactId, versionId),
116
129
  [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]:
117
130
  dataSpacePath,
118
- [DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE]:
119
- DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE,
120
- [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_TITLE]:
121
- templateQueryTitle,
131
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE]:
132
+ DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE,
133
+ [DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_ID]:
134
+ templateQueryId,
135
+ },
136
+ );
137
+
138
+ export const generateDataSpaceTemplateQueryPromotionRoute = (
139
+ groupId: string,
140
+ artifactId: string,
141
+ versionId: string,
142
+ dataSpacePath: string,
143
+ queryId: string | undefined,
144
+ ): string =>
145
+ generatePath(
146
+ generateExtensionUrlPattern(
147
+ DATA_SPACE_QUERY_ROUTE_PATTERN.PROMOTE_TEMPLATE_QUERY,
148
+ ),
149
+ {
150
+ [DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.GAV]:
151
+ generateGAVCoordinates(groupId, artifactId, versionId),
152
+ [DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH]:
153
+ dataSpacePath,
154
+ [DATA_SPACE_TEMPLATE_QUERY_PROMOTION_ROUTE_PATTERN_TOKEN.QUERY_ID]:
155
+ queryId,
122
156
  },
123
157
  );
@@ -161,6 +161,7 @@ export class DSL_DataSpace_LegendApplicationPlugin
161
161
  ? executableTemplates.map(
162
162
  (e) =>
163
163
  ({
164
+ id: e.id,
164
165
  title: e.title,
165
166
  description: e.description,
166
167
  query: e.query,