This is an automated email from the ASF dual-hosted git repository.

paulovmr 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 9c1f321ecdd kie-issues#1173: Retrieve workflow definitions from data 
index instead of openapi.json (#2302)
9c1f321ecdd is described below

commit 9c1f321ecdd6fd562e190cf8e870728a62420a9b
Author: Paulo Martins <[email protected]>
AuthorDate: Tue May 28 12:24:09 2024 -0300

    kie-issues#1173: Retrieve workflow definitions from data index instead of 
openapi.json (#2302)
    
    Co-authored-by: Guilherme Caponetto 
<[email protected]>
---
 .../components/validateCloudEventRequest.test.ts   |  4 ++
 .../api/CloudEventFormEnvelopeApi.ts               |  1 +
 .../embedded/EmbeddedCloudEventForm.tsx            |  3 +
 .../envelope/CloudEventFormEnvelopeView.tsx        |  9 ++-
 .../components/CloudEventForm/CloudEventForm.tsx   |  3 +
 .../api/WorkflowDefinitionListChannelApi.ts        |  2 +-
 .../api/WorkflowDefinitionListDriver.ts            |  2 +-
 .../WorkflowDefinitionListChannelApiImpl.ts        |  4 +-
 .../WorkflowDefinitionListEnvelopeViewDriver.ts    |  4 +-
 .../WorkflowDefinitionList.tsx                     | 15 ++--
 .../utils/WorkflowDefinitionListUtils.tsx          | 24 +++++--
 .../src/__tests__/apis/apis.test.tsx               | 26 +++----
 .../src/gatewayApi/apis.tsx                        | 79 +++++++++++-----------
 .../src/graphql/types.tsx                          | 10 +++
 .../runtime-tools-swf-gateway-api/src/types.ts     |  2 +
 .../src/CloudEventForm/CloudEventForm.tsx          |  3 +
 .../CloudEventFormContextProvider.tsx              | 11 +--
 .../src/CloudEventForm/CloudEventFormGatewayApi.ts |  6 +-
 .../CloudEventFormContainer.tsx                    | 11 ++-
 .../WorkflowDefinitionListContextProvider.tsx      | 50 ++++++++++++--
 .../WorkflowDefinitionListGatewayApi.ts            | 22 +++---
 .../WorkflowDefinitionListQueries.ts}              | 25 ++++---
 .../src/WorkflowDefinitionList/index.ts            |  2 +-
 .../WorkflowDefinitionListContainer.tsx            | 12 +++-
 .../WorkflowForm/WorkflowFormContextProvider.tsx   | 10 ++-
 .../src/WorkflowForm/WorkflowFormGatewayApi.ts     | 10 ++-
 .../WorkflowFormContainer.tsx                      |  5 +-
 .../WorkflowListContainer.tsx                      |  7 +-
 .../src/homepage/routes/HomePageRoutes.tsx         | 11 +--
 .../src/homepage/uiNav/HomePageNav.tsx             | 10 +--
 .../src/navigation/Routes.ts                       | 11 +--
 .../WebToolsCloudEventFormContextProvider.tsx      |  7 +-
 ...bToolsWorkflowDefinitionListContextProvider.tsx |  7 +-
 .../WebToolsWorkflowFormContextProvider.tsx        |  5 +-
 .../pages/RuntimeToolsTriggerCloudEvent.tsx        |  6 ++
 .../pages/RuntimeToolsWorkflowDefinitions.tsx      | 26 ++++++-
 .../pages/RuntimeToolsWorkflowInstances.tsx        | 12 +---
 .../settings/runtimeTools/RuntimeToolsConfig.tsx   | 15 +---
 .../settings/runtimeTools/RuntimeToolsSettings.tsx | 61 ++---------------
 .../components/DevUI/DevUILayout/DevUILayout.tsx   | 10 +--
 .../CloudEventFormPage/CloudEventFormPage.tsx      | 11 ++-
 .../pages/WorkflowFormPage/WorkflowFormPage.tsx    |  2 +-
 .../pages/WorkflowsPage/WorkflowsPage.tsx          | 18 +++++
 .../src/pages/Workflows/CloudEventFormPage.tsx     |  6 +-
 .../src/pages/Workflows/WorkflowFormPage.tsx       |  1 +
 45 files changed, 327 insertions(+), 254 deletions(-)

diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/__tests__/components/validateCloudEventRequest.test.ts
 
b/packages/runtime-tools-swf-enveloped-components/src/__tests__/components/validateCloudEventRequest.test.ts
index 6b49ec3e662..a7e46d3ddad 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/__tests__/components/validateCloudEventRequest.test.ts
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/__tests__/components/validateCloudEventRequest.test.ts
@@ -31,6 +31,7 @@ describe("validateCloudEventRequest tests", () => {
         source: "any",
         extensions: {},
       },
+      serviceUrl: "http://localhost:8090/";,
     });
 
     expect(validation.isValid()).toBeTruthy();
@@ -46,6 +47,7 @@ describe("validateCloudEventRequest tests", () => {
         source: "any",
         extensions: {},
       },
+      serviceUrl: "http://localhost:8090/";,
     });
 
     expect(validation.isValid()).toBeFalsy();
@@ -64,6 +66,7 @@ describe("validateCloudEventRequest tests", () => {
         source: "any",
         extensions: {},
       },
+      serviceUrl: "http://localhost:8090/";,
     });
 
     expect(validation.isValid()).toBeFalsy();
@@ -82,6 +85,7 @@ describe("validateCloudEventRequest tests", () => {
         source: "any",
         extensions: {},
       },
+      serviceUrl: "http://localhost:8090/";,
     };
 
     let validation = validateCloudEventRequest(eventRequest);
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/api/CloudEventFormEnvelopeApi.ts
 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/api/CloudEventFormEnvelopeApi.ts
index 58bfc4decff..0bedb872dc3 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/api/CloudEventFormEnvelopeApi.ts
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/api/CloudEventFormEnvelopeApi.ts
@@ -34,4 +34,5 @@ export type CloudEventFormDefaultValues = {
 export type CloudEventFormInitArgs = {
   isNewInstanceEvent: boolean;
   defaultValues?: CloudEventFormDefaultValues;
+  serviceUrl: string;
 };
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/embedded/EmbeddedCloudEventForm.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/embedded/EmbeddedCloudEventForm.tsx
index 984baae166e..48d2d35aaff 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/embedded/EmbeddedCloudEventForm.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/embedded/EmbeddedCloudEventForm.tsx
@@ -32,7 +32,9 @@ export interface EmbeddedCloudEventFormProps {
   defaultValues?: {
     cloudEventSource?: string;
     instanceId?: string;
+    definitionName?: string;
   };
+  serviceUrl: string;
 }
 
 export const EmbeddedCloudEventForm = React.forwardRef(
@@ -66,6 +68,7 @@ export const EmbeddedCloudEventForm = React.forwardRef(
           {
             isNewInstanceEvent: props.isNewInstanceEvent ?? true,
             defaultValues: props.defaultValues,
+            serviceUrl: props.serviceUrl,
           }
         );
       },
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/CloudEventFormEnvelopeView.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/CloudEventFormEnvelopeView.tsx
index 60d00780e27..67e9fb9f9fe 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/CloudEventFormEnvelopeView.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/CloudEventFormEnvelopeView.tsx
@@ -41,6 +41,7 @@ export const CloudEventFormEnvelopeView = 
React.forwardRef<CloudEventFormEnvelop
     const [isEnvelopeConnectedToChannel, setEnvelopeConnectedToChannel] = 
useState<boolean>(false);
     const [isNewInstanceEvent, setIsNewInstanceEvent] = 
useState<boolean>(false);
     const [defaultValues, setDefaultValues] = 
useState<CloudEventFormDefaultValues>();
+    const [serviceUrl, setServiceUrl] = useState<string>("");
 
     useImperativeHandle(
       forwardedRef,
@@ -49,6 +50,7 @@ export const CloudEventFormEnvelopeView = 
React.forwardRef<CloudEventFormEnvelop
           setEnvelopeConnectedToChannel(true);
           setIsNewInstanceEvent(args.isNewInstanceEvent);
           setDefaultValues(args.defaultValues);
+          setServiceUrl(args.serviceUrl);
         },
       }),
       []
@@ -78,7 +80,12 @@ export const CloudEventFormEnvelopeView = 
React.forwardRef<CloudEventFormEnvelop
     return (
       <Card>
         <CardBody>
-          <CloudEventForm driver={driver} 
isNewInstanceEvent={isNewInstanceEvent} defaultValues={defaultValues} />
+          <CloudEventForm
+            driver={driver}
+            serviceUrl={serviceUrl}
+            isNewInstanceEvent={isNewInstanceEvent}
+            defaultValues={defaultValues}
+          />
         </CardBody>
       </Card>
     );
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/components/CloudEventForm/CloudEventForm.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/components/CloudEventForm/CloudEventForm.tsx
index c9605d23651..51cd7ef41bf 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/components/CloudEventForm/CloudEventForm.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/cloudEventForm/envelope/components/CloudEventForm/CloudEventForm.tsx
@@ -47,12 +47,14 @@ import {
 
 export interface CloudEventFormProps {
   driver: CloudEventFormDriver;
+  serviceUrl: string;
   isNewInstanceEvent?: boolean;
   defaultValues?: CloudEventFormDefaultValues;
 }
 
 export const CloudEventForm: React.FC<CloudEventFormProps & OUIAProps> = ({
   driver,
+  serviceUrl,
   isNewInstanceEvent,
   defaultValues,
   ouiaId,
@@ -124,6 +126,7 @@ export const CloudEventForm: React.FC<CloudEventFormProps & 
OUIAProps> = ({
         source: eventSource,
         extensions,
       },
+      serviceUrl: serviceUrl,
     };
 
     const validations = validateCloudEventRequest(eventRequest);
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
index d81dbc3052f..9369b45af55 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
@@ -27,5 +27,5 @@ export interface WorkflowDefinitionListChannelApi {
   workflowDefinitionList__setWorkflowDefinitionFilter(filter: string[]): 
Promise<void>;
   workflowDefinitionList__getWorkflowDefinitionFilter(): Promise<string[]>;
   workflowDefinitionList__openWorkflowForm(workflowDefinition: 
WorkflowDefinition): Promise<void>;
-  workflowDefinitionsList__openTriggerCloudEvent(): void;
+  workflowDefinitionsList__openTriggerCloudEvent(workflowDefinition: 
WorkflowDefinition): Promise<void>;
 }
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListDriver.ts
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListDriver.ts
index 4d2867a7a00..85ca1992e9e 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListDriver.ts
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListDriver.ts
@@ -27,5 +27,5 @@ export interface WorkflowDefinitionListDriver {
   setWorkflowDefinitionFilter(filter: string[]): Promise<void>;
   getWorkflowDefinitionFilter(): Promise<string[]>;
   openWorkflowForm(workflowDefinition: WorkflowDefinition): Promise<void>;
-  openTriggerCloudEvent(): void;
+  openTriggerCloudEvent(workflowDefinition: WorkflowDefinition): Promise<void>;
 }
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/embedded/WorkflowDefinitionListChannelApiImpl.ts
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/embedded/WorkflowDefinitionListChannelApiImpl.ts
index 8b8f3e29c24..9dac2cda48b 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/embedded/WorkflowDefinitionListChannelApiImpl.ts
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/embedded/WorkflowDefinitionListChannelApiImpl.ts
@@ -40,7 +40,7 @@ export class WorkflowDefinitionListChannelApiImpl implements 
WorkflowDefinitionL
     return this.driver.getWorkflowDefinitionsQuery();
   }
 
-  workflowDefinitionsList__openTriggerCloudEvent(): void {
-    this.driver.openTriggerCloudEvent();
+  workflowDefinitionsList__openTriggerCloudEvent(workflowDefinition: 
WorkflowDefinition): Promise<void> {
+    return this.driver.openTriggerCloudEvent(workflowDefinition);
   }
 }
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/WorkflowDefinitionListEnvelopeViewDriver.ts
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/WorkflowDefinitionListEnvelopeViewDriver.ts
index ce65b709271..24de942e16b 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/WorkflowDefinitionListEnvelopeViewDriver.ts
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/WorkflowDefinitionListEnvelopeViewDriver.ts
@@ -40,7 +40,7 @@ export default class WorkflowDefinitionListEnvelopeViewDriver 
implements Workflo
     return 
this.channelApi.requests.workflowDefinitionList__getWorkflowDefinitionsQuery();
   }
 
-  openTriggerCloudEvent(): void {
-    
this.channelApi.notifications.workflowDefinitionsList__openTriggerCloudEvent.send();
+  openTriggerCloudEvent(workflowDefinition: WorkflowDefinition): Promise<void> 
{
+    return 
this.channelApi.requests.workflowDefinitionsList__openTriggerCloudEvent(workflowDefinition);
   }
 }
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/WorkflowDefinitionList/WorkflowDefinitionList.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/WorkflowDefinitionList/WorkflowDefinitionList.tsx
index 20f1abb27ac..3daf331a1bd 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/WorkflowDefinitionList/WorkflowDefinitionList.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/WorkflowDefinitionList/WorkflowDefinitionList.tsx
@@ -70,19 +70,20 @@ const WorkflowDefinitionList: 
React.FC<WorkflowDefinitionListProps & OUIAProps>
   const columns: DataTableColumn[] = [
     getColumn("workflowName", `Workflow Name`),
     getColumn("endpoint", "Endpoint"),
-    getActionColumn((workflowDefinition) => {
-      driver.openWorkflowForm(workflowDefinition);
-    }),
+    getActionColumn(
+      (workflowDefinition) => {
+        driver.openWorkflowForm(workflowDefinition);
+      },
+      (workflowDefinition) => {
+        driver.openTriggerCloudEvent(workflowDefinition);
+      }
+    ),
   ];
 
   const applyFilter = async (): Promise<void> => {
     await driver.setWorkflowDefinitionFilter(filterWorkflowNames);
   };
 
-  const onOpenTriggerCloudEvent = useCallback(() => {
-    driver.openTriggerCloudEvent();
-  }, []);
-
   const filterWorkflowDefinition = (): WorkflowDefinition[] => {
     if (filterWorkflowNames.length === 0) {
       return workflowDefinitionList;
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/utils/WorkflowDefinitionListUtils.tsx
 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/utils/WorkflowDefinitionListUtils.tsx
index 6aa34adddb8..f1c6716f9fb 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/utils/WorkflowDefinitionListUtils.tsx
+++ 
b/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/envelope/components/utils/WorkflowDefinitionListUtils.tsx
@@ -20,9 +20,11 @@
 import React from "react";
 import { DataTableColumn } from 
"@kie-tools/runtime-tools-components/dist/components/DataTable";
 import { PlayIcon } from "@patternfly/react-icons/dist/js/icons/play-icon";
+import { SitemapIcon } from 
"@patternfly/react-icons/dist/js/icons/sitemap-icon";
 import { Tooltip } from "@patternfly/react-core/dist/js/components/Tooltip";
 import { Button } from "@patternfly/react-core/dist/js/components/Button";
 import { WorkflowDefinition } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
+
 export const getColumn = (columnPath: string, columnLabel: string): 
DataTableColumn => {
   return {
     label: columnLabel,
@@ -31,16 +33,26 @@ export const getColumn = (columnPath: string, columnLabel: 
string): DataTableCol
   };
 };
 
-export const getActionColumn = (startWorkflow: (workflowDefinition: 
WorkflowDefinition) => void): DataTableColumn => {
+export const getActionColumn = (
+  startWorkflow: (workflowDefinition: WorkflowDefinition) => void,
+  triggerCloudEvent: (workflowDefinition: WorkflowDefinition) => void
+): DataTableColumn => {
   return {
     label: "Actions",
     path: "actions",
     bodyCellTransformer: (value: any, rowData: WorkflowDefinition) => (
-      <Tooltip content={`Start new workflow`}>
-        <Button onClick={() => startWorkflow(rowData)} variant="link">
-          <PlayIcon />
-        </Button>
-      </Tooltip>
+      <>
+        <Tooltip content={`Start new workflow`}>
+          <Button onClick={() => startWorkflow(rowData)} variant="link">
+            <PlayIcon />
+          </Button>
+        </Tooltip>
+        <Tooltip content={`Trigger cloud event`}>
+          <Button onClick={() => triggerCloudEvent(rowData)} variant="link">
+            <SitemapIcon />
+          </Button>
+        </Tooltip>
+      </>
     ),
   };
 };
diff --git 
a/packages/runtime-tools-swf-gateway-api/src/__tests__/apis/apis.test.tsx 
b/packages/runtime-tools-swf-gateway-api/src/__tests__/apis/apis.test.tsx
index 52ee282488d..112ae1a9216 100644
--- a/packages/runtime-tools-swf-gateway-api/src/__tests__/apis/apis.test.tsx
+++ b/packages/runtime-tools-swf-gateway-api/src/__tests__/apis/apis.test.tsx
@@ -140,11 +140,11 @@ describe("swf custom form tests", () => {
   });
 });
 
-describe("triiger cloud events serction", () => {
+describe("trigger cloud events section", () => {
   beforeEach(() => {
     jest.clearAllMocks();
   });
-  it("trigger cloud event start - with businesskey", async () => {
+  it("trigger cloud event start - with business key", async () => {
     mockedAxios.request.mockResolvedValue("success");
     const event = {
       method: CloudEventMethod.POST,
@@ -157,6 +157,7 @@ describe("triiger cloud events serction", () => {
           kogitobusinesskey: "1234",
         },
       },
+      serviceUrl: "http://localhost:8090/";,
     };
     const response = await triggerStartCloudEvent(event, 
"http://localhost:8080/";);
 
@@ -167,14 +168,10 @@ describe("triiger cloud events serction", () => {
 
     expect(request.url).toBe("http://localhost:8080/endpoint";);
     expect(request.method).toBe("POST");
-    expect(request.data).toHaveProperty("specversion", "1.0");
-    expect(request.data).toHaveProperty("type", "eventType");
-    expect(request.data).toHaveProperty("source", "eventSource");
-    expect(request.data).toHaveProperty(KOGITO_BUSINESS_KEY, "1234");
-    expect(request.data).toHaveProperty("data", JSON.parse(event.data));
+    expect(request).toHaveProperty("data", JSON.parse(event.data));
   });
 
-  it("trigger cloud event start - without businesskey", async () => {
+  it("trigger cloud event start - without business key", async () => {
     mockedAxios.request.mockResolvedValue("success");
     const event = {
       method: CloudEventMethod.POST,
@@ -185,6 +182,7 @@ describe("triiger cloud events serction", () => {
         source: "eventSource",
         extensions: {},
       },
+      serviceUrl: "http://localhost:8090/";,
     };
     const response = await triggerStartCloudEvent(event, 
"http://localhost:8080/";);
 
@@ -195,7 +193,7 @@ describe("triiger cloud events serction", () => {
 
     expect(request.url).toBe("http://localhost:8080/endpoint";);
     expect(request.method).toBe("POST");
-    expect(request.data).toHaveProperty(KOGITO_BUSINESS_KEY, response);
+    expect(request).toHaveProperty("data", JSON.parse(event.data));
   });
 
   it("trigger cloud event - with instanceId", async () => {
@@ -211,6 +209,7 @@ describe("triiger cloud events serction", () => {
           kogitoprocrefid: "1234",
         },
       },
+      serviceUrl: "http://localhost:8090/";,
     };
     const response = await triggerCloudEvent(event, "http://localhost:8080/";);
 
@@ -221,8 +220,7 @@ describe("triiger cloud events serction", () => {
 
     expect(request.url).toBe("http://localhost:8080/endpoint";);
     expect(request.method).toBe("POST");
-    expect(request.data).toHaveProperty(KOGITO_PROCESS_REFERENCE_ID, "1234");
-    expect(request.data).not.toHaveProperty(KOGITO_BUSINESS_KEY);
+    expect(request).toHaveProperty("data", JSON.parse(event.data));
   });
 
   it("trigger cloud event - without instanceId", async () => {
@@ -236,6 +234,7 @@ describe("triiger cloud events serction", () => {
         source: "eventSource",
         extensions: {},
       },
+      serviceUrl: "http://localhost:8090/";,
     };
     const response = await triggerCloudEvent(event, "http://localhost:8080/";);
 
@@ -246,8 +245,7 @@ describe("triiger cloud events serction", () => {
 
     expect(request.url).toBe("http://localhost:8080/endpoint";);
     expect(request.method).toBe("POST");
-    expect(request.data).not.toHaveProperty(KOGITO_PROCESS_REFERENCE_ID);
-    expect(request.data).not.toHaveProperty(KOGITO_BUSINESS_KEY);
+    expect(request).toHaveProperty("data", JSON.parse(event.data));
   });
 
   it("trigger cloud event - using PUT", async () => {
@@ -263,6 +261,7 @@ describe("triiger cloud events serction", () => {
           kogitoprocrefid: "1234",
         },
       },
+      serviceUrl: "http://localhost:8090/";,
     };
     const response = await triggerCloudEvent(event, "http://localhost:8080/";);
 
@@ -273,5 +272,6 @@ describe("triiger cloud events serction", () => {
 
     expect(request.url).toBe("http://localhost:8080/endpoint";);
     expect(request.method).toBe("PUT");
+    expect(request).toHaveProperty("data", JSON.parse(event.data));
   });
 });
diff --git a/packages/runtime-tools-swf-gateway-api/src/gatewayApi/apis.tsx 
b/packages/runtime-tools-swf-gateway-api/src/gatewayApi/apis.tsx
index 5dfe38b51f3..619ebe387c0 100644
--- a/packages/runtime-tools-swf-gateway-api/src/gatewayApi/apis.tsx
+++ b/packages/runtime-tools-swf-gateway-api/src/gatewayApi/apis.tsx
@@ -46,7 +46,6 @@ import { ApolloClient } from "apollo-client";
 import { buildWorkflowListWhereArgument } from "./QueryUtils";
 import axios from "axios";
 import { v4 as uuidv4 } from "uuid";
-import SwaggerParser from "@apidevtools/swagger-parser";
 
 export const getWorkflowInstances = async (
   offset: number,
@@ -491,9 +490,14 @@ const doTriggerCloudEvent = (event: CloudEventRequest, 
baseUrl: string, proxyEnd
   return axios.request({
     url: proxyEndpoint || url,
     method: event.method,
-    data: cloudEvent,
+    data: cloudEvent.data,
     headers: {
       ...(proxyEndpoint ? { "Target-Url": url } : {}),
+      "ce-type": cloudEvent.type,
+      "ce-source": cloudEvent.source,
+      "ce-id": cloudEvent.id,
+      "ce-specversion": cloudEvent.specversion,
+      ...event.headers.extensions,
     },
   });
 };
@@ -518,42 +522,29 @@ export const triggerCloudEvent = (event: 
CloudEventRequest, baseUrl: string, pro
   return doTriggerCloudEvent(event, baseUrl, proxyEndpoint);
 };
 
-export const createWorkflowDefinitionList = (
-  workflowDefinitionObjs: WorkflowDefinition[],
-  url: string
-): WorkflowDefinition[] => {
-  const workflowDefinitionList: WorkflowDefinition[] = [];
-  workflowDefinitionObjs.forEach((workflowDefObj) => {
-    const workflowName = Object.keys(workflowDefObj)[0].split("/")[1];
-    const endpoint = `${url}/${workflowName}`;
-    workflowDefinitionList.push({
-      workflowName,
-      endpoint,
-    });
-  });
-  return workflowDefinitionList;
-};
-
-export const getWorkflowDefinitionList = (baseUrl: string, openApiPath: 
string): Promise<WorkflowDefinition[]> => {
-  return new Promise((resolve, reject) => {
-    SwaggerParser.parse(`${baseUrl}/${openApiPath}`)
-      .then((response) => {
-        const workflowDefinitionObjs: any[] = [];
-        const paths = response.paths;
-        const regexPattern = /^\/[^\n/]+\/schema/;
-        Object.getOwnPropertyNames(paths)
-          .filter((path) => regexPattern.test(path.toString()))
-          .forEach((url) => {
-            let workflowArray = url.split("/");
-            workflowArray = workflowArray.filter((name) => name.length !== 0);
-            /* istanbul ignore else*/
-            if 
(Object.prototype.hasOwnProperty.call(paths![`/${workflowArray[0]}`], "post")) {
-              workflowDefinitionObjs.push({ [url]: paths![url] });
-            }
-          });
-        resolve(createWorkflowDefinitionList(workflowDefinitionObjs, baseUrl));
+export const getWorkflowDefinitions = (client: ApolloClient<any>): 
Promise<WorkflowDefinition[]> => {
+  return new Promise<WorkflowDefinition[]>((resolve, reject) => {
+    client
+      .query({
+        query: GraphQL.GetProcessDefinitionsDocument,
+        fetchPolicy: "network-only",
+        errorPolicy: "all",
       })
-      .catch((err: any) => reject(err));
+      .then((value) => {
+        const workflowDefinitions = value.data.ProcessDefinitions;
+        resolve(
+          value.data.ProcessDefinitions.map((item: { id: string; endpoint: 
string; serviceUrl: string }) => {
+            return {
+              workflowName: item.id,
+              endpoint: item.endpoint,
+              serviceUrl: item.serviceUrl,
+            };
+          })
+        );
+      })
+      .catch((reason) => {
+        reject({ errorMessage: JSON.stringify(reason) });
+      });
   });
 };
 
@@ -683,12 +674,20 @@ export const getCustomWorkflowSchemaFromApi = async (
 export const getCustomWorkflowSchema = async (
   baseUrl: string,
   openApiPath: string,
-  workflowName: string
+  workflowName: string,
+  proxyEndpoint?: string
 ): Promise<Record<string, any>> => {
   return new Promise((resolve, reject) => {
-    SwaggerParser.parse(`${baseUrl}/${openApiPath}`)
+    const url = `${baseUrl}/${openApiPath}`;
+    axios
+      .request({
+        url: proxyEndpoint || url,
+        headers: {
+          ...(proxyEndpoint ? { "Target-Url": url } : {}),
+        },
+      })
       .then(async (response: any) => {
-        resolve(await getCustomWorkflowSchemaFromApi(response, workflowName));
+        resolve(await getCustomWorkflowSchemaFromApi(response.data, 
workflowName));
       })
       .catch((err) => reject(err));
   });
diff --git a/packages/runtime-tools-swf-gateway-api/src/graphql/types.tsx 
b/packages/runtime-tools-swf-gateway-api/src/graphql/types.tsx
index 502ff4e5110..a3395882cbd 100644
--- a/packages/runtime-tools-swf-gateway-api/src/graphql/types.tsx
+++ b/packages/runtime-tools-swf-gateway-api/src/graphql/types.tsx
@@ -1425,6 +1425,16 @@ export namespace GraphQL {
 
   export type HandleJobRescheduleMutation = { __typename?: "Mutation"; 
JobReschedule?: string | null };
 
+  export const GetProcessDefinitionsDocument = gql`
+    query getProcessDefinitions {
+      ProcessDefinitions {
+        id
+        endpoint
+        serviceUrl
+      }
+    }
+  `;
+
   export const GetProcessInstancesDocument = gql`
     query getProcessInstances(
       $where: ProcessInstanceArgument
diff --git a/packages/runtime-tools-swf-gateway-api/src/types.ts 
b/packages/runtime-tools-swf-gateway-api/src/types.ts
index a8118dbc209..32fa6b87a69 100644
--- a/packages/runtime-tools-swf-gateway-api/src/types.ts
+++ b/packages/runtime-tools-swf-gateway-api/src/types.ts
@@ -140,6 +140,7 @@ export interface WorkflowListState {
 export interface WorkflowDefinition {
   workflowName: string;
   endpoint: string;
+  serviceUrl: string;
 }
 
 export interface WorkflowResponse {
@@ -153,6 +154,7 @@ export enum CloudEventMethod {
 }
 
 export interface CloudEventRequest {
+  serviceUrl: string;
   endpoint: string;
   method: CloudEventMethod;
 
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventForm.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventForm.tsx
index d4d2e2ddc6c..71395e3f57c 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventForm.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventForm.tsx
@@ -36,6 +36,7 @@ interface CloudEventFormProps {
   onStartWorkflowError: (error: any) => void;
   onTriggerCloudEventSuccess: () => void;
   onTriggerStartCloudEventSuccess: (businessKey: string) => void;
+  serviceUrl: string;
 }
 
 export enum CloudEventPageSource {
@@ -50,6 +51,7 @@ export const CloudEventForm: React.FC<CloudEventFormProps & 
OUIAProps> = ({
   onStartWorkflowError,
   onTriggerCloudEventSuccess,
   onTriggerStartCloudEventSuccess,
+  serviceUrl,
   ouiaId,
   ouiaSafe,
 }) => {
@@ -86,6 +88,7 @@ export const CloudEventForm: React.FC<CloudEventFormProps & 
OUIAProps> = ({
               onStartWorkflowError={onStartWorkflowError}
               onTriggerCloudEventSuccess={onTriggerCloudEventSuccess}
               onTriggerStartCloudEventSuccess={onTriggerStartCloudEventSuccess}
+              serviceUrl={serviceUrl}
             />
           </CardBody>
         </Card>
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx
index 842e6a3bb2e..075d782eac0 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormContextProvider.tsx
@@ -21,15 +21,10 @@ import React, { useMemo } from "react";
 import CloudEventFormContext from "./CloudEventFormContext";
 import { CloudEventFormGatewayApiImpl } from "./CloudEventFormGatewayApi";
 
-export function CloudEventFormContextProvider(
-  props: React.PropsWithChildren<{ proxyEndpoint?: string; kogitoServiceUrl: 
string }>
-) {
-  const { proxyEndpoint, kogitoServiceUrl } = props;
+export function CloudEventFormContextProvider(props: React.PropsWithChildren<{ 
proxyEndpoint?: string }>) {
+  const { proxyEndpoint } = props;
 
-  const gatewayApi = useMemo(
-    () => new CloudEventFormGatewayApiImpl(kogitoServiceUrl, proxyEndpoint),
-    [proxyEndpoint, kogitoServiceUrl]
-  );
+  const gatewayApi = useMemo(() => new 
CloudEventFormGatewayApiImpl(proxyEndpoint), [proxyEndpoint]);
 
   return <CloudEventFormContext.Provider 
value={gatewayApi}>{props.children}</CloudEventFormContext.Provider>;
 }
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts
 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts
index 839ae00a2e2..1f85110b008 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts
+++ 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventForm/CloudEventFormGatewayApi.ts
@@ -26,14 +26,14 @@ export interface CloudEventFormGatewayApi {
 }
 
 export class CloudEventFormGatewayApiImpl implements CloudEventFormGatewayApi {
-  constructor(private readonly baseUrl: string, private readonly 
proxyEndpoint?: string) {}
+  constructor(private readonly proxyEndpoint?: string) {}
 
   async triggerStartCloudEvent(event: CloudEventRequest): Promise<string> {
-    const response = await triggerStartCloudEvent(event, this.baseUrl, 
this.proxyEndpoint);
+    const response = await triggerStartCloudEvent(event, event.serviceUrl, 
this.proxyEndpoint);
     return response;
   }
 
   triggerCloudEvent(event: CloudEventRequest): Promise<any> {
-    return triggerCloudEvent(event, this.baseUrl, this.proxyEndpoint);
+    return triggerCloudEvent(event, event.serviceUrl, this.proxyEndpoint);
   }
 }
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx
index d8c15f34f34..80df5a6cec8 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/CloudEventFormContainer/CloudEventFormContainer.tsx
@@ -25,22 +25,28 @@ import { CloudEventRequest } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist
 
 interface CloudEventFormContainerProps {
   instanceId?: string;
+  definitionName?: string;
   cloudEventSource: string;
   isTriggerNewInstance: boolean;
   onStartWorkflowError: (error: any) => void;
   onTriggerCloudEventSuccess: () => void;
   onTriggerStartCloudEventSuccess: (businessKey: string) => void;
+  serviceUrl: string;
+  targetOrigin?: string;
 }
 
 export const CloudEventFormContainer: React.FC<CloudEventFormContainerProps & 
OUIAProps> = ({
   instanceId,
+  definitionName,
   cloudEventSource,
   isTriggerNewInstance,
   onStartWorkflowError,
   onTriggerCloudEventSuccess,
   onTriggerStartCloudEventSuccess,
+  serviceUrl,
   ouiaId,
   ouiaSafe,
+  targetOrigin,
 }) => {
   const gatewayApi = useCloudEventFormGatewayApi();
 
@@ -71,15 +77,16 @@ export const CloudEventFormContainer: 
React.FC<CloudEventFormContainerProps & OU
   return (
     <EmbeddedCloudEventForm
       {...componentOuiaProps(ouiaId, "cloud-event-form-container", ouiaSafe)}
-      targetOrigin={window.location.origin}
+      targetOrigin={targetOrigin || window.location.origin}
       isNewInstanceEvent={isTriggerNewInstance}
-      defaultValues={{ cloudEventSource, instanceId }}
+      defaultValues={{ cloudEventSource, instanceId, definitionName }}
       driver={{
         triggerCloudEvent(event: CloudEventRequest): Promise<void> {
           const doTrigger = isTriggerNewInstance ? triggerStartCloudEvent : 
triggerCloudEvent;
           return doTrigger(event);
         },
       }}
+      serviceUrl={serviceUrl}
     />
   );
 };
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx
index 526004ed04c..6d324a7d658 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListContextProvider.tsx
@@ -20,13 +20,53 @@
 import React, { useMemo } from "react";
 import { WorkflowDefinitionListContext } from 
"./WorkflowDefinitionListContext";
 import { WorkflowDefinitionListGatewayApiImpl } from 
"./WorkflowDefinitionListGatewayApi";
+import { HttpLink } from "apollo-link-http";
+import { InMemoryCache, NormalizedCacheObject } from "apollo-cache-inmemory";
+import { ApolloClient } from "apollo-client";
+import { GraphQLWorkflowDefinitionListQueries } from 
"./WorkflowDefinitionListQueries";
 
-export function WorkflowDefinitionListContextProvider(props: 
React.PropsWithChildren<{ kogitoServiceUrl: string }>) {
-  const { kogitoServiceUrl } = props;
+export function WorkflowDefinitionListContextProvider(
+  props: React.PropsWithChildren<{ proxyEndpoint?: string; dataIndexUrl: 
string }>
+) {
+  const { proxyEndpoint, dataIndexUrl } = props;
+
+  const httpLink = useMemo(
+    () =>
+      new HttpLink({
+        uri: proxyEndpoint || dataIndexUrl,
+        headers: {
+          ...(proxyEndpoint ? { "Target-Url": dataIndexUrl } : {}),
+        },
+      }),
+    [dataIndexUrl, proxyEndpoint]
+  );
+
+  const cache = useMemo(() => new InMemoryCache(), []);
+
+  const apolloClient: ApolloClient<NormalizedCacheObject> = useMemo(
+    () =>
+      new ApolloClient({
+        cache,
+        link: httpLink,
+      }),
+    [cache, httpLink]
+  );
+
+  return (
+    <WorkflowDefinitionListContextProviderWithApolloClient 
apolloClient={apolloClient}>
+      {props.children}
+    </WorkflowDefinitionListContextProviderWithApolloClient>
+  );
+}
+
+export function WorkflowDefinitionListContextProviderWithApolloClient(
+  props: React.PropsWithChildren<{ apolloClient: 
ApolloClient<NormalizedCacheObject> }>
+) {
+  const { apolloClient } = props;
 
   const gatewayApiImpl = useMemo(() => {
-    return new WorkflowDefinitionListGatewayApiImpl(kogitoServiceUrl, 
"q/openapi.json");
-  }, [kogitoServiceUrl]);
+    return new WorkflowDefinitionListGatewayApiImpl(new 
GraphQLWorkflowDefinitionListQueries(apolloClient));
+  }, [apolloClient]);
 
   return (
     <WorkflowDefinitionListContext.Provider value={gatewayApiImpl}>
@@ -34,5 +74,3 @@ export function WorkflowDefinitionListContextProvider(props: 
React.PropsWithChil
     </WorkflowDefinitionListContext.Provider>
   );
 }
-
-export default WorkflowDefinitionListContextProvider;
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts
index 3f2691343df..a2a6c6ffb7b 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListGatewayApi.ts
@@ -18,14 +18,15 @@
  */
 
 import { WorkflowDefinition } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
-import { getWorkflowDefinitionList } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/gatewayApi";
+import { getWorkflowDefinitions } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/gatewayApi";
+import { WorkflowDefinitionListQueries } from 
"../WorkflowDefinitionList/WorkflowDefinitionListQueries";
 
 export interface WorkflowDefinitionListGatewayApi {
   getWorkflowDefinitionFilter: () => Promise<string[]>;
   setWorkflowDefinitionFilter: (filter: string[]) => Promise<void>;
   getWorkflowDefinitionsQuery: () => Promise<WorkflowDefinition[]>;
   openWorkflowForm: (workflowDefinition: WorkflowDefinition) => Promise<void>;
-  openTriggerCloudEvent: () => void;
+  openTriggerCloudEvent: (workflowDefinition: WorkflowDefinition) => 
Promise<void>;
   onOpenWorkflowFormListen: (listener: OnOpenWorkflowFormListener) => 
UnSubscribeHandler;
   onOpenTriggerCloudEventListen: (listener: OnOpenTriggerCloudEventListener) 
=> UnSubscribeHandler;
 }
@@ -35,7 +36,7 @@ export interface OnOpenWorkflowFormListener {
 }
 
 export interface OnOpenTriggerCloudEventListener {
-  onOpen: () => void;
+  onOpen: (workflowDefinition: WorkflowDefinition) => void;
 }
 
 export interface UnSubscribeHandler {
@@ -46,13 +47,11 @@ export class WorkflowDefinitionListGatewayApiImpl 
implements WorkflowDefinitionL
   private readonly onOpenWorkflowListeners: OnOpenWorkflowFormListener[] = [];
   private readonly onOpenTriggerCloudEventListeners: 
OnOpenTriggerCloudEventListener[] = [];
 
-  private readonly baseUrl: string;
-  private readonly openApiPath: string;
+  private readonly queries: WorkflowDefinitionListQueries;
   private workflowDefinitionFilter: string[] = [];
 
-  constructor(url: string, path: string) {
-    this.baseUrl = url;
-    this.openApiPath = path;
+  constructor(queries: WorkflowDefinitionListQueries) {
+    this.queries = queries;
   }
 
   getWorkflowDefinitionFilter(): Promise<string[]> {
@@ -100,10 +99,11 @@ export class WorkflowDefinitionListGatewayApiImpl 
implements WorkflowDefinitionL
   }
 
   getWorkflowDefinitionsQuery(): Promise<WorkflowDefinition[]> {
-    return getWorkflowDefinitionList(this.baseUrl, this.openApiPath);
+    return this.queries.getWorkflowDefinitions();
   }
 
-  openTriggerCloudEvent(): void {
-    this.onOpenTriggerCloudEventListeners.forEach((listener) => 
listener.onOpen());
+  openTriggerCloudEvent(workflowDefinition: WorkflowDefinition): Promise<void> 
{
+    this.onOpenTriggerCloudEventListeners.forEach((listener) => 
listener.onOpen(workflowDefinition));
+    return Promise.resolve();
   }
 }
diff --git 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListQueries.ts
similarity index 60%
copy from 
packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
copy to 
packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListQueries.ts
index d81dbc3052f..115f12cfc06 100644
--- 
a/packages/runtime-tools-swf-enveloped-components/src/workflowDefinitions/api/WorkflowDefinitionListChannelApi.ts
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/WorkflowDefinitionListQueries.ts
@@ -17,15 +17,22 @@
  * under the License.
  */
 
+import { getWorkflowDefinitions } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/gatewayApi";
 import { WorkflowDefinition } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
+import { ApolloClient } from "apollo-client";
 
-/**
- * Channel Api for Workflow Definition List
- */
-export interface WorkflowDefinitionListChannelApi {
-  workflowDefinitionList__getWorkflowDefinitionsQuery(): 
Promise<WorkflowDefinition[]>;
-  workflowDefinitionList__setWorkflowDefinitionFilter(filter: string[]): 
Promise<void>;
-  workflowDefinitionList__getWorkflowDefinitionFilter(): Promise<string[]>;
-  workflowDefinitionList__openWorkflowForm(workflowDefinition: 
WorkflowDefinition): Promise<void>;
-  workflowDefinitionsList__openTriggerCloudEvent(): void;
+export interface WorkflowDefinitionListQueries {
+  getWorkflowDefinitions(): Promise<WorkflowDefinition[]>;
+}
+
+export class GraphQLWorkflowDefinitionListQueries implements 
WorkflowDefinitionListQueries {
+  private readonly client: ApolloClient<any>;
+
+  constructor(client: ApolloClient<any>) {
+    this.client = client;
+  }
+
+  getWorkflowDefinitions(): Promise<WorkflowDefinition[]> {
+    return getWorkflowDefinitions(this.client);
+  }
 }
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/index.ts
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/index.ts
index cdaba08f67b..c4a06a02226 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/index.ts
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionList/index.ts
@@ -18,5 +18,5 @@
  */
 
 export * from "./WorkflowDefinitionListContext";
-export { default as WorkflowDefinitionListContextProvider } from 
"./WorkflowDefinitionListContextProvider";
+export * from "./WorkflowDefinitionListContextProvider";
 export { WorkflowDefinitionListGatewayApi } from 
"./WorkflowDefinitionListGatewayApi";
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx
index a79dded3747..6191eccb0c3 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowDefinitionListContainer/WorkflowDefinitionListContainer.tsx
@@ -20,16 +20,18 @@
 import React, { useEffect } from "react";
 import { componentOuiaProps, OUIAProps } from 
"@kie-tools/runtime-tools-components/dist/ouiaTools";
 import { EmbeddedWorkflowDefinitionList } from 
"@kie-tools/runtime-tools-swf-enveloped-components/dist/workflowDefinitions";
-import { WorkflowDefinition } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
+import { WorkflowDefinition, WorkflowInstance } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
 import { useWorkflowDefinitionListGatewayApi, WorkflowDefinitionListGatewayApi 
} from "../WorkflowDefinitionList";
 
 interface WorkflowDefinitionListContainerProps {
   onOpenWorkflowForm: (workflowDefinition: WorkflowDefinition) => void;
+  onOpenTriggerCloudEventForWorkflow: (workflowDefinition: WorkflowDefinition) 
=> void;
   targetOrigin?: string;
 }
 
 export const WorkflowDefinitionListContainer: 
React.FC<WorkflowDefinitionListContainerProps & OUIAProps> = ({
   onOpenWorkflowForm,
+  onOpenTriggerCloudEventForWorkflow,
   ouiaId,
   ouiaSafe,
   targetOrigin,
@@ -42,11 +44,17 @@ export const WorkflowDefinitionListContainer: 
React.FC<WorkflowDefinitionListCon
         onOpenWorkflowForm(workflowDefinition);
       },
     });
+    const onTriggerCloudEventUnsubscriber = 
gatewayApi.onOpenTriggerCloudEventListen({
+      onOpen(workflowDefinition: WorkflowDefinition) {
+        onOpenTriggerCloudEventForWorkflow(workflowDefinition);
+      },
+    });
 
     return () => {
       onOpenDefinitionUnsubscriber.unSubscribe();
+      onTriggerCloudEventUnsubscriber.unSubscribe();
     };
-  }, [gatewayApi, onOpenWorkflowForm]);
+  }, [gatewayApi, onOpenWorkflowForm, onOpenTriggerCloudEventForWorkflow]);
 
   return (
     <EmbeddedWorkflowDefinitionList
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx
index b279883661e..5cdc801537e 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormContextProvider.tsx
@@ -21,14 +21,12 @@ import React, { useMemo } from "react";
 import { WorkflowFormContext } from "./WorkflowFormContext";
 import { WorkflowFormGatewayApiImpl } from "./WorkflowFormGatewayApi";
 
-export function WorkflowFormContextProvider(
-  props: React.PropsWithChildren<{ proxyEndpoint?: string; kogitoServiceUrl: 
string }>
-) {
-  const { proxyEndpoint, kogitoServiceUrl } = props;
+export function WorkflowFormContextProvider(props: React.PropsWithChildren<{ 
proxyEndpoint?: string }>) {
+  const { proxyEndpoint } = props;
 
   const gatewayApiImpl = useMemo(() => {
-    return new WorkflowFormGatewayApiImpl(kogitoServiceUrl, "q/openapi.json", 
proxyEndpoint);
-  }, [kogitoServiceUrl, proxyEndpoint]);
+    return new WorkflowFormGatewayApiImpl("q/openapi.json", proxyEndpoint);
+  }, [proxyEndpoint]);
 
   return <WorkflowFormContext.Provider 
value={gatewayApiImpl}>{props.children}</WorkflowFormContext.Provider>;
 }
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts
index d9a4040ffeb..3503d04ed06 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowForm/WorkflowFormGatewayApi.ts
@@ -22,19 +22,17 @@ import { getCustomWorkflowSchema, startWorkflowRest } from 
"@kie-tools/runtime-t
 export interface WorkflowFormGatewayApi {
   setBusinessKey(bk: string): void;
   getBusinessKey(): string;
-  getCustomWorkflowSchema(workflowName: string): Promise<Record<string, any>>;
+  getCustomWorkflowSchema(workflowName: string, serviceUrl: string): 
Promise<Record<string, any>>;
   startWorkflow(endpoint: string, data: Record<string, any>): Promise<string>;
 }
 
 export class WorkflowFormGatewayApiImpl implements WorkflowFormGatewayApi {
   private businessKey: string;
-  private readonly baseUrl: string;
   private readonly openApiPath: string;
   private readonly proxyEndpoint?: string;
 
-  constructor(baseUrl: string, openApiPath: string, proxyEndpoint?: string) {
+  constructor(openApiPath: string, proxyEndpoint?: string) {
     this.businessKey = "";
-    this.baseUrl = baseUrl;
     this.openApiPath = openApiPath;
     this.proxyEndpoint = proxyEndpoint;
   }
@@ -47,8 +45,8 @@ export class WorkflowFormGatewayApiImpl implements 
WorkflowFormGatewayApi {
     return this.businessKey;
   }
 
-  getCustomWorkflowSchema(workflowName: string): Promise<Record<string, any>> {
-    return getCustomWorkflowSchema(this.baseUrl, this.openApiPath, 
workflowName);
+  getCustomWorkflowSchema(workflowName: string, serviceUrl: string): 
Promise<Record<string, any>> {
+    return getCustomWorkflowSchema(serviceUrl, this.openApiPath, workflowName, 
this.proxyEndpoint);
   }
 
   async startWorkflow(endpoint: string, data: Record<string, any>): 
Promise<string> {
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx
index 890a0df839c..7367c88d456 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowFormContainer/WorkflowFormContainer.tsx
@@ -46,7 +46,10 @@ export const WorkflowFormContainer: 
React.FC<WorkflowFormContainerProps & OUIAPr
       {...componentOuiaProps(ouiaId, "workflow-form-container", ouiaSafe)}
       driver={{
         async getCustomWorkflowSchema(): Promise<Record<string, any>> {
-          return 
gatewayApi.getCustomWorkflowSchema(workflowDefinitionData.workflowName);
+          return gatewayApi.getCustomWorkflowSchema(
+            workflowDefinitionData.workflowName,
+            workflowDefinitionData.serviceUrl
+          );
         },
         async resetBusinessKey() {
           onResetForm();
diff --git 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx
 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx
index 741bd6f2104..a42899dd35e 100644
--- 
a/packages/runtime-tools-swf-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx
+++ 
b/packages/runtime-tools-swf-webapp-components/src/WorkflowListContainer/WorkflowListContainer.tsx
@@ -27,7 +27,6 @@ import { WorkflowListGatewayApi } from 
"../WorkflowList/WorkflowListGatewayApi";
 interface WorkflowListContainerProps {
   initialState: WorkflowListState;
   onOpenWorkflowDetails: (args: { workflowId: string; state: WorkflowListState 
}) => void;
-  onOpenTriggerCloudEvent?: () => void;
   onOpenTriggerCloudEventForWorkflow?: (workflowId: string) => void;
   targetOrigin?: string;
 }
@@ -35,7 +34,6 @@ interface WorkflowListContainerProps {
 export const WorkflowListContainer: React.FC<WorkflowListContainerProps & 
OUIAProps> = ({
   initialState,
   onOpenWorkflowDetails,
-  onOpenTriggerCloudEvent,
   onOpenTriggerCloudEventForWorkflow,
   ouiaId,
   ouiaSafe,
@@ -53,17 +51,14 @@ export const WorkflowListContainer: 
React.FC<WorkflowListContainerProps & OUIAPr
       onOpen(workflowInstance?: WorkflowInstance) {
         if (workflowInstance) {
           onOpenTriggerCloudEventForWorkflow?.(workflowInstance.id);
-          return;
         }
-
-        onOpenTriggerCloudEvent?.();
       },
     });
     return () => {
       onOpenInstanceUnsubscriber.unSubscribe();
       onTriggerCloudEventUnsubscriber?.unSubscribe();
     };
-  }, [gatewayApi, onOpenTriggerCloudEvent, onOpenTriggerCloudEventForWorkflow, 
onOpenWorkflowDetails]);
+  }, [gatewayApi, onOpenTriggerCloudEventForWorkflow, onOpenWorkflowDetails]);
 
   return (
     <EmbeddedWorkflowList
diff --git 
a/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx 
b/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx
index 3d860c07b6a..a425d1cf3b2 100644
--- a/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx
+++ b/packages/serverless-logic-web-tools/src/homepage/routes/HomePageRoutes.tsx
@@ -79,8 +79,11 @@ export function HomePageRoutes(props: { isNavOpen: boolean 
}) {
       <Route path={routes.sampleCatalog.path({})}>
         <SamplesCatalog />
       </Route>
-      <Route path={routes.runtimeToolsWorkflowInstances.path({})}>
-        <RuntimeToolsWorkflowInstances />
+      <Route 
path={routes.runtimeToolsTriggerCloudEventForWorkflowInstance.path({ 
workflowId: ":workflowId" })}>
+        {({ match }) => <RuntimeToolsTriggerCloudEvent />}
+      </Route>
+      <Route 
path={routes.runtimeToolsTriggerCloudEventForWorkflowDefinition.path({ 
workflowName: ":workflowName" })}>
+        {({ match }) => <RuntimeToolsTriggerCloudEvent />}
       </Route>
       <Route path={routes.runtimeToolsWorkflowDetails.path({ workflowId: 
":workflowId" })}>
         {({ match }) => <RuntimeToolsWorkflowDetails 
workflowId={match!.params.workflowId!} />}
@@ -91,8 +94,8 @@ export function HomePageRoutes(props: { isNavOpen: boolean }) 
{
       <Route path={routes.runtimeToolsWorkflowDefinitions.path({})}>
         <RuntimeToolsWorkflowDefinitions />
       </Route>
-      <Route path={routes.runtimeToolsTriggerCloudEvent.path({})}>
-        <RuntimeToolsTriggerCloudEvent />
+      <Route path={routes.runtimeToolsWorkflowInstances.path({})}>
+        <RuntimeToolsWorkflowInstances />
       </Route>
       <Route component={NoMatchPage} />
     </Switch>
diff --git 
a/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx 
b/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx
index 70734cc19ce..6281889c667 100644
--- a/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx
+++ b/packages/serverless-logic-web-tools/src/homepage/uiNav/HomePageNav.tsx
@@ -30,7 +30,7 @@ export function HomePageNav(props: { pathname: string }) {
   const settings = useSettings();
 
   const runtimeToolsNavItem = useMemo(() => {
-    if (settings.runtimeTools.config.kogitoServiceUrl && 
settings.runtimeTools.config.dataIndexUrl) {
+    if (settings.runtimeTools.config.dataIndexUrl) {
       return (
         <NavExpandable title="Runtime Tools" groupId="runtime-tools-nav-group">
           <NavItem
@@ -49,14 +49,6 @@ export function HomePageNav(props: { pathname: string }) {
           >
             <Link to={routes.runtimeToolsWorkflowInstances.path({})}>Workflow 
Instances</Link>
           </NavItem>
-          <NavItem
-            itemId={5}
-            key={"RuntimeToolsTriggerCloudEvent-nav"}
-            isActive={props.pathname === 
routes.runtimeToolsTriggerCloudEvent.path({})}
-            ouiaId="runtime-tools-trigger-cloud-event-nav"
-          >
-            <Link to={routes.runtimeToolsTriggerCloudEvent.path({})}>Trigger 
Cloud Event</Link>
-          </NavItem>
         </NavExpandable>
       );
     }
diff --git a/packages/serverless-logic-web-tools/src/navigation/Routes.ts 
b/packages/serverless-logic-web-tools/src/navigation/Routes.ts
index 34e9015f780..6458a061bf5 100644
--- a/packages/serverless-logic-web-tools/src/navigation/Routes.ts
+++ b/packages/serverless-logic-web-tools/src/navigation/Routes.ts
@@ -148,14 +148,17 @@ export const routes = {
   runtimeToolsWorkflowDetails: new Route<{
     queryParams: QueryParams.FILTERS | QueryParams.SORT_BY;
     pathParams: PathParams.WORKFLOW_ID;
-  }>(({ workflowId }) => `/runtime-tools/workflow-details/${workflowId}`),
+  }>(({ workflowId }) => `/runtime-tools/workflow-instances/${workflowId}`),
   runtimeToolsWorkflowForm: new Route<{
     pathParams: PathParams.WORKFLOW_NAME;
   }>(({ workflowName }) => 
`/runtime-tools/workflow-definition/${workflowName}`),
-  runtimeToolsTriggerCloudEvent: new Route<{}>(() => 
`/runtime-tools/trigger-cloud-event`),
-  runtimeToolsTriggerCloudEventForWorkflow: new Route<{
+  runtimeToolsTriggerCloudEventForWorkflowInstance: new Route<{
+    queryParams: QueryParams.URL;
     pathParams: PathParams.WORKFLOW_ID;
-  }>(({ workflowId }) => `/runtime-tools/trigger-cloud-event/${workflowId}`),
+  }>(({ workflowId }) => 
`/runtime-tools/workflow-instances/${workflowId}/trigger-cloud-event`),
+  runtimeToolsTriggerCloudEventForWorkflowDefinition: new Route<{
+    pathParams: PathParams.WORKFLOW_NAME;
+  }>(({ workflowName }) => 
`/runtime-tools/workflow-definition/${workflowName}/trigger-cloud-event`),
 
   settings: {
     home: new Route<{}>(() => SETTINGS_ROUTE),
diff --git 
a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx
 
b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx
index e5e85e9ab68..d93ab24f0f1 100644
--- 
a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx
+++ 
b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsCloudEventFormContextProvider.tsx
@@ -19,18 +19,13 @@
 
 import * as React from "react";
 import { WorkflowFormContextProvider } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/WorkflowForm";
-import { useSettings } from "../../settings/SettingsContext";
 import { useEnv } from "../../env/EnvContext";
 
 export function WebToolsCloudEventFormContextProvider(props: 
React.PropsWithChildren<{}>) {
-  const settings = useSettings();
   const { env } = useEnv();
 
   return (
-    <WorkflowFormContextProvider
-      proxyEndpoint={env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL}
-      kogitoServiceUrl={settings.runtimeTools.config.kogitoServiceUrl}
-    >
+    <WorkflowFormContextProvider 
proxyEndpoint={env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL}>
       {props.children}
     </WorkflowFormContextProvider>
   );
diff --git 
a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx
 
b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx
index 96d10cd01b8..593cc2b6d3d 100644
--- 
a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx
+++ 
b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowDefinitionListContextProvider.tsx
@@ -20,12 +20,17 @@
 import * as React from "react";
 import { WorkflowDefinitionListContextProvider } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/WorkflowDefinitionList";
 import { useSettings } from "../../settings/SettingsContext";
+import { useEnv } from "../../env/EnvContext";
 
 export function WebToolsWorkflowDefinitionListContextProvider(props: 
React.PropsWithChildren<{}>) {
   const settings = useSettings();
+  const { env } = useEnv();
 
   return (
-    <WorkflowDefinitionListContextProvider 
kogitoServiceUrl={settings.runtimeTools.config.kogitoServiceUrl}>
+    <WorkflowDefinitionListContextProvider
+      proxyEndpoint={env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL}
+      dataIndexUrl={settings.runtimeTools.config.dataIndexUrl}
+    >
       {props.children}
     </WorkflowDefinitionListContextProvider>
   );
diff --git 
a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx
 
b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx
index 72b9b2d2149..ae6c1bf7534 100644
--- 
a/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx
+++ 
b/packages/serverless-logic-web-tools/src/runtimeTools/contexts/WebToolsWorkflowFormContextProvider.tsx
@@ -27,10 +27,7 @@ export function WebToolsWorkflowFormContextProvider(props: 
React.PropsWithChildr
   const { env } = useEnv();
 
   return (
-    <CloudEventFormContextProvider
-      proxyEndpoint={env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL}
-      kogitoServiceUrl={settings.runtimeTools.config.kogitoServiceUrl}
-    >
+    <CloudEventFormContextProvider 
proxyEndpoint={env.SERVERLESS_LOGIC_WEB_TOOLS_CORS_PROXY_URL}>
       {props.children}
     </CloudEventFormContextProvider>
   );
diff --git 
a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx
 
b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx
index 6517964a81c..aaa705f84eb 100644
--- 
a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx
+++ 
b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsTriggerCloudEvent.tsx
@@ -23,11 +23,16 @@ import { Text, TextContent, TextVariants } from 
"@patternfly/react-core/dist/js/
 import { CloudEventFormContainer } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/CloudEventFormContainer";
 import { Alert, AlertActionCloseButton } from 
"@patternfly/react-core/dist/js/components/Alert";
 import { useGlobalAlert } from "../../alerts/GlobalAlertsContext";
+import { WorkflowDefinition } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
+import { useHistory } from "react-router";
 
 const PAGE_TITLE = "Trigger Cloud Event";
 const KUBESMARTS_CLOUD_SOURCE = "/local/kubesmarts";
 
 export function RuntimeToolsTriggerCloudEvent() {
+  const history = useHistory();
+  const workflowDefinition: WorkflowDefinition = (history.location.state as 
any)["workflowDefinition"];
+
   const triggerEventSuccessAlert = useGlobalAlert<{ message: string }>(
     useCallback(({ close }, { message }) => {
       return (
@@ -105,6 +110,7 @@ export function RuntimeToolsTriggerCloudEvent() {
           onStartWorkflowError={onStartWorkflowError}
           onTriggerCloudEventSuccess={onTriggerEventSuccessAlert}
           onTriggerStartCloudEventSuccess={onTriggerStartCloudEventSuccess}
+          serviceUrl={workflowDefinition.serviceUrl}
         />
       </PageSection>
     </Page>
diff --git 
a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx
 
b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx
index b2de63fa2f4..994d16cb2bf 100644
--- 
a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx
+++ 
b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowDefinitions.tsx
@@ -25,6 +25,7 @@ import { Text, TextContent, TextVariants } from 
"@patternfly/react-core/dist/js/
 import { useHistory } from "react-router";
 import { routes } from "../../navigation/Routes";
 import { WorkflowDefinition } from 
"@kie-tools/runtime-tools-swf-gateway-api/dist/types";
+import { CloudEventPageSource } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/CloudEventForm";
 
 const PAGE_TITLE = "Workflow Definitions";
 
@@ -39,6 +40,7 @@ export function RuntimeToolsWorkflowDefinitions() {
           workflowDefinition: {
             workflowName: workflowDefinition.workflowName,
             endpoint: workflowDefinition.endpoint,
+            serviceUrl: workflowDefinition.serviceUrl,
           },
         },
       });
@@ -46,6 +48,25 @@ export function RuntimeToolsWorkflowDefinitions() {
     [history]
   );
 
+  const onOpenTriggerCloudEventForWorkflow = useCallback(
+    (workflowDefinition: WorkflowDefinition) => {
+      history.push({
+        pathname: 
routes.runtimeToolsTriggerCloudEventForWorkflowDefinition.path({
+          workflowName: workflowDefinition.workflowName,
+        }),
+        state: {
+          workflowDefinition: {
+            workflowName: workflowDefinition.workflowName,
+            endpoint: workflowDefinition.endpoint,
+            serviceUrl: workflowDefinition.serviceUrl,
+          },
+          source: CloudEventPageSource.DEFINITIONS,
+        },
+      });
+    },
+    [history]
+  );
+
   return (
     <Page>
       <PageSection variant={"light"}>
@@ -59,7 +80,10 @@ export function RuntimeToolsWorkflowDefinitions() {
 
       <PageSection isFilled aria-label="workflow-definitions-section">
         <Card>
-          <WorkflowDefinitionListContainer 
onOpenWorkflowForm={onOpenWorkflowForm} />
+          <WorkflowDefinitionListContainer
+            onOpenWorkflowForm={onOpenWorkflowForm}
+            
onOpenTriggerCloudEventForWorkflow={onOpenTriggerCloudEventForWorkflow}
+          />
         </Card>
       </PageSection>
     </Page>
diff --git 
a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx
 
b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx
index b87254d4e6b..f281f88238f 100644
--- 
a/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx
+++ 
b/packages/serverless-logic-web-tools/src/runtimeTools/pages/RuntimeToolsWorkflowInstances.tsx
@@ -43,19 +43,10 @@ export function RuntimeToolsWorkflowInstances() {
     [history]
   );
 
-  const onOpenTriggerCloudEvent = useCallback(() => {
-    history.push({
-      pathname: routes.runtimeToolsTriggerCloudEvent.path({}),
-      state: {
-        source: CloudEventPageSource.INSTANCES,
-      },
-    });
-  }, [history]);
-
   const onOpenTriggerCloudEventForWorkflow = useCallback(
     (workflowId: string) => {
       history.push({
-        pathname: routes.runtimeToolsTriggerCloudEventForWorkflow.path({ 
workflowId }),
+        pathname: 
routes.runtimeToolsTriggerCloudEventForWorkflowInstance.path({ workflowId }),
         state: {
           source: CloudEventPageSource.INSTANCES,
         },
@@ -79,7 +70,6 @@ export function RuntimeToolsWorkflowInstances() {
         <WorkflowListContainer
           initialState={initialState}
           onOpenWorkflowDetails={onOpenWorkflowDetails}
-          onOpenTriggerCloudEvent={onOpenTriggerCloudEvent}
           
onOpenTriggerCloudEventForWorkflow={onOpenTriggerCloudEventForWorkflow}
         />
       </PageSection>
diff --git 
a/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsConfig.tsx
 
b/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsConfig.tsx
index 7e30241396d..95c7dfad4ba 100644
--- 
a/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsConfig.tsx
+++ 
b/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsConfig.tsx
@@ -20,34 +20,26 @@
 import { getCookie, makeCookieName, setCookie } from "../../cookies";
 
 export const RUNTIME_TOOLS_DATA_INDEX_URL_COOKIE_NAME = 
makeCookieName("runtime-tools", "data-index-url");
-export const RUNTIME_TOOLS_KOGITO_SERVICE_URL_COOKIE_NAME = 
makeCookieName("runtime-tools", "kogito-service-url");
 
 export interface RuntimeToolsSettingsConfig {
   dataIndexUrl: string;
-  kogitoServiceUrl: string;
 }
 
 export const EMPTY_CONFIG: RuntimeToolsSettingsConfig = {
   dataIndexUrl: "",
-  kogitoServiceUrl: "",
 };
 
 export function isRuntimeToolsConfigValid(config: RuntimeToolsSettingsConfig): 
boolean {
-  return isDataIndexUrlValid(config.dataIndexUrl) && 
isKogitoServiceUrlValid(config.kogitoServiceUrl);
+  return isDataIndexUrlValid(config.dataIndexUrl);
 }
 
 export function isDataIndexUrlValid(dataIndexUrl: string): boolean {
   return dataIndexUrl !== undefined && dataIndexUrl.trim().length > 0;
 }
 
-export function isKogitoServiceUrlValid(kogitoServiceUrl: string): boolean {
-  return kogitoServiceUrl !== undefined && kogitoServiceUrl.trim().length > 0;
-}
-
 export function readRuntimeToolsConfigCookie(): RuntimeToolsSettingsConfig {
   return {
     dataIndexUrl: getCookie(RUNTIME_TOOLS_DATA_INDEX_URL_COOKIE_NAME) ?? "",
-    kogitoServiceUrl: getCookie(RUNTIME_TOOLS_KOGITO_SERVICE_URL_COOKIE_NAME) 
?? "",
   };
 }
 
@@ -59,11 +51,6 @@ export function saveDataIndexUrlCookie(dataIndexUrl: 
string): void {
   setCookie(RUNTIME_TOOLS_DATA_INDEX_URL_COOKIE_NAME, dataIndexUrl);
 }
 
-export function saveKogitoServiceUrlCookie(kogitoServiceUrl: string): void {
-  setCookie(RUNTIME_TOOLS_KOGITO_SERVICE_URL_COOKIE_NAME, kogitoServiceUrl);
-}
-
 export function saveConfigCookie(config: RuntimeToolsSettingsConfig): void {
   saveDataIndexUrlCookie(config.dataIndexUrl);
-  saveKogitoServiceUrlCookie(config.kogitoServiceUrl);
 }
diff --git 
a/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsSettings.tsx
 
b/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsSettings.tsx
index 111758b4b0c..ccbdd84723c 100644
--- 
a/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsSettings.tsx
+++ 
b/packages/serverless-logic-web-tools/src/settings/runtimeTools/RuntimeToolsSettings.tsx
@@ -65,18 +65,11 @@ export function RuntimeToolsSettings(props: 
SettingsPageProps) {
 
   const onClearDataIndexUrl = useCallback(() => setConfig({ ...config, 
dataIndexUrl: "" }), [config]);
 
-  const onClearKogitoServiceUrl = useCallback(() => setConfig({ ...config, 
kogitoServiceUrl: "" }), [config]);
-
   const onDataIndexURLChanged = useCallback(
     (newValue: string) => setConfig({ ...config, dataIndexUrl: newValue }),
     [config]
   );
 
-  const onKogitoServiceUrlChanged = useCallback(
-    (newValue: string) => setConfig({ ...config, kogitoServiceUrl: newValue }),
-    [config]
-  );
-
   const onReset = useCallback(() => {
     setConfig(EMPTY_CONFIG);
     settingsDispatch.runtimeTools.setConfig(EMPTY_CONFIG);
@@ -86,7 +79,6 @@ export function RuntimeToolsSettings(props: 
SettingsPageProps) {
   const onApply = useCallback(() => {
     const newConfig: RuntimeToolsSettingsConfig = {
       dataIndexUrl: removeTrailingSlashFromUrl(config.dataIndexUrl),
-      kogitoServiceUrl: removeTrailingSlashFromUrl(config.kogitoServiceUrl),
     };
     setConfig(newConfig);
     settingsDispatch.runtimeTools.setConfig(newConfig);
@@ -118,9 +110,6 @@ export function RuntimeToolsSettings(props: 
SettingsPageProps) {
                 <b>Data Index URL: </b>
                 <i>{config.dataIndexUrl}</i>
                 <br />
-                <b>SonataFlow Service URL: </b>
-                <i>{config.kogitoServiceUrl}</i>
-                <br />
                 <br />
                 <Button variant={ButtonVariant.tertiary} onClick={onReset}>
                   Reset
@@ -158,7 +147,11 @@ export function RuntimeToolsSettings(props: 
SettingsPageProps) {
             <FormGroup
               label={"Data Index URL"}
               labelIcon={
-                <Popover bodyContent={"Data Index URL associated with your 
running Kogito runtime service."}>
+                <Popover
+                  bodyContent={
+                    "Data Index URL associated with your running SonataFlow 
runtime services. Used to list workflow instances and definitions."
+                  }
+                >
                   <button
                     type="button"
                     aria-label="More info for Data Index URL field"
@@ -199,50 +192,6 @@ export function RuntimeToolsSettings(props: 
SettingsPageProps) {
                 </InputGroupText>
               </InputGroup>
             </FormGroup>
-            <FormGroup
-              label={"SonataFlow Service URL"}
-              labelIcon={
-                <Popover bodyContent={"URL associated with your running 
SonataFlow runtime service."}>
-                  <button
-                    type="button"
-                    aria-label="More info for SonataFlow Service URL field"
-                    onClick={(e) => e.preventDefault()}
-                    aria-describedby="kogito-service-url-field"
-                    className="pf-c-form__group-label-help"
-                  >
-                    <HelpIcon noVerticalAlign />
-                  </button>
-                </Popover>
-              }
-              isRequired
-              fieldId="kogito-service-url-field"
-            >
-              <InputGroup className="pf-u-mt-sm">
-                <TextInput
-                  autoComplete={"off"}
-                  isRequired
-                  type="text"
-                  id="kogito-service-url-field"
-                  name="kogito-service-url-field"
-                  aria-label="SonataFlow Service URL field"
-                  aria-describedby="kogito-service-url-field-helper"
-                  value={config.kogitoServiceUrl}
-                  onChange={onKogitoServiceUrlChanged}
-                  tabIndex={2}
-                  data-testid="kogito-service-url-text-field"
-                />
-                <InputGroupText>
-                  <Button
-                    isSmall
-                    variant="plain"
-                    aria-label="Clear SonataFlow Service URL button"
-                    onClick={onClearKogitoServiceUrl}
-                  >
-                    <TimesIcon />
-                  </Button>
-                </InputGroupText>
-              </InputGroup>
-            </FormGroup>
             <ActionGroup>
               <Button
                 isDisabled={!isCurrentConfigValid}
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 cba8192ffa8..edee9f13313 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
@@ -34,7 +34,7 @@ import { WorkflowFormContextProvider } from 
"@kie-tools/runtime-tools-swf-webapp
 import CustomDashboardListContextProvider from 
"../../../channel/CustomDashboardList/CustomDashboardListContextProvider";
 import { CustomDashboardViewContextProvider } from 
"../../../channel/CustomDashboardView";
 import { CloudEventFormContextProvider } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/CloudEventForm";
-import { WorkflowDefinitionListContextProvider } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/WorkflowDefinitionList";
+import { WorkflowDefinitionListContextProviderWithApolloClient } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/WorkflowDefinitionList";
 
 interface IOwnProps {
   apolloClient: ApolloClient<any>;
@@ -83,13 +83,13 @@ const DevUILayout: React.FC<IOwnProps> = ({
       >
         <WorkflowListContextProviderWithApolloClient 
apolloClient={apolloClient}>
           <WorkflowDetailsContextProviderWithApolloClient 
apolloClient={apolloClient}>
-            <WorkflowDefinitionListContextProvider 
kogitoServiceUrl={`${openApiBaseUrl}`}>
+            <WorkflowDefinitionListContextProviderWithApolloClient 
apolloClient={apolloClient}>
               <FormsListContextProvider>
                 <CustomDashboardListContextProvider>
                   <CustomDashboardViewContextProvider>
                     <FormDetailsContextProvider>
-                      <WorkflowFormContextProvider 
kogitoServiceUrl={`${openApiBaseUrl}`}>
-                        <CloudEventFormContextProvider 
kogitoServiceUrl={`${openApiBaseUrl}`}>
+                      <WorkflowFormContextProvider>
+                        <CloudEventFormContextProvider>
                           <MemoryRouter>
                             <Switch>
                               <Route path="/" render={renderPage} />
@@ -101,7 +101,7 @@ const DevUILayout: React.FC<IOwnProps> = ({
                   </CustomDashboardViewContextProvider>
                 </CustomDashboardListContextProvider>
               </FormsListContextProvider>
-            </WorkflowDefinitionListContextProvider>
+            </WorkflowDefinitionListContextProviderWithApolloClient>
           </WorkflowDetailsContextProviderWithApolloClient>
         </WorkflowListContextProviderWithApolloClient>
       </DevUIAppContextProvider>
diff --git 
a/packages/serverless-workflow-dev-ui-webapp/src/components/pages/CloudEventFormPage/CloudEventFormPage.tsx
 
b/packages/serverless-workflow-dev-ui-webapp/src/components/pages/CloudEventFormPage/CloudEventFormPage.tsx
index e54a6302e24..a76d850b007 100644
--- 
a/packages/serverless-workflow-dev-ui-webapp/src/components/pages/CloudEventFormPage/CloudEventFormPage.tsx
+++ 
b/packages/serverless-workflow-dev-ui-webapp/src/components/pages/CloudEventFormPage/CloudEventFormPage.tsx
@@ -30,6 +30,7 @@ import { PageTitle } from 
"@kie-tools/runtime-tools-components/dist/components/P
 import { FormNotification, Notification } from 
"@kie-tools/runtime-tools-components/dist/components/FormNotification";
 import { useHistory } from "react-router-dom";
 import { CloudEventFormContainer } from 
"@kie-tools/runtime-tools-swf-webapp-components/dist/CloudEventFormContainer";
+import { useDevUIAppContext } from "../../contexts/DevUIAppContext";
 
 export interface CloudEventPageState {
   source?: CloudEventPageSource;
@@ -43,13 +44,15 @@ export enum CloudEventPageSource {
 const CloudEventFormPage: React.FC<OUIAProps> = ({ ouiaId, ouiaSafe }) => {
   const [notification, setNotification] = useState<Notification>();
 
+  const context = useDevUIAppContext();
+
   const history = useHistory();
 
   const initialState = history.location && (history.location.state as 
CloudEventPageState);
 
   const isTriggerNewInstance = useMemo(() => {
     const source = initialState.source;
-    return source === CloudEventPageSource.DEFINITIONS;
+    return source !== CloudEventPageSource.INSTANCES;
   }, [history]);
 
   const showNotification = useCallback(
@@ -76,7 +79,7 @@ const CloudEventFormPage: React.FC<OUIAProps> = ({ ouiaId, 
ouiaSafe }) => {
   );
 
   const onSubmitSuccess = useCallback((): void => {
-    showNotification("success", "");
+    showNotification("success", "The CloudEvent has been successfully 
triggered.");
   }, []);
 
   const onSubmitError = useCallback((details?: string) => {
@@ -108,10 +111,12 @@ const CloudEventFormPage: React.FC<OUIAProps> = ({ 
ouiaId, ouiaSafe }) => {
           <CardBody className="pf-u-h-100">
             <CloudEventFormContainer
               isTriggerNewInstance={isTriggerNewInstance}
-              cloudEventSource={`${initialState}`}
+              cloudEventSource={"/local/devui"}
               onStartWorkflowError={(details) => onSubmitError(details)}
               onTriggerCloudEventSuccess={() => onSubmitSuccess()}
               onTriggerStartCloudEventSuccess={() => onSubmitSuccess()}
+              serviceUrl={context.getDevUIUrl()}
+              targetOrigin={context.getDevUIUrl()}
             />
           </CardBody>
         </Card>
diff --git 
a/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowFormPage/WorkflowFormPage.tsx
 
b/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowFormPage/WorkflowFormPage.tsx
index 6e8b37dd957..935fa7fc76b 100644
--- 
a/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowFormPage/WorkflowFormPage.tsx
+++ 
b/packages/serverless-workflow-dev-ui-webapp/src/components/pages/WorkflowFormPage/WorkflowFormPage.tsx
@@ -80,7 +80,7 @@ const WorkflowFormPage: React.FC<OUIAProps> = ({ ouiaId, 
ouiaSafe }) => {
   };
 
   const onSubmitSuccess = (message: string): void => {
-    showNotification("success", message);
+    showNotification("success", `A workflow with id ${message} was started 
successfully.`);
   };
 
   const onSubmitError = (details?: string) => {
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 8c5665644f4..a88d182da1f 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
@@ -83,6 +83,23 @@ const WorkflowsPage: 
React.FC<RouteComponentProps<MatchProps, StaticContext, H.L
           workflowDefinition: {
             workflowName: workflowDefinition.workflowName,
             endpoint: workflowDefinition.endpoint,
+            serviceUrl: workflowDefinition.serviceUrl,
+          },
+        },
+      });
+    },
+    [history]
+  );
+
+  const onOpenTriggerCloudEvent = useCallback(
+    (workflowDefinition: WorkflowDefinition) => {
+      history.push({
+        pathname: `/WorkflowDefinitions/CloudEvent`,
+        state: {
+          workflowDefinition: {
+            workflowName: workflowDefinition.workflowName,
+            endpoint: workflowDefinition.endpoint,
+            serviceUrl: workflowDefinition.serviceUrl,
           },
         },
       });
@@ -120,6 +137,7 @@ const WorkflowsPage: 
React.FC<RouteComponentProps<MatchProps, StaticContext, H.L
               <Card className="Dev-ui__card-size">
                 <WorkflowDefinitionListContainer
                   onOpenWorkflowForm={onOpenWorkflowForm}
+                  onOpenTriggerCloudEventForWorkflow={onOpenTriggerCloudEvent}
                   targetOrigin={apiContext.getDevUIUrl()}
                 />
               </Card>
diff --git 
a/packages/sonataflow-deployment-webapp/src/pages/Workflows/CloudEventFormPage.tsx
 
b/packages/sonataflow-deployment-webapp/src/pages/Workflows/CloudEventFormPage.tsx
index 641ae284237..b9ff8eeb491 100644
--- 
a/packages/sonataflow-deployment-webapp/src/pages/Workflows/CloudEventFormPage.tsx
+++ 
b/packages/sonataflow-deployment-webapp/src/pages/Workflows/CloudEventFormPage.tsx
@@ -159,7 +159,11 @@ export function CloudEventFormPage() {
                 </Title>
               </EmptyState>
             ) : (
-              <CloudEventForm driver={driver} defaultValues={defaultValues} />
+              <CloudEventForm
+                driver={driver}
+                defaultValues={defaultValues}
+                serviceUrl={window.location.href.split("/#")[0]}
+              />
             )}
           </CardBody>
         </Card>
diff --git 
a/packages/sonataflow-deployment-webapp/src/pages/Workflows/WorkflowFormPage.tsx
 
b/packages/sonataflow-deployment-webapp/src/pages/Workflows/WorkflowFormPage.tsx
index 10d964627de..8c8a9c4750c 100644
--- 
a/packages/sonataflow-deployment-webapp/src/pages/Workflows/WorkflowFormPage.tsx
+++ 
b/packages/sonataflow-deployment-webapp/src/pages/Workflows/WorkflowFormPage.tsx
@@ -61,6 +61,7 @@ export function WorkflowFormPage(props: { workflowId: string 
}) {
     () => ({
       workflowName: props.workflowId,
       endpoint: `/${props.workflowId}`,
+      serviceUrl: window.location.href.split("/#")[0],
     }),
     [props.workflowId]
   );


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to