This is an automated email from the ASF dual-hosted git repository.
wmedvedeo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git
The following commit(s) were added to refs/heads/main by this push:
new ec179c0d08b kie-issues#2482: serverless-workflow-dev-ui-webapp:
receive a parameter to recognize we are in a local cluster (#2484)
ec179c0d08b is described below
commit ec179c0d08b55e59df239a35f90eece4240e70a3
Author: Fabrizio Antonangeli <[email protected]>
AuthorDate: Tue Jul 30 20:57:24 2024 +0200
kie-issues#2482: serverless-workflow-dev-ui-webapp: receive a parameter to
recognize we are in a local cluster (#2484)
---
...timeToolsDevUIEnvelopeApi.ts => jest.config.js} | 33 ++++---------
.../serverless-workflow-dev-ui-webapp/package.json | 10 +++-
.../resources/index.html | 6 +--
.../src/api/RuntimeToolsDevUIEnvelopeApi.ts | 13 ++---
.../components/DevUI/DevUILayout/DevUILayout.tsx | 35 +++++++-------
.../components/DevUI/RuntimeTools/RuntimeTools.tsx | 56 ++++++++++++----------
.../src/components/contexts/DevUIAppContext.tsx | 26 ++++++----
.../contexts/DevUIAppContextProvider.tsx | 25 +++++-----
.../pages/WorkflowsPage/WorkflowsPage.tsx | 23 ++++++---
.../envelope/RuntimeToolsDevUIEnvelopeApiImpl.ts | 1 +
.../src/envelope/RuntimeToolsDevUIEnvelopeView.tsx | 17 ++++---
.../envelope/RuntimeToolsDevUIEnvelopeViewApi.ts | 1 +
.../src/standalone/standalone.ts | 43 +++++++++--------
.../index.ts} | 32 ++++---------
.../url/changeBaseURLToCurrentLocation.test.ts | 48 +++++++++++++++++++
.../webpack.config.js | 8 +++-
.../profiles/common/constants/platform_services.go | 3 +-
.../profiles/common/properties/managed.go | 1 +
.../profiles/common/properties/managed_test.go | 25 +++++++---
pnpm-lock.yaml | 54 +++++++++++++--------
20 files changed, 286 insertions(+), 174 deletions(-)
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
b/packages/serverless-workflow-dev-ui-webapp/jest.config.js
similarity index 52%
copy from
packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
copy to packages/serverless-workflow-dev-ui-webapp/jest.config.js
index 26c07a113ac..a4f6e802a53 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
+++ b/packages/serverless-workflow-dev-ui-webapp/jest.config.js
@@ -17,27 +17,14 @@
* under the License.
*/
-import { CustomLabels } from "./CustomLabels";
-import { DiagramPreviewSize } from
"@kie-tools/runtime-tools-swf-enveloped-components/dist/workflowDetails/api";
+const { config, styleMock, typescriptTransform } =
require("@kie-tools/jest-base/jest.config");
-export interface RuntimeToolsDevUIEnvelopeApi {
- runtimeToolsDevUI_initRequest(association: Association, initArgs:
RuntimeToolsDevUIInitArgs): Promise<void>;
-}
-
-export interface Association {
- origin: string;
- envelopeServerId: string;
-}
-
-export interface RuntimeToolsDevUIInitArgs {
- dataIndexUrl: string;
- page: string;
- devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- isDataIndexAvailable: boolean;
- availablePages?: string[];
- omittedWorkflowTimelineEvents?: string[];
- diagramPreviewSize?: DiagramPreviewSize;
- isStunnerEnabled: boolean;
-}
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+module.exports = {
+ ...config,
+ testEnvironment: "jsdom",
+ moduleNameMapper: {
+ ...styleMock,
+ ...typescriptTransform,
+ },
+};
diff --git a/packages/serverless-workflow-dev-ui-webapp/package.json
b/packages/serverless-workflow-dev-ui-webapp/package.json
index 0b2aa48ca3c..81e05f336cb 100644
--- a/packages/serverless-workflow-dev-ui-webapp/package.json
+++ b/packages/serverless-workflow-dev-ui-webapp/package.json
@@ -24,7 +24,8 @@
"dev": "concurrently 'pnpm start' 'pnpm run dev:server'",
"dev:server": "node ./server/app.js",
"lint": "run-script-if --bool \"$(build-env linters.run)\" --then
\"kie-tools--eslint ./src\"",
- "start": "webpack serve --host 0.0.0.0 --env dev"
+ "start": "webpack serve --host 0.0.0.0 --env dev",
+ "test": "run-script-if --ignore-errors \"$(build-env
tests.ignoreFailures)\" --bool \"$(build-env tests.run)\" --then \"jest
--silent --verbose --passWithNoTests\""
},
"dependencies": {
"@kie-tools-core/editor": "workspace:*",
@@ -64,9 +65,11 @@
"@babel/preset-react": "^7.16.0",
"@kie-tools-core/webpack-base": "workspace:*",
"@kie-tools/eslint": "workspace:*",
+ "@kie-tools/jest-base": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/tsconfig": "workspace:*",
"@types/history": "^4.7.3",
+ "@types/jest": "^29.5.12",
"@types/react": "^17.0.6",
"@types/react-dom": "^17.0.5",
"@types/react-router": "^5.1.20",
@@ -84,6 +87,10 @@
"graphql": "14.3.1",
"html-webpack-plugin": "^5.3.2",
"https-browserify": "^1.0.0",
+ "jest": "^29.7.0",
+ "jest-environment-jsdom": "^29.7.0",
+ "jest-junit": "^16.0.0",
+ "jest-when": "^3.6.0",
"lodash": "^4.17.21",
"monaco-editor-webpack-plugin": "^7.0.1",
"node-polyfill-webpack-plugin": "^2.0.1",
@@ -94,6 +101,7 @@
"style-loader": "^2.0.0",
"svg-url-loader": "^8.0.0",
"swagger-ui-express": "^5.0.0",
+ "ts-jest": "^29.1.5",
"typescript": "^5.5.3",
"url": "^0.11.3",
"url-loader": "^4.1.1",
diff --git a/packages/serverless-workflow-dev-ui-webapp/resources/index.html
b/packages/serverless-workflow-dev-ui-webapp/resources/index.html
index 556357dd074..22358a1425c 100644
--- a/packages/serverless-workflow-dev-ui-webapp/resources/index.html
+++ b/packages/serverless-workflow-dev-ui-webapp/resources/index.html
@@ -40,14 +40,14 @@
<script>
const devUI = RuntimeToolsDevUI.open({
+ availablePages: ["Workflows", "Forms", "Monitoring",
"CustomDashboard"],
container: document.getElementById("webapp"),
- isDataIndexAvailable: true,
dataIndexUrl: "http://localhost:4000/graphql",
- page: "Workflows",
devUIUrl: "http://localhost:9024",
+ isDataIndexAvailable: true,
openApiBaseUrl: "http://localhost:4000",
openApiPath: "q/openapi.json",
- availablePages: ["Workflows", "Forms", "Monitoring",
"CustomDashboard"],
+ page: "Workflows",
});
</script>
</body>
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
b/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
index 26c07a113ac..cb4eaca056d 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
+++
b/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
@@ -30,14 +30,15 @@ export interface Association {
}
export interface RuntimeToolsDevUIInitArgs {
+ availablePages?: string[];
dataIndexUrl: string;
- page: string;
devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- isDataIndexAvailable: boolean;
- availablePages?: string[];
- omittedWorkflowTimelineEvents?: string[];
diagramPreviewSize?: DiagramPreviewSize;
+ isDataIndexAvailable: boolean;
+ isLocalCluster?: boolean;
isStunnerEnabled: boolean;
+ omittedWorkflowTimelineEvents?: string[];
+ openApiBaseUrl: string;
+ openApiPath: string;
+ page: string;
}
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/DevUILayout/DevUILayout.tsx
b/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/DevUILayout/DevUILayout.tsx
index edee9f13313..1d64c4b2621 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/DevUILayout/DevUILayout.tsx
+++
b/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/DevUILayout/DevUILayout.tsx
@@ -38,28 +38,30 @@ import {
WorkflowDefinitionListContextProviderWithApolloClient } from "@kie-tool
interface IOwnProps {
apolloClient: ApolloClient<any>;
- isWorkflowEnabled: boolean;
+ availablePages?: string[];
children: React.ReactElement;
devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- availablePages?: string[];
- omittedWorkflowTimelineEvents?: string[];
diagramPreviewSize?: DiagramPreviewSize;
+ isLocalCluster?: boolean;
isStunnerEnabled: boolean;
+ isWorkflowEnabled: boolean;
+ omittedWorkflowTimelineEvents?: string[];
+ openApiBaseUrl: string;
+ openApiPath: string;
}
const DevUILayout: React.FC<IOwnProps> = ({
apolloClient,
- isWorkflowEnabled: isWorkflowEnabled,
- devUIUrl,
- openApiBaseUrl,
- openApiPath,
availablePages,
- omittedWorkflowTimelineEvents,
+ children,
+ devUIUrl,
diagramPreviewSize,
+ isLocalCluster,
isStunnerEnabled,
- children,
+ isWorkflowEnabled: isWorkflowEnabled,
+ omittedWorkflowTimelineEvents,
+ openApiBaseUrl,
+ openApiPath,
}) => {
const renderPage = (routeProps: { location: { pathname: string } }) => {
return (
@@ -72,14 +74,15 @@ const DevUILayout: React.FC<IOwnProps> = ({
return (
<ApolloProvider client={apolloClient}>
<DevUIAppContextProvider
- devUIUrl={devUIUrl}
- openApiBaseUrl={openApiBaseUrl}
- openApiPath={openApiPath}
- isWorkflowEnabled={isWorkflowEnabled}
availablePages={availablePages!}
- omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents!}
+ devUIUrl={devUIUrl}
diagramPreviewSize={diagramPreviewSize!}
+ isLocalCluster={isLocalCluster}
isStunnerEnabled={isStunnerEnabled}
+ isWorkflowEnabled={isWorkflowEnabled}
+ omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents!}
+ openApiBaseUrl={openApiBaseUrl}
+ openApiPath={openApiPath}
>
<WorkflowListContextProviderWithApolloClient
apolloClient={apolloClient}>
<WorkflowDetailsContextProviderWithApolloClient
apolloClient={apolloClient}>
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/RuntimeTools/RuntimeTools.tsx
b/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/RuntimeTools/RuntimeTools.tsx
index 4677ffd3dee..139195d48e5 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/RuntimeTools/RuntimeTools.tsx
+++
b/packages/serverless-workflow-dev-ui-webapp/src/components/DevUI/RuntimeTools/RuntimeTools.tsx
@@ -24,39 +24,42 @@ import { InMemoryCache, NormalizedCacheObject } from
"apollo-cache-inmemory";
import ApolloClient from "apollo-client";
import DevUIRoutes from "../DevUIRoutes/DevUIRoutes";
import DevUILayout from "../DevUILayout/DevUILayout";
+import { changeBaseURLToCurrentLocation } from "../../../url";
import ReactDOM from "react-dom";
import { DiagramPreviewSize } from
"@kie-tools/runtime-tools-swf-enveloped-components/dist/workflowDetails/api";
import { ServerUnavailablePage } from
"@kie-tools/runtime-tools-shared-webapp-components/dist/ServerUnavailablePage";
interface IOwnProps {
- isWorkflowEnabled: boolean;
+ availablePages: string[];
dataIndexUrl: string;
- navigate: string;
devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- availablePages: string[];
- omittedWorkflowTimelineEvents: string[];
diagramPreviewSize?: DiagramPreviewSize;
+ isLocalCluster?: boolean;
isStunnerEnabled: boolean;
+ isWorkflowEnabled: boolean;
+ navigate: string;
+ omittedWorkflowTimelineEvents: string[];
+ openApiBaseUrl: string;
+ openApiPath: string;
}
const RuntimeTools: React.FC<IOwnProps> = ({
+ availablePages,
dataIndexUrl,
- navigate,
devUIUrl,
- openApiBaseUrl,
- openApiPath,
- isWorkflowEnabled,
- availablePages,
- omittedWorkflowTimelineEvents,
diagramPreviewSize,
+ isLocalCluster,
isStunnerEnabled,
+ isWorkflowEnabled,
+ navigate,
+ omittedWorkflowTimelineEvents,
+ openApiBaseUrl,
+ openApiPath,
}) => {
const httpLink = new HttpLink({
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
- uri: dataIndexUrl,
+ uri: isLocalCluster ? changeBaseURLToCurrentLocation(dataIndexUrl) :
dataIndexUrl,
});
const fallbackUI = onError(({ networkError }: any) => {
@@ -65,14 +68,15 @@ const RuntimeTools: React.FC<IOwnProps> = ({
return ReactDOM.render(
<DevUILayout
apolloClient={client}
- devUIUrl={devUIUrl}
- openApiBaseUrl={openApiBaseUrl}
- openApiPath={openApiPath}
- isWorkflowEnabled={isWorkflowEnabled}
availablePages={availablePages}
- omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents}
+ devUIUrl={devUIUrl}
diagramPreviewSize={diagramPreviewSize}
+ isLocalCluster={isLocalCluster}
isStunnerEnabled={isStunnerEnabled}
+ isWorkflowEnabled={isWorkflowEnabled}
+ omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents}
+ openApiBaseUrl={isLocalCluster ?
changeBaseURLToCurrentLocation(openApiBaseUrl) : openApiBaseUrl}
+ openApiPath={openApiPath}
>
<ServerUnavailablePage displayName={"Runtime Dev UI"} reload={() =>
window.location.reload()} />
</DevUILayout>,
@@ -90,16 +94,20 @@ const RuntimeTools: React.FC<IOwnProps> = ({
return (
<DevUILayout
apolloClient={client}
- devUIUrl={devUIUrl}
- openApiBaseUrl={openApiBaseUrl}
- openApiPath={openApiPath}
- isWorkflowEnabled={isWorkflowEnabled}
availablePages={availablePages}
- omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents}
+ devUIUrl={devUIUrl}
diagramPreviewSize={diagramPreviewSize}
+ isLocalCluster={isLocalCluster}
isStunnerEnabled={isStunnerEnabled}
+ isWorkflowEnabled={isWorkflowEnabled}
+ omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents}
+ openApiBaseUrl={isLocalCluster ?
changeBaseURLToCurrentLocation(openApiBaseUrl) : openApiBaseUrl}
+ openApiPath={openApiPath}
>
- <DevUIRoutes navigate={navigate} dataIndexUrl={dataIndexUrl} />
+ <DevUIRoutes
+ navigate={navigate}
+ dataIndexUrl={isLocalCluster ?
changeBaseURLToCurrentLocation(dataIndexUrl) : dataIndexUrl}
+ />
</DevUILayout>
);
};
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContext.tsx
b/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContext.tsx
index 0f75f99443c..586be0c6707 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContext.tsx
+++
b/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContext.tsx
@@ -22,14 +22,15 @@ import { CustomLabels } from "../../api/CustomLabels";
import { DiagramPreviewSize } from
"@kie-tools/runtime-tools-swf-enveloped-components/dist/workflowDetails/api";
export interface DevUIAppContext {
- isWorkflowEnabled: boolean;
- getDevUIUrl(): string;
- getOpenApiPath(): string;
availablePages?: string[];
- omittedWorkflowTimelineEvents: string[];
diagramPreviewSize?: DiagramPreviewSize;
- isStunnerEnabled: boolean;
+ getDevUIUrl(): string;
getIsStunnerEnabled(): boolean;
+ getOpenApiPath(): string;
+ isLocalCluster?: boolean;
+ isStunnerEnabled: boolean;
+ isWorkflowEnabled: boolean;
+ omittedWorkflowTimelineEvents: string[];
}
export interface UnSubscribeHandler {
@@ -37,14 +38,15 @@ export interface UnSubscribeHandler {
}
export type DevUIAppContextArgs = {
- devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- isWorkflowEnabled: boolean;
availablePages?: string[];
- omittedWorkflowTimelineEvents: string[];
+ devUIUrl: string;
diagramPreviewSize?: DiagramPreviewSize;
+ isLocalCluster?: boolean;
isStunnerEnabled: boolean;
+ isWorkflowEnabled: boolean;
+ omittedWorkflowTimelineEvents: string[];
+ openApiBaseUrl: string;
+ openApiPath: string;
};
export class DevUIAppContextImpl implements DevUIAppContext {
@@ -85,6 +87,10 @@ export class DevUIAppContextImpl implements DevUIAppContext {
get diagramPreviewSize(): DiagramPreviewSize | undefined {
return this.args.diagramPreviewSize;
}
+
+ get isLocalCluster(): boolean {
+ return this.args.isLocalCluster || false;
+ }
}
const RuntimeToolsDevUIAppContext = React.createContext<DevUIAppContext>({} as
DevUIAppContext);
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContextProvider.tsx
b/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContextProvider.tsx
index 08dd47b2494..d500d2b3728 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContextProvider.tsx
+++
b/packages/serverless-workflow-dev-ui-webapp/src/components/contexts/DevUIAppContextProvider.tsx
@@ -23,26 +23,28 @@ import { CustomLabels } from "../../api/CustomLabels";
import { DiagramPreviewSize } from
"@kie-tools/runtime-tools-swf-enveloped-components/dist/workflowDetails/api";
interface IOwnProps {
- devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- isWorkflowEnabled: boolean;
availablePages: string[];
- omittedWorkflowTimelineEvents: string[];
+ devUIUrl: string;
diagramPreviewSize: DiagramPreviewSize;
+ isLocalCluster?: boolean;
isStunnerEnabled: boolean;
+ isWorkflowEnabled: boolean;
+ omittedWorkflowTimelineEvents: string[];
+ openApiBaseUrl: string;
+ openApiPath: string;
}
const DevUIAppContextProvider: React.FC<IOwnProps> = ({
- devUIUrl,
- openApiBaseUrl,
- openApiPath,
- isWorkflowEnabled: isWorkflowEnabled,
availablePages,
- omittedWorkflowTimelineEvents,
+ children,
+ devUIUrl,
diagramPreviewSize,
+ isLocalCluster,
isStunnerEnabled,
- children,
+ isWorkflowEnabled: isWorkflowEnabled,
+ omittedWorkflowTimelineEvents,
+ openApiBaseUrl,
+ openApiPath,
}) => {
return (
<RuntimeToolsDevUIAppContext.Provider
@@ -56,6 +58,7 @@ const DevUIAppContextProvider: React.FC<IOwnProps> = ({
omittedWorkflowTimelineEvents,
diagramPreviewSize,
isStunnerEnabled,
+ isLocalCluster,
})
}
>
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowsPage/WorkflowsPage.tsx
b/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowsPage/WorkflowsPage.tsx
index a88d182da1f..b72b9d24916 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowsPage/WorkflowsPage.tsx
+++
b/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowsPage/WorkflowsPage.tsx
@@ -39,6 +39,7 @@ import {
useWorkflowListGatewayApi,
WorkflowListGatewayApi,
} from "@kie-tools/runtime-tools-swf-webapp-components/dist/WorkflowList";
+import { changeBaseURLToCurrentLocation } from "../../../url";
interface MatchProps {
instanceID: string;
@@ -75,6 +76,16 @@ const WorkflowsPage:
React.FC<RouteComponentProps<MatchProps, StaticContext, H.L
[history]
);
+ const getFinalEndpoint = useCallback(
+ (endpoint: string) => (apiContext.isLocalCluster ?
changeBaseURLToCurrentLocation(endpoint) : endpoint),
+ [apiContext.isLocalCluster]
+ );
+
+ const getFinalServiceUrl = useCallback(
+ (serviceUrl: string) => (apiContext.isLocalCluster ?
changeBaseURLToCurrentLocation(serviceUrl) : serviceUrl),
+ [apiContext.isLocalCluster]
+ );
+
const onOpenWorkflowForm = useCallback(
(workflowDefinition: WorkflowDefinition) => {
history.push({
@@ -82,13 +93,13 @@ const WorkflowsPage:
React.FC<RouteComponentProps<MatchProps, StaticContext, H.L
state: {
workflowDefinition: {
workflowName: workflowDefinition.workflowName,
- endpoint: workflowDefinition.endpoint,
- serviceUrl: workflowDefinition.serviceUrl,
+ endpoint: getFinalEndpoint(workflowDefinition.endpoint),
+ serviceUrl: getFinalServiceUrl(workflowDefinition.serviceUrl),
},
},
});
},
- [history]
+ [history, getFinalEndpoint, getFinalServiceUrl]
);
const onOpenTriggerCloudEvent = useCallback(
@@ -98,13 +109,13 @@ const WorkflowsPage:
React.FC<RouteComponentProps<MatchProps, StaticContext, H.L
state: {
workflowDefinition: {
workflowName: workflowDefinition.workflowName,
- endpoint: workflowDefinition.endpoint,
- serviceUrl: workflowDefinition.serviceUrl,
+ endpoint: getFinalEndpoint(workflowDefinition.endpoint),
+ serviceUrl: getFinalServiceUrl(workflowDefinition.serviceUrl),
},
},
});
},
- [history]
+ [history, getFinalEndpoint, getFinalServiceUrl]
);
return (
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeApiImpl.ts
b/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeApiImpl.ts
index 23aa943eb6c..43037779d1d 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeApiImpl.ts
+++
b/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeApiImpl.ts
@@ -69,6 +69,7 @@ export class RuntimeToolsDevUIEnvelopeApiImpl implements
RuntimeToolsDevUIEnvelo
this.view().setOmittedWorkflowTimelineEvents(initArgs.omittedWorkflowTimelineEvents!);
this.view().setDiagramPreviewSize &&
this.view().setDiagramPreviewSize(initArgs.diagramPreviewSize);
this.view().setIsStunnerEnabled &&
this.view().setIsStunnerEnabled(initArgs.isStunnerEnabled);
+ this.view().setIsLocalCluster &&
this.view().setIsLocalCluster(initArgs.isLocalCluster!);
// Ensure these are set last. This is a workaround to ensure views are
corrected configured with other properties
// from the DevUIAppContext before they are rendered. i.e. use of
DevUIAppContext is not responsive to updates.
this.view().setWorkflowEnabled(initArgs.isDataIndexAvailable);
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeView.tsx
b/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeView.tsx
index d8caa860509..01350ab1a4a 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeView.tsx
+++
b/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeView.tsx
@@ -36,6 +36,7 @@ export const RuntimeToolsDevUIEnvelopeView =
React.forwardRef<RuntimeToolsDevUIE
const [omittedWorkflowTimelineEvents, setOmittedWorkflowTimelineEvents] =
React.useState<string[]>([]);
const [diagramPreviewSize, setDiagramPreviewSize] =
React.useState<DiagramPreviewSize>();
const [isStunnerEnabled, setIsStunnerEnabled] =
React.useState<boolean>(false);
+ const [isLocalCluster, setIsLocalCluster] = React.useState<boolean>(false);
useImperativeHandle(forwardingRef, () => {
return {
@@ -69,22 +70,26 @@ export const RuntimeToolsDevUIEnvelopeView =
React.forwardRef<RuntimeToolsDevUIE
setIsStunnerEnabled: (isStunnerEnabled) => {
setIsStunnerEnabled(isStunnerEnabled);
},
+ setIsLocalCluster: (isLocalCluster) => {
+ setIsLocalCluster(isLocalCluster);
+ },
};
}, []);
return (
<>
{isWorkflowEnabled && navigate.length > 0 && (
<RuntimeTools
+ availablePages={availablePages}
dataIndexUrl={dataIndexUrl}
- navigate={navigate}
- openApiBaseUrl={openApiBaseUrl}
- openApiPath={openApiPath}
devUIUrl={devUIUrl}
- isWorkflowEnabled={isWorkflowEnabled}
- availablePages={availablePages}
- omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents}
diagramPreviewSize={diagramPreviewSize}
+ isLocalCluster={isLocalCluster}
isStunnerEnabled={isStunnerEnabled}
+ isWorkflowEnabled={isWorkflowEnabled}
+ navigate={navigate}
+ omittedWorkflowTimelineEvents={omittedWorkflowTimelineEvents}
+ openApiBaseUrl={openApiBaseUrl}
+ openApiPath={openApiPath}
/>
)}
</>
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeViewApi.ts
b/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeViewApi.ts
index 616ff09b73f..8d0f7ab2e97 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeViewApi.ts
+++
b/packages/serverless-workflow-dev-ui-webapp/src/envelope/RuntimeToolsDevUIEnvelopeViewApi.ts
@@ -31,4 +31,5 @@ export interface RuntimeToolsDevUIEnvelopeViewApi {
setOmittedWorkflowTimelineEvents: (omittedWorkflowTimelineEvents: string[])
=> void;
setDiagramPreviewSize: (diagramPreviewSize?: DiagramPreviewSize) => void;
setIsStunnerEnabled: (isStunnerEnabled: boolean) => void;
+ setIsLocalCluster: (isLocalCluster: boolean) => void;
}
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/standalone/standalone.ts
b/packages/serverless-workflow-dev-ui-webapp/src/standalone/standalone.ts
index 1ebedde2d53..397c1f63bb3 100644
--- a/packages/serverless-workflow-dev-ui-webapp/src/standalone/standalone.ts
+++ b/packages/serverless-workflow-dev-ui-webapp/src/standalone/standalone.ts
@@ -29,17 +29,18 @@ export interface StandaloneDevUIApi {
export interface Consoles {
open: (args: {
+ availablePages?: string[];
container: Element;
dataIndexUrl: string;
- page: string;
devUIUrl: string;
+ diagramPreviewSize?: DiagramPreviewSize;
+ isLocalCluster?: boolean;
+ isStunnerEnabled: boolean;
+ omittedWorkflowTimelineEvents?: string[];
openApiBaseUrl: string;
openApiPath: string;
origin?: string;
- availablePages?: string[];
- omittedWorkflowTimelineEvents?: string[];
- diagramPreviewSize?: DiagramPreviewSize;
- isStunnerEnabled: boolean;
+ page: string;
}) => StandaloneDevUIApi;
}
@@ -55,7 +56,8 @@ const createEnvelopeServer = (
diagramPreviewSize?: DiagramPreviewSize,
origin?: string,
availablePages?: string[],
- omittedWorkflowTimelineEvents?: string[]
+ omittedWorkflowTimelineEvents?: string[],
+ isLocalCluster?: boolean
) => {
const defaultOrigin = window.location.protocol === "file:" ? "*" :
window.location.origin;
return new EnvelopeServer<RuntimeToolsDevUIChannelApi,
RuntimeToolsDevUIEnvelopeApi>(
@@ -70,16 +72,17 @@ const createEnvelopeServer = (
envelopeServerId: self.id,
},
{
- isDataIndexAvailable,
+ availablePages,
dataIndexUrl,
- page,
devUIUrl,
+ diagramPreviewSize,
+ isDataIndexAvailable,
+ isLocalCluster,
+ isStunnerEnabled,
+ omittedWorkflowTimelineEvents,
openApiBaseUrl,
openApiPath,
- availablePages,
- omittedWorkflowTimelineEvents,
- isStunnerEnabled,
- diagramPreviewSize,
+ page,
}
);
}
@@ -107,18 +110,19 @@ export const createDevUI = (
};
export function open(args: {
+ availablePages?: string[];
container: Element;
- isDataIndexAvailable: boolean;
dataIndexUrl: string;
- page: string;
devUIUrl: string;
+ diagramPreviewSize?: DiagramPreviewSize;
+ isDataIndexAvailable: boolean;
+ isLocalCluster?: boolean;
+ isStunnerEnabled: boolean;
+ omittedWorkflowTimelineEvents?: string[];
openApiBaseUrl: string;
openApiPath: string;
origin?: string;
- availablePages?: string[];
- omittedWorkflowTimelineEvents?: string[];
- isStunnerEnabled: boolean;
- diagramPreviewSize?: DiagramPreviewSize;
+ page: string;
}): StandaloneDevUIApi {
const iframe = document.createElement("iframe");
iframe.srcdoc = devUIEnvelopeIndex; // index coming from webapp
@@ -139,7 +143,8 @@ export function open(args: {
args.diagramPreviewSize,
args.origin,
args.availablePages,
- args.omittedWorkflowTimelineEvents ?? []
+ args.omittedWorkflowTimelineEvents ?? [],
+ args.isLocalCluster ?? false
);
const channelApi = new RuntimeToolsDevUIChannelApiImpl();
const listener = (message: MessageEvent) => {
diff --git
a/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
b/packages/serverless-workflow-dev-ui-webapp/src/url/index.ts
similarity index 52%
copy from
packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
copy to packages/serverless-workflow-dev-ui-webapp/src/url/index.ts
index 26c07a113ac..d86ae71e808 100644
---
a/packages/serverless-workflow-dev-ui-webapp/src/api/RuntimeToolsDevUIEnvelopeApi.ts
+++ b/packages/serverless-workflow-dev-ui-webapp/src/url/index.ts
@@ -17,27 +17,15 @@
* under the License.
*/
-import { CustomLabels } from "./CustomLabels";
-import { DiagramPreviewSize } from
"@kie-tools/runtime-tools-swf-enveloped-components/dist/workflowDetails/api";
-
-export interface RuntimeToolsDevUIEnvelopeApi {
- runtimeToolsDevUI_initRequest(association: Association, initArgs:
RuntimeToolsDevUIInitArgs): Promise<void>;
-}
-
-export interface Association {
- origin: string;
- envelopeServerId: string;
-}
+/**
+ * Change the base URL to using the window.location from a given URL
+ *
+ * @param {string} url - The URL string to modify
+ * @returns {string} The new URL.
+ */
+export function changeBaseURLToCurrentLocation(url: string): string {
+ const { protocol, hostname, port } = window.parent.location ??
window.location;
+ const parsedUrl = new URL(url, window.parent.location.href ??
window.location.href);
-export interface RuntimeToolsDevUIInitArgs {
- dataIndexUrl: string;
- page: string;
- devUIUrl: string;
- openApiBaseUrl: string;
- openApiPath: string;
- isDataIndexAvailable: boolean;
- availablePages?: string[];
- omittedWorkflowTimelineEvents?: string[];
- diagramPreviewSize?: DiagramPreviewSize;
- isStunnerEnabled: boolean;
+ return `${protocol}//${hostname}${port ? `:${port}` :
""}${parsedUrl.pathname === "/" ? "" : parsedUrl.pathname}`;
}
diff --git
a/packages/serverless-workflow-dev-ui-webapp/tests/url/changeBaseURLToCurrentLocation.test.ts
b/packages/serverless-workflow-dev-ui-webapp/tests/url/changeBaseURLToCurrentLocation.test.ts
new file mode 100644
index 00000000000..2ca3cdc4968
--- /dev/null
+++
b/packages/serverless-workflow-dev-ui-webapp/tests/url/changeBaseURLToCurrentLocation.test.ts
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { changeBaseURLToCurrentLocation } from "../../src/url";
+
+describe("changeBaseURLToCurrentLocation", () => {
+ beforeAll(() => {
+ window = Object.create(window);
+ delete (window as any).location;
+ window.location = {
+ host: "localhost:8080",
+ hostname: "localhost",
+ href: "http://localhost:8080/test",
+ pathname: "/test",
+ port: "8080",
+ protocol: "http:",
+ } as any;
+ });
+
+ it.each([
+ ["https://greeting.sonataflow-operator-system/graphql",
"http://localhost:8080/graphql"],
+ ["https://greeting.sonataflow-operator-system/openapi.json",
"http://localhost:8080/openapi.json"],
+ ["https://greeting.sonataflow-operator-system", "http://localhost:8080"],
+ ["http://localhost:8080/some/page", "http://localhost:8080/some/page"],
+ ["https://example.com/path/to/resource",
"http://localhost:8080/path/to/resource"],
+ ["http://www.test.com/", "http://localhost:8080"],
+ ["/relative/path", "http://localhost:8080/relative/path"],
+ ["relative/path", "http://localhost:8080/relative/path"],
+ ])("should extract the pathname from URL %s", (url, expected) => {
+ expect(changeBaseURLToCurrentLocation(url)).toBe(expected);
+ });
+});
diff --git a/packages/serverless-workflow-dev-ui-webapp/webpack.config.js
b/packages/serverless-workflow-dev-ui-webapp/webpack.config.js
index e7b8e5d7c1a..0fd0bc161f5 100644
--- a/packages/serverless-workflow-dev-ui-webapp/webpack.config.js
+++ b/packages/serverless-workflow-dev-ui-webapp/webpack.config.js
@@ -55,7 +55,13 @@ module.exports = async (env) =>
},
proxy: [
{
- context: ["/svg", "/forms", "/customDashboard"],
+ context: (pathname, req) => {
+ // redirect all POST request to test the local cluster environment
+ return (
+ req.method === "POST" ||
+ ["/svg", "/forms", "/customDashboard",
"/q/openapi.json"].some((path) => pathname === path)
+ );
+ },
target: "http://localhost:4000",
secure: false,
changeOrigin: true,
diff --git
a/packages/sonataflow-operator/controllers/profiles/common/constants/platform_services.go
b/packages/sonataflow-operator/controllers/profiles/common/constants/platform_services.go
index caeab716cb5..f6fceec9301 100644
---
a/packages/sonataflow-operator/controllers/profiles/common/constants/platform_services.go
+++
b/packages/sonataflow-operator/controllers/profiles/common/constants/platform_services.go
@@ -44,7 +44,8 @@ const (
// of its start health check.
KogitoDataIndexHealthCheckEnabled = "kogito.data-index.health-enabled"
// KogitoDataIndexURL configures the data index url, this value can be
used internally by the workflow.
- KogitoDataIndexURL = "kogito.data-index.url"
+ KogitoDataIndexURL = "kogito.data-index.url"
+ KogitoDataIndexQuarkusDevUICors = "%dev.quarkus.dev-ui.cors.enabled"
// KogitoJobServiceHealthCheckEnabled configures if a workflow must
check for the job service availability as part
// of its start health check.
KogitoJobServiceHealthCheckEnabled =
"kogito.jobs-service.health-enabled"
diff --git
a/packages/sonataflow-operator/controllers/profiles/common/properties/managed.go
b/packages/sonataflow-operator/controllers/profiles/common/properties/managed.go
index 7d630199f58..088ab2a4eb5 100644
---
a/packages/sonataflow-operator/controllers/profiles/common/properties/managed.go
+++
b/packages/sonataflow-operator/controllers/profiles/common/properties/managed.go
@@ -147,6 +147,7 @@ func NewManagedPropertyHandler(workflow
*operatorapi.SonataFlow, platform *opera
}
props := properties.NewProperties()
props.Set(constants.KogitoUserTasksEventsEnabled, "false")
+ props.Set(constants.KogitoDataIndexQuarkusDevUICors, "false")
if platform != nil {
p, err := resolvePlatformWorkflowProperties(platform)
if err != nil {
diff --git
a/packages/sonataflow-operator/controllers/profiles/common/properties/managed_test.go
b/packages/sonataflow-operator/controllers/profiles/common/properties/managed_test.go
index 8d12229c7d3..5b307df8ed5 100644
---
a/packages/sonataflow-operator/controllers/profiles/common/properties/managed_test.go
+++
b/packages/sonataflow-operator/controllers/profiles/common/properties/managed_test.go
@@ -125,7 +125,7 @@ func
Test_appPropertyHandler_WithUserPropertiesWithNoUserOverrides(t *testing.T)
assert.NoError(t, err)
generatedProps, propsErr :=
properties.LoadString(props.WithUserProperties(userProperties).Build())
assert.NoError(t, propsErr)
- assert.Equal(t, 7, len(generatedProps.Keys()))
+ assert.Equal(t, 8, len(generatedProps.Keys()))
assert.NotContains(t, "property1", generatedProps.Keys())
assert.NotContains(t, "property2", generatedProps.Keys())
assert.Equal(t, "http://greeting.default",
generatedProps.GetString("kogito.service.url", ""))
@@ -134,6 +134,7 @@ func
Test_appPropertyHandler_WithUserPropertiesWithNoUserOverrides(t *testing.T)
assert.Equal(t, "false",
generatedProps.GetString("quarkus.devservices.enabled", ""))
assert.Equal(t, "false",
generatedProps.GetString("quarkus.kogito.devservices.enabled", ""))
assert.Equal(t, "false",
generatedProps.GetString(constants.KogitoUserTasksEventsEnabled, ""))
+ assert.Equal(t, "false",
generatedProps.GetString("%dev.quarkus.dev-ui.cors.enabled", ""))
}
func Test_appPropertyHandler_WithUserPropertiesWithServiceDiscovery(t
*testing.T) {
@@ -157,7 +158,7 @@ func
Test_appPropertyHandler_WithUserPropertiesWithServiceDiscovery(t *testing.T
Build())
generatedProps.DisableExpansion = true
assert.NoError(t, propsErr)
- assert.Equal(t, 21, len(generatedProps.Keys()))
+ assert.Equal(t, 22, len(generatedProps.Keys()))
assert.NotContains(t, "property1", generatedProps.Keys())
assert.NotContains(t, "property2", generatedProps.Keys())
assertHasProperty(t, generatedProps, "service1", myService1Address)
@@ -183,6 +184,8 @@ func
Test_appPropertyHandler_WithUserPropertiesWithServiceDiscovery(t *testing.T
assertHasProperty(t, generatedProps, "quarkus.http.host", "0.0.0.0")
assertHasProperty(t, generatedProps, "quarkus.devservices.enabled",
"false")
assertHasProperty(t, generatedProps,
"quarkus.kogito.devservices.enabled", "false")
+ assertHasProperty(t, generatedProps,
"quarkus.kogito.devservices.enabled", "false")
+ assertHasProperty(t, generatedProps,
"%dev.quarkus.dev-ui.cors.enabled", "false")
assertHasProperty(t, generatedProps,
constants.KogitoUserTasksEventsEnabled, "false")
}
@@ -212,7 +215,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.NoError(t, err)
generatedProps, propsErr :=
properties.LoadString(props.WithUserProperties(userProperties).Build())
assert.NoError(t, propsErr)
- assert.Equal(t, 11, len(generatedProps.Keys()))
+ assert.Equal(t, 12, len(generatedProps.Keys()))
assert.NotContains(t, "property1", generatedProps.Keys())
assert.NotContains(t, "property2", generatedProps.Keys())
@@ -230,6 +233,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.Equal(t, "",
generatedProps.GetString(constants.KogitoProcessInstancesEventsURL, ""))
assert.Equal(t, "false",
generatedProps.GetString(constants.KogitoProcessInstancesEventsEnabled, ""))
assert.Equal(t, "false",
generatedProps.GetString(constants.KogitoUserTasksEventsEnabled, ""))
+ assert.Equal(t, "false",
generatedProps.GetString("%dev.quarkus.dev-ui.cors.enabled", ""))
// prod profile enables config of outgoing events url
workflow.SetAnnotations(map[string]string{metadata.Profile:
string(metadata.PreviewProfile)})
@@ -241,7 +245,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.NoError(t, err)
generatedProps, propsErr =
properties.LoadString(props.WithUserProperties(userProperties).Build())
assert.NoError(t, propsErr)
- assert.Equal(t, 17, len(generatedProps.Keys()))
+ assert.Equal(t, 18, len(generatedProps.Keys()))
assert.NotContains(t, "property1", generatedProps.Keys())
assert.NotContains(t, "property2", generatedProps.Keys())
assert.Equal(t,
"http://"+platform.Name+"-"+constants.DataIndexServiceName+"."+platform.Namespace+"/definitions",
generatedProps.GetString(constants.KogitoProcessDefinitionsEventsURL, ""))
@@ -257,6 +261,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.Equal(t, "true",
generatedProps.GetString(constants.KogitoDataIndexHealthCheckEnabled, ""))
assert.Equal(t,
"http://"+platform.Name+"-"+constants.DataIndexServiceName+"."+platform.Namespace,
generatedProps.GetString(constants.KogitoDataIndexURL, ""))
assert.Equal(t,
"http://"+platform.Name+"-"+constants.JobServiceName+"."+platform.Namespace,
generatedProps.GetString(constants.KogitoJobServiceURL, ""))
+ assert.Equal(t, "false",
generatedProps.GetString(constants.KogitoDataIndexQuarkusDevUICors, ""))
// disabling data index bypasses config of outgoing events url
platform.Spec.Services.DataIndex.Enabled = nil
@@ -268,7 +273,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.NoError(t, err)
generatedProps, propsErr =
properties.LoadString(props.WithUserProperties(userProperties).Build())
assert.NoError(t, propsErr)
- assert.Equal(t, 12, len(generatedProps.Keys()))
+ assert.Equal(t, 13, len(generatedProps.Keys()))
assert.NotContains(t, "property1", generatedProps.Keys())
assert.NotContains(t, "property2", generatedProps.Keys())
assert.Equal(t, "",
generatedProps.GetString(constants.KogitoProcessDefinitionsEventsURL, ""))
@@ -279,6 +284,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.Equal(t,
"http://"+platform.Name+"-"+constants.JobServiceName+"."+platform.Namespace+"/v2/jobs/events",
generatedProps.GetString(constants.JobServiceRequestEventsURL, ""))
assert.Equal(t, "",
generatedProps.GetString(constants.JobServiceStatusChangeEvents, ""))
assert.Equal(t, "",
generatedProps.GetString(constants.JobServiceStatusChangeEventsURL, ""))
+ assert.Equal(t, "false",
generatedProps.GetString(constants.KogitoDataIndexQuarkusDevUICors, ""))
// disabling job service bypasses config of outgoing events url
platform.Spec.Services.JobService.Enabled = nil
@@ -288,7 +294,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.NoError(t, err)
generatedProps, propsErr =
properties.LoadString(props.WithUserProperties(userProperties).Build())
assert.NoError(t, propsErr)
- assert.Equal(t, 11, len(generatedProps.Keys()))
+ assert.Equal(t, 12, len(generatedProps.Keys()))
assert.NotContains(t, "property1", generatedProps.Keys())
assert.NotContains(t, "property2", generatedProps.Keys())
assert.Equal(t, "",
generatedProps.GetString(constants.KogitoProcessDefinitionsEventsURL, ""))
@@ -300,6 +306,7 @@ func
Test_appPropertyHandler_WithServicesWithUserOverrides(t *testing.T) {
assert.Equal(t, "",
generatedProps.GetString(constants.JobServiceDataSourceReactiveURL, ""))
assert.Equal(t, "",
generatedProps.GetString(constants.JobServiceStatusChangeEvents, ""))
assert.Equal(t, "",
generatedProps.GetString(constants.JobServiceStatusChangeEventsURL, ""))
+ assert.Equal(t, "false",
generatedProps.GetString(constants.KogitoDataIndexQuarkusDevUICors, ""))
}
var _ = Describe("Platform properties", func() {
@@ -477,6 +484,7 @@ func generateJobServiceWorkflowDevProperties()
*properties.Properties {
jobServiceDevProperties.Set("kogito.events.processdefinitions.enabled", "false")
jobServiceDevProperties.Set("kogito.events.processinstances.enabled", "false")
jobServiceDevProperties.Set("kogito.events.usertasks.enabled",
"false")
+ jobServiceDevProperties.Set("%dev.quarkus.dev-ui.cors.enabled",
"false")
jobServiceDevProperties.Sort()
}
return jobServiceDevProperties
@@ -497,6 +505,7 @@ func generateJobServiceWorkflowProductionProperties()
*properties.Properties {
jobServiceProdProperties.Set("kogito.events.processdefinitions.enabled",
"false")
jobServiceProdProperties.Set("kogito.events.processinstances.enabled", "false")
jobServiceProdProperties.Set("kogito.events.usertasks.enabled",
"false")
+
jobServiceProdProperties.Set("%dev.quarkus.dev-ui.cors.enabled", "false")
jobServiceProdProperties.Sort()
}
return jobServiceProdProperties
@@ -516,6 +525,7 @@ func generateDataIndexWorkflowDevProperties()
*properties.Properties {
dataIndexDevProperties.Set("kogito.events.processdefinitions.enabled", "false")
dataIndexDevProperties.Set("kogito.events.processinstances.enabled", "false")
dataIndexDevProperties.Set("kogito.events.usertasks.enabled",
"false")
+ dataIndexDevProperties.Set("%dev.quarkus.dev-ui.cors.enabled",
"false")
dataIndexDevProperties.Sort()
}
return dataIndexDevProperties
@@ -540,6 +550,7 @@ func generateDataIndexWorkflowProductionProperties()
*properties.Properties {
dataIndexProdProperties.Set("kogito.events.processdefinitions.errors.propagate",
"true")
dataIndexProdProperties.Set("kogito.events.processinstances.enabled", "true")
dataIndexProdProperties.Set("kogito.events.usertasks.enabled",
"false")
+ dataIndexProdProperties.Set("%dev.quarkus.dev-ui.cors.enabled",
"false")
dataIndexProdProperties.Sort()
}
return dataIndexProdProperties
@@ -559,6 +570,7 @@ func generateDataIndexAndJobServiceWorkflowDevProperties()
*properties.Propertie
dataIndexJobServiceDevProperties.Set("kogito.events.processdefinitions.enabled",
"false")
dataIndexJobServiceDevProperties.Set("kogito.events.processinstances.enabled",
"false")
dataIndexJobServiceDevProperties.Set("kogito.events.usertasks.enabled", "false")
+
dataIndexJobServiceDevProperties.Set("%dev.quarkus.dev-ui.cors.enabled",
"false")
dataIndexJobServiceDevProperties.Sort()
}
return dataIndexJobServiceDevProperties
@@ -584,6 +596,7 @@ func
generateDataIndexAndJobServiceWorkflowProductionProperties() *properties.Pr
dataIndexJobServiceProdProperties.Set("kogito.events.usertasks.enabled",
"false")
dataIndexJobServiceProdProperties.Set("mp.messaging.outgoing.kogito-processdefinitions-events.url",
"http://foo-data-index-service.default/definitions")
dataIndexJobServiceProdProperties.Set("mp.messaging.outgoing.kogito-processinstances-events.url",
"http://foo-data-index-service.default/processes")
+
dataIndexJobServiceProdProperties.Set("%dev.quarkus.dev-ui.cors.enabled",
"false")
dataIndexJobServiceProdProperties.Sort()
}
return dataIndexJobServiceProdProperties
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 56fe4a006c4..e018d23f802 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9384,6 +9384,9 @@ importers:
'@kie-tools/eslint':
specifier: workspace:*
version: link:../eslint
+ '@kie-tools/jest-base':
+ specifier: workspace:*
+ version: link:../jest-base
'@kie-tools/root-env':
specifier: workspace:*
version: link:../root-env
@@ -9393,6 +9396,9 @@ importers:
'@types/history':
specifier: ^4.7.3
version: 4.7.5
+ '@types/jest':
+ specifier: ^29.5.12
+ version: 29.5.12
'@types/react':
specifier: ^17.0.6
version: 17.0.21
@@ -9444,6 +9450,18 @@ importers:
https-browserify:
specifier: ^1.0.0
version: 1.0.0
+ jest:
+ specifier: ^29.7.0
+ version:
29.7.0(@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected]))
+ jest-environment-jsdom:
+ specifier: ^29.7.0
+ version: 29.7.0
+ jest-junit:
+ specifier: ^16.0.0
+ version: 16.0.0
+ jest-when:
+ specifier: ^3.6.0
+ version:
3.6.0([email protected](@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected])))
lodash:
specifier: ^4.17.21
version: 4.17.21
@@ -9474,6 +9492,9 @@ importers:
swagger-ui-express:
specifier: ^5.0.0
version: 5.0.0([email protected])
+ ts-jest:
+ specifier: ^29.1.5
+ version:
29.1.5(@babel/[email protected])(@jest/[email protected])(@jest/[email protected])([email protected](@babel/[email protected]))([email protected](@types/[email protected])([email protected])([email protected](@types/[email protected])([email protected])))([email protected])
typescript:
specifier: ^5.5.3
version: 5.5.3
@@ -20326,6 +20347,7 @@ packages:
[email protected]:
resolution: {integrity:
sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==}
engines: {node: '>=12'}
+ deprecated: Use your platform's native DOMException instead
[email protected]:
resolution: {integrity:
sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
@@ -27741,10 +27763,6 @@ packages:
resolution: {integrity:
sha512-5kGSQrzDyjCk0BLuFfjkoUE9vYcoyrwZIZ+GnpOSM9vhkvPjItYiWJ1jpRSo0aU4QmsoNrFwDT4O7XS2UGcBQg==}
engines: {node: '>= 12'}
- [email protected]:
- resolution: {integrity:
sha512-1NpAYQ3wjzIlMs0mgdBmYzLkFgWBIWrzYVDYfrixhoFNNgJ444/jT2kUT2sicRbJES3oQYRZugjB6Ro8SjKeFg==}
- engines: {node: '>= 14'}
-
[email protected]:
resolution: {integrity:
sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==}
engines: {node: '>= 14'}
@@ -28545,7 +28563,7 @@ snapshots:
'@babel/traverse': 7.23.9
'@babel/types': 7.23.9
convert-source-map: 2.0.0
- debug: 4.3.4
+ debug: 4.3.5
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -33551,7 +33569,7 @@ snapshots:
graceful-fs: 4.2.11
istanbul-lib-coverage: 3.2.0
istanbul-lib-instrument: 6.0.2
- istanbul-lib-report: 3.0.0
+ istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 4.0.0
istanbul-reports: 3.1.6
jest-message-util: 29.7.0
@@ -38407,9 +38425,9 @@ snapshots:
'@webassemblyjs/ast': 1.11.6
'@xtuc/long': 4.2.2
-
'@webpack-cli/[email protected]([email protected]([email protected])([email protected]))([email protected](@swc/[email protected])([email protected]))':
+
'@webpack-cli/[email protected]([email protected]([email protected])([email protected]))([email protected]([email protected]))':
dependencies:
- webpack: 5.88.2(@swc/[email protected])([email protected])
+ webpack: 5.88.2([email protected])
webpack-cli: 4.10.0([email protected])([email protected])
'@webpack-cli/[email protected]([email protected]([email protected]))([email protected]([email protected]))':
@@ -44914,7 +44932,7 @@ snapshots:
whatwg-encoding: 2.0.0
whatwg-mimetype: 3.0.0
whatwg-url: 11.0.0
- ws: 8.14.2
+ ws: 8.18.0
xml-name-validator: 4.0.0
transitivePeerDependencies:
- bufferutil
@@ -45980,7 +45998,7 @@ snapshots:
[email protected]([email protected]):
dependencies:
- '@types/json-schema': 7.0.11
+ '@types/json-schema': 7.0.15
jsonc-parser: 3.2.0
monaco-editor: 0.39.0
monaco-marker-data-provider: 1.1.0([email protected])
@@ -45990,7 +46008,7 @@ snapshots:
vscode-languageserver-textdocument: 1.0.7
vscode-languageserver-types: 3.17.2
vscode-uri: 3.0.7
- yaml: 2.0.1
+ yaml: 2.3.2
[email protected]: {}
@@ -50940,7 +50958,7 @@ snapshots:
[email protected]([email protected])([email protected]):
dependencies:
'@discoveryjs/json-ext': 0.5.7
- '@webpack-cli/configtest':
1.2.0([email protected]([email protected])([email protected]))([email protected](@swc/[email protected])([email protected]))
+ '@webpack-cli/configtest':
1.2.0([email protected]([email protected])([email protected]))([email protected]([email protected]))
'@webpack-cli/info':
1.5.0([email protected]([email protected])([email protected]))
'@webpack-cli/serve':
1.7.0([email protected]([email protected])([email protected]))([email protected]([email protected])([email protected]))
colorette: 2.0.16
@@ -50950,7 +50968,7 @@ snapshots:
import-local: 3.0.2
interpret: 2.2.0
rechoir: 0.7.0
- webpack: 5.88.2(@swc/[email protected])([email protected])
+ webpack: 5.88.2([email protected])
webpack-merge: 5.9.0
optionalDependencies:
webpack-dev-server: 4.15.1([email protected])([email protected])
@@ -50980,14 +50998,14 @@ snapshots:
schema-utils: 4.2.0
webpack: 5.76.1([email protected])
-
[email protected]([email protected](@swc/[email protected])([email protected])):
+ [email protected]([email protected]([email protected])):
dependencies:
colorette: 2.0.20
memfs: 3.5.1
mime-types: 2.1.34
range-parser: 1.2.1
schema-utils: 4.2.0
- webpack: 5.88.2(@swc/[email protected])([email protected])
+ webpack: 5.88.2([email protected])
[email protected]([email protected]):
dependencies:
@@ -51096,10 +51114,10 @@ snapshots:
serve-index: 1.9.1
sockjs: 0.3.24
spdy: 4.0.2
- webpack-dev-middleware:
5.3.3([email protected](@swc/[email protected])([email protected]))
+ webpack-dev-middleware: 5.3.3([email protected]([email protected]))
ws: 8.13.0
optionalDependencies:
- webpack: 5.88.2(@swc/[email protected])([email protected])
+ webpack: 5.88.2([email protected])
webpack-cli: 4.10.0([email protected])([email protected])
transitivePeerDependencies:
- bufferutil
@@ -51652,8 +51670,6 @@ snapshots:
[email protected]: {}
- [email protected]: {}
-
[email protected]: {}
[email protected]:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]