@finos/legend-application-query 13.8.63 → 13.8.65

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 (76) hide show
  1. package/lib/__lib__/LegendQueryNavigation.d.ts +0 -1
  2. package/lib/__lib__/LegendQueryNavigation.d.ts.map +1 -1
  3. package/lib/__lib__/LegendQueryNavigation.js +0 -2
  4. package/lib/__lib__/LegendQueryNavigation.js.map +1 -1
  5. package/lib/__lib__/LegendQueryUserDataHelper.d.ts +12 -2
  6. package/lib/__lib__/LegendQueryUserDataHelper.d.ts.map +1 -1
  7. package/lib/__lib__/LegendQueryUserDataHelper.js +33 -1
  8. package/lib/__lib__/LegendQueryUserDataHelper.js.map +1 -1
  9. package/lib/__lib__/LegendQueryUserDataSpaceHelper.d.ts +10 -0
  10. package/lib/__lib__/LegendQueryUserDataSpaceHelper.d.ts.map +1 -1
  11. package/lib/__lib__/LegendQueryUserDataSpaceHelper.js +5 -0
  12. package/lib/__lib__/LegendQueryUserDataSpaceHelper.js.map +1 -1
  13. package/lib/application/Core_LegendQuery_LegendApplicationPlugin.d.ts +1 -7
  14. package/lib/application/Core_LegendQuery_LegendApplicationPlugin.d.ts.map +1 -1
  15. package/lib/application/Core_LegendQuery_LegendApplicationPlugin.js +1 -10
  16. package/lib/application/Core_LegendQuery_LegendApplicationPlugin.js.map +1 -1
  17. package/lib/application/LegendQueryApplicationConfig.d.ts +1 -24
  18. package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
  19. package/lib/application/LegendQueryApplicationConfig.js +1 -23
  20. package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
  21. package/lib/components/Core_LegendQueryApplicationPlugin.d.ts.map +1 -1
  22. package/lib/components/Core_LegendQueryApplicationPlugin.js +5 -1
  23. package/lib/components/Core_LegendQueryApplicationPlugin.js.map +1 -1
  24. package/lib/components/LegendQueryWebApplication.d.ts.map +1 -1
  25. package/lib/components/LegendQueryWebApplication.js +1 -2
  26. package/lib/components/LegendQueryWebApplication.js.map +1 -1
  27. package/lib/components/data-space/LegendQueryDataSpaceQueryBuilder.d.ts.map +1 -1
  28. package/lib/components/data-space/LegendQueryDataSpaceQueryBuilder.js +15 -12
  29. package/lib/components/data-space/LegendQueryDataSpaceQueryBuilder.js.map +1 -1
  30. package/lib/index.css +2 -2
  31. package/lib/index.css.map +1 -1
  32. package/lib/light-mode.css +1 -1
  33. package/lib/package.json +1 -2
  34. package/lib/stores/QueryEditorStore.d.ts.map +1 -1
  35. package/lib/stores/QueryEditorStore.js +2 -0
  36. package/lib/stores/QueryEditorStore.js.map +1 -1
  37. package/lib/stores/data-space/DataProductQueryCreatorStore.d.ts.map +1 -1
  38. package/lib/stores/data-space/DataProductQueryCreatorStore.js +13 -2
  39. package/lib/stores/data-space/DataProductQueryCreatorStore.js.map +1 -1
  40. package/lib/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.d.ts +33 -1
  41. package/lib/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.d.ts.map +1 -1
  42. package/lib/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.js +120 -3
  43. package/lib/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.js.map +1 -1
  44. package/package.json +14 -15
  45. package/src/__lib__/LegendQueryNavigation.ts +0 -2
  46. package/src/__lib__/LegendQueryUserDataHelper.ts +72 -1
  47. package/src/__lib__/LegendQueryUserDataSpaceHelper.ts +21 -0
  48. package/src/application/Core_LegendQuery_LegendApplicationPlugin.ts +0 -14
  49. package/src/application/LegendQueryApplicationConfig.ts +0 -46
  50. package/src/components/Core_LegendQueryApplicationPlugin.tsx +7 -1
  51. package/src/components/LegendQueryWebApplication.tsx +0 -14
  52. package/src/components/data-space/LegendQueryDataSpaceQueryBuilder.tsx +29 -22
  53. package/src/stores/QueryEditorStore.ts +2 -0
  54. package/src/stores/data-space/DataProductQueryCreatorStore.ts +19 -9
  55. package/src/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.ts +167 -1
  56. package/tsconfig.json +0 -4
  57. package/lib/components/cube/LegendQueryCubePage.d.ts +0 -18
  58. package/lib/components/cube/LegendQueryCubePage.d.ts.map +0 -1
  59. package/lib/components/cube/LegendQueryCubePage.js +0 -31
  60. package/lib/components/cube/LegendQueryCubePage.js.map +0 -1
  61. package/lib/components/cube/LegendQueryCubeRoute.d.ts +0 -18
  62. package/lib/components/cube/LegendQueryCubeRoute.d.ts.map +0 -1
  63. package/lib/components/cube/LegendQueryCubeRoute.js +0 -26
  64. package/lib/components/cube/LegendQueryCubeRoute.js.map +0 -1
  65. package/lib/stores/cube/LegendQueryCubeEntry.d.ts +0 -38
  66. package/lib/stores/cube/LegendQueryCubeEntry.d.ts.map +0 -1
  67. package/lib/stores/cube/LegendQueryCubeEntry.js +0 -59
  68. package/lib/stores/cube/LegendQueryCubeEntry.js.map +0 -1
  69. package/lib/stores/cube/LegendQueryCubeHost.d.ts +0 -45
  70. package/lib/stores/cube/LegendQueryCubeHost.d.ts.map +0 -1
  71. package/lib/stores/cube/LegendQueryCubeHost.js +0 -78
  72. package/lib/stores/cube/LegendQueryCubeHost.js.map +0 -1
  73. package/src/components/cube/LegendQueryCubePage.tsx +0 -40
  74. package/src/components/cube/LegendQueryCubeRoute.tsx +0 -42
  75. package/src/stores/cube/LegendQueryCubeEntry.ts +0 -74
  76. package/src/stores/cube/LegendQueryCubeHost.ts +0 -111
@@ -14,23 +14,30 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { DataSpaceQueryBuilderState, ResolvedDataSpaceEntityWithOrigin, } from '@finos/legend-extension-dsl-data-space/application';
17
- import { DataSpaceServiceExecutableInfo, } from '@finos/legend-extension-dsl-data-space/graph';
17
+ import { DataSpaceServiceExecutableInfo, resolveExecutionContextMapping, } from '@finos/legend-extension-dsl-data-space/graph';
18
18
  import { generateDataSpaceQueryCreatorRoute, generateDataSpaceTemplateQueryCreatorRoute, } from '../../../__lib__/DSL_DataSpace_LegendQueryNavigation.js';
19
19
  import { DataSpaceAdvancedSearchState, } from '@finos/legend-extension-dsl-data-space/application-query';
20
20
  import { resolveVersion, SNAPSHOT_VERSION_ALIAS, } from '@finos/legend-server-depot';
21
- import { GraphDataWithOrigin, INTERNAL_ELEMENT_PATH, LakehouseRuntime, LegendSDLC, RuntimePointer, } from '@finos/legend-graph';
21
+ import { GraphDataWithOrigin, INTERNAL_ELEMENT_PATH, LakehouseRuntime, LegendSDLC, PackageableElementExplicitReference, RuntimePointer, getMappingCompatibleRuntimes, } from '@finos/legend-graph';
22
22
  import {} from '@finos/legend-query-builder';
23
23
  import { renderLegendQueryDataSpaceQueryBuilderSetupPanelContent } from '../../../components/data-space/LegendQueryDataSpaceQueryBuilder.js';
24
24
  import { QueryBuilderActionConfig_QueryApplication } from '../../QueryEditorStore.js';
25
25
  import { createViewProjectHandler, createViewSDLCProjectHandler, } from '../DataSpaceQueryBuilderHelper.js';
26
- import {} from '@finos/legend-shared';
26
+ import { LogEvent, assertErrorThrown, } from '@finos/legend-shared';
27
27
  import { action, flowResult, makeObservable, observable, reaction } from 'mobx';
28
+ import { LegendQueryUserDataHelper } from '../../../__lib__/LegendQueryUserDataHelper.js';
29
+ import { createDataSpaceRuntimePreferenceId } from '../../../__lib__/LegendQueryUserDataSpaceHelper.js';
30
+ import { LEGEND_QUERY_APP_EVENT } from '../../../__lib__/LegendQueryEvent.js';
28
31
  export class LegendQueryDataSpaceQueryBuilderState extends DataSpaceQueryBuilderState {
29
32
  depotServerClient;
30
33
  project;
31
34
  onDataProductChange;
32
35
  productSelectorState;
33
36
  injectedLakehouseRuntime;
37
+ /**
38
+ * The runtime this user saved for the current execution context, if any
39
+ */
40
+ savedRuntimePath;
34
41
  TEMPORARY__setupPanelContentRenderer = () => renderLegendQueryDataSpaceQueryBuilderSetupPanelContent(this);
35
42
  constructor(applicationStore, graphManagerState, workflow, actionConfig, dataSpace, executionContext, isLightGraphEnabled, depotServerClient, project, prioritizeEntityFunc, onDataSpaceChange, productSelectorState, onDataProductChange, dataSpaceAnalysisResult, onExecutionContextChange, onRuntimeChange, onClassChange, config, sourceInfo) {
36
43
  super(applicationStore, graphManagerState, workflow, actionConfig, dataSpace, executionContext, isLightGraphEnabled, prioritizeEntityFunc, onDataSpaceChange, dataSpaceAnalysisResult, onExecutionContextChange, onRuntimeChange, onClassChange, config, sourceInfo);
@@ -41,13 +48,123 @@ export class LegendQueryDataSpaceQueryBuilderState extends DataSpaceQueryBuilder
41
48
  this.injectedLakehouseRuntime = this.resolveInjectedLakehouseRuntime();
42
49
  makeObservable(this, {
43
50
  injectedLakehouseRuntime: observable,
51
+ savedRuntimePath: observable,
44
52
  setInjectedLakehouseRuntime: action,
53
+ setSavedRuntimePath: action,
45
54
  });
46
55
  reaction(() => this.executionContextState.runtimeValue, () => this.setInjectedLakehouseRuntime(this.resolveInjectedLakehouseRuntime()));
47
56
  }
48
57
  setInjectedLakehouseRuntime(val) {
49
58
  this.injectedLakehouseRuntime = val;
50
59
  }
60
+ setSavedRuntimePath(val) {
61
+ this.savedRuntimePath = val;
62
+ }
63
+ /**
64
+ * The runtimes that can run the mapping of the current execution context
65
+ */
66
+ get compatibleRuntimes() {
67
+ const mapping = resolveExecutionContextMapping(this.executionContext);
68
+ if (!mapping) {
69
+ return [];
70
+ }
71
+ const analyzedExecutionContext = this.dataSpaceAnalysisResult
72
+ ? Array.from(this.dataSpaceAnalysisResult.executionContextsIndex.values()).find((context) => context.mapping.path === mapping.path)
73
+ : undefined;
74
+ return (analyzedExecutionContext?.compatibleRuntimes ??
75
+ getMappingCompatibleRuntimes(mapping, this.graphManagerState.usableRuntimes));
76
+ }
77
+ get currentRuntimePath() {
78
+ const runtime = this.executionContextState.runtimeValue;
79
+ return runtime instanceof RuntimePointer
80
+ ? runtime.packageableRuntime.value.path
81
+ : undefined;
82
+ }
83
+ get defaultRuntimePath() {
84
+ return this.executionContext.defaultRuntime?.value.path;
85
+ }
86
+ get runtimePreferenceId() {
87
+ return createDataSpaceRuntimePreferenceId(this.project.groupId, this.project.artifactId, this.dataSpace.path, this.executionContext.name);
88
+ }
89
+ /**
90
+ * Switches to the runtime this user picked for the current execution context
91
+ * before, if any. A saved runtime that can no longer run the context, e.g.
92
+ * removed in a newer version of the project, is forgotten.
93
+ *
94
+ * Returns whether the saved runtime is in use.
95
+ */
96
+ applySavedRuntime() {
97
+ this.setSavedRuntimePath(undefined);
98
+ const savedRuntimePath = LegendQueryUserDataHelper.getDataSpaceRuntimePreference(this.applicationStore.userDataService, this.runtimePreferenceId);
99
+ if (!savedRuntimePath) {
100
+ return false;
101
+ }
102
+ const runtime = this.compatibleRuntimes.find((compatibleRuntime) => compatibleRuntime.path === savedRuntimePath);
103
+ if (!runtime || savedRuntimePath === this.defaultRuntimePath) {
104
+ this.forgetSavedRuntime();
105
+ return false;
106
+ }
107
+ // mark the choice as used again, so choices in use are not the ones
108
+ // dropped when the list is full
109
+ this.saveRuntime(savedRuntimePath);
110
+ if (this.currentRuntimePath !== savedRuntimePath) {
111
+ this.changeRuntime(new RuntimePointer(PackageableElementExplicitReference.create(runtime)));
112
+ }
113
+ // a runtime other than the default is never applied out of sight
114
+ this.setShowRuntimeSelector(true);
115
+ return true;
116
+ }
117
+ /**
118
+ * Saves the runtime this user picked in the setup panel for the current
119
+ * execution context. Picking the context's default runtime forgets the choice.
120
+ */
121
+ rememberRuntime(runtime) {
122
+ if (!(runtime instanceof RuntimePointer)) {
123
+ return;
124
+ }
125
+ const packageableRuntime = runtime.packageableRuntime.value;
126
+ // runtimes Query builds for the session, e.g. the lakehouse fallback, are
127
+ // not found again by their path
128
+ if (packageableRuntime.package?.path === INTERNAL_ELEMENT_PATH) {
129
+ return;
130
+ }
131
+ if (packageableRuntime.path === this.defaultRuntimePath) {
132
+ this.forgetSavedRuntime();
133
+ return;
134
+ }
135
+ this.saveRuntime(packageableRuntime.path);
136
+ }
137
+ /**
138
+ * Goes back to the default runtime of the current execution context and
139
+ * forgets the runtime this user saved for it
140
+ */
141
+ resetToDefaultRuntime() {
142
+ const defaultRuntime = this.executionContext.defaultRuntime;
143
+ if (defaultRuntime) {
144
+ this.changeRuntime(new RuntimePointer(defaultRuntime));
145
+ }
146
+ this.forgetSavedRuntime();
147
+ }
148
+ saveRuntime(runtimePath) {
149
+ this.setSavedRuntimePath(runtimePath);
150
+ try {
151
+ LegendQueryUserDataHelper.persistDataSpaceRuntimePreference(this.applicationStore.userDataService, this.runtimePreferenceId, runtimePath);
152
+ }
153
+ catch (error) {
154
+ assertErrorThrown(error);
155
+ this.applicationStore.logService.warn(LogEvent.create(LEGEND_QUERY_APP_EVENT.LOCAL_STORAGE_PERSIST_ERROR), error.message);
156
+ }
157
+ }
158
+ forgetSavedRuntime() {
159
+ this.setSavedRuntimePath(undefined);
160
+ try {
161
+ LegendQueryUserDataHelper.removeDataSpaceRuntimePreference(this.applicationStore.userDataService, this.runtimePreferenceId);
162
+ }
163
+ catch (error) {
164
+ assertErrorThrown(error);
165
+ this.applicationStore.logService.warn(LogEvent.create(LEGEND_QUERY_APP_EVENT.LOCAL_STORAGE_PERSIST_ERROR), error.message);
166
+ }
167
+ }
51
168
  resolveInjectedLakehouseRuntime() {
52
169
  const runtime = this.executionContextState.runtimeValue;
53
170
  if (!(runtime instanceof RuntimePointer)) {
@@ -1 +1 @@
1
- {"version":3,"file":"LegendQueryDataSpaceQueryBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LegendQueryDataSpaceQueryBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-application-query",
3
- "version": "13.8.63",
3
+ "version": "13.8.65",
4
4
  "description": "Legend Query application core",
5
5
  "keywords": [
6
6
  "legend",
@@ -44,19 +44,18 @@
44
44
  "test:watch": "jest --watch"
45
45
  },
46
46
  "dependencies": {
47
- "@finos/legend-application": "16.0.129",
48
- "@finos/legend-art": "7.1.169",
49
- "@finos/legend-code-editor": "2.0.211",
50
- "@finos/legend-cube-builder": "0.0.6",
51
- "@finos/legend-data-cube": "0.3.129",
52
- "@finos/legend-extension-dsl-data-space": "10.4.265",
53
- "@finos/legend-graph": "32.8.0",
54
- "@finos/legend-lego": "2.0.231",
55
- "@finos/legend-query-builder": "4.19.20",
56
- "@finos/legend-server-depot": "6.1.24",
57
- "@finos/legend-server-lakehouse": "0.4.0",
58
- "@finos/legend-shared": "11.0.32",
59
- "@finos/legend-storage": "3.0.154",
47
+ "@finos/legend-application": "16.0.130",
48
+ "@finos/legend-art": "7.1.170",
49
+ "@finos/legend-code-editor": "2.0.213",
50
+ "@finos/legend-data-cube": "0.3.131",
51
+ "@finos/legend-extension-dsl-data-space": "10.4.267",
52
+ "@finos/legend-graph": "32.9.0",
53
+ "@finos/legend-lego": "2.0.233",
54
+ "@finos/legend-query-builder": "4.19.22",
55
+ "@finos/legend-server-depot": "6.1.25",
56
+ "@finos/legend-server-lakehouse": "0.4.2",
57
+ "@finos/legend-shared": "11.0.33",
58
+ "@finos/legend-storage": "3.0.155",
60
59
  "@testing-library/dom": "10.4.0",
61
60
  "@testing-library/react": "16.2.0",
62
61
  "@types/react": "19.0.10",
@@ -71,7 +70,7 @@
71
70
  "serializr": "3.0.3"
72
71
  },
73
72
  "devDependencies": {
74
- "@finos/legend-dev-utils": "2.2.9",
73
+ "@finos/legend-dev-utils": "2.2.11",
75
74
  "@jest/globals": "29.7.0",
76
75
  "cross-env": "7.0.3",
77
76
  "eslint": "9.22.0",
@@ -65,8 +65,6 @@ export const LEGEND_QUERY_ROUTE_PATTERN = Object.freeze({
65
65
  // Developer-only diagnostic page for inspecting depot DataSpace
66
66
  // analytics artifact sizes. See `DataSpaceArtifactInspector`.
67
67
  DEV_DATA_SPACE_INSPECTOR: '/dev/dataspace-inspector',
68
- // Legend Cube, the canvas query builder
69
- CUBE: '/cube',
70
68
  });
71
69
 
72
70
  // DataProduct
@@ -15,7 +15,11 @@
15
15
  */
16
16
 
17
17
  import type { UserDataService } from '@finos/legend-application';
18
- import { returnUndefOnError } from '@finos/legend-shared';
18
+ import {
19
+ isPlainObject,
20
+ isString,
21
+ returnUndefOnError,
22
+ } from '@finos/legend-shared';
19
23
  import {
20
24
  createSimpleSchema,
21
25
  deserialize,
@@ -30,6 +34,7 @@ import {
30
34
  createVisitedDataProductId,
31
35
  type VisitedLegacyDataProduct,
32
36
  type VisitedDataProduct,
37
+ type DataSpaceRuntimePreference,
33
38
  } from './LegendQueryUserDataSpaceHelper.js';
34
39
  import type { ResolvedDataSpaceEntityWithOrigin } from '@finos/legend-extension-dsl-data-space/application';
35
40
 
@@ -38,6 +43,7 @@ export enum LEGEND_QUERY_USER_DATA_KEY {
38
43
  RECENTLY_VIEWED_LEGACY_DATAPRODUCTS = 'query-editor.recent-dataSpaces',
39
44
  RECENTLY_VIEWED_DATAPRODUCTS = 'query-editor.recent-dataProducts',
40
45
  USER_LAKEHOUSE_INFO = 'query-editor.lakehouse-info',
46
+ DATASPACE_RUNTIME_PREFERENCES = 'query-editor.dataSpace-runtimes',
41
47
  }
42
48
 
43
49
  export interface LakehouseUserInfo {
@@ -48,6 +54,7 @@ export interface LakehouseUserInfo {
48
54
  export const USER_DATA_RECENTLY_VIEWED_QUERIES_LIMIT = 10;
49
55
  export const USER_DATA_QUERY_DATASPACE_LIMIT = 10;
50
56
  export const USER_DATA_QUERY_DATAPRODUCT_LIMIT = 50;
57
+ export const USER_DATA_QUERY_DATASPACE_RUNTIME_LIMIT = 50;
51
58
 
52
59
  type SavedData = string[];
53
60
 
@@ -285,6 +292,70 @@ export class LegendQueryUserDataHelper {
285
292
  return false;
286
293
  }
287
294
 
295
+ // DataSpace runtime preferences
296
+ static getDataSpaceRuntimePreferences(
297
+ service: UserDataService,
298
+ ): DataSpaceRuntimePreference[] {
299
+ const data: unknown = service.getObjectValue(
300
+ LEGEND_QUERY_USER_DATA_KEY.DATASPACE_RUNTIME_PREFERENCES,
301
+ );
302
+ // read on every data space load, so a malformed value is ignored rather
303
+ // than failing the load
304
+ return Array.isArray(data)
305
+ ? data.filter(
306
+ (preference): preference is DataSpaceRuntimePreference =>
307
+ isPlainObject(preference) &&
308
+ isString(preference.id) &&
309
+ isString(preference.runtimePath),
310
+ )
311
+ : [];
312
+ }
313
+
314
+ static getDataSpaceRuntimePreference(
315
+ service: UserDataService,
316
+ id: string,
317
+ ): string | undefined {
318
+ return LegendQueryUserDataHelper.getDataSpaceRuntimePreferences(
319
+ service,
320
+ ).find((preference) => preference.id === id)?.runtimePath;
321
+ }
322
+
323
+ /**
324
+ * Saves the runtime for the given id, or marks it as used again, moving it to
325
+ * the front so the choices in use are not the ones dropped at the limit
326
+ */
327
+ static persistDataSpaceRuntimePreference(
328
+ service: UserDataService,
329
+ id: string,
330
+ runtimePath: string,
331
+ limit = USER_DATA_QUERY_DATASPACE_RUNTIME_LIMIT,
332
+ ): void {
333
+ const preferences =
334
+ LegendQueryUserDataHelper.getDataSpaceRuntimePreferences(service).filter(
335
+ (preference) => preference.id !== id,
336
+ );
337
+ preferences.unshift({ id, runtimePath, lastUsedAt: Date.now() });
338
+ service.persistValue(
339
+ LEGEND_QUERY_USER_DATA_KEY.DATASPACE_RUNTIME_PREFERENCES,
340
+ preferences.slice(0, limit),
341
+ );
342
+ }
343
+
344
+ static removeDataSpaceRuntimePreference(
345
+ service: UserDataService,
346
+ id: string,
347
+ ): void {
348
+ const preferences =
349
+ LegendQueryUserDataHelper.getDataSpaceRuntimePreferences(service);
350
+ const remaining = preferences.filter((preference) => preference.id !== id);
351
+ if (remaining.length !== preferences.length) {
352
+ service.persistValue(
353
+ LEGEND_QUERY_USER_DATA_KEY.DATASPACE_RUNTIME_PREFERENCES,
354
+ remaining,
355
+ );
356
+ }
357
+ }
358
+
288
359
  // DataProducts
289
360
  static getRecentlyVisitedDataProducts(
290
361
  service: UserDataService,
@@ -146,3 +146,24 @@ export const createSimpleVisitedDataProduct = (
146
146
  deploymentId,
147
147
  lastViewedAt: Date.now(),
148
148
  });
149
+
150
+ /**
151
+ * The runtime a user picked for an execution context of a data space, so it is
152
+ * used again the next time they query it, instead of the context's default
153
+ */
154
+ export interface DataSpaceRuntimePreference {
155
+ id: string;
156
+ runtimePath: string;
157
+ lastUsedAt?: number | undefined;
158
+ }
159
+
160
+ export const createDataSpaceRuntimePreferenceId = (
161
+ groupId: string,
162
+ artifactId: string,
163
+ dataSpace: string,
164
+ executionContext: string,
165
+ ): string =>
166
+ // like visited data spaces, a choice holds for every version of the project
167
+ createVisitedDataSpaceId(groupId, artifactId, dataSpace) +
168
+ GAV_DELIMITER +
169
+ executionContext;
@@ -18,12 +18,9 @@ import {
18
18
  Core_LegendApplicationPlugin,
19
19
  LEGEND_APPLICATION_COLOR_THEME,
20
20
  LEGEND_APPLICATION_SETTING_KEY,
21
- collectKeyedCommandConfigEntriesFromConfig,
22
21
  collectSettingConfigurationEntriesFromConfig,
23
- type KeyedCommandConfigEntry,
24
22
  type SettingConfigurationEntry,
25
23
  } from '@finos/legend-application';
26
- import { LEGEND_CUBE_COMMAND_CONFIG } from '@finos/legend-cube-builder';
27
24
 
28
25
  export const LEGEND_QUERY_APPLICATION_SETTING_CONFIG = {
29
26
  [LEGEND_APPLICATION_SETTING_KEY.COLOR_THEME]: {
@@ -38,15 +35,4 @@ export class Core_LegendQuery_LegendApplicationPlugin extends Core_LegendApplica
38
35
  LEGEND_QUERY_APPLICATION_SETTING_CONFIG,
39
36
  );
40
37
  }
41
-
42
- /**
43
- * The Cube page's shortcuts (F9, Ctrl/Cmd+Z): a Legend application binds
44
- * keys only through its plugins, and the page registers the commands only
45
- * while it is open (PLAN §3.5)
46
- */
47
- override getExtraKeyedCommandConfigEntries(): KeyedCommandConfigEntry[] {
48
- return collectKeyedCommandConfigEntriesFromConfig(
49
- LEGEND_CUBE_COMMAND_CONFIG,
50
- );
51
- }
52
38
  }
@@ -26,7 +26,6 @@ import {
26
26
  LegendApplicationConfig,
27
27
  type LegendApplicationConfigurationInput,
28
28
  type LegendApplicationConfigurationData,
29
- StereotypeConfig,
30
29
  } from '@finos/legend-application';
31
30
  import {
32
31
  createModelSchema,
@@ -69,23 +68,6 @@ export class ServiceRegistrationEnvironmentConfig {
69
68
  );
70
69
  }
71
70
 
72
- /**
73
- * Data products, as Legend Studio and Legend Marketplace configure them:
74
- * Query reads only the stereotype that marks access point groups open to
75
- * everyone in the organization, which Legend Cube's access badges use
76
- */
77
- export class LegendQueryDataProductConfig {
78
- publicStereotype: StereotypeConfig | undefined;
79
-
80
- static readonly serialization = new SerializationFactory(
81
- createModelSchema(LegendQueryDataProductConfig, {
82
- publicStereotype: optional(
83
- usingModelSchema(StereotypeConfig.serialization.schema),
84
- ),
85
- }),
86
- );
87
- }
88
-
89
71
  class LegendQueryApplicationCoreOptions {
90
72
  /**
91
73
  * Provides service registration environment configs.
@@ -126,9 +108,6 @@ class LegendQueryApplicationCoreOptions {
126
108
  */
127
109
  enableOauthFlow = false;
128
110
 
129
- /** Data products, as Studio and Marketplace configure them (`options.dataProductConfig`) */
130
- dataProductConfig: LegendQueryDataProductConfig | undefined;
131
-
132
111
  private static readonly serialization = new SerializationFactory(
133
112
  createModelSchema(LegendQueryApplicationCoreOptions, {
134
113
  TEMPORARY__serviceRegistrationConfig: list(
@@ -143,9 +122,6 @@ class LegendQueryApplicationCoreOptions {
143
122
  usingModelSchema(LegendQueryOIDCConfiguration.serialization.schema),
144
123
  ),
145
124
  enableOauthFlow: optional(primitive()),
146
- dataProductConfig: optional(
147
- usingModelSchema(LegendQueryDataProductConfig.serialization.schema),
148
- ),
149
125
  }),
150
126
  );
151
127
 
@@ -182,19 +158,9 @@ export interface LegendQueryApplicationConfigurationData
182
158
  marketplace?: {
183
159
  url: string;
184
160
  productionParallelUrl: string;
185
- /**
186
- * The marketplace server, whose search Legend Cube's data product tab
187
- * uses: the URL Legend Marketplace's own config names `marketplace.url`
188
- */
189
- serverUrl?: string;
190
161
  };
191
162
  lakehouse?: {
192
163
  url: string;
193
- /**
194
- * The lakehouse platform, which names the ingest servers: Legend Cube's
195
- * ingest data sets need it, as Data Cube's and Marketplace's do
196
- */
197
- platformUrl?: string;
198
164
  };
199
165
  legendAI?: {
200
166
  url?: string;
@@ -214,9 +180,7 @@ export class LegendQueryApplicationConfig extends LegendApplicationConfig {
214
180
  readonly dataCubeApplicationUrl?: string;
215
181
  readonly marketplaceApplicationUrl?: string;
216
182
  readonly marketplaceProductionParallelUrl?: string;
217
- readonly marketplaceServerUrl?: string;
218
183
  readonly lakehouseContractUrl?: string;
219
- readonly lakehousePlatformUrl?: string;
220
184
  readonly legendAIUrl?: string;
221
185
  readonly legendAIAgentUrl?: string;
222
186
  readonly studioInstances: LegendStudioApplicationInstanceConfigurationData[] =
@@ -296,11 +260,6 @@ export class LegendQueryApplicationConfig extends LegendApplicationConfig {
296
260
  input.configData.marketplace.productionParallelUrl,
297
261
  );
298
262
  }
299
- if (input.configData.marketplace?.serverUrl) {
300
- this.marketplaceServerUrl = LegendApplicationConfig.resolveAbsoluteUrl(
301
- input.configData.marketplace.serverUrl,
302
- );
303
- }
304
263
 
305
264
  // lakehouse
306
265
  if (input.configData.lakehouse?.url) {
@@ -308,11 +267,6 @@ export class LegendQueryApplicationConfig extends LegendApplicationConfig {
308
267
  input.configData.lakehouse.url,
309
268
  );
310
269
  }
311
- if (input.configData.lakehouse?.platformUrl) {
312
- this.lakehousePlatformUrl = LegendApplicationConfig.resolveAbsoluteUrl(
313
- input.configData.lakehouse.platformUrl,
314
- );
315
- }
316
270
 
317
271
  // legend AI (AI-assisted features such as query title/description suggester)
318
272
  if (input.configData.legendAI?.url) {
@@ -1262,7 +1262,13 @@ export class Core_LegendQueryApplicationPlugin extends LegendQueryApplicationPlu
1262
1262
  : undefined;
1263
1263
  if (runtime) {
1264
1264
  dataSpaceQueryBuilderState.changeRuntime(runtime);
1265
- } else {
1265
+ }
1266
+ // the runtime this user picked for the context before wins over its default
1267
+ const isSavedRuntimeApplied =
1268
+ dataSpaceQueryBuilderState instanceof
1269
+ LegendQueryDataSpaceQueryBuilderState &&
1270
+ dataSpaceQueryBuilderState.applySavedRuntime();
1271
+ if (!runtime && !isSavedRuntimeApplied) {
1266
1272
  dataSpaceQueryBuilderState.applicationStore.notificationService.notifyWarning(
1267
1273
  `Execution context '${executionContext.name}' does not have a default runtime`,
1268
1274
  );
@@ -44,7 +44,6 @@ import { QueryCreator } from './data-space/DataProductQueryCreator.js';
44
44
  import { IngestQueryCreator } from './ingest/IngestQueryCreator.js';
45
45
  import { ExistingQueryDataCubeViewer } from './data-cube/ExistingQueryDataCubeViewer.js';
46
46
  import { DataSpaceArtifactInspector } from './DataSpaceArtifactInspector.js';
47
- import { LegendQueryCubeRoute } from './cube/LegendQueryCubeRoute.js';
48
47
  import {
49
48
  AuthProvider,
50
49
  withAuthenticationRequired,
@@ -138,19 +137,6 @@ const LegendQueryWebApplicationRouter = observer(() => {
138
137
  element={<DataSpaceArtifactInspector />}
139
138
  />
140
139
 
141
- {/*
142
- Legend Cube is a proof of concept: it is only mounted where the
143
- config turns on non-production features
144
- (`extensions.core.NonProductionFeatureFlag`), so production
145
- deployments don't show it yet.
146
- */}
147
- {applicationStore.config.options.NonProductionFeatureFlag && (
148
- <Route
149
- path={LEGEND_QUERY_ROUTE_PATTERN.CUBE}
150
- element={<LegendQueryCubeRoute />}
151
- />
152
- )}
153
-
154
140
  {/* LEGACY DATA SPACE */}
155
141
  <Route
156
142
  path={generateExtensionUrlPattern(
@@ -32,6 +32,7 @@ import {
32
32
  PanelHeaderActionItem,
33
33
  PanelHeaderActions,
34
34
  SearchIcon,
35
+ UndoIcon,
35
36
  } from '@finos/legend-art';
36
37
  import {
37
38
  ResolvedDataSpaceEntityWithOrigin,
@@ -45,10 +46,8 @@ import {
45
46
  } from '@finos/legend-extension-dsl-data-space/application-query';
46
47
  import { resolveExecutionContextMapping } from '@finos/legend-extension-dsl-data-space/graph';
47
48
  import {
48
- getMappingCompatibleRuntimes,
49
49
  PackageableElementExplicitReference,
50
50
  RuntimePointer,
51
- type PackageableRuntime,
52
51
  type Runtime,
53
52
  } from '@finos/legend-graph';
54
53
  import {
@@ -67,25 +66,6 @@ import { formatDataProductOrSpaceOptionLabel } from '../shared/LegendQueryDataPr
67
66
  import type { LegendQueryDataSpaceQueryBuilderState } from '../../stores/data-space/query-builder/LegendQueryDataSpaceQueryBuilderState.js';
68
67
  import { LegendQueryTelemetryHelper } from '../../__lib__/LegendQueryTelemetryHelper.js';
69
68
 
70
- const resolveExecutionContextRuntimes = (
71
- queryBuilderState: LegendQueryDataSpaceQueryBuilderState,
72
- ): PackageableRuntime[] => {
73
- const currentMapping = guaranteeNonNullable(
74
- resolveExecutionContextMapping(queryBuilderState.executionContext),
75
- `Execution context '${queryBuilderState.executionContext.name}' does not have a resolvable mapping`,
76
- );
77
- if (queryBuilderState.dataSpaceAnalysisResult) {
78
- const executionContext = Array.from(
79
- queryBuilderState.dataSpaceAnalysisResult.executionContextsIndex.values(),
80
- ).find((e) => e.mapping.path === currentMapping.path);
81
- return guaranteeNonNullable(executionContext).compatibleRuntimes;
82
- }
83
- return getMappingCompatibleRuntimes(
84
- currentMapping,
85
- queryBuilderState.graphManagerState.usableRuntimes,
86
- );
87
- };
88
-
89
69
  /**
90
70
  * LegendQuery-specific DataSpace query builder setup panel. Unlike the base
91
71
  * DataSpaceQueryBuilderSetupPanelContent, this component explicitly knows about
@@ -194,7 +174,7 @@ const LegendQueryDataSpaceQueryBuilderSetupPanelContent = observer(
194
174
  };
195
175
 
196
176
  // runtime
197
- const runtimeOptions = resolveExecutionContextRuntimes(queryBuilderState)
177
+ const runtimeOptions = queryBuilderState.compatibleRuntimes
198
178
  .map(
199
179
  (rt) =>
200
180
  new RuntimePointer(PackageableElementExplicitReference.create(rt)),
@@ -214,8 +194,23 @@ const LegendQueryDataSpaceQueryBuilderSetupPanelContent = observer(
214
194
  return;
215
195
  }
216
196
  queryBuilderState.changeRuntime(option.value);
197
+ queryBuilderState.rememberRuntime(option.value);
217
198
  queryBuilderState.onRuntimeChange?.(option.value);
218
199
  };
200
+ // a runtime other than the context's default can always be undone here
201
+ const defaultRuntimePath = queryBuilderState.defaultRuntimePath;
202
+ const isUsingSavedRuntime =
203
+ queryBuilderState.currentRuntimePath !== undefined &&
204
+ queryBuilderState.currentRuntimePath ===
205
+ queryBuilderState.savedRuntimePath;
206
+ const canResetRuntime =
207
+ defaultRuntimePath !== undefined &&
208
+ queryBuilderState.currentRuntimePath !== defaultRuntimePath;
209
+ const resetRuntimeTitle = `${
210
+ isUsingSavedRuntime
211
+ ? 'Using the runtime you picked for this context. '
212
+ : ''
213
+ }Use the context's default runtime '${defaultRuntimePath}' instead`;
219
214
  const runtimeFilterOption = createFilter({
220
215
  ignoreCase: true,
221
216
  ignoreAccents: false,
@@ -434,6 +429,18 @@ const LegendQueryDataSpaceQueryBuilderSetupPanelContent = observer(
434
429
  })}
435
430
  />
436
431
  )}
432
+ {canResetRuntime && !injectedLakehouseRuntime && (
433
+ <button
434
+ tabIndex={-1}
435
+ className="query-builder__setup__runtime-reset__btn btn--dark"
436
+ onClick={(): void =>
437
+ queryBuilderState.resetToDefaultRuntime()
438
+ }
439
+ title={resetRuntimeTitle}
440
+ >
441
+ <UndoIcon />
442
+ </button>
443
+ )}
437
444
  </div>
438
445
  )}
439
446
  <div className="query-builder__setup__config-group__item">