21st February 2019
More efficient Process instance step logs
The log processing pipeline has been rearchitected in FRENDS 5.2 to improve performance especially in installations with hundreds of Process instances running per minute.
Previously, if there were hundreds of Processes running that had logging on, the log processing pipeline could get bogged down. This caused the log messages to get queued up, and the UI would show delayed information, e.g. only showing an instance execution 10 minutes after it had actually run. The log database could also easily grow large, slowing down queries for showing Process instance details in the UI.
In FRENDS 5.2, the Agents can now be configured to log all details of instance step executions directly to blobs, stored securely in Azure blob storage (or the file system for on-premise installations). This greatly reduces the log processing pipeline traffic, so Process instance logs will not get queued up. This also allows the execution details to always be shown quickly, no matter how many step a Process has executed.
Authentication for viewing API specifications
Sometimes you want to publish an API specification e.g. in your API gateway, but want to keep it protected, so only authenticated users can see the specification.
In FRENDS 5.2, you can now set the API specification to require an API key when viewing in the Swagger UI or downloading the JSON file. For more details, please see the article.
Other changes
New statement code shape allows you to write more complex C# code statements, e.g. when you want to use conditionals like if-else when building messages. Previously, this would have required separating the condition out from the code to multiple steps, or creating a custom task. Now you can write short code statements that can e.g. assign variables or create complex objext
The Process details view has been updated to show more details of the Process instance itself, as well as executed task details.
5.2.1
6th March 2019
The first 5.2 service release fixes problems with the new step logging, mainly:
The maintenance jobs could delete step data for instances not yet marked for deletion when using Azure blob store
Sometimes the log data for a step inside an inner loop might not be shown in the UI, due to wrong index in the blob name.
The UI now also allows you to edit the OAuth sign-in settings, under "User management". This means an administrator can easily change the UI to use customers' own Azure AD / Office 365 for signing in.
In addition, there are some UI fixes, like
Results from steps logged as blobs can be copied to clipboard. You can now also view the raw JSON directly in the UI.
Test process execution results can be viewed, an error is no longer thrown.
5.2.2
14th March 2019
This release improves step logging performance. It also fixes an issue with logging memory usage for long-running Processes.
There are also a number of fixes in the UI:
Schedule trigger data format changed slightly in 5.2, and the automatic migration set the repeat delays wrong if the delay type was minutes or hours. Now the migration has been fixed, but unfortunately the delay setting for any Processes that have been migrated and saved, need to be manually fixed.
Importing tasks now correctly resolves package references from the configured external NuGet repositories, so e.g. FRENDS Cobalt tasks can again be imported.
5.2.3
21st March 2019
This release fixes more UI issues:
There was another problem with the schedule trigger data migration, this time with copied or rebuilt Processes. The data was not migrated correctly, potentially causing the copied or rebuilt Processes to use wrong repeat delays.
Please note that the wrongly migrated schedules will need to be corrected manually here as well.Parameters for failed Tasks were not logged by default when using the new step logging
Processes were incorrectly marked as TerminatedByUser when a Task threw an OperationCanceledException. This could happen e.g. with the Frends.Web.HttpRequest Task request timing out.
Please note that in order to take the logging fixes into use, you will will need to rebuild the Processes.
5.2.4
17th April 2019
This release improves step logging performance further and fixes a couple of issues:
Queue trigger could not connect to durable RabbitMQ queues. Now there is a "Queue is durable" parameter that can be set, so the AMQP listener can connect. Also the connections are now released correctly in case of these errors.
Please note that in order for the new setting to work, the FRENDS Agent will also need to be updated.Opening the API deployment dialog failed if the API had tens of Processes and hundreds of versions. The faulty SQL query has now been fixed.
5.2.5
6th May 2019
This release again improves step log processing performance and fixes a couple of issues:
Default timezone was not being initialized correctly to new schedule triggers. The view showed the client local value, e.g. "(UTC+2) Helsinki" by default, but that value was not saved. This meant the Agent actually defaulted to the local time zone on the host, which e.g. for the cloud Agents meant UTC time.
Now the time zone is initialized correctly. Any existing triggers that did not have the value initialized should now show a descriptive message that the Agent local time zone is being used.The UI could not fetch the log data for Processes built with 5.2.0 and 5.2.1 while they were still executing.
5.2.6
17th June 2019
This release fixes a problem with the step logging when trying to log Newtonsoft.Json.Linq.JProperty instances, e.g. when enumerating a JObject instance. There are also some additional performance tweaks to the step logging, and some minor UI fixes.
5.2.7
16th August 2019
This release fixes the following issues:
Agent may crash when using a Queue Trigger
Cannot call a Subprocess from inside of a Conditional Trigger
Process execution viewing efficiency problems
Cannot use characters '$', '_' or '.' with Agent usernames
Error handler not shown correctly for Process when using blob logging
5.2.8
29th October 2019
This release fixes the following issues:
Security improvements
Null coalescing operator (e.g. #var.thisMightBeNull ?? "empty") not working correctly in text expressions