More From Camunda BPM: NodeJS External Task Client, Spring Boot Starter & Assert

Alongside our Camunda BPM 7.13.0 release, we’re excited to announce the following releases:

You can read all about the Camunda BPM 7.13.0 release in the dedicated blog post.


NodeJS External Task Client 2.0.0

The External Task Clients help you to decouple your services from the Workflow Engine – a common use case, for example, in microservices architectures. We’ve released version 2.0.0 of our NodeJS client.

Node 8 support is deprecated with versions >2.0.0.

Logging Levels in NodeJS Client

In production, you usually don’t care about every time the client queries for new jobs. These log entries make debugging harder because errors get buried. But during development, it is important to check if jobs are acquired and fetching works as expected.

To accommodate both use cases, the default logger now supports log levels. The default level is info. You can change the logging level like this:

const { Client, logger } = require("camunda-external-task-client-js");

const client = new Client({
  use: logger.level('error'),
  baseUrl: "https://localhost:8080/engine-rest"
});

To emulate the previous logging behavior, you can use the debug logging level. You can learn more about the logger in the docs.

Keycloak Auth Interceptor for NodeJS Client

Keycloak provides a single sign-on solution and allows centralized user management for all your applications. If you secure the Camunda REST-API this way, it can become difficult to access it from an external service.

The Keycloak Auth Interceptor modifies the request headers of the requests to work with your Keycloak-secured REST-API. To instantiate a client with the Keycloak Interceptor, you will have to configure your Authentication first:

const {
  Client,
  KeycloakAuthInterceptor
} = require("camunda-external-task-client-js");

const keycloakAuthentication = new KeycloakAuthInterceptor({
  tokenEndpoint: "https://your.keyclock.domain/realms/your-realm/protocol/openid-connect/token",
  clientId: "your-client-id",
  clientSecret: "your-client-secret"
});

const client = new Client({
  baseUrl: "https://localhost:8080/engine-rest",
  interceptors: keycloakAuthentication
});

Read more about the details here.

Assert 6.0.0

Assert helps you test your processes conveniently in Java. The latest release adds more testing and convenience features to make checking your processes quick and thorough.

Check out Assert on Github.

Find Elements by Name

Tests should be expressive. To aid in this, Assert now has the convenience function findId(), which will search for the ID of an element with a particular name.

Tests that would typically contain a nondescriptive ID like

assertThat(processInstance).isWaitingAt("Task_0834dhg");

can now be written using the Task name

assertThat(processInstance).isWaitingAt(findId("Process Invoice"));

Read more about it in our user guide.

Assertions for Joining Gateways

With Assert 6.0.0 it is now possible to run assertions on joining gateways, even though they are no active tasks.
The assertions can be used like any other Element:

assertThat(processInstance).isWaitingAt("JoiningGateway");

Spring Boot Starter 7.13.0

The Camunda Engine can be embedded into your Spring Boot project using the Spring Boot starter.

Starting with the release Camunda BPM 7.13.0, Spring Boot starter is now part of the core platform. Therefore, it will also follow the 7.x release cycle of the core platform in the future.

You can read the details in the Camunda BPM Run release post.

Register for the Webinar

If you’re not already registered, be sure to secure a spot at the release webinar. You can register for free here.

Your Feedback Matters!

With every release, we strive to improve Camunda BPM, and we rely on your feedback! Feel free to share your ideas and suggestions with us.

You can contact us via the Camunda user forum.

< Back
  • Spring Boot Starter for the External Task...

    We are happy to announce that Camunda Platform Runtime 7.15 will provide a Spring Boot Starter for the External Task Client. It allows you to implement Service Tasks decoupled from the Process Engine using Spring Boot. In seconds, you can build an executable JAR that can run almost anywhere. In 2018, Camunda released the first version of the External Task Client. Since then, our community member Oliver Steinhauer developed a Starter that combines the External Task Client with Spring Boot. With the 7.15 release, we will add the former Community Extension to the official Camunda Stack and will maintain it as part of future product releases. Let’s look at the following example to get a better understanding of the Spring...

    Read more
  • The Zeebe Community Welcomes Camunda Cloud

    The Zeebe Community Welcomes Camunda Cloud!

    The Rise of Camunda Cloud Whether you’re a current Camunda Platform user, interested in our open source software, or simply poking around our blog as a result of a tweet you saw from someone in our community, you may have noticed an increase in the number of times you’re seeing words like Camunda Cloud, SaaS, or Zeebe pop up over the past few months. As you may know, we first released Zeebe, the source-available, community-supported workflow engine, in 2017 (read the history of Zeebe in our CEO’s words). Since then, in addition to creating an amazing enterprise product with Camunda Platform, we’ve been listening to your feedback on Zeebe as well as Camunda Cloud, working hard to build a SaaS...

    Read more
  • Camunda Cloud 1.0.0-alpha2 Released

    We’re excited to announce the release of Camunda Cloud 1.0.0-alpha2, which includes Zeebe 1.0.0-alpha2 Operate 1.0.0-alpha2 Tasklist 1.0.0-alpha2 Updates in Cloud Console How to get it In this post, we’ll highlight some of the new capabilities introduced in these alpha releases. Zeebe 1.0.0-alpha2 The Zeebe team continued its work on getting ready for the 1.0 release and improving many internal components of the workflow engine and its underlying infrastructure. Nevertheless, the alpha2 release already provides an improvement for users of the Java client. The Java job worker implementation now offers a back-off mechanism if the Zeebe service is not available. Before the job worker continues to poll the unavailable service continuously, the job worker will apply an exponential back-off strategy...

    Read more