wso2 / product-is

Welcome to the WSO2 Identity Server source code! For info on working with the WSO2 Identity Server repository and contributing code, click the link below.
http://wso2.github.io/
Apache License 2.0
741 stars 720 forks source link

Workflow service externalization #15783

Open dewniMW opened 1 year ago

dewniMW commented 1 year ago

Description: For workflow-related operations, IS has an embedded BPEL server. BPEL has some drawbacks when it comes to its usage in IS such as runtime overhead, distribution size, and maintenance overhead. The IS should have the capability to fully externalize the workflow engine from the IS, and make any workflow engine pluggable and usable by IS.

malithiperera commented 1 year ago

identity-workflow-impl-bps

01. Generalize the workflow request payload and Call external workflow mediator

Generalize the workflow request payload which we send to the external workflow mediator and implement the call mediator service. To do that we implement a separate executor WorkflowMediatorRequestExecutor.java

PR Link: https://github.com/wso2-extensions/identity-workflow-impl-bps/pull/70/files

02. create external workflow template

Create a new template for add a workflow definition to a external workflow

We have introduced a new template for external workflow processes, as it is not necessary to go through the multi-step approval template deployment process when introducing a workflow service mediator.

PR Link : https://github.com/wso2-extensions/identity-workflow-impl-bps/pull/71

03. Create a new template for add a workflow definition to a external workflow

We have introduced a new template for external workflow processes, as it is not necessary to go through the multi-step approval template deployment process when introducing a workflow service mediator.

PR Link : https://github.com/wso2-extensions/identity-workflow-impl-bps/pull/72

04. A new UI change has been introduced to provide an API Key, which is necessary for deploying the workflow service mediator in Choreo.

Introduce a new field to add API Key when deploying workflow mediator in Choreo

PR Link : https://github.com/wso2-extensions/identity-workflow-impl-bps/pull/73

malithiperera commented 1 year ago

carbon-identity-framework

01. Implement a method to retrieve External Workflow Id

The getExternalWorkflowId function retrieves the external workflow identifier associated with a given workflow id. This unique identifier corresponds to the deployed workflow id in an external BPS engine.

02. Provide API Key support to BPS Profile

Introduce new constants and change some database queries for add , retrieve update workflow profiles

03. Update template file

Change the template-wf-wizard.jsp file to skip the validation of the newly added external workflow template form

04. Expose workflow management callback API public

expose the implemented workflow management rest API endpoint public

05. Introduce new database column API_KEY

Introduce a new column for store the API_KEY when deploying external workflow mediator in Choreo

malithiperera commented 1 year ago

identity-api-server

Implement a new Rest end point for workflow management