@finos/legend-extension-dsl-data-space-studio 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.d.ts +17 -0
  4. package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.d.ts.map +1 -0
  5. package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.js +54 -0
  6. package/lib/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.js.map +1 -0
  7. package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.d.ts +21 -0
  8. package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.d.ts.map +1 -0
  9. package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.js +22 -0
  10. package/lib/__lib__/DSL_DataSpace_LegendStudioDocumentation.js.map +1 -0
  11. package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts +39 -0
  12. package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.d.ts.map +1 -0
  13. package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.js +206 -0
  14. package/lib/components/DSL_DataSpace_LegendStudioApplicationPlugin.js.map +1 -0
  15. package/lib/components/DataSpacePreviewAction.d.ts +25 -0
  16. package/lib/components/DataSpacePreviewAction.d.ts.map +1 -0
  17. package/lib/components/DataSpacePreviewAction.js +53 -0
  18. package/lib/components/DataSpacePreviewAction.js.map +1 -0
  19. package/lib/components/DataSpaceQueryAction.d.ts +24 -0
  20. package/lib/components/DataSpaceQueryAction.d.ts.map +1 -0
  21. package/lib/components/DataSpaceQueryAction.js +52 -0
  22. package/lib/components/DataSpaceQueryAction.js.map +1 -0
  23. package/lib/components/DataSpaceTemplateQueryPromoteReview.d.ts +19 -0
  24. package/lib/components/DataSpaceTemplateQueryPromoteReview.d.ts.map +1 -0
  25. package/lib/components/DataSpaceTemplateQueryPromoteReview.js +81 -0
  26. package/lib/components/DataSpaceTemplateQueryPromoteReview.js.map +1 -0
  27. package/lib/index.css +17 -0
  28. package/lib/index.css.map +1 -0
  29. package/lib/index.d.ts +17 -0
  30. package/lib/index.d.ts.map +1 -0
  31. package/lib/index.js +17 -0
  32. package/lib/index.js.map +1 -0
  33. package/lib/package.json +75 -0
  34. package/lib/stores/DataSpacePreviewState.d.ts +33 -0
  35. package/lib/stores/DataSpacePreviewState.d.ts.map +1 -0
  36. package/lib/stores/DataSpacePreviewState.js +116 -0
  37. package/lib/stores/DataSpacePreviewState.js.map +1 -0
  38. package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.d.ts +61 -0
  39. package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.d.ts.map +1 -0
  40. package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.js +406 -0
  41. package/lib/stores/DataSpaceTemplateQueryPromotionReviewerStore.js.map +1 -0
  42. package/package.json +75 -0
  43. package/src/__lib__/DSL_DataSpace_LegendStudioCodeSnippet.ts +54 -0
  44. package/src/__lib__/DSL_DataSpace_LegendStudioDocumentation.ts +21 -0
  45. package/src/components/DSL_DataSpace_LegendStudioApplicationPlugin.tsx +299 -0
  46. package/src/components/DataSpacePreviewAction.tsx +136 -0
  47. package/src/components/DataSpaceQueryAction.tsx +100 -0
  48. package/src/components/DataSpaceTemplateQueryPromoteReview.tsx +292 -0
  49. package/src/index.ts +17 -0
  50. package/src/stores/DataSpacePreviewState.ts +199 -0
  51. package/src/stores/DataSpaceTemplateQueryPromotionReviewerStore.ts +636 -0
  52. package/tsconfig.json +54 -0
  53. package/tsconfig.package.json +37 -0
@@ -0,0 +1,61 @@
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 { type LightQuery, type QueryInfo, GraphManagerState } from '@finos/legend-graph';
17
+ import { type DepotServerClient, StoreProjectData } from '@finos/legend-server-depot';
18
+ import { ActionState, type GeneratorFn } from '@finos/legend-shared';
19
+ import { type Entity } from '@finos/legend-storage';
20
+ import { type ProjectConfigurationStatus, type LegendStudioApplicationStore, EditorStore } from '@finos/legend-application-studio';
21
+ import { type SDLCServerClient, Project, Workspace, ProjectConfiguration } from '@finos/legend-server-sdlc';
22
+ import { type DSL_DataSpace_PureGraphManagerExtension } from '@finos/legend-extension-dsl-data-space/graph';
23
+ export declare class DataSpaceTemplateQueryPromotionReviewerStore {
24
+ readonly applicationStore: LegendStudioApplicationStore;
25
+ readonly sdlcServerClient: SDLCServerClient;
26
+ readonly depotServerClient: DepotServerClient;
27
+ readonly graphManagerState: GraphManagerState;
28
+ readonly initState: ActionState;
29
+ readonly promoteState: ActionState;
30
+ readonly loadQueryState: ActionState;
31
+ readonly loadWorkspacesState: ActionState;
32
+ editorStore: EditorStore;
33
+ graphManagerExtension: DSL_DataSpace_PureGraphManagerExtension;
34
+ currentQuery?: LightQuery | undefined;
35
+ currentQueryInfo?: QueryInfo | undefined;
36
+ currentQueryProject?: StoreProjectData | undefined;
37
+ currentProject?: Project | undefined;
38
+ currentProjectConfiguration?: ProjectConfiguration;
39
+ currentProjectConfigurationStatus?: ProjectConfigurationStatus | undefined;
40
+ currentProjectEntities: Entity[];
41
+ dependencyEntities: Entity[];
42
+ groupWorkspaces: Workspace[];
43
+ workspaceName: string;
44
+ dataSpacePath: string;
45
+ dataSpaceEntity: Entity | undefined;
46
+ templateQueryId: string;
47
+ templateQueryTitle: string;
48
+ templateQueryDescription: string;
49
+ constructor(applicationStore: LegendStudioApplicationStore, sdlcServerClient: SDLCServerClient, depotServerClient: DepotServerClient);
50
+ setWorkspaceName(val: string): void;
51
+ setTemplateQueryId(val: string): void;
52
+ setTemplateQueryTitle(val: string): void;
53
+ setTemplateQueryDescription(val: string): void;
54
+ get isWorkspaceNameValid(): boolean;
55
+ get isTemplateQueryIdValid(): boolean;
56
+ initialize(queryId: string | undefined, dataSpacePath: string): GeneratorFn<void>;
57
+ loadQuery(query: LightQuery): GeneratorFn<void>;
58
+ loadProject(project: Project): GeneratorFn<void>;
59
+ promoteAsTemplateQuery(): GeneratorFn<void>;
60
+ }
61
+ //# sourceMappingURL=DataSpaceTemplateQueryPromotionReviewerStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSpaceTemplateQueryPromotionReviewerStore.d.ts","sourceRoot":"","sources":["../../src/stores/DataSpaceTemplateQueryPromotionReviewerStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EAEd,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,iBAAiB,EACtB,gBAAgB,EAGjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,WAAW,EAIX,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,KAAK,0BAA0B,EAI/B,KAAK,4BAA4B,EACjC,WAAW,EAEZ,MAAM,kCAAkC,CAAC;AAc1C,OAAO,EACL,KAAK,gBAAgB,EAErB,OAAO,EAEP,SAAS,EACT,oBAAoB,EAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,KAAK,uCAAuC,EAC7C,MAAM,8CAA8C,CAAC;AAiBtD,qBAAa,4CAA4C;IACvD,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,SAAS,cAAwB;IAC1C,QAAQ,CAAC,YAAY,cAAwB;IAC7C,QAAQ,CAAC,cAAc,cAAwB;IAC/C,QAAQ,CAAC,mBAAmB,cAAwB;IACpD,WAAW,EAAE,WAAW,CAAC;IACzB,qBAAqB,EAAE,uCAAuC,CAAC;IAC/D,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACzC,mBAAmB,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,2BAA2B,CAAC,EAAE,oBAAoB,CAAC;IACnD,iCAAiC,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC3E,sBAAsB,EAAE,MAAM,EAAE,CAAM;IACtC,kBAAkB,EAAE,MAAM,EAAE,CAAM;IAClC,eAAe,EAAE,SAAS,EAAE,CAAM;IAClC,aAAa,SAAM;IACnB,aAAa,EAAG,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,SAAiB;IAChC,kBAAkB,SAAoB;IACtC,wBAAwB,SAAM;gBAG5B,gBAAgB,EAAE,4BAA4B,EAC9C,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB;IA+CtC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInC,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIrC,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIxC,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI9C,IAAI,oBAAoB,IAAI,OAAO,CAIlC;IAED,IAAI,sBAAsB,IAAI,OAAO,CAQpC;IAEA,UAAU,CACT,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,EAAE,MAAM,GACpB,WAAW,CAAC,IAAI,CAAC;IAsGnB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;IAwC/C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IA+BhD,sBAAsB,IAAI,WAAW,CAAC,IAAI,CAAC;CAqQ7C"}
@@ -0,0 +1,406 @@
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 {} from '@finos/legend-storage';
20
+ import { fetchProjectConfigurationStatus, generateEditorRoute, LEGEND_STUDIO_APP_EVENT, EditorStore, generateReviewRoute, } from '@finos/legend-application-studio';
21
+ import { DEFAULT_TAB_SIZE, ActionAlertType, ActionAlertActionType, } from '@finos/legend-application';
22
+ import { makeObservable, observable, computed, action, flow, flowResult, } from 'mobx';
23
+ import { Project, WorkspaceType, Workspace, ProjectConfiguration, EntityChangeType, } from '@finos/legend-server-sdlc';
24
+ import { DATA_SPACE_ELEMENT_CLASSIFIER_PATH, DSL_DataSpace_getGraphManagerExtension, } from '@finos/legend-extension-dsl-data-space/graph';
25
+ import { generateDataSpaceQuerySetupRoute, generateDataSpaceTemplateQueryPromotionRoute, } from '@finos/legend-extension-dsl-data-space/application';
26
+ const projectDependencyToProjectCoordinates = (projectDependency) => new ProjectDependencyCoordinates(guaranteeNonNullable(projectDependency.groupId), guaranteeNonNullable(projectDependency.artifactId), projectDependency.versionId);
27
+ const DEFAULT_WORKSPACE_NAME_PREFIX = 'promote-as-template-query';
28
+ export class DataSpaceTemplateQueryPromotionReviewerStore {
29
+ applicationStore;
30
+ sdlcServerClient;
31
+ depotServerClient;
32
+ graphManagerState;
33
+ initState = ActionState.create();
34
+ promoteState = ActionState.create();
35
+ loadQueryState = ActionState.create();
36
+ loadWorkspacesState = ActionState.create();
37
+ editorStore;
38
+ graphManagerExtension;
39
+ currentQuery;
40
+ currentQueryInfo;
41
+ currentQueryProject;
42
+ currentProject;
43
+ currentProjectConfiguration;
44
+ currentProjectConfigurationStatus;
45
+ currentProjectEntities = [];
46
+ dependencyEntities = [];
47
+ groupWorkspaces = [];
48
+ workspaceName = '';
49
+ dataSpacePath;
50
+ dataSpaceEntity;
51
+ templateQueryId = 'template_id';
52
+ templateQueryTitle = 'template_title';
53
+ templateQueryDescription = '';
54
+ constructor(applicationStore, sdlcServerClient, depotServerClient) {
55
+ makeObservable(this, {
56
+ editorStore: observable,
57
+ graphManagerExtension: observable,
58
+ currentQuery: observable,
59
+ currentQueryInfo: observable,
60
+ currentQueryProject: observable,
61
+ currentProject: observable,
62
+ currentProjectConfiguration: observable,
63
+ currentProjectConfigurationStatus: observable,
64
+ currentProjectEntities: observable,
65
+ dataSpaceEntity: observable,
66
+ groupWorkspaces: observable,
67
+ workspaceName: observable,
68
+ templateQueryId: observable,
69
+ templateQueryTitle: observable,
70
+ templateQueryDescription: observable,
71
+ isWorkspaceNameValid: computed,
72
+ isTemplateQueryIdValid: computed,
73
+ setWorkspaceName: action,
74
+ setTemplateQueryId: action,
75
+ setTemplateQueryTitle: action,
76
+ setTemplateQueryDescription: action,
77
+ initialize: flow,
78
+ loadQuery: flow,
79
+ loadProject: flow,
80
+ promoteAsTemplateQuery: flow,
81
+ });
82
+ this.applicationStore = applicationStore;
83
+ this.sdlcServerClient = sdlcServerClient;
84
+ this.depotServerClient = depotServerClient;
85
+ this.graphManagerState = new GraphManagerState(applicationStore.pluginManager, applicationStore.logService);
86
+ this.editorStore = new EditorStore(applicationStore, sdlcServerClient, depotServerClient);
87
+ this.graphManagerExtension = DSL_DataSpace_getGraphManagerExtension(this.editorStore.graphManagerState.graphManager);
88
+ }
89
+ setWorkspaceName(val) {
90
+ this.workspaceName = val;
91
+ }
92
+ setTemplateQueryId(val) {
93
+ this.templateQueryId = val;
94
+ }
95
+ setTemplateQueryTitle(val) {
96
+ this.templateQueryTitle = val;
97
+ }
98
+ setTemplateQueryDescription(val) {
99
+ this.templateQueryDescription = val;
100
+ }
101
+ get isWorkspaceNameValid() {
102
+ return !this.groupWorkspaces.some((ws) => ws.workspaceId === this.workspaceName);
103
+ }
104
+ get isTemplateQueryIdValid() {
105
+ if (this.dataSpaceEntity) {
106
+ return this.graphManagerExtension.IsTemplateQueryIdValid(this.dataSpaceEntity, this.templateQueryId);
107
+ }
108
+ return false;
109
+ }
110
+ *initialize(queryId, dataSpacePath) {
111
+ if (!this.initState.isInInitialState) {
112
+ return;
113
+ }
114
+ try {
115
+ this.initState.inProgress();
116
+ yield this.graphManagerState.graphManager.initialize({
117
+ env: this.applicationStore.config.env,
118
+ tabSize: DEFAULT_TAB_SIZE,
119
+ clientConfig: {
120
+ baseUrl: this.applicationStore.config.engineServerUrl,
121
+ queryBaseUrl: this.applicationStore.config.engineQueryServerUrl,
122
+ enableCompression: true,
123
+ },
124
+ }, {
125
+ tracerService: this.applicationStore.tracerService,
126
+ });
127
+ this.dataSpacePath = dataSpacePath;
128
+ if (queryId) {
129
+ let query;
130
+ try {
131
+ query = (yield this.graphManagerState.graphManager.getLightQuery(queryId));
132
+ }
133
+ catch {
134
+ query = undefined;
135
+ }
136
+ if (query) {
137
+ yield flowResult(this.loadQuery(query));
138
+ }
139
+ else {
140
+ this.applicationStore.navigationService.navigator.updateCurrentLocation(generateDataSpaceQuerySetupRoute());
141
+ }
142
+ }
143
+ if (this.currentQuery) {
144
+ this.currentQueryProject = StoreProjectData.serialization.fromJson((yield this.depotServerClient.getProject(this.currentQuery.groupId, this.currentQuery.artifactId)));
145
+ const projectData = (yield Promise.all([
146
+ this.depotServerClient.getVersionEntities(this.currentQuery.groupId, this.currentQuery.artifactId, this.currentQuery.versionId),
147
+ this.sdlcServerClient.getConfiguration(this.currentQueryProject.projectId, undefined),
148
+ ]));
149
+ const [currentProjectEntities, currentProjectConfiguration] = [
150
+ projectData[0],
151
+ ProjectConfiguration.serialization.fromJson(projectData[1]),
152
+ ];
153
+ this.currentProjectConfiguration = currentProjectConfiguration;
154
+ const dependencyEntities = (yield this.depotServerClient.collectDependencyEntities([
155
+ ...currentProjectConfiguration.projectDependencies,
156
+ ]
157
+ .map(projectDependencyToProjectCoordinates)
158
+ .map((p) => ProjectDependencyCoordinates.serialization.toJson(p)), true, true))
159
+ .map((p) => ProjectVersionEntities.serialization.fromJson(p))
160
+ .flatMap((info) => info.entities);
161
+ this.dependencyEntities = dependencyEntities;
162
+ this.currentProjectEntities = currentProjectEntities;
163
+ this.dataSpaceEntity = guaranteeNonNullable(currentProjectEntities.filter((entity) => entity.path === dataSpacePath &&
164
+ entity.classifierPath === DATA_SPACE_ELEMENT_CLASSIFIER_PATH)[0], `Can't find dataSpace entity with path ${this.dataSpaceEntity}`);
165
+ this.initState.pass();
166
+ }
167
+ }
168
+ catch (error) {
169
+ assertErrorThrown(error);
170
+ this.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.GENERIC_FAILURE), error);
171
+ this.applicationStore.alertService.setBlockingAlert({
172
+ message: `Can't initialize template query promotion reviewer store`,
173
+ });
174
+ this.initState.fail();
175
+ }
176
+ }
177
+ *loadQuery(query) {
178
+ this.currentQuery = query;
179
+ this.templateQueryTitle = query.name;
180
+ try {
181
+ this.loadQueryState.inProgress();
182
+ this.currentQueryInfo =
183
+ (yield this.graphManagerState.graphManager.getQueryInfo(query.id));
184
+ this.currentQueryProject = StoreProjectData.serialization.fromJson((yield this.depotServerClient.getProject(this.currentQuery.groupId, this.currentQuery.artifactId)));
185
+ this.setWorkspaceName(`${DEFAULT_WORKSPACE_NAME_PREFIX}-${query.name}`);
186
+ this.applicationStore.navigationService.navigator.updateCurrentLocation(generateDataSpaceTemplateQueryPromotionRoute(this.currentQuery.groupId, this.currentQuery.artifactId, this.currentQuery.versionId, this.dataSpacePath, query.id));
187
+ const currentProject = Project.serialization.fromJson((yield this.sdlcServerClient.getProject(this.currentQueryProject.projectId)));
188
+ yield flowResult(this.loadProject(currentProject));
189
+ }
190
+ catch (error) {
191
+ assertErrorThrown(error);
192
+ this.applicationStore.notificationService.notifyError(error);
193
+ }
194
+ finally {
195
+ this.loadQueryState.complete();
196
+ }
197
+ }
198
+ *loadProject(project) {
199
+ this.currentProject = project;
200
+ this.currentProjectConfigurationStatus = undefined;
201
+ this.loadWorkspacesState.inProgress();
202
+ try {
203
+ this.currentProjectConfigurationStatus =
204
+ (yield fetchProjectConfigurationStatus(project.projectId, undefined, this.applicationStore, this.sdlcServerClient));
205
+ this.groupWorkspaces = (yield this.sdlcServerClient.getGroupWorkspaces(project.projectId))
206
+ .map((v) => Workspace.serialization.fromJson(v))
207
+ .filter((workspace) => workspace.workspaceType === WorkspaceType.GROUP);
208
+ this.loadWorkspacesState.pass();
209
+ }
210
+ catch (error) {
211
+ assertErrorThrown(error);
212
+ this.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
213
+ this.applicationStore.notificationService.notifyError(error);
214
+ this.loadWorkspacesState.fail();
215
+ }
216
+ }
217
+ *promoteAsTemplateQuery() {
218
+ const query = this.currentQuery;
219
+ const project = this.currentProject;
220
+ if (this.promoteState.isInProgress ||
221
+ !query ||
222
+ !this.currentQueryInfo ||
223
+ !this.currentProjectConfiguration ||
224
+ !project ||
225
+ !this.workspaceName ||
226
+ !this.templateQueryTitle ||
227
+ !this.dataSpaceEntity ||
228
+ !this.isWorkspaceNameValid ||
229
+ !this.isTemplateQueryIdValid) {
230
+ return;
231
+ }
232
+ try {
233
+ this.promoteState.inProgress();
234
+ // 1. prepare project entities
235
+ this.applicationStore.alertService.setBlockingAlert({
236
+ message: `Fetching and updating project...`,
237
+ prompt: 'Please do not close the application',
238
+ showLoading: true,
239
+ });
240
+ // update datasapce entity
241
+ const updatedDataSpaceEntity = (yield this.graphManagerExtension.addNewExecutableToDataSpaceEntity(this.dataSpaceEntity, {
242
+ id: this.templateQueryId,
243
+ title: this.templateQueryTitle,
244
+ mapping: guaranteeNonNullable(this.currentQueryInfo).mapping,
245
+ runtime: guaranteeNonNullable(this.currentQueryInfo).runtime,
246
+ query: (yield this.graphManagerState.graphManager.pureCodeToLambda(this.currentQueryInfo.content)),
247
+ description: this.templateQueryDescription,
248
+ }));
249
+ guaranteeNonNullable(this.currentProjectEntities.filter((entity) => entity.path === this.dataSpacePath &&
250
+ entity.classifierPath === DATA_SPACE_ELEMENT_CLASSIFIER_PATH)[0]).content = updatedDataSpaceEntity.content;
251
+ // 2. check if the graph compiles properly
252
+ this.applicationStore.alertService.setBlockingAlert({
253
+ message: `Checking workspace compilation status...`,
254
+ prompt: 'Please do not close the application',
255
+ showLoading: true,
256
+ });
257
+ let compilationFailed = false;
258
+ try {
259
+ yield this.graphManagerState.graphManager.compileEntities([
260
+ ...this.dependencyEntities,
261
+ ...this.currentProjectEntities,
262
+ ]);
263
+ }
264
+ catch {
265
+ compilationFailed = true;
266
+ }
267
+ // 3. proceed to setup the workspace
268
+ const setupWorkspace = async () => {
269
+ let workspace;
270
+ try {
271
+ this.applicationStore.alertService.setBlockingAlert({
272
+ message: `Creating workspace...`,
273
+ prompt: 'Please do not close the application',
274
+ showLoading: true,
275
+ });
276
+ // i. create workspace
277
+ workspace = Workspace.serialization.fromJson(await this.sdlcServerClient.createWorkspace(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
278
+ // ii. update dataspace
279
+ this.applicationStore.alertService.setBlockingAlert({
280
+ message: `Generating code commit...`,
281
+ prompt: 'Please do not close the application',
282
+ showLoading: true,
283
+ });
284
+ await this.sdlcServerClient.performEntityChanges(project.projectId, workspace, {
285
+ message: 'promote-as-template-query: promote query as a template query to dataspace',
286
+ entityChanges: [
287
+ {
288
+ classifierPath: updatedDataSpaceEntity.classifierPath,
289
+ entityPath: updatedDataSpaceEntity.path,
290
+ content: updatedDataSpaceEntity.content,
291
+ type: EntityChangeType.MODIFY,
292
+ },
293
+ ],
294
+ });
295
+ // iii create review
296
+ this.applicationStore.alertService.setBlockingAlert({
297
+ message: `Generating code review...`,
298
+ prompt: 'Please do not close the application',
299
+ showLoading: true,
300
+ });
301
+ await flowResult(this.editorStore.initialize(project.projectId, undefined, workspace.workspaceId, workspace.workspaceType));
302
+ const workspaceReviewState = this.editorStore.workspaceReviewState;
303
+ const workspaceContainsSnapshotDependencies = this.editorStore.projectConfigurationEditorState
304
+ .containsSnapshotDependencies;
305
+ const isCreateReviewDisabled = Boolean(workspaceReviewState.workspaceReview) ||
306
+ workspaceContainsSnapshotDependencies ||
307
+ !workspaceReviewState.canCreateReview ||
308
+ workspaceReviewState.sdlcState.isActiveProjectSandbox;
309
+ workspaceReviewState.reviewTitle =
310
+ 'code review - promote query as a template query to dataspace';
311
+ if (!isCreateReviewDisabled) {
312
+ await flowResult(workspaceReviewState.createWorkspaceReview(workspaceReviewState.reviewTitle));
313
+ }
314
+ else {
315
+ this.applicationStore.notificationService.notifyError(`Can't create code review`);
316
+ }
317
+ // iv. complete, redirect user to the service query editor screen
318
+ this.applicationStore.alertService.setBlockingAlert(undefined);
319
+ this.promoteState.pass();
320
+ this.applicationStore.alertService.setActionAlertInfo({
321
+ 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})`,
322
+ prompt: compilationFailed
323
+ ? `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`
324
+ : `Please make sure to get the generated code-review reviewed and approved`,
325
+ type: ActionAlertType.STANDARD,
326
+ actions: compilationFailed
327
+ ? [
328
+ {
329
+ label: 'Open Workspace',
330
+ type: ActionAlertActionType.PROCEED,
331
+ handler: () => {
332
+ this.applicationStore.navigationService.navigator.goToLocation(generateEditorRoute(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
333
+ },
334
+ default: true,
335
+ },
336
+ ]
337
+ : [
338
+ {
339
+ label: 'Open Code Review',
340
+ type: ActionAlertActionType.PROCEED,
341
+ handler: () => {
342
+ if (workspaceReviewState.workspaceReview) {
343
+ this.applicationStore.navigationService.navigator.visitAddress(this.applicationStore.navigationService.navigator.generateAddress(generateReviewRoute(workspaceReviewState.workspaceReview.projectId, workspaceReviewState.workspaceReview.id)));
344
+ }
345
+ },
346
+ default: true,
347
+ },
348
+ {
349
+ label: 'Open Workspace',
350
+ type: ActionAlertActionType.PROCEED,
351
+ handler: () => {
352
+ this.applicationStore.navigationService.navigator.goToLocation(generateEditorRoute(project.projectId, undefined, this.workspaceName, WorkspaceType.GROUP));
353
+ },
354
+ },
355
+ ],
356
+ });
357
+ }
358
+ catch (error) {
359
+ assertErrorThrown(error);
360
+ this.applicationStore.alertService.setBlockingAlert(undefined);
361
+ this.applicationStore.notificationService.notifyError(`Can't set up workspace: ${error.message}`);
362
+ if (workspace) {
363
+ await this.sdlcServerClient.deleteWorkspace(project.projectId, workspace);
364
+ }
365
+ this.promoteState.fail();
366
+ }
367
+ };
368
+ this.applicationStore.alertService.setBlockingAlert(undefined);
369
+ if (compilationFailed) {
370
+ this.applicationStore.alertService.setActionAlertInfo({
371
+ message: `We have found compilation issues with the workspace. Your query can still be promoted, but you would need to fix compilation issues afterwards`,
372
+ prompt: `Do you still want to proceed to promote the query as a template query?`,
373
+ type: ActionAlertType.STANDARD,
374
+ actions: [
375
+ {
376
+ label: `Proceed`,
377
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
378
+ handler: () => {
379
+ setupWorkspace().catch(this.applicationStore.alertUnhandledError);
380
+ },
381
+ },
382
+ {
383
+ label: 'Abort',
384
+ type: ActionAlertActionType.PROCEED,
385
+ handler: () => {
386
+ this.promoteState.fail();
387
+ },
388
+ default: true,
389
+ },
390
+ ],
391
+ });
392
+ }
393
+ else {
394
+ yield setupWorkspace();
395
+ }
396
+ this.promoteState.pass();
397
+ }
398
+ catch (error) {
399
+ assertErrorThrown(error);
400
+ this.applicationStore.alertService.setBlockingAlert(undefined);
401
+ this.applicationStore.notificationService.notifyError(error);
402
+ this.promoteState.fail();
403
+ }
404
+ }
405
+ }
406
+ //# sourceMappingURL=DataSpaceTemplateQueryPromotionReviewerStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataSpaceTemplateQueryPromotionReviewerStore.js","sourceRoot":"","sources":["../../src/stores/DataSpaceTemplateQueryPromotionReviewerStore.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@finos/legend-extension-dsl-data-space-studio",
3
+ "version": "0.1.0",
4
+ "description": "Legend extension for Data Space DSL - Studio",
5
+ "keywords": [
6
+ "legend",
7
+ "legend-extension",
8
+ "dsl",
9
+ "dsl-data-space",
10
+ "studio"
11
+ ],
12
+ "homepage": "https://github.com/finos/legend-studio/tree/master/packages/legend-extension-dsl-data-space-studio",
13
+ "bugs": {
14
+ "url": "https://github.com/finos/legend-studio/issues"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/finos/legend-studio.git",
19
+ "directory": "packages/legend-extension-dsl-data-space-studio"
20
+ },
21
+ "license": "Apache-2.0",
22
+ "sideEffects": false,
23
+ "type": "module",
24
+ "exports": {
25
+ ".": "./lib/index.js",
26
+ "./lib/index.css": "./lib/index.css"
27
+ },
28
+ "scripts": {
29
+ "build": "yarn clean && yarn build:sass && yarn build:ts",
30
+ "build:sass": "cross-env INIT_CWD=$INIT_CWD node ../../scripts/workflow/buildSass.js",
31
+ "build:ts": "tsc --project ./tsconfig.build.json",
32
+ "clean": "npm-run-all clean:cache clean:lib",
33
+ "clean:cache": "rimraf \"build\"",
34
+ "clean:lib": "rimraf \"lib\"",
35
+ "dev": "npm-run-all --parallel dev:sass dev:ts",
36
+ "dev:sass": "sass style:lib --watch --load-path=../../node_modules/@finos/legend-art/scss",
37
+ "dev:ts": "tsc --watch --preserveWatchOutput",
38
+ "lint:js": "cross-env NODE_ENV=production eslint --cache --cache-location ./build/.eslintcache --report-unused-disable-directives --parser-options=project:\"./tsconfig.json\" \"./src/**/*.{js,ts,tsx}\"",
39
+ "publish:prepare": "node ../../scripts/release/preparePublishContent.js",
40
+ "publish:snapshot": "node ../../scripts/release/publishDevSnapshot.js",
41
+ "test": "jest",
42
+ "test:watch": "jest --watch"
43
+ },
44
+ "dependencies": {
45
+ "@finos/legend-application": "15.0.74",
46
+ "@finos/legend-application-studio": "28.16.12",
47
+ "@finos/legend-art": "7.1.26",
48
+ "@finos/legend-extension-dsl-data-space": "10.3.0",
49
+ "@finos/legend-server-depot": "6.0.39",
50
+ "@finos/legend-server-sdlc": "5.3.10",
51
+ "@finos/legend-shared": "10.0.34",
52
+ "mobx": "6.10.2",
53
+ "mobx-react-lite": "4.0.5"
54
+ },
55
+ "devDependencies": {
56
+ "@finos/legend-dev-utils": "2.1.3",
57
+ "@jest/globals": "29.7.0",
58
+ "cross-env": "7.0.3",
59
+ "eslint": "8.52.0",
60
+ "jest": "29.7.0",
61
+ "npm-run-all": "4.1.5",
62
+ "rimraf": "5.0.5",
63
+ "sass": "1.69.4",
64
+ "typescript": "5.2.2"
65
+ },
66
+ "peerDependencies": {
67
+ "react": "^18.0.0"
68
+ },
69
+ "publishConfig": {
70
+ "directory": "build/publishContent"
71
+ },
72
+ "extensions": {
73
+ "applicationStudioPlugin": "@finos/legend-application-studio-plugin-dsl-data-space"
74
+ }
75
+ }
@@ -0,0 +1,54 @@
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
+
17
+ export const SIMPLE_DATA_SPACE_SNIPPET = `DataSpace \${1:model::NewDataSpace}
18
+ {
19
+ executionContexts:
20
+ [
21
+ {
22
+ name: '\${5:Some Context}';
23
+ title: 'New Execution Context';
24
+ description: 'some information about the execution context';
25
+ mapping: \${6:model::SomeMapping};
26
+ defaultRuntime: \${7:model::SomeRuntime};
27
+ }
28
+ ];
29
+ defaultExecutionContext: '\${5:Some Context}';
30
+ // description: 'description of the data models';
31
+ // diagrams:
32
+ // [
33
+ // {
34
+ // title: 'Some Diagram';
35
+ // description: 'some diagram';
36
+ // diagram: model::SomeDiagram;
37
+ // }
38
+ // ];
39
+ // elements:
40
+ // [
41
+ // model::SomeClass,
42
+ // ];
43
+ // executables:
44
+ // [
45
+ // {
46
+ // title: 'Some Executable';
47
+ // description: 'some executable';
48
+ // executable: model::SomeExecutable;
49
+ // }
50
+ // ];
51
+ // supportInfo: Email {
52
+ // address: 'someEmail@test.org';
53
+ // };
54
+ }`;
@@ -0,0 +1,21 @@
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
+
17
+ export enum DSL_DATA_SPACE_LEGEND_STUDIO_DOCUMENTATION_KEY {
18
+ GRAMMAR_PARSER = 'dsl-dataspace.grammar.parser',
19
+ CONCEPT_ELEMENT_DATA_SPACE = 'dsl-dataspace.concept.element.data-space',
20
+ CURATED_TEMPLATE_QUERY = 'dsl-dataspace.curated-template-query',
21
+ }