@finos/legend-extension-dsl-data-space 10.4.252 → 10.4.253

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 (94) hide show
  1. package/lib/__lib__/DSL_DataSpace_LegendApplicationCommand.js +8 -8
  2. package/lib/__lib__/DSL_DataSpace_LegendApplicationCommand.js.map +1 -1
  3. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js +2 -2
  4. package/lib/components/DSL_DataSpace_LegendApplicationPlugin.js.map +1 -1
  5. package/lib/components/DataSpaceDataAccess.d.ts.map +1 -1
  6. package/lib/components/DataSpaceDataAccess.js +6 -2
  7. package/lib/components/DataSpaceDataAccess.js.map +1 -1
  8. package/lib/components/DataSpaceDescription.d.ts.map +1 -1
  9. package/lib/components/DataSpaceDescription.js +6 -2
  10. package/lib/components/DataSpaceDescription.js.map +1 -1
  11. package/lib/components/DataSpaceInfoPanel.js +1 -1
  12. package/lib/components/DataSpaceInfoPanel.js.map +1 -1
  13. package/lib/components/DataSpaceQuickStart.d.ts.map +1 -1
  14. package/lib/components/DataSpaceQuickStart.js +16 -7
  15. package/lib/components/DataSpaceQuickStart.js.map +1 -1
  16. package/lib/components/DataSpaceViewer.js +2 -2
  17. package/lib/components/DataSpaceViewer.js.map +1 -1
  18. package/lib/components/DataSpaceWiki.d.ts.map +1 -1
  19. package/lib/components/DataSpaceWiki.js +2 -2
  20. package/lib/components/DataSpaceWiki.js.map +1 -1
  21. package/lib/components/query-builder/DataSpaceAdvancedSearchModal.js +2 -2
  22. package/lib/components/query-builder/DataSpaceAdvancedSearchModal.js.map +1 -1
  23. package/lib/components/query-builder/DataSpaceQueryBuilder.js +3 -3
  24. package/lib/components/query-builder/DataSpaceQueryBuilder.js.map +1 -1
  25. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts +2 -1
  26. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.d.ts.map +1 -1
  27. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js +2 -0
  28. package/lib/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.js.map +1 -1
  29. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.d.ts +2 -0
  30. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.d.ts.map +1 -1
  31. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js +12 -0
  32. package/lib/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js.map +1 -1
  33. package/lib/graph-manager/index.d.ts +1 -1
  34. package/lib/graph-manager/index.d.ts.map +1 -1
  35. package/lib/graph-manager/index.js +1 -1
  36. package/lib/graph-manager/index.js.map +1 -1
  37. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.d.ts.map +1 -1
  38. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js +27 -11
  39. package/lib/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.js.map +1 -1
  40. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js +8 -8
  41. package/lib/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.js.map +1 -1
  42. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js +2 -2
  43. package/lib/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.js.map +1 -1
  44. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts +2 -1
  45. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.d.ts.map +1 -1
  46. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js +2 -0
  47. package/lib/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.js.map +1 -1
  48. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.d.ts.map +1 -1
  49. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js +7 -2
  50. package/lib/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.js.map +1 -1
  51. package/lib/index.css +2 -2
  52. package/lib/index.css.map +1 -1
  53. package/lib/package.json +1 -1
  54. package/lib/stores/DataSpaceLayoutState.d.ts +9 -0
  55. package/lib/stores/DataSpaceLayoutState.d.ts.map +1 -1
  56. package/lib/stores/DataSpaceLayoutState.js +36 -0
  57. package/lib/stores/DataSpaceLayoutState.js.map +1 -1
  58. package/lib/stores/DataSpaceModelsDocumentationState.d.ts.map +1 -1
  59. package/lib/stores/DataSpaceModelsDocumentationState.js +3 -1
  60. package/lib/stores/DataSpaceModelsDocumentationState.js.map +1 -1
  61. package/lib/stores/DataSpaceViewerDiagramViewerState.d.ts.map +1 -1
  62. package/lib/stores/DataSpaceViewerDiagramViewerState.js +4 -1
  63. package/lib/stores/DataSpaceViewerDiagramViewerState.js.map +1 -1
  64. package/lib/stores/DataSpaceViewerExecutableState.d.ts.map +1 -1
  65. package/lib/stores/DataSpaceViewerExecutableState.js +2 -1
  66. package/lib/stores/DataSpaceViewerExecutableState.js.map +1 -1
  67. package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts +2 -1
  68. package/lib/stores/query-builder/DataSpaceQueryBuilderState.d.ts.map +1 -1
  69. package/lib/stores/query-builder/DataSpaceQueryBuilderState.js +12 -1
  70. package/lib/stores/query-builder/DataSpaceQueryBuilderState.js.map +1 -1
  71. package/package.json +8 -8
  72. package/src/__lib__/DSL_DataSpace_LegendApplicationCommand.ts +8 -8
  73. package/src/components/DSL_DataSpace_LegendApplicationPlugin.tsx +2 -2
  74. package/src/components/DataSpaceDataAccess.tsx +42 -11
  75. package/src/components/DataSpaceDescription.tsx +40 -14
  76. package/src/components/DataSpaceInfoPanel.tsx +4 -4
  77. package/src/components/DataSpaceQuickStart.tsx +73 -15
  78. package/src/components/DataSpaceViewer.tsx +2 -2
  79. package/src/components/DataSpaceWiki.tsx +0 -2
  80. package/src/components/query-builder/DataSpaceAdvancedSearchModal.tsx +4 -4
  81. package/src/components/query-builder/DataSpaceQueryBuilder.tsx +5 -5
  82. package/src/graph/metamodel/pure/model/packageableElements/dataSpace/DSL_DataSpace_DataSpace.ts +3 -0
  83. package/src/graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.ts +17 -0
  84. package/src/graph-manager/index.ts +1 -0
  85. package/src/graph-manager/protocol/pure/DSL_DataSpace_PureProtocolProcessorPlugin.ts +34 -10
  86. package/src/graph-manager/protocol/pure/v1/V1_DSL_DataSpace_PureGraphManagerExtension.ts +8 -8
  87. package/src/graph-manager/protocol/pure/v1/engine/analytics/V1_DataSpaceAnalysis.ts +2 -2
  88. package/src/graph-manager/protocol/pure/v1/model/packageableElements/dataSpace/V1_DSL_DataSpace_DataSpace.ts +3 -0
  89. package/src/graph-manager/protocol/pure/v1/transformation/pureProtocol/V1_DSL_DataSpace_ProtocolHelper.ts +20 -0
  90. package/src/stores/DataSpaceLayoutState.ts +41 -0
  91. package/src/stores/DataSpaceModelsDocumentationState.ts +7 -1
  92. package/src/stores/DataSpaceViewerDiagramViewerState.ts +5 -1
  93. package/src/stores/DataSpaceViewerExecutableState.ts +2 -0
  94. package/src/stores/query-builder/DataSpaceQueryBuilderState.ts +20 -0
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { AnchorLinkIcon } from '@finos/legend-art';
17
+ import { AnchorLinkIcon, ExpandMoreIcon, clsx } from '@finos/legend-art';
18
18
  import { type DataSpaceViewerState } from '../stores/DataSpaceViewerState.js';
19
19
  import { observer } from 'mobx-react-lite';
20
20
  import { DataSpaceWikiPlaceholder } from './DataSpacePlaceholder.js';
@@ -33,6 +33,14 @@ export const DataSpaceDescription = observer(
33
33
  const anchor = generateAnchorForActivity(
34
34
  DATA_SPACE_VIEWER_ACTIVITY_MODE.DESCRIPTION,
35
35
  );
36
+ const isCollapsed =
37
+ dataSpaceViewerState.layoutState.sectionCollapseState.isSectionCollapsed(
38
+ anchor,
39
+ );
40
+ const toggleCollapse = (): void =>
41
+ dataSpaceViewerState.layoutState.sectionCollapseState.toggleSectionCollapse(
42
+ anchor,
43
+ );
36
44
 
37
45
  useEffect(() => {
38
46
  if (sectionRef.current) {
@@ -48,6 +56,22 @@ export const DataSpaceDescription = observer(
48
56
  <div ref={sectionRef} className="data-space__viewer__wiki__section">
49
57
  <div className="data-space__viewer__wiki__section__header">
50
58
  <div className="data-space__viewer__wiki__section__header__label">
59
+ <button
60
+ className="data-space__viewer__wiki__section__header__caret-btn"
61
+ tabIndex={-1}
62
+ onClick={toggleCollapse}
63
+ title={isCollapsed ? 'Expand' : 'Collapse'}
64
+ >
65
+ <ExpandMoreIcon
66
+ className={clsx(
67
+ 'data-space__viewer__wiki__section__header__caret',
68
+ {
69
+ 'data-space__viewer__wiki__section__header__caret--collapsed':
70
+ isCollapsed,
71
+ },
72
+ )}
73
+ />
74
+ </button>
51
75
  Description
52
76
  <button
53
77
  className="data-space__viewer__wiki__section__header__anchor"
@@ -58,20 +82,22 @@ export const DataSpaceDescription = observer(
58
82
  </button>
59
83
  </div>
60
84
  </div>
61
- <div className="data-space__viewer__wiki__section__content">
62
- {analysisResult.description !== undefined && (
63
- <div className="data-space__viewer__description">
64
- <div className="data-space__viewer__description__content">
65
- <DataSpaceMarkdownTextViewer
66
- value={analysisResult.description}
67
- />
85
+ {!isCollapsed && (
86
+ <div className="data-space__viewer__wiki__section__content">
87
+ {analysisResult.description !== undefined && (
88
+ <div className="data-space__viewer__description">
89
+ <div className="data-space__viewer__description__content">
90
+ <DataSpaceMarkdownTextViewer
91
+ value={analysisResult.description}
92
+ />
93
+ </div>
68
94
  </div>
69
- </div>
70
- )}
71
- {analysisResult.description === undefined && (
72
- <DataSpaceWikiPlaceholder message="(not specified)" />
73
- )}
74
- </div>
95
+ )}
96
+ {analysisResult.description === undefined && (
97
+ <DataSpaceWikiPlaceholder message="(not specified)" />
98
+ )}
99
+ </div>
100
+ )}
75
101
  </div>
76
102
  );
77
103
  },
@@ -71,12 +71,12 @@ export const DataSpaceInfoPanel = observer(
71
71
  </div>
72
72
  <div className="data-space__viewer__info__section__entry">
73
73
  <div className="data-space__viewer__info__project-info__label">
74
- Data Product
74
+ Data Space
75
75
  </div>
76
76
  <button
77
77
  className="data-space__viewer__info__project-info__value"
78
78
  tabIndex={-1}
79
- title="Click to View Data Product"
79
+ title="Click to View Data Space"
80
80
  onClick={viewDataSpaceInProject}
81
81
  >
82
82
  {analysisResult.path}
@@ -84,7 +84,7 @@ export const DataSpaceInfoPanel = observer(
84
84
  <button
85
85
  className="data-space__viewer__info__project-info__link"
86
86
  tabIndex={-1}
87
- title="Edit Data Product"
87
+ title="Edit Data Space"
88
88
  onClick={viewDataSpaceInSDLCProject}
89
89
  >
90
90
  <PencilIcon />
@@ -92,7 +92,7 @@ export const DataSpaceInfoPanel = observer(
92
92
  <button
93
93
  className="data-space__viewer__info__project-info__link"
94
94
  tabIndex={-1}
95
- title="View Data Product"
95
+ title="View Data Space"
96
96
  onClick={viewDataSpaceInProject}
97
97
  >
98
98
  <ExternalLinkIcon />
@@ -21,6 +21,7 @@ import {
21
21
  CodeIcon,
22
22
  CopyIcon,
23
23
  DataAccessIcon,
24
+ ExpandMoreIcon,
24
25
  LegendLogo,
25
26
  MoreVerticalIcon,
26
27
  QuestionCircleIcon,
@@ -470,6 +471,14 @@ const DataSpaceExecutableAnalysisResultView = observer(
470
471
  const executableAnalysisResult = executableState.value;
471
472
  const quickStartRef = useRef<HTMLDivElement>(null);
472
473
  const anchor = generateAnchorForQuickStart(executableAnalysisResult);
474
+ const isCollapsed =
475
+ dataSpaceViewerState.layoutState.sectionCollapseState.isSectionCollapsed(
476
+ anchor,
477
+ );
478
+ const toggleCollapse = (): void =>
479
+ dataSpaceViewerState.layoutState.sectionCollapseState.toggleSectionCollapse(
480
+ anchor,
481
+ );
473
482
 
474
483
  useEffect(() => {
475
484
  if (quickStartRef.current) {
@@ -501,6 +510,22 @@ const DataSpaceExecutableAnalysisResultView = observer(
501
510
  return (
502
511
  <div ref={quickStartRef} className="data-space__viewer__quickstart__item">
503
512
  <div className="data-space__viewer__quickstart__item__header">
513
+ <button
514
+ className="data-space__viewer__quickstart__item__header__caret-btn"
515
+ tabIndex={-1}
516
+ onClick={toggleCollapse}
517
+ title={isCollapsed ? 'Expand' : 'Collapse'}
518
+ >
519
+ <ExpandMoreIcon
520
+ className={clsx(
521
+ 'data-space__viewer__quickstart__item__header__caret',
522
+ {
523
+ 'data-space__viewer__quickstart__item__header__caret--collapsed':
524
+ isCollapsed,
525
+ },
526
+ )}
527
+ />
528
+ </button>
504
529
  <div className="data-space__viewer__quickstart__item__header__title">
505
530
  {executableAnalysisResult.title}
506
531
  </div>
@@ -515,21 +540,25 @@ const DataSpaceExecutableAnalysisResultView = observer(
515
540
  <AnchorLinkIcon />
516
541
  </button>
517
542
  </div>
518
- {executableAnalysisResult.description !== undefined && (
519
- <div className="data-space__viewer__quickstart__item__description">
520
- <DataSpaceMarkdownTextViewer
521
- value={executableAnalysisResult.description}
522
- />
523
- </div>
524
- )}
525
- {(executableState.resultState instanceof
526
- DataSpaceExecutableTDSResultState ||
527
- executableState.resultState instanceof
528
- DataSpaceExecutableRelationResultState) && (
529
- <DataSpaceExecutableResultView
530
- executableState={executableState}
531
- resultState={executableState.resultState}
532
- />
543
+ {!isCollapsed && (
544
+ <>
545
+ {executableAnalysisResult.description !== undefined && (
546
+ <div className="data-space__viewer__quickstart__item__description">
547
+ <DataSpaceMarkdownTextViewer
548
+ value={executableAnalysisResult.description}
549
+ />
550
+ </div>
551
+ )}
552
+ {(executableState.resultState instanceof
553
+ DataSpaceExecutableTDSResultState ||
554
+ executableState.resultState instanceof
555
+ DataSpaceExecutableRelationResultState) && (
556
+ <DataSpaceExecutableResultView
557
+ executableState={executableState}
558
+ resultState={executableState.resultState}
559
+ />
560
+ )}
561
+ </>
533
562
  )}
534
563
  </div>
535
564
  );
@@ -546,6 +575,17 @@ export const DataSpaceQuickStart = observer(
546
575
  const anchor = generateAnchorForActivity(
547
576
  DATA_SPACE_VIEWER_ACTIVITY_MODE.QUICK_START,
548
577
  );
578
+ const executableAnchors = dataSpaceViewerState.executableStates.map(
579
+ (executableState) => generateAnchorForQuickStart(executableState.value),
580
+ );
581
+ const isCollapsed =
582
+ dataSpaceViewerState.layoutState.sectionCollapseState.areAllSectionsCollapsed(
583
+ executableAnchors,
584
+ );
585
+ const toggleCollapse = (): void =>
586
+ dataSpaceViewerState.layoutState.sectionCollapseState.toggleAllSectionsCollapse(
587
+ executableAnchors,
588
+ );
549
589
 
550
590
  useEffect(() => {
551
591
  if (sectionRef.current) {
@@ -569,6 +609,24 @@ export const DataSpaceQuickStart = observer(
569
609
  <div ref={sectionRef} className="data-space__viewer__wiki__section">
570
610
  <div className="data-space__viewer__wiki__section__header">
571
611
  <div className="data-space__viewer__wiki__section__header__label">
612
+ {executableAnchors.length > 0 && (
613
+ <button
614
+ className="data-space__viewer__wiki__section__header__caret-btn"
615
+ tabIndex={-1}
616
+ onClick={toggleCollapse}
617
+ title={isCollapsed ? 'Expand All' : 'Collapse All'}
618
+ >
619
+ <ExpandMoreIcon
620
+ className={clsx(
621
+ 'data-space__viewer__wiki__section__header__caret',
622
+ {
623
+ 'data-space__viewer__wiki__section__header__caret--collapsed':
624
+ isCollapsed,
625
+ },
626
+ )}
627
+ />
628
+ </button>
629
+ )}
572
630
  Quick Start
573
631
  <button
574
632
  className="data-space__viewer__wiki__section__header__anchor"
@@ -85,7 +85,7 @@ const DataSpaceHeader = observer(
85
85
  {dataSpaceViewerState.isVerified && (
86
86
  <div
87
87
  className="data-space__viewer__header__title__verified-badge"
88
- title="Verified Data Product"
88
+ title="Verified Data Space"
89
89
  >
90
90
  <VerifiedIcon />
91
91
  </div>
@@ -162,7 +162,7 @@ const DataSpaceHeader = observer(
162
162
  )
163
163
  }
164
164
  >
165
- Query Data Product
165
+ Query Data Space
166
166
  </MenuContentItem>
167
167
  <MenuContentDivider />
168
168
  </>
@@ -59,7 +59,6 @@ export const DataSpaceWiki = observer(
59
59
  <div className="data-space__viewer__wiki">
60
60
  <DataSpaceDescription dataSpaceViewerState={dataSpaceViewerState} />
61
61
  <DiagramViewer
62
- applicationStore={dataSpaceViewerState.applicationStore}
63
62
  diagramViewerState={dataSpaceViewerState.diagramViewerState}
64
63
  actions={{
65
64
  onQueryClass: dataSpaceViewerState.queryClass,
@@ -97,7 +96,6 @@ export const DataSpaceWiki = observer(
97
96
  modelsDocumentationState={
98
97
  dataSpaceViewerState.modelsDocumentationState
99
98
  }
100
- applicationStore={dataSpaceViewerState.applicationStore}
101
99
  />
102
100
  <DataSpaceQuickStart dataSpaceViewerState={dataSpaceViewerState} />
103
101
  <DataSpaceDataAccess dataSpaceViewerState={dataSpaceViewerState} />
@@ -121,7 +121,7 @@ export const DataSpaceAdvancedSearchModal = observer(
121
121
  className="editor-modal data-space-advanced-search__dialog"
122
122
  >
123
123
  <ModalHeader className="data-space-advanced-search__dialog__header">
124
- <ModalTitle title="Search for data product " />
124
+ <ModalTitle title="Search for data space " />
125
125
  <ModalHeaderActions>
126
126
  <button
127
127
  className="modal__header__action"
@@ -144,7 +144,7 @@ export const DataSpaceAdvancedSearchModal = observer(
144
144
  isLoading={searchState.loadDataSpacesState.isInProgress}
145
145
  onChange={onDataSpaceOptionChange}
146
146
  value={selectedDataSpaceOption}
147
- placeholder="Search for data product by name..."
147
+ placeholder="Search for data space by name..."
148
148
  isClearable={true}
149
149
  escapeClearsValue={true}
150
150
  darkMode={
@@ -164,7 +164,7 @@ export const DataSpaceAdvancedSearchModal = observer(
164
164
  tabIndex={-1}
165
165
  title={`[${
166
166
  searchState.toGetSnapShot ? 'on' : 'off'
167
- }] Toggle show data products from snapshot releases instead of latest releases`}
167
+ }] Toggle show data spaces from snapshot releases instead of latest releases`}
168
168
  onClick={toggleGetSnapshot}
169
169
  >
170
170
  <BoltIcon />
@@ -201,7 +201,7 @@ export const DataSpaceAdvancedSearchModal = observer(
201
201
  <TimesCircleIcon />
202
202
  </div>
203
203
  <div className="data-space-advanced-search__dialog__view--failed__text">
204
- {`Can't load data product`}
204
+ {`Can't load data space`}
205
205
  </div>
206
206
  </div>
207
207
  </BlankPanelContent>
@@ -271,7 +271,7 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
271
271
  <PanelHeader title="properties">
272
272
  <PanelHeaderActions>
273
273
  <PanelHeaderActionItem
274
- title="copy data product query set up link to clipboard"
274
+ title="copy data space query set up link to clipboard"
275
275
  onClick={copyDataSpaceLinkToClipboard}
276
276
  disabled={!queryBuilderState.isDataSpaceLinkable}
277
277
  >
@@ -313,10 +313,10 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
313
313
  <div className="query-builder__setup__config-group__item">
314
314
  <label
315
315
  className="btn--sm query-builder__setup__config-group__data-product"
316
- title="data product"
316
+ title="data space"
317
317
  htmlFor="query-builder__setup__data-space-selector"
318
318
  >
319
- Data Product
319
+ Data Space
320
320
  </label>
321
321
  <CustomSelectorInput
322
322
  inputId="query-builder__setup__data-space-selector"
@@ -325,7 +325,7 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
325
325
  isLoading={queryBuilderState.loadEntitiesState.isInProgress}
326
326
  onChange={onDataSpaceOptionChange}
327
327
  value={selectedDataSpaceOption}
328
- placeholder="Search for data product..."
328
+ placeholder="Search for data space..."
329
329
  escapeClearsValue={true}
330
330
  darkMode={
331
331
  !applicationStore.layoutService
@@ -339,7 +339,7 @@ const DataSpaceQueryBuilderSetupPanelContent = observer(
339
339
  tabIndex={-1}
340
340
  className="query-builder__setup__data-space-searcher__btn btn--dark"
341
341
  onClick={openDataSpaceAdvancedSearch}
342
- title="Open advanced search for data product..."
342
+ title="Open advanced search for data space..."
343
343
  >
344
344
  <SearchIcon />
345
345
  </button>
@@ -26,6 +26,7 @@ import {
26
26
  type Package,
27
27
  type RawLambda,
28
28
  type DataElementReference,
29
+ type OperationalMetadata,
29
30
  PackageableElement,
30
31
  ConcreteFunctionDefinition,
31
32
  generateFunctionPrettyName,
@@ -209,6 +210,7 @@ export class DataSpace extends PackageableElement implements Hashable {
209
210
  executables?: DataSpaceExecutable[] | undefined;
210
211
  diagrams?: DataSpaceDiagram[] | undefined;
211
212
  supportInfo?: DataSpaceSupportInfo | undefined;
213
+ operationalMetadata?: OperationalMetadata | undefined;
212
214
 
213
215
  protected override get _elementHashCode(): string {
214
216
  return hashArray([
@@ -225,6 +227,7 @@ export class DataSpace extends PackageableElement implements Hashable {
225
227
  hashArray(this.executables ?? []),
226
228
  hashArray(this.diagrams ?? []),
227
229
  this.supportInfo ?? '',
230
+ this.operationalMetadata ?? '',
228
231
  ]);
229
232
  }
230
233
 
@@ -17,6 +17,7 @@
17
17
  import {
18
18
  observe_Abstract_PackageableElement,
19
19
  observe_DataElementReference,
20
+ type OperationalMetadata,
20
21
  observe_PackageableElementReference,
21
22
  observe_RawLambda,
22
23
  observe_StereotypeReference,
@@ -213,6 +214,18 @@ export const observe_DataSpaceSupportInfo = (
213
214
  return metamodel;
214
215
  };
215
216
 
217
+ export const observe_DataSpaceOperationalMetadata = skipObserved(
218
+ (metamodel: OperationalMetadata): OperationalMetadata => {
219
+ makeObservable(metamodel, {
220
+ coverageRegions: observable,
221
+ updateFrequency: observable,
222
+ hashCode: computed,
223
+ });
224
+
225
+ return metamodel;
226
+ },
227
+ );
228
+
216
229
  export const observe_DataSpace = skipObserved(
217
230
  (metamodel: DataSpace): DataSpace => {
218
231
  observe_Abstract_PackageableElement(metamodel);
@@ -226,6 +239,7 @@ export const observe_DataSpace = skipObserved(
226
239
  executables: observable,
227
240
  diagrams: observable,
228
241
  supportInfo: observable,
242
+ operationalMetadata: observable,
229
243
  _elementHashCode: override,
230
244
  });
231
245
 
@@ -248,6 +262,9 @@ export const observe_DataSpace = skipObserved(
248
262
  if (metamodel.supportInfo) {
249
263
  observe_DataSpaceSupportInfo(metamodel.supportInfo);
250
264
  }
265
+ if (metamodel.operationalMetadata) {
266
+ observe_DataSpaceOperationalMetadata(metamodel.operationalMetadata);
267
+ }
251
268
 
252
269
  return metamodel;
253
270
  },
@@ -45,6 +45,7 @@ export {
45
45
  observe_DataSpaceExecutable,
46
46
  observe_DataSpaceExecutionContext,
47
47
  observe_DataSpaceMappingProvider,
48
+ observe_DataSpaceOperationalMetadata,
48
49
  observe_DataSpaceSupportInfo,
49
50
  } from '../graph-manager/action/changeDetection/DSL_DataSpace_ObserverHelper.js';
50
51
  export {
@@ -85,6 +85,9 @@ import {
85
85
  type V1_SavedQueryExecutionBuilder,
86
86
  type V1_ElementPointerType,
87
87
  type V1_RawLambda,
88
+ type V1_DeliveryFrequency,
89
+ type V1_DataProductRegion,
90
+ V1_DataProductOperationalMetadata,
88
91
  V1_taggedValueModelSchema,
89
92
  PackageableElementExplicitReference,
90
93
  V1_PackageableElementPointer,
@@ -105,6 +108,9 @@ import {
105
108
  V1_buildEmbeddedData,
106
109
  V1_transformEmbeddedData,
107
110
  DataElementReference,
111
+ OperationalMetadata,
112
+ type DeliveryFrequency,
113
+ type Region,
108
114
  V1_DataElementReference,
109
115
  QueryDataSpaceExecutionContextInfo,
110
116
  generateFunctionPrettyName,
@@ -151,7 +157,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
151
157
  const execContext = new DataSpaceExecutionContext();
152
158
  execContext.name = guaranteeNonEmptyString(
153
159
  contextProtocol.name,
154
- `Data product execution context 'name' field is missing or empty`,
160
+ `Data space execution context 'name' field is missing or empty`,
155
161
  );
156
162
  execContext.title = contextProtocol.title;
157
163
  execContext.description = contextProtocol.description;
@@ -240,7 +246,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
240
246
  return elementPointer;
241
247
  }
242
248
  throw new UnsupportedOperationError(
243
- `Can't find data product element (only allow packages, classes, enumerations, and associations) '${pointer.path}'`,
249
+ `Can't find data space element (only allow packages, classes, enumerations, and associations) '${pointer.path}'`,
244
250
  );
245
251
  });
246
252
  }
@@ -307,7 +313,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
307
313
  );
308
314
  } catch {
309
315
  throw new UnsupportedOperationError(
310
- `Can't analyze data product executable with element in path: ${executableProtocol.executable.path}`,
316
+ `Can't analyze data space executable with element in path: ${executableProtocol.executable.path}`,
311
317
  executableProtocol,
312
318
  );
313
319
  }
@@ -315,7 +321,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
315
321
  return executable;
316
322
  } else {
317
323
  throw new UnsupportedOperationError(
318
- `Can't build data product executable`,
324
+ `Can't build data space executable`,
319
325
  executableProtocol,
320
326
  );
321
327
  }
@@ -345,7 +351,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
345
351
  elementProtocol.supportInfo.documentationUrl;
346
352
  supportEmail.address = guaranteeNonEmptyString(
347
353
  elementProtocol.supportInfo.address,
348
- `Data product support email 'address' field is missing or empty`,
354
+ `Data space support email 'address' field is missing or empty`,
349
355
  );
350
356
  element.supportInfo = supportEmail;
351
357
  } else if (
@@ -362,11 +368,21 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
362
368
  element.supportInfo = combinedInfo;
363
369
  } else {
364
370
  throw new UnsupportedOperationError(
365
- `Can't build data product support info`,
371
+ `Can't build data space support info`,
366
372
  elementProtocol.supportInfo,
367
373
  );
368
374
  }
369
375
  }
376
+ if (elementProtocol.operationalMetadata) {
377
+ const operationalMetadata = new OperationalMetadata();
378
+ operationalMetadata.updateFrequency = elementProtocol
379
+ .operationalMetadata.updateFrequency as
380
+ | DeliveryFrequency
381
+ | undefined;
382
+ operationalMetadata.coverageRegions = elementProtocol
383
+ .operationalMetadata.coverageRegions as Region[] | undefined;
384
+ element.operationalMetadata = operationalMetadata;
385
+ }
370
386
  },
371
387
  }),
372
388
  ];
@@ -544,7 +560,7 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
544
560
  return executableProtocol;
545
561
  } else {
546
562
  throw new UnsupportedOperationError(
547
- `Can't transform data product executable`,
563
+ `Can't transform data space executable`,
548
564
  executable,
549
565
  );
550
566
  }
@@ -579,11 +595,19 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
579
595
  protocol.supportInfo = combinedInfo;
580
596
  } else {
581
597
  throw new UnsupportedOperationError(
582
- `Can't transform data product support info`,
598
+ `Can't transform data space support info`,
583
599
  metamodel.supportInfo,
584
600
  );
585
601
  }
586
602
  }
603
+ if (metamodel.operationalMetadata) {
604
+ const operationalMetadata = new V1_DataProductOperationalMetadata();
605
+ operationalMetadata.updateFrequency = metamodel.operationalMetadata
606
+ .updateFrequency as V1_DeliveryFrequency | undefined;
607
+ operationalMetadata.coverageRegions = metamodel.operationalMetadata
608
+ .coverageRegions as V1_DataProductRegion[] | undefined;
609
+ protocol.operationalMetadata = operationalMetadata;
610
+ }
587
611
  return protocol;
588
612
  }
589
613
  return undefined;
@@ -605,13 +629,13 @@ export class DSL_DataSpace_PureProtocolProcessorPlugin
605
629
  );
606
630
  const defaultExecutionContext = guaranteeNonNullable(
607
631
  dataSpace.value.defaultExecutionContext,
608
- `Can't include data product '${protocol.includedDataSpace}' in a mapping: 'defaultExecutionContext' is required`,
632
+ `Can't include data space '${protocol.includedDataSpace}' in a mapping: 'defaultExecutionContext' is required`,
609
633
  );
610
634
  const includedMapping = new MappingIncludeDataSpace(
611
635
  parentMapping,
612
636
  guaranteeNonNullable(
613
637
  defaultExecutionContext.mapping,
614
- `Can't include data product '${protocol.includedDataSpace}' in a mapping: default execution context 'mapping' is required`,
638
+ `Can't include data space '${protocol.includedDataSpace}' in a mapping: default execution context 'mapping' is required`,
615
639
  ),
616
640
  dataSpace,
617
641
  );
@@ -195,7 +195,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
195
195
  ec.mapping?.path === currentQuery.mapping &&
196
196
  ec.defaultRuntime?.path === currentQuery.runtime,
197
197
  )[0]?.name,
198
- 'can`t find a corresponding executatin key based on query`s mapping and runtime in data product',
198
+ 'can`t find a corresponding executatin key based on query`s mapping and runtime in data space',
199
199
  );
200
200
  }
201
201
 
@@ -227,7 +227,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
227
227
  } else {
228
228
  actionState?.setMessage('Fetching project entities and dependencies...');
229
229
  const entities = await entitiesRetriever();
230
- actionState?.setMessage('Analyzing data product...');
230
+ actionState?.setMessage('Analyzing data space...');
231
231
  analysisResult = await engineClient.postWithTracing<
232
232
  PlainObject<V1_DataSpaceAnalysisResult>
233
233
  >(
@@ -350,7 +350,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
350
350
  analysisResult = result;
351
351
  } else {
352
352
  throw new GraphBuilderError(
353
- 'Fail to get a valid data product analytics json from metadata, start building full graph',
353
+ 'Fail to get a valid data space analytics json from metadata, start building full graph',
354
354
  );
355
355
  }
356
356
  const plugins =
@@ -402,14 +402,14 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
402
402
  let cacheResult: PlainObject<V1_DataSpaceAnalysisResult> | undefined;
403
403
  try {
404
404
  actionState?.setMessage(
405
- 'Fetching data product analysis result from cache...',
405
+ 'Fetching data space analysis result from cache...',
406
406
  );
407
407
  cacheResult = await cacheRetriever();
408
408
  } catch (error) {
409
409
  assertErrorThrown(error);
410
410
  this.graphManager.logService.warn(
411
411
  LogEvent.create(GRAPH_MANAGER_EVENT.CACHE_MANAGER_FAILURE),
412
- `Can't fetch data product analysis result cache: ${error.message}`,
412
+ `Can't fetch data space analysis result cache: ${error.message}`,
413
413
  );
414
414
  }
415
415
  return cacheResult;
@@ -421,13 +421,13 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
421
421
  ): Promise<PlainObject<StoredFileGeneration>[]> {
422
422
  let cacheResult: PlainObject<StoredFileGeneration>[] = [];
423
423
  try {
424
- actionState?.setMessage('Fetching data product artifacts from cache...');
424
+ actionState?.setMessage('Fetching data space artifacts from cache...');
425
425
  cacheResult = await cacheRetriever();
426
426
  } catch (error) {
427
427
  assertErrorThrown(error);
428
428
  this.graphManager.logService.warn(
429
429
  LogEvent.create(GRAPH_MANAGER_EVENT.CACHE_MANAGER_FAILURE),
430
- `Can't fetch data product artifacts cache: ${error.message}`,
430
+ `Can't fetch data space artifacts cache: ${error.message}`,
431
431
  );
432
432
  }
433
433
  return cacheResult;
@@ -593,7 +593,7 @@ export class V1_DSL_DataSpace_PureGraphManagerExtension extends DSL_DataSpace_Pu
593
593
  analysisResult.supportInfo.documentationUrl;
594
594
  supportEmail.address = guaranteeNonEmptyString(
595
595
  analysisResult.supportInfo.address,
596
- `Data product support email 'address' field is missing or empty`,
596
+ `Data space support email 'address' field is missing or empty`,
597
597
  );
598
598
  result.supportInfo = supportEmail;
599
599
  } else if (
@@ -454,7 +454,7 @@ const V1_deserializeDataSpaceExecutableInfo = (
454
454
  );
455
455
  default:
456
456
  throw new UnsupportedOperationError(
457
- `Can't deserialize data product executable info of type '${json._type}'`,
457
+ `Can't deserialize data space executable info of type '${json._type}'`,
458
458
  );
459
459
  }
460
460
  };
@@ -505,7 +505,7 @@ const V1_deserializeDataSpaceExecutableResult = (
505
505
  );
506
506
  default:
507
507
  throw new UnsupportedOperationError(
508
- `Can't deserialize data product executable result of type '${json._type}'`,
508
+ `Can't deserialize data space executable result of type '${json._type}'`,
509
509
  );
510
510
  }
511
511
  };