Integration Made Easy

What’s new in 4.16

Raymond Meester
4 min readAug 13, 2024

In this blog we look at some of the highlights of our summer release, Dovetail 4.16.

Tests, tests, tests

In 4.14 we completely renewed our frontend. In 4.15 we continued to refine it, but we ran into some regressions. Things that worked in 4.14 didn’t work anymore in 4.15. The main reason is that we didn’t have enough automatic unit tests yet.

Dovetail always had a lot of unit and integration tests, but they were written specifically for the old Backbone.js framework. When we migrated to the React framework and made the frontend more dynamic, these tests were useless. So we removed them and tested the changes manually for the time being.

For some basic tests, we had already created new unit tests, but we found that this was far from enough. This summer, we took the time to write a lot of new tests to get more code coverage. We believe this will improve the quality of the platform and avoid regressions in the future. One result is that the testing resulted in 24 code cleanups and improvements. None of which you will notice immediately, but important to share.

Note that these unit tests are in addition to the more than 1000 integration tests we created to test components. As you may already read in a blog by Norman Hooghof:

Transactions

When testing a flow, you often want to see the data that goes through a flow step by step. There you can see the message body and the message headers.

Transactions in 4.14.9

In 4.16, there are some improvements in the display of the data. If the body or headers were very large, it took a lot of scrolling. Every time you changed the step in the flow, you had to do it again. In the new version, you can collapse the body or headers and then move from one step to another.

Transactions with the body collapsed

Besides data, developers are also interested in metadata. This data is not the content itself, but information about the data. It’s data about data.
Why is metadata needed in Dovetail? For example, when you have the following questions:

1. What time was the message processed?

2. How long did it take to process?

3. How large is the message (body and headers)?

In the old platform, these questions couldn’t always be answered completely. To answer the first question, you could check the timestamp on the flow step, but it didn’t include milliseconds. The second could be answered by looking at the componentresponsetime, but this header was a bit of an exception. Usually headers are set by the component or the user. In this case, it was set by the platform. The last question couldn’t be answered at all because it wasn’t available.

In 4.16, metadata is placed in a new separate section called “properties”. There you can see all metadata at a glance:

URLs

URLs are easy to create shortcuts in the browser. In older versions, it wasn’t possible to directly link to a specific version or tab. Since 4.16 this is now possible. Here are some examples:

The flow manager main page changed from:

https://my.dovetail.world/flowmanager/environment/test/flows

to this

https://my.dovetail.world/flowmanager/test

The flow manager details page changed from:

https://my.dovetail.world/flowmanager/environment/test/flowinfo/667282b5a2f8f60014000009/details

to this

https://my.dovetail.world/flowmanager/test/650c326948579300100000d0/6/general

The flow designer changed from this

https://my.dovetail.world/flowdesign/5ccad385e35c7c000f000204

to this

https://my.dovetail.world/flowdesigner/650c326948579300100000d0/0/route

To summarize the new structure:

  1. Flow manager

https://{instance}.dovetail.world/flowmanager/{environment}

2. Flow manager details

https://{instance}.dovetail.world/flowmanager/{environment}/{flowid}/{version}/{tabname}

3. Flow designer

https://{instance}.dovetail.world/flowdesigner/{flowid}/{version}/{tabname}

There are many more changes like better defaults and bug fixes for components. Check the release notes for more details:

--

--