@finos/legend-application-query 13.7.200 → 13.7.201
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/application/LegendQueryApplicationConfig.d.ts +19 -0
- package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendQueryApplicationConfig.js +25 -1
- package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
- package/lib/components/LegendQueryWebApplication.d.ts.map +1 -1
- package/lib/components/LegendQueryWebApplication.js +33 -3
- package/lib/components/LegendQueryWebApplication.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/light-mode.css +1 -1
- package/lib/package.json +3 -1
- package/package.json +11 -9
- package/src/application/LegendQueryApplicationConfig.ts +34 -0
- package/src/components/LegendQueryWebApplication.tsx +73 -9
|
@@ -16,6 +16,13 @@
|
|
|
16
16
|
import { SerializationFactory, type PlainObject } from '@finos/legend-shared';
|
|
17
17
|
import { LegendApplicationConfig, type LegendApplicationConfigurationInput, type LegendApplicationConfigurationData } from '@finos/legend-application';
|
|
18
18
|
import { QueryBuilderConfig } from '@finos/legend-query-builder';
|
|
19
|
+
import type { AuthProviderProps } from 'react-oidc-context';
|
|
20
|
+
export declare class LegendQueryOIDCConfiguration {
|
|
21
|
+
redirectPath: string;
|
|
22
|
+
silentRedirectPath: string;
|
|
23
|
+
authProviderProps: AuthProviderProps;
|
|
24
|
+
static readonly serialization: SerializationFactory<LegendQueryOIDCConfiguration>;
|
|
25
|
+
}
|
|
19
26
|
export declare class ServiceRegistrationEnvironmentConfig {
|
|
20
27
|
env: string;
|
|
21
28
|
executionUrl: string;
|
|
@@ -39,6 +46,18 @@ declare class LegendQueryApplicationCoreOptions {
|
|
|
39
46
|
* Config specific to query builder
|
|
40
47
|
*/
|
|
41
48
|
queryBuilderConfig: QueryBuilderConfig | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* OIDC configuration for the Query application.
|
|
51
|
+
* When provided, the application will be wrapped in a `LegendTokenProvider`
|
|
52
|
+
* to enable automatic access-token syncing.
|
|
53
|
+
*/
|
|
54
|
+
oidcConfig: LegendQueryOIDCConfiguration | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Indicates if we should enable oauth flow
|
|
57
|
+
*
|
|
58
|
+
* Default to `false`
|
|
59
|
+
*/
|
|
60
|
+
enableOauthFlow: boolean;
|
|
42
61
|
private static readonly serialization;
|
|
43
62
|
static create(configData: PlainObject<LegendQueryApplicationCoreOptions>): LegendQueryApplicationCoreOptions;
|
|
44
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendQueryApplicationConfig.d.ts","sourceRoot":"","sources":["../../src/application/LegendQueryApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,oBAAoB,EACpB,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,EACvB,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,EACxC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendQueryApplicationConfig.d.ts","sourceRoot":"","sources":["../../src/application/LegendQueryApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,oBAAoB,EACpB,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,EACvB,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,EACxC,MAAM,2BAA2B,CAAC;AASnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,qBAAa,4BAA4B;IACvC,YAAY,EAAG,MAAM,CAAC;IACtB,kBAAkB,EAAG,MAAM,CAAC;IAC5B,iBAAiB,EAAG,iBAAiB,CAAC;IAEtC,MAAM,CAAC,QAAQ,CAAC,aAAa,qDAM3B;CACH;AAED,qBAAa,oCAAoC;IAC/C,GAAG,EAAG,MAAM,CAAC;IACb,YAAY,EAAG,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,aAAa,EAAG,MAAM,CAAC;IAEvB,MAAM,CAAC,QAAQ,CAAC,aAAa,6DAO3B;CACH;AAED,cAAM,iCAAiC;IACrC;;;;;;;;OAQG;IACH,oCAAoC,EAAE,oCAAoC,EAAE,CACvE;IAEL,6BAA6B,UAAS;IAEtC;;OAEG;IACH,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEnD;;;;OAIG;IACH,UAAU,EAAE,4BAA4B,GAAG,SAAS,CAAC;IAErD;;;;OAIG;IACH,eAAe,UAAS;IAExB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAcnC;IAEF,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,WAAW,CAAC,iCAAiC,CAAC,GACzD,iCAAiC;CAGrC;AAED,KAAK,gDAAgD,GAAG;IACtD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,WAAW,uCACf,SAAQ,kCAAkC;IAC1C,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,gDAAgD,EAAE,CAAC;KAC/D,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED,qBAAa,4BAA6B,SAAQ,uBAAuB;IACvE,QAAQ,CAAC,OAAO,oCAA2C;IAE3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,gDAAgD,EAAE,CACvE;gBAGH,KAAK,EAAE,mCAAmC,CAAC,uCAAuC,CAAC;IAqE5E,+BAA+B,IAAI,MAAM;CAGnD"}
|
|
@@ -15,8 +15,18 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { assertNonNullable, guaranteeNonEmptyString, guaranteeNonNullable, SerializationFactory, usingModelSchema, } from '@finos/legend-shared';
|
|
17
17
|
import { LegendApplicationConfig, } from '@finos/legend-application';
|
|
18
|
-
import { createModelSchema, primitive, list, object, optional, } from 'serializr';
|
|
18
|
+
import { createModelSchema, primitive, list, object, optional, raw, } from 'serializr';
|
|
19
19
|
import { QueryBuilderConfig } from '@finos/legend-query-builder';
|
|
20
|
+
export class LegendQueryOIDCConfiguration {
|
|
21
|
+
redirectPath;
|
|
22
|
+
silentRedirectPath;
|
|
23
|
+
authProviderProps;
|
|
24
|
+
static serialization = new SerializationFactory(createModelSchema(LegendQueryOIDCConfiguration, {
|
|
25
|
+
redirectPath: primitive(),
|
|
26
|
+
silentRedirectPath: primitive(),
|
|
27
|
+
authProviderProps: raw(),
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
20
30
|
export class ServiceRegistrationEnvironmentConfig {
|
|
21
31
|
env;
|
|
22
32
|
executionUrl;
|
|
@@ -45,10 +55,24 @@ class LegendQueryApplicationCoreOptions {
|
|
|
45
55
|
* Config specific to query builder
|
|
46
56
|
*/
|
|
47
57
|
queryBuilderConfig;
|
|
58
|
+
/**
|
|
59
|
+
* OIDC configuration for the Query application.
|
|
60
|
+
* When provided, the application will be wrapped in a `LegendTokenProvider`
|
|
61
|
+
* to enable automatic access-token syncing.
|
|
62
|
+
*/
|
|
63
|
+
oidcConfig;
|
|
64
|
+
/**
|
|
65
|
+
* Indicates if we should enable oauth flow
|
|
66
|
+
*
|
|
67
|
+
* Default to `false`
|
|
68
|
+
*/
|
|
69
|
+
enableOauthFlow = false;
|
|
48
70
|
static serialization = new SerializationFactory(createModelSchema(LegendQueryApplicationCoreOptions, {
|
|
49
71
|
TEMPORARY__serviceRegistrationConfig: list(object(ServiceRegistrationEnvironmentConfig)),
|
|
50
72
|
queryBuilderConfig: optional(usingModelSchema(QueryBuilderConfig.serialization.schema)),
|
|
51
73
|
TEMPORARY__enableMinimalGraph: optional(primitive()),
|
|
74
|
+
oidcConfig: optional(usingModelSchema(LegendQueryOIDCConfiguration.serialization.schema)),
|
|
75
|
+
enableOauthFlow: optional(primitive()),
|
|
52
76
|
}));
|
|
53
77
|
static create(configData) {
|
|
54
78
|
return LegendQueryApplicationCoreOptions.serialization.fromJson(configData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendQueryApplicationConfig.js","sourceRoot":"","sources":["../../src/application/LegendQueryApplicationConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EAEpB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,GAGxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,
|
|
1
|
+
{"version":3,"file":"LegendQueryApplicationConfig.js","sourceRoot":"","sources":["../../src/application/LegendQueryApplicationConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendQueryWebApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendQueryWebApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"LegendQueryWebApplication.d.ts","sourceRoot":"","sources":["../../src/components/LegendQueryWebApplication.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0JH,eAAO,MAAM,yBAAyB,WAC5B;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;;CAsC5B,CAAC"}
|
|
@@ -17,8 +17,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
17
|
import { observer } from 'mobx-react-lite';
|
|
18
18
|
import { LEGEND_QUERY_ROUTE_PATTERN } from '../__lib__/LegendQueryNavigation.js';
|
|
19
19
|
import { QuerySetupLandingPage } from './QuerySetup.js';
|
|
20
|
-
import {
|
|
21
|
-
import { BrowserEnvironmentProvider, Route, Routes,
|
|
20
|
+
import { ExistingQueryEditor, MappingQueryCreator, ServiceQueryCreator, } from './QueryEditor.js';
|
|
21
|
+
import { BrowserEnvironmentProvider, generateExtensionUrlPattern, Route, Routes, } from '@finos/legend-application/browser';
|
|
22
|
+
import { LegendTokenSync } from '@finos/legend-application';
|
|
22
23
|
import { LegendQueryFrameworkProvider, useLegendQueryApplicationStore, useLegendQueryBaseStore, } from './LegendQueryFrameworkProvider.js';
|
|
23
24
|
import { EditExistingQuerySetup } from './EditExistingQuerySetup.js';
|
|
24
25
|
import { CreateMappingQuerySetup } from './CreateMappingQuerySetup.js';
|
|
@@ -28,6 +29,8 @@ import { LEGACY_DATA_SPACE_QUERY_ROUTE_PATTERN } from '../__lib__/DSL_DataSpace_
|
|
|
28
29
|
import { DataSpaceTemplateQueryCreator } from './data-space/DataSpaceTemplateQueryCreator.js';
|
|
29
30
|
import { DataSpaceQueryCreator } from './data-space/DataSpaceQueryCreator.js';
|
|
30
31
|
import { ExistingQueryDataCubeViewer } from './data-cube/ExistingQueryDataCubeViewer.js';
|
|
32
|
+
import { AuthProvider, withAuthenticationRequired, } from 'react-oidc-context';
|
|
33
|
+
import { CubesLoadingIndicator, CubesLoadingIndicatorIcon, } from '@finos/legend-art';
|
|
31
34
|
const LegendQueryWebApplicationRouter = observer(() => {
|
|
32
35
|
const applicationStore = useLegendQueryApplicationStore();
|
|
33
36
|
const baseStore = useLegendQueryBaseStore();
|
|
@@ -41,8 +44,35 @@ const LegendQueryWebApplicationRouter = observer(() => {
|
|
|
41
44
|
.map(generateExtensionUrlPattern)
|
|
42
45
|
.map((path) => (_jsx(Route, { path: path, element: entry.renderer() }, entry.key))))] })) }));
|
|
43
46
|
});
|
|
47
|
+
const LegendQueryWebProvider = ({ baseUrl }) => {
|
|
48
|
+
return (_jsx(BrowserEnvironmentProvider, { baseUrl: baseUrl, children: _jsx(LegendQueryFrameworkProvider, { children: _jsx(LegendQueryWebApplicationRouter, {}) }) }));
|
|
49
|
+
};
|
|
50
|
+
const AuthenticatedLegendQueryWebProvider = withAuthenticationRequired(LegendQueryWebProvider, {
|
|
51
|
+
OnRedirecting: () => (_jsx(CubesLoadingIndicator, { isLoading: true, children: _jsx(CubesLoadingIndicatorIcon, {}) })),
|
|
52
|
+
signinRedirectArgs: {
|
|
53
|
+
state: `${window.location.pathname}${window.location.search}`,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
44
56
|
export const LegendQueryWebApplication = observer((props) => {
|
|
45
57
|
const { baseUrl } = props;
|
|
46
|
-
|
|
58
|
+
const applicationStore = useLegendQueryApplicationStore();
|
|
59
|
+
const oidcConfig = applicationStore.config.options.oidcConfig;
|
|
60
|
+
const enableOauthFlow = applicationStore.config.options.enableOauthFlow;
|
|
61
|
+
if (oidcConfig) {
|
|
62
|
+
const onSigninCallback = (_user) => {
|
|
63
|
+
window.location.href = _user?.state ?? '/';
|
|
64
|
+
};
|
|
65
|
+
const mergedOIDCConfig = {
|
|
66
|
+
...oidcConfig.authProviderProps,
|
|
67
|
+
redirect_uri: `${window.location.origin}${oidcConfig.redirectPath}`,
|
|
68
|
+
silent_redirect_uri: `${window.location.origin}${oidcConfig.silentRedirectPath}`,
|
|
69
|
+
onSigninCallback,
|
|
70
|
+
};
|
|
71
|
+
if (enableOauthFlow) {
|
|
72
|
+
return (_jsx(AuthProvider, { ...mergedOIDCConfig, children: _jsx(LegendTokenSync, { children: _jsx(AuthenticatedLegendQueryWebProvider, { baseUrl: baseUrl }) }) }));
|
|
73
|
+
}
|
|
74
|
+
return (_jsx(AuthProvider, { ...mergedOIDCConfig, children: _jsx(LegendTokenSync, { children: _jsx(LegendQueryWebProvider, { baseUrl: baseUrl }) }) }));
|
|
75
|
+
}
|
|
76
|
+
return _jsx(LegendQueryWebProvider, { baseUrl: baseUrl });
|
|
47
77
|
});
|
|
48
78
|
//# sourceMappingURL=LegendQueryWebApplication.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendQueryWebApplication.js","sourceRoot":"","sources":["../../src/components/LegendQueryWebApplication.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"LegendQueryWebApplication.js","sourceRoot":"","sources":["../../src/components/LegendQueryWebApplication.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.css
CHANGED
package/lib/light-mode.css
CHANGED
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-query",
|
|
3
|
-
"version": "13.7.
|
|
3
|
+
"version": "13.7.201",
|
|
4
4
|
"description": "Legend Query application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -61,8 +61,10 @@
|
|
|
61
61
|
"@types/react-dom": "19.0.4",
|
|
62
62
|
"mobx": "6.13.6",
|
|
63
63
|
"mobx-react-lite": "4.1.0",
|
|
64
|
+
"oidc-client-ts": "^3.2.0",
|
|
64
65
|
"react": "19.0.1",
|
|
65
66
|
"react-dom": "19.0.1",
|
|
67
|
+
"react-oidc-context": "^3.3.0",
|
|
66
68
|
"reactflow": "11.11.4",
|
|
67
69
|
"serializr": "3.0.3"
|
|
68
70
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@finos/legend-application-query",
|
|
3
|
-
"version": "13.7.
|
|
3
|
+
"version": "13.7.201",
|
|
4
4
|
"description": "Legend Query application core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"legend",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"test:watch": "jest --watch"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@finos/legend-application": "16.0.
|
|
48
|
-
"@finos/legend-art": "7.1.
|
|
49
|
-
"@finos/legend-code-editor": "2.0.
|
|
50
|
-
"@finos/legend-data-cube": "0.3.
|
|
51
|
-
"@finos/legend-extension-dsl-data-space": "10.4.
|
|
52
|
-
"@finos/legend-graph": "32.3.
|
|
53
|
-
"@finos/legend-lego": "2.0.
|
|
54
|
-
"@finos/legend-query-builder": "4.17.
|
|
47
|
+
"@finos/legend-application": "16.0.99",
|
|
48
|
+
"@finos/legend-art": "7.1.144",
|
|
49
|
+
"@finos/legend-code-editor": "2.0.156",
|
|
50
|
+
"@finos/legend-data-cube": "0.3.72",
|
|
51
|
+
"@finos/legend-extension-dsl-data-space": "10.4.198",
|
|
52
|
+
"@finos/legend-graph": "32.3.36",
|
|
53
|
+
"@finos/legend-lego": "2.0.174",
|
|
54
|
+
"@finos/legend-query-builder": "4.17.90",
|
|
55
55
|
"@finos/legend-server-depot": "6.1.9",
|
|
56
56
|
"@finos/legend-shared": "11.0.22",
|
|
57
57
|
"@finos/legend-storage": "3.0.143",
|
|
@@ -61,8 +61,10 @@
|
|
|
61
61
|
"@types/react-dom": "19.0.4",
|
|
62
62
|
"mobx": "6.13.6",
|
|
63
63
|
"mobx-react-lite": "4.1.0",
|
|
64
|
+
"oidc-client-ts": "^3.2.0",
|
|
64
65
|
"react": "19.0.1",
|
|
65
66
|
"react-dom": "19.0.1",
|
|
67
|
+
"react-oidc-context": "^3.3.0",
|
|
66
68
|
"reactflow": "11.11.4",
|
|
67
69
|
"serializr": "3.0.3"
|
|
68
70
|
},
|
|
@@ -33,8 +33,24 @@ import {
|
|
|
33
33
|
list,
|
|
34
34
|
object,
|
|
35
35
|
optional,
|
|
36
|
+
raw,
|
|
36
37
|
} from 'serializr';
|
|
37
38
|
import { QueryBuilderConfig } from '@finos/legend-query-builder';
|
|
39
|
+
import type { AuthProviderProps } from 'react-oidc-context';
|
|
40
|
+
|
|
41
|
+
export class LegendQueryOIDCConfiguration {
|
|
42
|
+
redirectPath!: string;
|
|
43
|
+
silentRedirectPath!: string;
|
|
44
|
+
authProviderProps!: AuthProviderProps;
|
|
45
|
+
|
|
46
|
+
static readonly serialization = new SerializationFactory(
|
|
47
|
+
createModelSchema(LegendQueryOIDCConfiguration, {
|
|
48
|
+
redirectPath: primitive(),
|
|
49
|
+
silentRedirectPath: primitive(),
|
|
50
|
+
authProviderProps: raw(),
|
|
51
|
+
}),
|
|
52
|
+
);
|
|
53
|
+
}
|
|
38
54
|
|
|
39
55
|
export class ServiceRegistrationEnvironmentConfig {
|
|
40
56
|
env!: string;
|
|
@@ -72,6 +88,20 @@ class LegendQueryApplicationCoreOptions {
|
|
|
72
88
|
*/
|
|
73
89
|
queryBuilderConfig: QueryBuilderConfig | undefined;
|
|
74
90
|
|
|
91
|
+
/**
|
|
92
|
+
* OIDC configuration for the Query application.
|
|
93
|
+
* When provided, the application will be wrapped in a `LegendTokenProvider`
|
|
94
|
+
* to enable automatic access-token syncing.
|
|
95
|
+
*/
|
|
96
|
+
oidcConfig: LegendQueryOIDCConfiguration | undefined;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Indicates if we should enable oauth flow
|
|
100
|
+
*
|
|
101
|
+
* Default to `false`
|
|
102
|
+
*/
|
|
103
|
+
enableOauthFlow = false;
|
|
104
|
+
|
|
75
105
|
private static readonly serialization = new SerializationFactory(
|
|
76
106
|
createModelSchema(LegendQueryApplicationCoreOptions, {
|
|
77
107
|
TEMPORARY__serviceRegistrationConfig: list(
|
|
@@ -81,6 +111,10 @@ class LegendQueryApplicationCoreOptions {
|
|
|
81
111
|
usingModelSchema(QueryBuilderConfig.serialization.schema),
|
|
82
112
|
),
|
|
83
113
|
TEMPORARY__enableMinimalGraph: optional(primitive()),
|
|
114
|
+
oidcConfig: optional(
|
|
115
|
+
usingModelSchema(LegendQueryOIDCConfiguration.serialization.schema),
|
|
116
|
+
),
|
|
117
|
+
enableOauthFlow: optional(primitive()),
|
|
84
118
|
}),
|
|
85
119
|
);
|
|
86
120
|
|
|
@@ -18,16 +18,17 @@ import { observer } from 'mobx-react-lite';
|
|
|
18
18
|
import { LEGEND_QUERY_ROUTE_PATTERN } from '../__lib__/LegendQueryNavigation.js';
|
|
19
19
|
import { QuerySetupLandingPage } from './QuerySetup.js';
|
|
20
20
|
import {
|
|
21
|
-
MappingQueryCreator,
|
|
22
21
|
ExistingQueryEditor,
|
|
22
|
+
MappingQueryCreator,
|
|
23
23
|
ServiceQueryCreator,
|
|
24
24
|
} from './QueryEditor.js';
|
|
25
25
|
import {
|
|
26
26
|
BrowserEnvironmentProvider,
|
|
27
|
+
generateExtensionUrlPattern,
|
|
27
28
|
Route,
|
|
28
29
|
Routes,
|
|
29
|
-
generateExtensionUrlPattern,
|
|
30
30
|
} from '@finos/legend-application/browser';
|
|
31
|
+
import { LegendTokenSync } from '@finos/legend-application';
|
|
31
32
|
import {
|
|
32
33
|
LegendQueryFrameworkProvider,
|
|
33
34
|
useLegendQueryApplicationStore,
|
|
@@ -41,6 +42,16 @@ import { LEGACY_DATA_SPACE_QUERY_ROUTE_PATTERN } from '../__lib__/DSL_DataSpace_
|
|
|
41
42
|
import { DataSpaceTemplateQueryCreator } from './data-space/DataSpaceTemplateQueryCreator.js';
|
|
42
43
|
import { DataSpaceQueryCreator } from './data-space/DataSpaceQueryCreator.js';
|
|
43
44
|
import { ExistingQueryDataCubeViewer } from './data-cube/ExistingQueryDataCubeViewer.js';
|
|
45
|
+
import {
|
|
46
|
+
AuthProvider,
|
|
47
|
+
withAuthenticationRequired,
|
|
48
|
+
type AuthProviderProps,
|
|
49
|
+
} from 'react-oidc-context';
|
|
50
|
+
import type { User } from 'oidc-client-ts';
|
|
51
|
+
import {
|
|
52
|
+
CubesLoadingIndicator,
|
|
53
|
+
CubesLoadingIndicatorIcon,
|
|
54
|
+
} from '@finos/legend-art';
|
|
44
55
|
|
|
45
56
|
const LegendQueryWebApplicationRouter = observer(() => {
|
|
46
57
|
const applicationStore = useLegendQueryApplicationStore();
|
|
@@ -129,16 +140,69 @@ const LegendQueryWebApplicationRouter = observer(() => {
|
|
|
129
140
|
);
|
|
130
141
|
});
|
|
131
142
|
|
|
143
|
+
const LegendQueryWebProvider: React.FC<{
|
|
144
|
+
baseUrl: string;
|
|
145
|
+
}> = ({ baseUrl }) => {
|
|
146
|
+
return (
|
|
147
|
+
<BrowserEnvironmentProvider baseUrl={baseUrl}>
|
|
148
|
+
<LegendQueryFrameworkProvider>
|
|
149
|
+
<LegendQueryWebApplicationRouter />
|
|
150
|
+
</LegendQueryFrameworkProvider>
|
|
151
|
+
</BrowserEnvironmentProvider>
|
|
152
|
+
);
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
const AuthenticatedLegendQueryWebProvider = withAuthenticationRequired(
|
|
156
|
+
LegendQueryWebProvider,
|
|
157
|
+
{
|
|
158
|
+
OnRedirecting: () => (
|
|
159
|
+
<CubesLoadingIndicator isLoading={true}>
|
|
160
|
+
<CubesLoadingIndicatorIcon />
|
|
161
|
+
</CubesLoadingIndicator>
|
|
162
|
+
),
|
|
163
|
+
signinRedirectArgs: {
|
|
164
|
+
state: `${window.location.pathname}${window.location.search}`,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
);
|
|
168
|
+
|
|
132
169
|
export const LegendQueryWebApplication = observer(
|
|
133
170
|
(props: { baseUrl: string }) => {
|
|
134
171
|
const { baseUrl } = props;
|
|
172
|
+
const applicationStore = useLegendQueryApplicationStore();
|
|
173
|
+
const oidcConfig = applicationStore.config.options.oidcConfig;
|
|
174
|
+
const enableOauthFlow = applicationStore.config.options.enableOauthFlow;
|
|
135
175
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
176
|
+
if (oidcConfig) {
|
|
177
|
+
const onSigninCallback = (_user: User | undefined): void => {
|
|
178
|
+
window.location.href = (_user?.state as string | undefined) ?? '/';
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
const mergedOIDCConfig: AuthProviderProps = {
|
|
182
|
+
...oidcConfig.authProviderProps,
|
|
183
|
+
redirect_uri: `${window.location.origin}${oidcConfig.redirectPath}`,
|
|
184
|
+
silent_redirect_uri: `${window.location.origin}${oidcConfig.silentRedirectPath}`,
|
|
185
|
+
onSigninCallback,
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
if (enableOauthFlow) {
|
|
189
|
+
return (
|
|
190
|
+
<AuthProvider {...mergedOIDCConfig}>
|
|
191
|
+
<LegendTokenSync>
|
|
192
|
+
<AuthenticatedLegendQueryWebProvider baseUrl={baseUrl} />
|
|
193
|
+
</LegendTokenSync>
|
|
194
|
+
</AuthProvider>
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
return (
|
|
198
|
+
<AuthProvider {...mergedOIDCConfig}>
|
|
199
|
+
<LegendTokenSync>
|
|
200
|
+
<LegendQueryWebProvider baseUrl={baseUrl} />
|
|
201
|
+
</LegendTokenSync>
|
|
202
|
+
</AuthProvider>
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return <LegendQueryWebProvider baseUrl={baseUrl} />;
|
|
143
207
|
},
|
|
144
208
|
);
|