@finos/legend-application-data-cube 0.6.7 → 0.6.8
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.
- package/lib/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.d.ts.map +1 -1
- package/lib/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.js +21 -16
- package/lib/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.d.ts +9 -4
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.d.ts.map +1 -1
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.js +42 -22
- package/lib/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.js.map +1 -1
- package/package.json +1 -1
- package/src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx +45 -18
- package/src/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.ts +50 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,2CAA2C,EAAE,MAAM,+EAA+E,CAAC;AAEjJ,eAAO,MAAM,sCAAsC,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5D,aAAa,EAAE,2CAA2C,CAAC;CAC5D,CAsJC,CAAC"}
|
|
@@ -18,16 +18,15 @@ import { observer } from 'mobx-react-lite';
|
|
|
18
18
|
import { FormTextInput } from '@finos/legend-data-cube';
|
|
19
19
|
import { CustomSelectorInput } from '@finos/legend-art';
|
|
20
20
|
import { useAuth } from 'react-oidc-context';
|
|
21
|
-
import {
|
|
22
|
-
import { assertErrorThrown, guaranteeNonNullable } from '@finos/legend-shared';
|
|
21
|
+
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
23
22
|
import { useEffect } from 'react';
|
|
24
23
|
export const LakehouseConsumerDataCubeSourceBuilder = observer(({ sourceBuilder: state }) => {
|
|
25
24
|
const auth = useAuth();
|
|
26
|
-
const store = useLegendDataCubeBuilderStore();
|
|
27
25
|
useEffect(() => {
|
|
28
26
|
state.reset();
|
|
29
27
|
state.loadDataProducts();
|
|
30
|
-
|
|
28
|
+
state.fetchEnvironment(auth.user?.access_token);
|
|
29
|
+
}, [state, auth]);
|
|
31
30
|
return (_jsx("div", { className: "flex h-full w-full", children: _jsxs("div", { className: "m-3 flex w-full flex-col items-stretch gap-2 text-neutral-500", children: [_jsxs("div", { className: "query-setup__wizard__group mt-3", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Data Product" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector text-nowrap", options: state.dataProducts.map((dataProduct) => ({
|
|
32
31
|
label: guaranteeNonNullable(dataProduct.path),
|
|
33
32
|
value: guaranteeNonNullable(dataProduct.path),
|
|
@@ -40,17 +39,17 @@ export const LakehouseConsumerDataCubeSourceBuilder = observer(({ sourceBuilder:
|
|
|
40
39
|
label: state.selectedDataProduct,
|
|
41
40
|
value: state.selectedDataProduct,
|
|
42
41
|
}
|
|
43
|
-
: null, placeholder: `Choose a Data Product`, isClearable: false, escapeClearsValue: true })] }), state.
|
|
42
|
+
: null, placeholder: `Choose a Data Product`, isClearable: false, escapeClearsValue: true })] }), state.ingestEnvironments.length > 0 && (_jsxs("div", { className: "query-setup__wizard__group mt-2", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Ingest Environment" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: state.ingestEnvironments.map((env) => ({
|
|
44
43
|
label: env,
|
|
45
44
|
value: env,
|
|
46
45
|
})), disabled: false, isLoading: false, onChange: (newValue) => {
|
|
47
46
|
const env = newValue?.value ?? '';
|
|
48
|
-
state.
|
|
47
|
+
state.setSelectedIngestEnvironment(env);
|
|
49
48
|
state.fetchAccessPoints();
|
|
50
|
-
}, value: state.
|
|
49
|
+
}, value: state.selectedIngestEnvironment
|
|
51
50
|
? {
|
|
52
|
-
label: state.
|
|
53
|
-
value: state.
|
|
51
|
+
label: state.selectedIngestEnvironment,
|
|
52
|
+
value: state.selectedIngestEnvironment,
|
|
54
53
|
}
|
|
55
54
|
: null, isClearable: false, escapeClearsValue: true })] })), state.accessPoints.length > 0 && (_jsxs("div", { className: "query-setup__wizard__group mt-2", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Access Point" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector", options: state.accessPoints.map((accessPoint) => ({
|
|
56
55
|
label: accessPoint,
|
|
@@ -58,18 +57,24 @@ export const LakehouseConsumerDataCubeSourceBuilder = observer(({ sourceBuilder:
|
|
|
58
57
|
})), disabled: false, isLoading: false, onChange: (newValue) => {
|
|
59
58
|
const accessPoint = newValue?.value ?? '';
|
|
60
59
|
state.setSelectedAccessPoint(accessPoint);
|
|
61
|
-
state
|
|
62
|
-
.fetchEnvironment(auth.user?.access_token)
|
|
63
|
-
.catch((error) => {
|
|
64
|
-
assertErrorThrown(error);
|
|
65
|
-
store.alertService.alertUnhandledError(error);
|
|
66
|
-
});
|
|
67
60
|
}, value: state.selectedAccessPoint
|
|
68
61
|
? {
|
|
69
62
|
label: state.selectedAccessPoint,
|
|
70
63
|
value: state.selectedAccessPoint,
|
|
71
64
|
}
|
|
72
|
-
: null, isClearable: false, escapeClearsValue: true })] })), state.selectedAccessPoint && (_jsxs("div", { className: "query-setup__wizard__group mt-
|
|
65
|
+
: null, isClearable: false, escapeClearsValue: true })] })), state.environments.length > 0 && state.selectedAccessPoint && (_jsxs("div", { className: "query-setup__wizard__group mt-3", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Environment" }), _jsx(CustomSelectorInput, { className: "query-setup__wizard__selector text-nowrap", options: state.environments.map((env) => ({
|
|
66
|
+
label: env,
|
|
67
|
+
value: env,
|
|
68
|
+
})), disabled: state.ingestEnvLoadingState.isInProgress ||
|
|
69
|
+
state.ingestEnvLoadingState.hasFailed, isLoading: state.ingestEnvLoadingState.isInProgress, onChange: (newValue) => {
|
|
70
|
+
state.setSelectedEnvironment(newValue?.value ?? '');
|
|
71
|
+
state.setWarehouse(state.DEFAULT_CONSUMER_WAREHOUSE);
|
|
72
|
+
}, value: state.selectedEnvironment
|
|
73
|
+
? {
|
|
74
|
+
label: state.selectedEnvironment,
|
|
75
|
+
value: state.selectedEnvironment,
|
|
76
|
+
}
|
|
77
|
+
: null, placeholder: `Choose an Environment`, isClearable: false, escapeClearsValue: true })] })), state.selectedEnvironment && (_jsxs("div", { className: "query-setup__wizard__group mt-2", children: [_jsx("div", { className: "query-setup__wizard__group__title", children: "Warehouse" }), _jsx(FormTextInput, { className: "w-full text-base text-black", value: state.warehouse, onChange: (event) => {
|
|
73
78
|
state.setWarehouse(event.target.value);
|
|
74
79
|
} })] }))] }) }));
|
|
75
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilder.js","sourceRoot":"","sources":["../../../../src/components/builder/source/LakehouseConsumerDataCubeSourceBuilder.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -25,30 +25,35 @@ export declare class LakehouseConsumerDataCubeSourceBuilderState extends LegendD
|
|
|
25
25
|
warehouse: string | undefined;
|
|
26
26
|
selectedDataProduct: string | undefined;
|
|
27
27
|
selectedAccessPoint: string | undefined;
|
|
28
|
-
|
|
28
|
+
selectedIngestEnvironment: string | undefined;
|
|
29
29
|
paths: string[];
|
|
30
|
-
|
|
30
|
+
environments: string[];
|
|
31
|
+
selectedEnvironment: string | undefined;
|
|
31
32
|
dataProducts: StoredSummaryEntity[];
|
|
32
33
|
dataProductMap: Record<string, V1_EntitlementsDataProductDetails>;
|
|
33
34
|
accessPoints: string[];
|
|
34
|
-
|
|
35
|
+
ingestEnvironments: string[];
|
|
35
36
|
dpCoordinates: VersionedProjectData | undefined;
|
|
37
|
+
DEFAULT_CONSUMER_WAREHOUSE: string;
|
|
36
38
|
private readonly _depotServerClient;
|
|
37
39
|
private readonly _platformServerClient;
|
|
38
40
|
private readonly _contractServerClient;
|
|
39
41
|
readonly dataProductLoadingState: ActionState;
|
|
42
|
+
readonly ingestEnvLoadingState: ActionState;
|
|
40
43
|
constructor(application: LegendDataCubeApplicationStore, engine: LegendDataCubeDataCubeEngine, depotServerClient: DepotServerClient, platformServerClient: LakehousePlatformServerClient, contractServerClient: LakehouseContractServerClient, alertService: DataCubeAlertService);
|
|
41
44
|
setWarehouse(warehouse: string | undefined): void;
|
|
42
45
|
setDataProducts(dataProducts: StoredSummaryEntity[]): void;
|
|
43
46
|
setSelectedDataProduct(dataProduct: string | undefined): void;
|
|
44
47
|
setAccessPoints(accessPoints: string[]): void;
|
|
48
|
+
setIngestEnvironments(environments: string[]): void;
|
|
45
49
|
setEnvironments(environments: string[]): void;
|
|
46
50
|
setSelectedAccessPoint(accessPoint: string | undefined): void;
|
|
51
|
+
setSelectedIngestEnvironment(environment: string | undefined): void;
|
|
47
52
|
setSelectedEnvironment(environment: string | undefined): void;
|
|
48
53
|
loadDataProducts(): GeneratorFn<void>;
|
|
49
54
|
fetchDataProductEnvironments(access_token: string | undefined): GeneratorFn<void>;
|
|
50
55
|
fetchAccessPoints(): void;
|
|
51
|
-
fetchEnvironment(access_token: string | undefined):
|
|
56
|
+
fetchEnvironment(access_token: string | undefined): GeneratorFn<void>;
|
|
52
57
|
reset(): void;
|
|
53
58
|
resetDataProduct(): void;
|
|
54
59
|
resetEnvironment(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,EAGX,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,
|
|
1
|
+
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilderState.d.ts","sourceRoot":"","sources":["../../../../src/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { action, flow, makeObservable, observable } from 'mobx';
|
|
17
17
|
import { LegendDataCubeSourceBuilderState, LegendDataCubeSourceBuilderType, } from './LegendDataCubeSourceBuilderState.js';
|
|
18
18
|
import { ActionState, assertErrorThrown, guaranteeNonNullable, } from '@finos/legend-shared';
|
|
19
|
-
import {
|
|
19
|
+
import {} from '@finos/legend-server-lakehouse';
|
|
20
20
|
import { DepotScope, VersionedProjectData, } from '@finos/legend-server-depot';
|
|
21
21
|
import { CORE_PURE_PATH, } from '@finos/legend-graph';
|
|
22
22
|
import { RawLakehouseConsumerDataCubeSource } from '../../model/LakehouseConsumerDataCubeSource.js';
|
|
@@ -24,18 +24,21 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
24
24
|
warehouse;
|
|
25
25
|
selectedDataProduct;
|
|
26
26
|
selectedAccessPoint;
|
|
27
|
-
|
|
27
|
+
selectedIngestEnvironment;
|
|
28
28
|
paths = [];
|
|
29
|
-
|
|
29
|
+
environments = [];
|
|
30
|
+
selectedEnvironment;
|
|
30
31
|
dataProducts = [];
|
|
31
32
|
dataProductMap = {};
|
|
32
33
|
accessPoints = [];
|
|
33
|
-
|
|
34
|
+
ingestEnvironments = [];
|
|
34
35
|
dpCoordinates;
|
|
36
|
+
DEFAULT_CONSUMER_WAREHOUSE = 'LAKEHOUSE_CONSUMER_DEFAULT_WH';
|
|
35
37
|
_depotServerClient;
|
|
36
38
|
_platformServerClient;
|
|
37
39
|
_contractServerClient;
|
|
38
40
|
dataProductLoadingState = ActionState.create();
|
|
41
|
+
ingestEnvLoadingState = ActionState.create();
|
|
39
42
|
constructor(application, engine, depotServerClient, platformServerClient, contractServerClient, alertService) {
|
|
40
43
|
super(application, engine, alertService);
|
|
41
44
|
this._platformServerClient = platformServerClient;
|
|
@@ -46,18 +49,23 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
46
49
|
dataProducts: observable,
|
|
47
50
|
selectedDataProduct: observable,
|
|
48
51
|
accessPoints: observable,
|
|
52
|
+
ingestEnvironments: observable,
|
|
49
53
|
environments: observable,
|
|
50
54
|
selectedAccessPoint: observable,
|
|
55
|
+
selectedIngestEnvironment: observable,
|
|
51
56
|
selectedEnvironment: observable,
|
|
52
57
|
fetchDataProductEnvironments: flow,
|
|
53
58
|
loadDataProducts: flow,
|
|
59
|
+
fetchEnvironment: flow,
|
|
54
60
|
setWarehouse: action,
|
|
55
61
|
setDataProducts: action,
|
|
56
62
|
setSelectedDataProduct: action,
|
|
57
63
|
setAccessPoints: action,
|
|
58
|
-
|
|
64
|
+
setIngestEnvironments: action,
|
|
59
65
|
setSelectedAccessPoint: action,
|
|
60
66
|
setSelectedEnvironment: action,
|
|
67
|
+
setSelectedIngestEnvironment: action,
|
|
68
|
+
setEnvironments: action,
|
|
61
69
|
});
|
|
62
70
|
}
|
|
63
71
|
setWarehouse(warehouse) {
|
|
@@ -72,12 +80,18 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
72
80
|
setAccessPoints(accessPoints) {
|
|
73
81
|
this.accessPoints = accessPoints;
|
|
74
82
|
}
|
|
83
|
+
setIngestEnvironments(environments) {
|
|
84
|
+
this.ingestEnvironments = environments;
|
|
85
|
+
}
|
|
75
86
|
setEnvironments(environments) {
|
|
76
87
|
this.environments = environments;
|
|
77
88
|
}
|
|
78
89
|
setSelectedAccessPoint(accessPoint) {
|
|
79
90
|
this.selectedAccessPoint = accessPoint;
|
|
80
91
|
}
|
|
92
|
+
setSelectedIngestEnvironment(environment) {
|
|
93
|
+
this.selectedIngestEnvironment = environment;
|
|
94
|
+
}
|
|
81
95
|
setSelectedEnvironment(environment) {
|
|
82
96
|
this.selectedEnvironment = environment;
|
|
83
97
|
}
|
|
@@ -109,12 +123,12 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
109
123
|
acc[envType] = dp;
|
|
110
124
|
return acc;
|
|
111
125
|
}, {});
|
|
112
|
-
this.
|
|
126
|
+
this.setIngestEnvironments(Object.keys(this.dataProductMap));
|
|
113
127
|
}
|
|
114
128
|
}
|
|
115
129
|
fetchAccessPoints() {
|
|
116
130
|
this.resetEnvironment();
|
|
117
|
-
const selectedEnvironment = guaranteeNonNullable(this.
|
|
131
|
+
const selectedEnvironment = guaranteeNonNullable(this.selectedIngestEnvironment);
|
|
118
132
|
const dataProduct = this.dataProductMap[selectedEnvironment];
|
|
119
133
|
if (dataProduct?.origin &&
|
|
120
134
|
'group' in dataProduct.origin &&
|
|
@@ -128,32 +142,36 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
128
142
|
}
|
|
129
143
|
this.setAccessPoints(dataProduct?.dataProduct.accessPoints.map((accessPoint) => accessPoint.name) ?? []);
|
|
130
144
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
*fetchEnvironment(access_token) {
|
|
146
|
+
this.ingestEnvLoadingState.inProgress();
|
|
147
|
+
const ingestServerConfigs = (yield this._platformServerClient.getIngestEnvironmentSummaries(access_token));
|
|
148
|
+
this.setEnvironments(ingestServerConfigs
|
|
149
|
+
.map((config) => {
|
|
150
|
+
const baseUrl = new URL(config.ingestServerUrl).hostname;
|
|
151
|
+
const subdomain = baseUrl.split('.')[0];
|
|
152
|
+
const parts = subdomain?.split('-');
|
|
153
|
+
return parts?.slice(0, -1).join('-');
|
|
154
|
+
})
|
|
155
|
+
.filter((env) => env !== undefined));
|
|
156
|
+
this.ingestEnvLoadingState.complete();
|
|
141
157
|
}
|
|
142
158
|
reset() {
|
|
143
159
|
this.setWarehouse(undefined);
|
|
144
160
|
this.setDataProducts([]);
|
|
145
161
|
this.setSelectedDataProduct(undefined);
|
|
146
162
|
this.setAccessPoints([]);
|
|
147
|
-
this.
|
|
163
|
+
this.setIngestEnvironments([]);
|
|
148
164
|
this.setSelectedAccessPoint(undefined);
|
|
165
|
+
this.setSelectedIngestEnvironment(undefined);
|
|
149
166
|
this.setSelectedEnvironment(undefined);
|
|
150
167
|
this.dpCoordinates = undefined;
|
|
151
168
|
}
|
|
152
169
|
resetDataProduct() {
|
|
153
170
|
this.setWarehouse(undefined);
|
|
154
171
|
this.setAccessPoints([]);
|
|
155
|
-
this.
|
|
172
|
+
this.setIngestEnvironments([]);
|
|
156
173
|
this.setSelectedAccessPoint(undefined);
|
|
174
|
+
this.setSelectedIngestEnvironment(undefined);
|
|
157
175
|
this.setSelectedEnvironment(undefined);
|
|
158
176
|
this.dpCoordinates = undefined;
|
|
159
177
|
}
|
|
@@ -161,6 +179,7 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
161
179
|
this.setWarehouse(undefined);
|
|
162
180
|
this.setAccessPoints([]);
|
|
163
181
|
this.setSelectedAccessPoint(undefined);
|
|
182
|
+
this.setSelectedEnvironment(undefined);
|
|
164
183
|
this.dpCoordinates = undefined;
|
|
165
184
|
}
|
|
166
185
|
get label() {
|
|
@@ -170,8 +189,9 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
170
189
|
return (Boolean(this.warehouse) &&
|
|
171
190
|
Boolean(this.selectedAccessPoint) &&
|
|
172
191
|
Boolean(this.selectedDataProduct) &&
|
|
173
|
-
Boolean(this.
|
|
174
|
-
Boolean(this.dpCoordinates)
|
|
192
|
+
Boolean(this.selectedIngestEnvironment) &&
|
|
193
|
+
Boolean(this.dpCoordinates) &&
|
|
194
|
+
Boolean(this.selectedEnvironment));
|
|
175
195
|
}
|
|
176
196
|
async generateSourceData() {
|
|
177
197
|
// build data cube source
|
|
@@ -181,7 +201,7 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
181
201
|
guaranteeNonNullable(this.selectedAccessPoint),
|
|
182
202
|
]);
|
|
183
203
|
const rawSource = new RawLakehouseConsumerDataCubeSource();
|
|
184
|
-
rawSource.environment = guaranteeNonNullable(this.
|
|
204
|
+
rawSource.environment = guaranteeNonNullable(this.selectedEnvironment);
|
|
185
205
|
rawSource.dpCoordinates = guaranteeNonNullable(this.dpCoordinates);
|
|
186
206
|
rawSource.paths = this.paths;
|
|
187
207
|
rawSource.warehouse = guaranteeNonNullable(this.warehouse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,EACL,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,
|
|
1
|
+
{"version":3,"file":"LakehouseConsumerDataCubeSourceBuilderState.js","sourceRoot":"","sources":["../../../../src/stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,EACL,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAIN,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,UAAU,EACV,oBAAoB,GAGrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,cAAc,GAGf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kCAAkC,EAAE,MAAM,gDAAgD,CAAC;AAEpG,MAAM,OAAO,2CAA4C,SAAQ,gCAAgC;IAC/F,SAAS,CAAqB;IAC9B,mBAAmB,CAAqB;IACxC,mBAAmB,CAAqB;IACxC,yBAAyB,CAAqB;IAC9C,KAAK,GAAa,EAAE,CAAC;IACrB,YAAY,GAAa,EAAE,CAAC;IAC5B,mBAAmB,CAAqB;IACxC,YAAY,GAA0B,EAAE,CAAC;IACzC,cAAc,GAAsD,EAAE,CAAC;IACvE,YAAY,GAAa,EAAE,CAAC;IAC5B,kBAAkB,GAAa,EAAE,CAAC;IAClC,aAAa,CAAmC;IAEhD,0BAA0B,GAAG,+BAA+B,CAAC;IAE5C,kBAAkB,CAAoB;IACtC,qBAAqB,CAAgC;IACrD,qBAAqB,CAAgC;IAC7D,uBAAuB,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC/C,qBAAqB,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAEtD,YACE,WAA2C,EAC3C,MAAoC,EACpC,iBAAoC,EACpC,oBAAmD,EACnD,oBAAmD,EACnD,YAAkC;QAElC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAClD,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAC;QAC5C,IAAI,CAAC,qBAAqB,GAAG,oBAAoB,CAAC;QAElD,cAAc,CAAC,IAAI,EAAE;YACnB,SAAS,EAAE,UAAU;YACrB,YAAY,EAAE,UAAU;YACxB,mBAAmB,EAAE,UAAU;YAC/B,YAAY,EAAE,UAAU;YACxB,kBAAkB,EAAE,UAAU;YAC9B,YAAY,EAAE,UAAU;YACxB,mBAAmB,EAAE,UAAU;YAC/B,yBAAyB,EAAE,UAAU;YACrC,mBAAmB,EAAE,UAAU;YAC/B,4BAA4B,EAAE,IAAI;YAClC,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YAEtB,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE,MAAM;YACvB,sBAAsB,EAAE,MAAM;YAC9B,eAAe,EAAE,MAAM;YACvB,qBAAqB,EAAE,MAAM;YAC7B,sBAAsB,EAAE,MAAM;YAC9B,sBAAsB,EAAE,MAAM;YAC9B,4BAA4B,EAAE,MAAM;YACpC,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,SAA6B;QACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,eAAe,CAAC,YAAmC;QACjD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,sBAAsB,CAAC,WAA+B;QACpD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,YAAsB;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,qBAAqB,CAAC,YAAsB;QAC1C,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;IACzC,CAAC;IAED,eAAe,CAAC,YAAsB;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,sBAAsB,CAAC,WAA+B;QACpD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;IACzC,CAAC;IAED,4BAA4B,CAAC,WAA+B;QAC1D,IAAI,CAAC,yBAAyB,GAAG,WAAW,CAAC;IAC/C,CAAC;IAED,sBAAsB,CAAC,WAA+B;QACpD,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC;IACzC,CAAC;IAED,CAAC,gBAAgB;QACf,IAAI,CAAC;YACH,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,eAAe,CAClB,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CAC3D,cAAc,CAAC,YAAY,EAC3B;gBACE,KAAK,EAAE,UAAU,CAAC,QAAQ;gBAC1B,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI;aACd,CACF,CAA0B,CAC5B,CAAC;YACF,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,CAAC,4BAA4B,CAC3B,YAAgC;QAEhC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClE,MAAM,mBAAmB,GACvB,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAC9C,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAClC,YAAY,CACb,CAA8C,CAAC;QAClD,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,YAAY;iBACnD,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;iBAChD,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;gBACV,MAAM,OAAO,GAAG,oBAAoB,CAClC,EAAE,CAAC,oBAAoB,CACxB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAClB,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAuD,CACxD,CAAC;YAEJ,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,mBAAmB,GAAG,oBAAoB,CAC9C,IAAI,CAAC,yBAAyB,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAE7D,IACE,WAAW,EAAE,MAAM;YACnB,OAAO,IAAI,WAAW,CAAC,MAAM;YAC7B,UAAU,IAAI,WAAW,CAAC,MAAM;YAChC,SAAS,IAAI,WAAW,CAAC,MAAM,EAC/B,CAAC;YACD,MAAM,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;YACjD,aAAa,CAAC,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,KAAe,CAAC;YAC3D,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,QAAkB,CAAC;YACjE,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAiB,CAAC;YAC/D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,eAAe,CAClB,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,GAAG,CACvC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAClC,IAAI,EAAE,CACR,CAAC;IACJ,CAAC;IAED,CAAC,gBAAgB,CAAC,YAAgC;QAChD,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,mBAAmB,GACvB,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,6BAA6B,CAC7D,YAAY,CACb,CAAmC,CAAC;QACvC,IAAI,CAAC,eAAe,CAClB,mBAAmB;aAChB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;YACzD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CACtC,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;IACjC,CAAC;IAED,IAAa,KAAK;QAChB,OAAO,+BAA+B,CAAC,kBAAkB,CAAC;IAC5D,CAAC;IAED,IAAa,OAAO;QAClB,OAAO,CACL,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAClC,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,kBAAkB;QAC/B,yBAAyB;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,GAAG;YACD,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC9C,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC;SAC/C,CACF,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,kCAAkC,EAAE,CAAC;QAC3D,SAAS,CAAC,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvE,SAAS,CAAC,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnE,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,SAAS,CAAC,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3D,OAAO,OAAO,CAAC,OAAO,CACpB,kCAAkC,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CACnE,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -17,8 +17,7 @@ import { observer } from 'mobx-react-lite';
|
|
|
17
17
|
import { FormTextInput } from '@finos/legend-data-cube';
|
|
18
18
|
import { CustomSelectorInput } from '@finos/legend-art';
|
|
19
19
|
import { useAuth } from 'react-oidc-context';
|
|
20
|
-
import {
|
|
21
|
-
import { assertErrorThrown, guaranteeNonNullable } from '@finos/legend-shared';
|
|
20
|
+
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
22
21
|
import { useEffect } from 'react';
|
|
23
22
|
import type { LakehouseConsumerDataCubeSourceBuilderState } from '../../../stores/builder/source/LakehouseConsumerDataCubeSourceBuilderState.js';
|
|
24
23
|
|
|
@@ -26,12 +25,12 @@ export const LakehouseConsumerDataCubeSourceBuilder: React.FC<{
|
|
|
26
25
|
sourceBuilder: LakehouseConsumerDataCubeSourceBuilderState;
|
|
27
26
|
}> = observer(({ sourceBuilder: state }) => {
|
|
28
27
|
const auth = useAuth();
|
|
29
|
-
const store = useLegendDataCubeBuilderStore();
|
|
30
28
|
|
|
31
29
|
useEffect(() => {
|
|
32
30
|
state.reset();
|
|
33
31
|
state.loadDataProducts();
|
|
34
|
-
|
|
32
|
+
state.fetchEnvironment(auth.user?.access_token);
|
|
33
|
+
}, [state, auth]);
|
|
35
34
|
|
|
36
35
|
return (
|
|
37
36
|
<div className="flex h-full w-full">
|
|
@@ -66,12 +65,14 @@ export const LakehouseConsumerDataCubeSourceBuilder: React.FC<{
|
|
|
66
65
|
escapeClearsValue={true}
|
|
67
66
|
/>
|
|
68
67
|
</div>
|
|
69
|
-
{state.
|
|
68
|
+
{state.ingestEnvironments.length > 0 && (
|
|
70
69
|
<div className="query-setup__wizard__group mt-2">
|
|
71
|
-
<div className="query-setup__wizard__group__title">
|
|
70
|
+
<div className="query-setup__wizard__group__title">
|
|
71
|
+
Ingest Environment
|
|
72
|
+
</div>
|
|
72
73
|
<CustomSelectorInput
|
|
73
74
|
className="query-setup__wizard__selector"
|
|
74
|
-
options={state.
|
|
75
|
+
options={state.ingestEnvironments.map((env) => ({
|
|
75
76
|
label: env,
|
|
76
77
|
value: env,
|
|
77
78
|
}))}
|
|
@@ -79,14 +80,14 @@ export const LakehouseConsumerDataCubeSourceBuilder: React.FC<{
|
|
|
79
80
|
isLoading={false}
|
|
80
81
|
onChange={(newValue: { label: string; value: string } | null) => {
|
|
81
82
|
const env = newValue?.value ?? '';
|
|
82
|
-
state.
|
|
83
|
+
state.setSelectedIngestEnvironment(env);
|
|
83
84
|
state.fetchAccessPoints();
|
|
84
85
|
}}
|
|
85
86
|
value={
|
|
86
|
-
state.
|
|
87
|
+
state.selectedIngestEnvironment
|
|
87
88
|
? {
|
|
88
|
-
label: state.
|
|
89
|
-
value: state.
|
|
89
|
+
label: state.selectedIngestEnvironment,
|
|
90
|
+
value: state.selectedIngestEnvironment,
|
|
90
91
|
}
|
|
91
92
|
: null
|
|
92
93
|
}
|
|
@@ -111,12 +112,6 @@ export const LakehouseConsumerDataCubeSourceBuilder: React.FC<{
|
|
|
111
112
|
onChange={(newValue: { label: string; value: string } | null) => {
|
|
112
113
|
const accessPoint = newValue?.value ?? '';
|
|
113
114
|
state.setSelectedAccessPoint(accessPoint);
|
|
114
|
-
state
|
|
115
|
-
.fetchEnvironment(auth.user?.access_token)
|
|
116
|
-
.catch((error) => {
|
|
117
|
-
assertErrorThrown(error);
|
|
118
|
-
store.alertService.alertUnhandledError(error);
|
|
119
|
-
});
|
|
120
115
|
}}
|
|
121
116
|
value={
|
|
122
117
|
state.selectedAccessPoint
|
|
@@ -131,7 +126,39 @@ export const LakehouseConsumerDataCubeSourceBuilder: React.FC<{
|
|
|
131
126
|
/>
|
|
132
127
|
</div>
|
|
133
128
|
)}
|
|
134
|
-
{state.selectedAccessPoint && (
|
|
129
|
+
{state.environments.length > 0 && state.selectedAccessPoint && (
|
|
130
|
+
<div className="query-setup__wizard__group mt-3">
|
|
131
|
+
<div className="query-setup__wizard__group__title">Environment</div>
|
|
132
|
+
<CustomSelectorInput
|
|
133
|
+
className="query-setup__wizard__selector text-nowrap"
|
|
134
|
+
options={state.environments.map((env) => ({
|
|
135
|
+
label: env,
|
|
136
|
+
value: env,
|
|
137
|
+
}))}
|
|
138
|
+
disabled={
|
|
139
|
+
state.ingestEnvLoadingState.isInProgress ||
|
|
140
|
+
state.ingestEnvLoadingState.hasFailed
|
|
141
|
+
}
|
|
142
|
+
isLoading={state.ingestEnvLoadingState.isInProgress}
|
|
143
|
+
onChange={(newValue: { label: string; value: string } | null) => {
|
|
144
|
+
state.setSelectedEnvironment(newValue?.value ?? '');
|
|
145
|
+
state.setWarehouse(state.DEFAULT_CONSUMER_WAREHOUSE);
|
|
146
|
+
}}
|
|
147
|
+
value={
|
|
148
|
+
state.selectedEnvironment
|
|
149
|
+
? {
|
|
150
|
+
label: state.selectedEnvironment,
|
|
151
|
+
value: state.selectedEnvironment,
|
|
152
|
+
}
|
|
153
|
+
: null
|
|
154
|
+
}
|
|
155
|
+
placeholder={`Choose an Environment`}
|
|
156
|
+
isClearable={false}
|
|
157
|
+
escapeClearsValue={true}
|
|
158
|
+
/>
|
|
159
|
+
</div>
|
|
160
|
+
)}
|
|
161
|
+
{state.selectedEnvironment && (
|
|
135
162
|
<div className="query-setup__wizard__group mt-2">
|
|
136
163
|
<div className="query-setup__wizard__group__title">Warehouse</div>
|
|
137
164
|
<FormTextInput
|
|
@@ -30,9 +30,9 @@ import type { DataCubeAlertService } from '@finos/legend-data-cube';
|
|
|
30
30
|
import type { LegendDataCubeApplicationStore } from '../../LegendDataCubeBaseStore.js';
|
|
31
31
|
import type { LegendDataCubeDataCubeEngine } from '../../LegendDataCubeDataCubeEngine.js';
|
|
32
32
|
import {
|
|
33
|
-
IngestDeploymentServerConfig,
|
|
34
33
|
type LakehousePlatformServerClient,
|
|
35
34
|
type LakehouseContractServerClient,
|
|
35
|
+
type IngestDeploymentServerConfig,
|
|
36
36
|
} from '@finos/legend-server-lakehouse';
|
|
37
37
|
import {
|
|
38
38
|
DepotScope,
|
|
@@ -51,19 +51,23 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
51
51
|
warehouse: string | undefined;
|
|
52
52
|
selectedDataProduct: string | undefined;
|
|
53
53
|
selectedAccessPoint: string | undefined;
|
|
54
|
-
|
|
54
|
+
selectedIngestEnvironment: string | undefined;
|
|
55
55
|
paths: string[] = [];
|
|
56
|
-
|
|
56
|
+
environments: string[] = [];
|
|
57
|
+
selectedEnvironment: string | undefined;
|
|
57
58
|
dataProducts: StoredSummaryEntity[] = [];
|
|
58
59
|
dataProductMap: Record<string, V1_EntitlementsDataProductDetails> = {};
|
|
59
60
|
accessPoints: string[] = [];
|
|
60
|
-
|
|
61
|
+
ingestEnvironments: string[] = [];
|
|
61
62
|
dpCoordinates: VersionedProjectData | undefined;
|
|
62
63
|
|
|
64
|
+
DEFAULT_CONSUMER_WAREHOUSE = 'LAKEHOUSE_CONSUMER_DEFAULT_WH';
|
|
65
|
+
|
|
63
66
|
private readonly _depotServerClient: DepotServerClient;
|
|
64
67
|
private readonly _platformServerClient: LakehousePlatformServerClient;
|
|
65
68
|
private readonly _contractServerClient: LakehouseContractServerClient;
|
|
66
69
|
readonly dataProductLoadingState = ActionState.create();
|
|
70
|
+
readonly ingestEnvLoadingState = ActionState.create();
|
|
67
71
|
|
|
68
72
|
constructor(
|
|
69
73
|
application: LegendDataCubeApplicationStore,
|
|
@@ -83,19 +87,24 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
83
87
|
dataProducts: observable,
|
|
84
88
|
selectedDataProduct: observable,
|
|
85
89
|
accessPoints: observable,
|
|
90
|
+
ingestEnvironments: observable,
|
|
86
91
|
environments: observable,
|
|
87
92
|
selectedAccessPoint: observable,
|
|
93
|
+
selectedIngestEnvironment: observable,
|
|
88
94
|
selectedEnvironment: observable,
|
|
89
95
|
fetchDataProductEnvironments: flow,
|
|
90
96
|
loadDataProducts: flow,
|
|
97
|
+
fetchEnvironment: flow,
|
|
91
98
|
|
|
92
99
|
setWarehouse: action,
|
|
93
100
|
setDataProducts: action,
|
|
94
101
|
setSelectedDataProduct: action,
|
|
95
102
|
setAccessPoints: action,
|
|
96
|
-
|
|
103
|
+
setIngestEnvironments: action,
|
|
97
104
|
setSelectedAccessPoint: action,
|
|
98
105
|
setSelectedEnvironment: action,
|
|
106
|
+
setSelectedIngestEnvironment: action,
|
|
107
|
+
setEnvironments: action,
|
|
99
108
|
});
|
|
100
109
|
}
|
|
101
110
|
|
|
@@ -115,6 +124,10 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
115
124
|
this.accessPoints = accessPoints;
|
|
116
125
|
}
|
|
117
126
|
|
|
127
|
+
setIngestEnvironments(environments: string[]) {
|
|
128
|
+
this.ingestEnvironments = environments;
|
|
129
|
+
}
|
|
130
|
+
|
|
118
131
|
setEnvironments(environments: string[]) {
|
|
119
132
|
this.environments = environments;
|
|
120
133
|
}
|
|
@@ -123,6 +136,10 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
123
136
|
this.selectedAccessPoint = accessPoint;
|
|
124
137
|
}
|
|
125
138
|
|
|
139
|
+
setSelectedIngestEnvironment(environment: string | undefined) {
|
|
140
|
+
this.selectedIngestEnvironment = environment;
|
|
141
|
+
}
|
|
142
|
+
|
|
126
143
|
setSelectedEnvironment(environment: string | undefined) {
|
|
127
144
|
this.selectedEnvironment = environment;
|
|
128
145
|
}
|
|
@@ -172,13 +189,15 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
172
189
|
{} as Record<string, V1_EntitlementsDataProductDetails>,
|
|
173
190
|
);
|
|
174
191
|
|
|
175
|
-
this.
|
|
192
|
+
this.setIngestEnvironments(Object.keys(this.dataProductMap));
|
|
176
193
|
}
|
|
177
194
|
}
|
|
178
195
|
|
|
179
196
|
fetchAccessPoints() {
|
|
180
197
|
this.resetEnvironment();
|
|
181
|
-
const selectedEnvironment = guaranteeNonNullable(
|
|
198
|
+
const selectedEnvironment = guaranteeNonNullable(
|
|
199
|
+
this.selectedIngestEnvironment,
|
|
200
|
+
);
|
|
182
201
|
const dataProduct = this.dataProductMap[selectedEnvironment];
|
|
183
202
|
|
|
184
203
|
if (
|
|
@@ -200,22 +219,23 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
200
219
|
);
|
|
201
220
|
}
|
|
202
221
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
await this._platformServerClient.findProducerServer(
|
|
208
|
-
guaranteeNonNullable(dataProduct?.deploymentId),
|
|
209
|
-
'DEPLOYMENT',
|
|
222
|
+
*fetchEnvironment(access_token: string | undefined): GeneratorFn<void> {
|
|
223
|
+
this.ingestEnvLoadingState.inProgress();
|
|
224
|
+
const ingestServerConfigs =
|
|
225
|
+
(yield this._platformServerClient.getIngestEnvironmentSummaries(
|
|
210
226
|
access_token,
|
|
211
|
-
)
|
|
227
|
+
)) as IngestDeploymentServerConfig[];
|
|
228
|
+
this.setEnvironments(
|
|
229
|
+
ingestServerConfigs
|
|
230
|
+
.map((config) => {
|
|
231
|
+
const baseUrl = new URL(config.ingestServerUrl).hostname;
|
|
232
|
+
const subdomain = baseUrl.split('.')[0];
|
|
233
|
+
const parts = subdomain?.split('-');
|
|
234
|
+
return parts?.slice(0, -1).join('-');
|
|
235
|
+
})
|
|
236
|
+
.filter((env) => env !== undefined),
|
|
212
237
|
);
|
|
213
|
-
|
|
214
|
-
const subdomain = baseUrl.split('.')[0];
|
|
215
|
-
const parts = subdomain?.split('-');
|
|
216
|
-
const env = parts?.slice(0, -1).join('-');
|
|
217
|
-
this.ingestEnvironment = env;
|
|
218
|
-
this.setWarehouse('LAKEHOUSE_CONSUMER_DEFAULT_WH');
|
|
238
|
+
this.ingestEnvLoadingState.complete();
|
|
219
239
|
}
|
|
220
240
|
|
|
221
241
|
reset() {
|
|
@@ -223,8 +243,9 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
223
243
|
this.setDataProducts([]);
|
|
224
244
|
this.setSelectedDataProduct(undefined);
|
|
225
245
|
this.setAccessPoints([]);
|
|
226
|
-
this.
|
|
246
|
+
this.setIngestEnvironments([]);
|
|
227
247
|
this.setSelectedAccessPoint(undefined);
|
|
248
|
+
this.setSelectedIngestEnvironment(undefined);
|
|
228
249
|
this.setSelectedEnvironment(undefined);
|
|
229
250
|
this.dpCoordinates = undefined;
|
|
230
251
|
}
|
|
@@ -232,8 +253,9 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
232
253
|
resetDataProduct() {
|
|
233
254
|
this.setWarehouse(undefined);
|
|
234
255
|
this.setAccessPoints([]);
|
|
235
|
-
this.
|
|
256
|
+
this.setIngestEnvironments([]);
|
|
236
257
|
this.setSelectedAccessPoint(undefined);
|
|
258
|
+
this.setSelectedIngestEnvironment(undefined);
|
|
237
259
|
this.setSelectedEnvironment(undefined);
|
|
238
260
|
this.dpCoordinates = undefined;
|
|
239
261
|
}
|
|
@@ -242,6 +264,7 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
242
264
|
this.setWarehouse(undefined);
|
|
243
265
|
this.setAccessPoints([]);
|
|
244
266
|
this.setSelectedAccessPoint(undefined);
|
|
267
|
+
this.setSelectedEnvironment(undefined);
|
|
245
268
|
this.dpCoordinates = undefined;
|
|
246
269
|
}
|
|
247
270
|
|
|
@@ -254,8 +277,9 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
254
277
|
Boolean(this.warehouse) &&
|
|
255
278
|
Boolean(this.selectedAccessPoint) &&
|
|
256
279
|
Boolean(this.selectedDataProduct) &&
|
|
257
|
-
Boolean(this.
|
|
258
|
-
Boolean(this.dpCoordinates)
|
|
280
|
+
Boolean(this.selectedIngestEnvironment) &&
|
|
281
|
+
Boolean(this.dpCoordinates) &&
|
|
282
|
+
Boolean(this.selectedEnvironment)
|
|
259
283
|
);
|
|
260
284
|
}
|
|
261
285
|
|
|
@@ -270,7 +294,7 @@ export class LakehouseConsumerDataCubeSourceBuilderState extends LegendDataCubeS
|
|
|
270
294
|
);
|
|
271
295
|
|
|
272
296
|
const rawSource = new RawLakehouseConsumerDataCubeSource();
|
|
273
|
-
rawSource.environment = guaranteeNonNullable(this.
|
|
297
|
+
rawSource.environment = guaranteeNonNullable(this.selectedEnvironment);
|
|
274
298
|
rawSource.dpCoordinates = guaranteeNonNullable(this.dpCoordinates);
|
|
275
299
|
rawSource.paths = this.paths;
|
|
276
300
|
rawSource.warehouse = guaranteeNonNullable(this.warehouse);
|