September
Welcome to the September 2023! ☕ release of KuFlow.
We have introduced some new functionalities that may be of interest to you.
- Tasks forms based in JSONForms
- Improvements in the authentication and authorization mechanisms of Workers
- New asynchronous task handling
Task forms based on JSONForms 📑
We have implemented a new form design mechanism based on JSON Forms that allows the creation of forms for your tasks with a high degree of customization. It enables developers to define the form's data model, validation rules, and user interface layout using Schema and UI Schema. By leveraging JSON Forms, users can create intuitive and dynamic forms with seamless support for arrays, file uploads, and custom messages.
The solution consists of an editor that allows you to create the different parts of a JSON Form. These are:
- Schema
- Represents the form's data model and validation rules. It defines the structure, data types, and constraints of each field.
- UI Schema
- To define how form fields are presented and organized in the user interface.
- UI Components
- Elements to define the layout and appearance of the form.
- Rules
- Conditions and effects to create dynamic forms, like disabling elements based on specific conditions.
Try this new functionality and offer a new and improved user experience to your users!
More information and interesting links:
-
Blog post of the announcement: https://kuflow.com/blog/en/dynamic-forms/
-
Blog post of Creating a dynamic form guide: https://kuflow.com/blog/en/how-to-dynamics-forms/
-
Documentation: Forms Creation
Improvements in the authentication and authorization mechanisms of Workers 🧙♂️
As you know, in the Workers for KuFlow that use the Temporal-based engine, the authentication mechanisms against our Temporal solution consist of a certificate and private key system, plus a signed token. Up to now, with our SDKs the implementation of this mechanism was quite easy since a ready-to-use mechanism is provided. However, the worker developer had to provide the credentials, certificates and private key to configure his Worker.
Now, it is at this point that a fully transparent mechanism has been implemented for the developer to automatically manage the provisioning of the certificates and their private key. Now the developer will only need to configure the Application credentials obtained in the KuFlow GUI and the SDK will manage the rest.
More information and interesting links:
-
Authentication mechanism in KuFlow: Authentication
-
Working with Temporal based Workers using KuFLow SDKs: Workflow using Temporal.io
New asynchronous task handling 🧳
As you know, in KuFlow we differentiate between two types of tasks that normally exist in our processes, synchronous and asynchronous tasks. Synchronous tasks are performed by computer systems because there is no need to wait for inputs and outputs to perform them. However, an asynchronous task involves different time instants for its execution. Such tasks are usually performed by a human being, but can also be performed by a computer system.
To handle this asynchrony in Temporal-based workers, until now we used to use a Temporal activity that did not finish until it was completed by an external event, usually as a consequence of the action performed by a human in the KuFlow GUI. This involved developers setting up two activity facades in workers, one for synchronous KuFlow activities and one for asynchronous ones.
From now on, there will only be a single activity facade for KuFlow, and a single method for creating tasks, whether synchronous or asynchronous. And in case the Workflow developer wants to implement asynchrony after creating the task, all he has to do is to pause his Workflow until he gets a Temporal signal informing that the task has been completed externally.
Example in Typescript
await condition(() => kuFlowCompletedTaskIds.includes(taskId))
Example in Java
Workflow.await(() -> this.kuFlowCompletedTaskIds.contains(task.getId()));
Example in Python
await workflow.wait_condition(lambda: task.id in self._kuflow_completed_task_ids)
As always, you can find examples of how to use this new implementation in the existing tutorials in the KuFlow documentation, in the example repositories on GitHub, and by generating example code or templates from within the KuFlow application.
More information and interesting links:
- Working with Temporal based Workers using KuFLow SDKs: Client integration
- Tutorials: Examples
- GitHub repositories: https://github.com/kuflow