@finos/legend-extension-dsl-service 0.0.1

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 (68) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/lib/components/studio/DSL_Service_LegendStudioApplicationPlugin.d.ts +22 -0
  4. package/lib/components/studio/DSL_Service_LegendStudioApplicationPlugin.d.ts.map +1 -0
  5. package/lib/components/studio/DSL_Service_LegendStudioApplicationPlugin.js +59 -0
  6. package/lib/components/studio/DSL_Service_LegendStudioApplicationPlugin.js.map +1 -0
  7. package/lib/components/studio/ServiceQueryEditor.d.ts +25 -0
  8. package/lib/components/studio/ServiceQueryEditor.d.ts.map +1 -0
  9. package/lib/components/studio/ServiceQueryEditor.js +190 -0
  10. package/lib/components/studio/ServiceQueryEditor.js.map +1 -0
  11. package/lib/components/studio/ServiceQueryEditorReviewAction.d.ts +19 -0
  12. package/lib/components/studio/ServiceQueryEditorReviewAction.d.ts.map +1 -0
  13. package/lib/components/studio/ServiceQueryEditorReviewAction.js +71 -0
  14. package/lib/components/studio/ServiceQueryEditorReviewAction.js.map +1 -0
  15. package/lib/components/studio/ServiceQueryEditorStoreProvider.d.ts +31 -0
  16. package/lib/components/studio/ServiceQueryEditorStoreProvider.d.ts.map +1 -0
  17. package/lib/components/studio/ServiceQueryEditorStoreProvider.js +40 -0
  18. package/lib/components/studio/ServiceQueryEditorStoreProvider.js.map +1 -0
  19. package/lib/components/studio/ServiceQueryEditorWorkspaceStatus.d.ts +19 -0
  20. package/lib/components/studio/ServiceQueryEditorWorkspaceStatus.d.ts.map +1 -0
  21. package/lib/components/studio/ServiceQueryEditorWorkspaceStatus.js +69 -0
  22. package/lib/components/studio/ServiceQueryEditorWorkspaceStatus.js.map +1 -0
  23. package/lib/components/studio/UpdateProjectServiceQuerySetup.d.ts +18 -0
  24. package/lib/components/studio/UpdateProjectServiceQuerySetup.d.ts.map +1 -0
  25. package/lib/components/studio/UpdateProjectServiceQuerySetup.js +182 -0
  26. package/lib/components/studio/UpdateProjectServiceQuerySetup.js.map +1 -0
  27. package/lib/components/studio/UpdateServiceQuerySetup.d.ts +18 -0
  28. package/lib/components/studio/UpdateServiceQuerySetup.d.ts.map +1 -0
  29. package/lib/components/studio/UpdateServiceQuerySetup.js +172 -0
  30. package/lib/components/studio/UpdateServiceQuerySetup.js.map +1 -0
  31. package/lib/index.css +17 -0
  32. package/lib/index.css.map +1 -0
  33. package/lib/index.d.ts +17 -0
  34. package/lib/index.d.ts.map +1 -0
  35. package/lib/index.js +17 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/package.json +84 -0
  38. package/lib/stores/studio/DSL_Service_LegendStudioRouter.d.ts +53 -0
  39. package/lib/stores/studio/DSL_Service_LegendStudioRouter.d.ts.map +1 -0
  40. package/lib/stores/studio/DSL_Service_LegendStudioRouter.js +62 -0
  41. package/lib/stores/studio/DSL_Service_LegendStudioRouter.js.map +1 -0
  42. package/lib/stores/studio/ServiceQueryEditorStore.d.ts +64 -0
  43. package/lib/stores/studio/ServiceQueryEditorStore.d.ts.map +1 -0
  44. package/lib/stores/studio/ServiceQueryEditorStore.js +260 -0
  45. package/lib/stores/studio/ServiceQueryEditorStore.js.map +1 -0
  46. package/lib/stores/studio/UpdateProjectServiceQuerySetupStore.d.ts +46 -0
  47. package/lib/stores/studio/UpdateProjectServiceQuerySetupStore.d.ts.map +1 -0
  48. package/lib/stores/studio/UpdateProjectServiceQuerySetupStore.js +184 -0
  49. package/lib/stores/studio/UpdateProjectServiceQuerySetupStore.js.map +1 -0
  50. package/lib/stores/studio/UpdateServiceQuerySetupStore.d.ts +48 -0
  51. package/lib/stores/studio/UpdateServiceQuerySetupStore.d.ts.map +1 -0
  52. package/lib/stores/studio/UpdateServiceQuerySetupStore.js +184 -0
  53. package/lib/stores/studio/UpdateServiceQuerySetupStore.js.map +1 -0
  54. package/package.json +84 -0
  55. package/src/components/studio/DSL_Service_LegendStudioApplicationPlugin.tsx +71 -0
  56. package/src/components/studio/ServiceQueryEditor.tsx +551 -0
  57. package/src/components/studio/ServiceQueryEditorReviewAction.tsx +172 -0
  58. package/src/components/studio/ServiceQueryEditorStoreProvider.tsx +89 -0
  59. package/src/components/studio/ServiceQueryEditorWorkspaceStatus.tsx +121 -0
  60. package/src/components/studio/UpdateProjectServiceQuerySetup.tsx +479 -0
  61. package/src/components/studio/UpdateServiceQuerySetup.tsx +476 -0
  62. package/src/index.ts +17 -0
  63. package/src/stores/studio/DSL_Service_LegendStudioRouter.ts +159 -0
  64. package/src/stores/studio/ServiceQueryEditorStore.ts +487 -0
  65. package/src/stores/studio/UpdateProjectServiceQuerySetupStore.ts +281 -0
  66. package/src/stores/studio/UpdateServiceQuerySetupStore.ts +314 -0
  67. package/tsconfig.json +58 -0
  68. package/tsconfig.package.json +38 -0
@@ -0,0 +1,260 @@
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 { ActionAlertActionType, ActionAlertType, } from '@finos/legend-application';
17
+ import { EditorStore, LEGEND_STUDIO_APP_EVENT, MINIMUM_SERVICE_OWNERS, generateServiceManagementUrl, pureExecution_setFunction, } from '@finos/legend-application-studio';
18
+ import { GraphManagerState, PureExecution, CORE_PURE_PATH, ServiceExecutionMode, } from '@finos/legend-graph';
19
+ import { ServiceQueryBuilderState, } from '@finos/legend-query-builder';
20
+ import { ProjectData, } from '@finos/legend-server-depot';
21
+ import { WorkspaceType, EntityChangeType, } from '@finos/legend-server-sdlc';
22
+ import { assertErrorThrown, assertType, LogEvent, HttpStatus, NetworkClientError, assertNonNullable, ActionState, assertTrue, assertNonEmptyString, guaranteeType, guaranteeNonNullable, } from '@finos/legend-shared';
23
+ import { action, computed, flow, flowResult, makeObservable, observable, } from 'mobx';
24
+ import { parseServiceCoordinates } from './DSL_Service_LegendStudioRouter.js';
25
+ export class ServiceQueryEditorStore extends EditorStore {
26
+ queryBuilderState;
27
+ _service;
28
+ showNewServiceModal = false;
29
+ showServiceRegistrationModal = false;
30
+ registerServiceState = ActionState.create();
31
+ serviceRegistrationEnvConfigs = [];
32
+ currentServiceRegistrationEnvConfig;
33
+ showSubmitReviewModal = false;
34
+ constructor(applicationStore, sdlcServerClient, depotServerClient) {
35
+ const graphManagerState = new GraphManagerState(applicationStore.pluginManager, applicationStore.log);
36
+ super(applicationStore, sdlcServerClient, depotServerClient, graphManagerState);
37
+ makeObservable(this, {
38
+ queryBuilderState: observable,
39
+ _service: observable,
40
+ service: computed,
41
+ showNewServiceModal: observable,
42
+ showServiceRegistrationModal: observable,
43
+ currentServiceRegistrationEnvConfig: observable,
44
+ showSubmitReviewModal: observable,
45
+ setCurrentServiceRegistrationEnvConfig: action,
46
+ setShowNewServiceModal: action,
47
+ setShowServiceRegistrationModal: action,
48
+ setShowSubmitReviewModal: observable,
49
+ initializeWithServiceQuery: flow,
50
+ saveWorkspace: flow,
51
+ recreateWorkspace: flow,
52
+ registerService: flow,
53
+ });
54
+ this.serviceRegistrationEnvConfigs =
55
+ this.applicationStore.config.options.TEMPORARY__serviceRegistrationConfig.filter((config) => config.modes.includes(ServiceExecutionMode.SEMI_INTERACTIVE));
56
+ if (this.serviceRegistrationEnvConfigs.length) {
57
+ this.currentServiceRegistrationEnvConfig =
58
+ this.serviceRegistrationEnvConfigs[0];
59
+ }
60
+ }
61
+ get service() {
62
+ return guaranteeNonNullable(this._service, `Service query editor store has not been initialized properly`);
63
+ }
64
+ setShowNewServiceModal(val) {
65
+ this.showNewServiceModal = val;
66
+ }
67
+ setShowServiceRegistrationModal(val) {
68
+ this.showServiceRegistrationModal = val;
69
+ }
70
+ setCurrentServiceRegistrationEnvConfig(val) {
71
+ this.currentServiceRegistrationEnvConfig = val;
72
+ }
73
+ setShowSubmitReviewModal(val) {
74
+ this.showSubmitReviewModal = val;
75
+ }
76
+ *initializeWithServiceQuery() {
77
+ try {
78
+ const serviceInfo = (yield this.fetchServiceInformation());
79
+ yield flowResult(this.initialize(serviceInfo.projectId, serviceInfo.groupWorkspaceId, WorkspaceType.GROUP));
80
+ // initialize the query builder state
81
+ this._service = this.graphManagerState.graph.getService(serviceInfo.servicePath);
82
+ assertType(this.service.execution, PureExecution, `Can't process service execution: only Pure execution is supported`);
83
+ const queryBuilderState = new ServiceQueryBuilderState(this.applicationStore, this.graphManagerState, this.service, undefined);
84
+ // leverage initialization of query builder state to ensure we handle unsupported queries
85
+ queryBuilderState.initializeWithQuery(this.service.execution.func),
86
+ (this.queryBuilderState = queryBuilderState);
87
+ }
88
+ catch (error) {
89
+ assertErrorThrown(error);
90
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.WORKSPACE_SETUP_FAILURE), error);
91
+ this.applicationStore.notifyError(error);
92
+ }
93
+ }
94
+ *saveWorkspace(serviceEntity, createNew, onSuccess) {
95
+ if (!this.queryBuilderState ||
96
+ this.localChangesState.pushChangesState.isInProgress ||
97
+ this.workspaceUpdaterState.isUpdatingWorkspace) {
98
+ return;
99
+ }
100
+ this.localChangesState.pushChangesState.inProgress();
101
+ this.applicationStore.setBlockingAlert({
102
+ message: `Saving workspace...`,
103
+ prompt: 'Please do not close the application',
104
+ showLoading: true,
105
+ });
106
+ try {
107
+ yield flowResult(this.sdlcState.fetchRemoteWorkspaceRevision(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace));
108
+ if (this.sdlcState.isWorkspaceOutOfSync) {
109
+ return;
110
+ }
111
+ // push the changes
112
+ // NOTE: change detection in query-builder should be enough
113
+ // to make sure that this change is valid
114
+ const entityChange = {
115
+ classifierPath: CORE_PURE_PATH.SERVICE,
116
+ entityPath: serviceEntity.path,
117
+ content: serviceEntity.content,
118
+ type: createNew ? EntityChangeType.CREATE : EntityChangeType.MODIFY,
119
+ };
120
+ const nullableRevisionChange = (yield this.sdlcServerClient.performEntityChanges(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace, {
121
+ message: `updated service ${serviceEntity.path} query`,
122
+ entityChanges: [entityChange],
123
+ revisionId: this.sdlcState.activeRevision.id,
124
+ }));
125
+ assertNonNullable(nullableRevisionChange, `Can't save workspace: empty change set was pushed - this may be due to an error with change detection`);
126
+ this.applicationStore.log.info(LogEvent.create(LEGEND_STUDIO_APP_EVENT.WORKSPACE_LOCAL_CHANGES_PUSHED));
127
+ onSuccess?.();
128
+ }
129
+ catch (error) {
130
+ assertErrorThrown(error);
131
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
132
+ if (error instanceof NetworkClientError &&
133
+ error.response.status === HttpStatus.CONFLICT) {
134
+ // NOTE: a confict here indicates that the reference revision ID sent along with update call
135
+ // does not match the HEAD of the workspace, therefore, we need to prompt user to refresh the application
136
+ this.applicationStore.notifyWarning(`Can't save workspace: current workspace revision is not the latest; please backup your work and refresh the application`);
137
+ }
138
+ else {
139
+ this.applicationStore.notifyError(error);
140
+ }
141
+ }
142
+ finally {
143
+ this.applicationStore.setBlockingAlert(undefined);
144
+ this.localChangesState.pushChangesState.complete();
145
+ }
146
+ }
147
+ *recreateWorkspace() {
148
+ try {
149
+ this.setBlockingAlert({
150
+ message: 'Re-creating workspace...',
151
+ prompt: 'Please do not close the application',
152
+ showLoading: true,
153
+ });
154
+ yield this.sdlcServerClient.deleteWorkspace(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace);
155
+ yield this.sdlcServerClient.createWorkspace(this.sdlcState.activeProject.projectId, this.sdlcState.activeWorkspace.workspaceId, this.sdlcState.activeWorkspace.workspaceType);
156
+ this.applicationStore.navigator.reload();
157
+ }
158
+ catch (error) {
159
+ assertErrorThrown(error);
160
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
161
+ this.applicationStore.notifyError(error);
162
+ }
163
+ finally {
164
+ this.setBlockingAlert(undefined);
165
+ }
166
+ }
167
+ updateServiceQuery() {
168
+ assertNonNullable(this.queryBuilderState, `Service query editor store has not been initialized properly`);
169
+ pureExecution_setFunction(guaranteeType(this.service.execution, PureExecution), this.queryBuilderState.buildQuery());
170
+ }
171
+ *registerService(overridePattern) {
172
+ const registrationConfig = this.currentServiceRegistrationEnvConfig;
173
+ if (registrationConfig) {
174
+ try {
175
+ this.registerServiceState.inProgress();
176
+ // make sure the service query is updated
177
+ this.updateServiceQuery();
178
+ // validate owners
179
+ this.service.owners.forEach((owner) => assertNonEmptyString(owner, `Service can't have an empty owner name`));
180
+ assertTrue(this.service.owners.length >= MINIMUM_SERVICE_OWNERS, `Service needs to have at least 2 owners in order to be registered`);
181
+ this.registerServiceState.setMessage(`Registering service...`);
182
+ const serviceRegistrationResult = (yield this.graphManagerState.graphManager.registerService(this.service, this.graphManagerState.graph, this.projectConfigurationEditorState.currentProjectConfiguration
183
+ .groupId, this.projectConfigurationEditorState.currentProjectConfiguration
184
+ .artifactId, undefined, // if not specified, we will use the latest revision version (i.e. SNAPSHOT/HEAD)
185
+ registrationConfig.executionUrl, ServiceExecutionMode.SEMI_INTERACTIVE, {
186
+ TEMPORARY__semiInteractiveOverridePattern: overridePattern,
187
+ }));
188
+ this.registerServiceState.setMessage(`Activating service...`);
189
+ yield this.graphManagerState.graphManager.activateService(registrationConfig.executionUrl, serviceRegistrationResult.serviceInstanceId);
190
+ this.setShowServiceRegistrationModal(false);
191
+ assertNonEmptyString(serviceRegistrationResult.pattern, 'Service registration pattern is missing or empty');
192
+ this.setActionAlertInfo({
193
+ message: `Service with pattern ${serviceRegistrationResult.pattern} registered and activated`,
194
+ prompt: 'You can now launch and monitor the operation of your service',
195
+ type: ActionAlertType.STANDARD,
196
+ actions: [
197
+ {
198
+ label: 'Launch Service',
199
+ type: ActionAlertActionType.PROCEED,
200
+ handler: () => {
201
+ this.applicationStore.navigator.openNewWindow(generateServiceManagementUrl(registrationConfig.managementUrl, serviceRegistrationResult.pattern));
202
+ },
203
+ default: true,
204
+ },
205
+ {
206
+ label: 'Close',
207
+ type: ActionAlertActionType.PROCEED_WITH_CAUTION,
208
+ },
209
+ ],
210
+ });
211
+ }
212
+ catch (error) {
213
+ assertErrorThrown(error);
214
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SERVICE_REGISTRATION_FAILURE), error);
215
+ this.applicationStore.notifyError(error);
216
+ }
217
+ finally {
218
+ this.registerServiceState.reset();
219
+ this.registerServiceState.setMessage(undefined);
220
+ }
221
+ }
222
+ }
223
+ }
224
+ export class ServiceQueryUpdaterStore extends ServiceQueryEditorStore {
225
+ serviceCoordinates;
226
+ groupWorkspaceId;
227
+ constructor(applicationStore, sdlcServerClient, depotServerClient, serviceCoordinates, groupWorkspaceId) {
228
+ super(applicationStore, sdlcServerClient, depotServerClient);
229
+ this.serviceCoordinates = serviceCoordinates;
230
+ this.groupWorkspaceId = groupWorkspaceId;
231
+ }
232
+ async fetchServiceInformation() {
233
+ const { groupId, artifactId, servicePath } = parseServiceCoordinates(this.serviceCoordinates);
234
+ const project = ProjectData.serialization.fromJson(await this.depotServerClient.getProject(groupId, artifactId));
235
+ return {
236
+ projectId: project.projectId,
237
+ groupWorkspaceId: this.groupWorkspaceId,
238
+ servicePath,
239
+ };
240
+ }
241
+ }
242
+ export class ProjectServiceQueryUpdaterStore extends ServiceQueryEditorStore {
243
+ projectId;
244
+ groupWorkspaceId;
245
+ servicePath;
246
+ constructor(applicationStore, sdlcServerClient, depotServerClient, projectId, groupWorkspaceId, servicePath) {
247
+ super(applicationStore, sdlcServerClient, depotServerClient);
248
+ this.projectId = projectId;
249
+ this.groupWorkspaceId = groupWorkspaceId;
250
+ this.servicePath = servicePath;
251
+ }
252
+ async fetchServiceInformation() {
253
+ return {
254
+ projectId: this.projectId,
255
+ groupWorkspaceId: this.groupWorkspaceId,
256
+ servicePath: this.servicePath,
257
+ };
258
+ }
259
+ }
260
+ //# sourceMappingURL=ServiceQueryEditorStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServiceQueryEditorStore.js","sourceRoot":"","sources":["../../../src/stores/studio/ServiceQueryEditorStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
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 GeneratorFn, ActionState } from '@finos/legend-shared';
17
+ import { type SDLCServerClient, Workspace, Project } from '@finos/legend-server-sdlc';
18
+ import { type LegendStudioApplicationStore } from '@finos/legend-application-studio';
19
+ import type { Entity } from '@finos/legend-storage';
20
+ export declare class UpdateProjectServiceQuerySetupStore {
21
+ applicationStore: LegendStudioApplicationStore;
22
+ sdlcServerClient: SDLCServerClient;
23
+ initState: ActionState;
24
+ loadProjectsState: ActionState;
25
+ projects: Project[];
26
+ currentProject?: Project | undefined;
27
+ loadWorkspacesState: ActionState;
28
+ createWorkspaceState: ActionState;
29
+ groupWorkspaces: Workspace[];
30
+ currentGroupWorkspace?: Workspace | undefined;
31
+ showCreateWorkspaceModal: boolean;
32
+ services: Entity[];
33
+ currentService?: Entity | undefined;
34
+ constructor(applicationStore: LegendStudioApplicationStore, sdlcServerClient: SDLCServerClient);
35
+ setShowCreateWorkspaceModal(val: boolean): void;
36
+ resetCurrentProject(): void;
37
+ resetCurrentGroupWorkspace(): void;
38
+ resetCurrentService(): void;
39
+ initialize(projectId: string | undefined): GeneratorFn<void>;
40
+ loadProjects(searchText: string): GeneratorFn<void>;
41
+ changeProject(project: Project): GeneratorFn<void>;
42
+ changeWorkspace(workspace: Workspace): GeneratorFn<void>;
43
+ changeService(service: Entity): void;
44
+ createWorkspace(projectId: string, workspaceId: string): GeneratorFn<void>;
45
+ }
46
+ //# sourceMappingURL=UpdateProjectServiceQuerySetupStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateProjectServiceQuerySetupStore.d.ts","sourceRoot":"","sources":["../../../src/stores/studio/UpdateProjectServiceQuerySetupStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,KAAK,WAAW,EAEhB,WAAW,EAIZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,gBAAgB,EACrB,SAAS,EAET,OAAO,EACR,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,4BAA4B,EAElC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,qBAAa,mCAAmC;IAC9C,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC,SAAS,cAAwB;IACjC,iBAAiB,cAAwB;IACzC,QAAQ,EAAE,OAAO,EAAE,CAAM;IACzB,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAErC,mBAAmB,cAAwB;IAC3C,oBAAoB,cAAwB;IAC5C,eAAe,EAAE,SAAS,EAAE,CAAM;IAClC,qBAAqB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9C,wBAAwB,UAAS;IAEjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAGlC,gBAAgB,EAAE,4BAA4B,EAC9C,gBAAgB,EAAE,gBAAgB;IA0BpC,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/C,mBAAmB,IAAI,IAAI;IAS3B,0BAA0B,IAAI,IAAI;IAMlC,mBAAmB,IAAI,IAAI;IAI1B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;IAqC5D,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;IAqBnD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IA+ClD,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;IAoBzD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAInC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;CAwC5E"}
@@ -0,0 +1,184 @@
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 { observable, makeObservable, flowResult, flow, action } from 'mobx';
17
+ import { ActionState, assertErrorThrown, guaranteeNonNullable, LogEvent, } from '@finos/legend-shared';
18
+ import { Workspace, WorkspaceType, Project, } from '@finos/legend-server-sdlc';
19
+ import { LEGEND_STUDIO_APP_EVENT, } from '@finos/legend-application-studio';
20
+ import { generateProjectServiceQueryUpdaterSetupRoute } from './DSL_Service_LegendStudioRouter.js';
21
+ import { CORE_PURE_PATH } from '@finos/legend-graph';
22
+ const MINIMUM_PROJECT_LOADER_SEARCH_LENGTH = 3;
23
+ const DEFAULT_PROJECT_LOADER_LIMIT = 10;
24
+ export class UpdateProjectServiceQuerySetupStore {
25
+ applicationStore;
26
+ sdlcServerClient;
27
+ initState = ActionState.create();
28
+ loadProjectsState = ActionState.create();
29
+ projects = [];
30
+ currentProject;
31
+ loadWorkspacesState = ActionState.create();
32
+ createWorkspaceState = ActionState.create();
33
+ groupWorkspaces = [];
34
+ currentGroupWorkspace;
35
+ showCreateWorkspaceModal = false;
36
+ services = [];
37
+ currentService;
38
+ constructor(applicationStore, sdlcServerClient) {
39
+ makeObservable(this, {
40
+ projects: observable,
41
+ currentProject: observable,
42
+ groupWorkspaces: observable,
43
+ currentGroupWorkspace: observable,
44
+ showCreateWorkspaceModal: observable,
45
+ services: observable,
46
+ currentService: observable,
47
+ setShowCreateWorkspaceModal: action,
48
+ resetCurrentProject: action,
49
+ resetCurrentGroupWorkspace: action,
50
+ resetCurrentService: action,
51
+ changeService: action,
52
+ initialize: flow,
53
+ loadProjects: flow,
54
+ changeProject: flow,
55
+ changeWorkspace: flow,
56
+ createWorkspace: flow,
57
+ });
58
+ this.applicationStore = applicationStore;
59
+ this.sdlcServerClient = sdlcServerClient;
60
+ }
61
+ setShowCreateWorkspaceModal(val) {
62
+ this.showCreateWorkspaceModal = val;
63
+ }
64
+ resetCurrentProject() {
65
+ this.currentProject = undefined;
66
+ this.groupWorkspaces = [];
67
+ this.resetCurrentGroupWorkspace();
68
+ this.applicationStore.navigator.goTo(generateProjectServiceQueryUpdaterSetupRoute(undefined));
69
+ }
70
+ resetCurrentGroupWorkspace() {
71
+ this.currentGroupWorkspace = undefined;
72
+ this.services = [];
73
+ this.resetCurrentService();
74
+ }
75
+ resetCurrentService() {
76
+ this.currentService = undefined;
77
+ }
78
+ *initialize(projectId) {
79
+ if (!this.initState.isInInitialState) {
80
+ return;
81
+ }
82
+ this.initState.inProgress();
83
+ try {
84
+ if (projectId) {
85
+ let project;
86
+ try {
87
+ project = Project.serialization.fromJson((yield this.sdlcServerClient.getProject(projectId)));
88
+ }
89
+ catch {
90
+ this.applicationStore.navigator.goTo(generateProjectServiceQueryUpdaterSetupRoute(undefined));
91
+ this.initState.pass();
92
+ return;
93
+ }
94
+ yield flowResult(this.changeProject(project));
95
+ }
96
+ this.initState.pass();
97
+ }
98
+ catch (error) {
99
+ assertErrorThrown(error);
100
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
101
+ this.applicationStore.notifyError(error);
102
+ this.initState.fail();
103
+ }
104
+ }
105
+ *loadProjects(searchText) {
106
+ const isValidSearchString = searchText.length >= MINIMUM_PROJECT_LOADER_SEARCH_LENGTH;
107
+ this.loadProjectsState.inProgress();
108
+ try {
109
+ this.projects = (yield this.sdlcServerClient.getProjects(undefined, isValidSearchString ? searchText : undefined, undefined, DEFAULT_PROJECT_LOADER_LIMIT)).map((v) => Project.serialization.fromJson(v));
110
+ this.loadProjectsState.pass();
111
+ }
112
+ catch (error) {
113
+ assertErrorThrown(error);
114
+ this.applicationStore.notifyError(error);
115
+ this.loadProjectsState.fail();
116
+ }
117
+ }
118
+ *changeProject(project) {
119
+ this.currentProject = project;
120
+ this.applicationStore.navigator.goTo(generateProjectServiceQueryUpdaterSetupRoute(project.projectId));
121
+ this.loadWorkspacesState.inProgress();
122
+ try {
123
+ const workspacesInConflictResolutionIds = (yield this.sdlcServerClient.getWorkspacesInConflictResolutionMode(project.projectId)).map((workspace) => workspace.workspaceId);
124
+ this.groupWorkspaces = (yield this.sdlcServerClient.getGroupWorkspaces(project.projectId))
125
+ .map((v) => Workspace.serialization.fromJson(v))
126
+ .filter((workspace) =>
127
+ // NOTE we don't handle workspaces that only have conflict resolution but no standard workspace
128
+ // since that indicates bad state of the SDLC server
129
+ !workspacesInConflictResolutionIds.includes(workspace.workspaceId) && workspace.workspaceType === WorkspaceType.GROUP);
130
+ if (this.groupWorkspaces.length) {
131
+ yield flowResult(this.changeWorkspace(guaranteeNonNullable(this.groupWorkspaces[0])));
132
+ }
133
+ this.loadWorkspacesState.pass();
134
+ }
135
+ catch (error) {
136
+ assertErrorThrown(error);
137
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.SDLC_MANAGER_FAILURE), error);
138
+ this.applicationStore.notifyError(error);
139
+ this.loadWorkspacesState.fail();
140
+ }
141
+ }
142
+ *changeWorkspace(workspace) {
143
+ this.currentGroupWorkspace = workspace;
144
+ try {
145
+ const entities = (yield flowResult(this.sdlcServerClient.getEntities(workspace.projectId, workspace)));
146
+ this.services = entities.filter((entity) => entity.classifierPath === CORE_PURE_PATH.SERVICE);
147
+ if (this.services.length) {
148
+ this.changeService(guaranteeNonNullable(this.services[0]));
149
+ }
150
+ }
151
+ catch {
152
+ this.services = [];
153
+ this.resetCurrentService();
154
+ }
155
+ }
156
+ changeService(service) {
157
+ this.currentService = service;
158
+ }
159
+ *createWorkspace(projectId, workspaceId) {
160
+ this.createWorkspaceState.inProgress();
161
+ try {
162
+ const newGroupWorkspace = Workspace.serialization.fromJson((yield this.sdlcServerClient.createWorkspace(projectId, workspaceId, WorkspaceType.GROUP)));
163
+ this.applicationStore.notifySuccess(`Workspace '${newGroupWorkspace.workspaceId}' is succesfully created`);
164
+ const matchingGroupWorkspace = this.groupWorkspaces.find((workspace) => workspace.workspaceId === newGroupWorkspace.workspaceId);
165
+ const groupWorkspaceToSelect = matchingGroupWorkspace ?? newGroupWorkspace;
166
+ yield flowResult(this.changeWorkspace(groupWorkspaceToSelect));
167
+ this.setShowCreateWorkspaceModal(false);
168
+ // NOTE: do this after closing the modal to not interfere
169
+ // with validation of existing workspaces in create workspace modal
170
+ if (!matchingGroupWorkspace) {
171
+ this.groupWorkspaces.push(newGroupWorkspace);
172
+ }
173
+ }
174
+ catch (error) {
175
+ assertErrorThrown(error);
176
+ this.applicationStore.log.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.WORKSPACE_SETUP_FAILURE), error);
177
+ this.applicationStore.notifyError(error);
178
+ }
179
+ finally {
180
+ this.createWorkspaceState.reset();
181
+ }
182
+ }
183
+ }
184
+ //# sourceMappingURL=UpdateProjectServiceQuerySetupStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateProjectServiceQuerySetupStore.js","sourceRoot":"","sources":["../../../src/stores/studio/UpdateProjectServiceQuerySetupStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
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 GeneratorFn, ActionState } from '@finos/legend-shared';
17
+ import { type DepotServerClient, ProjectData } from '@finos/legend-server-depot';
18
+ import { type ServiceInfo } from '@finos/legend-query-builder';
19
+ import { type SDLCServerClient, Workspace } from '@finos/legend-server-sdlc';
20
+ import { type LegendStudioApplicationStore } from '@finos/legend-application-studio';
21
+ import type { Entity } from '@finos/legend-storage';
22
+ export declare class UpdateServiceQuerySetupStore {
23
+ applicationStore: LegendStudioApplicationStore;
24
+ sdlcServerClient: SDLCServerClient;
25
+ depotServerClient: DepotServerClient;
26
+ initState: ActionState;
27
+ loadServicesState: ActionState;
28
+ services: ServiceInfo[];
29
+ currentProject?: ProjectData | undefined;
30
+ currentSnapshotService?: ServiceInfo | undefined;
31
+ loadWorkspacesState: ActionState;
32
+ createWorkspaceState: ActionState;
33
+ groupWorkspaces: Workspace[];
34
+ currentGroupWorkspace?: Workspace | undefined;
35
+ currentWorkspaceService?: Entity | undefined;
36
+ checkWorkspaceCompatibilityState: ActionState;
37
+ showCreateWorkspaceModal: boolean;
38
+ constructor(applicationStore: LegendStudioApplicationStore, sdlcServerClient: SDLCServerClient, depotServerClient: DepotServerClient);
39
+ setShowCreateWorkspaceModal(val: boolean): void;
40
+ resetCurrentService(): void;
41
+ resetCurrentGroupWorkspace(): void;
42
+ initialize(serviceCoordinates: string | undefined): GeneratorFn<void>;
43
+ loadServices(searchText: string): GeneratorFn<void>;
44
+ changeService(groupId: string, artifactId: string, servicePath: string): GeneratorFn<void>;
45
+ changeWorkspace(workspace: Workspace, servicePath: string): GeneratorFn<void>;
46
+ createWorkspace(projectId: string, workspaceId: string, servicePath: string): GeneratorFn<void>;
47
+ }
48
+ //# sourceMappingURL=UpdateServiceQuerySetupStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UpdateServiceQuerySetupStore.d.ts","sourceRoot":"","sources":["../../../src/stores/studio/UpdateServiceQuerySetupStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,KAAK,WAAW,EAEhB,WAAW,EAIZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,iBAAiB,EAGtB,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,gBAAgB,EACrB,SAAS,EAEV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,4BAA4B,EAElC,MAAM,kCAAkC,CAAC;AAM1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAKpD,qBAAa,4BAA4B;IACvC,gBAAgB,EAAE,4BAA4B,CAAC;IAC/C,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,iBAAiB,EAAE,iBAAiB,CAAC;IAErC,SAAS,cAAwB;IACjC,iBAAiB,cAAwB;IACzC,QAAQ,EAAE,WAAW,EAAE,CAAM;IAC7B,cAAc,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACzC,sBAAsB,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAEjD,mBAAmB,cAAwB;IAC3C,oBAAoB,cAAwB;IAC5C,eAAe,EAAE,SAAS,EAAE,CAAM;IAClC,qBAAqB,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9C,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,gCAAgC,cAAwB;IACxD,wBAAwB,UAAS;gBAG/B,gBAAgB,EAAE,4BAA4B,EAC9C,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB;IAyBtC,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/C,mBAAmB,IAAI,IAAI;IAU3B,0BAA0B,IAAI,IAAI;IAKjC,UAAU,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;IAyBrE,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC;IAyBnD,aAAa,CACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,WAAW,CAAC,IAAI,CAAC;IA2EnB,eAAe,CACd,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,GAClB,WAAW,CAAC,IAAI,CAAC;IAcnB,eAAe,CACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,WAAW,CAAC,IAAI,CAAC;CA0CrB"}