Breaking changes in 5.7 release
Frends API changes (for pre 5.7 installations)
The Frends API has been now released and the old v0.9 path has been retired, so you will need to update any calls to the API to target the new v1 path. Also the error result for the API calls has been changed, otherwise the APIs will work the same way as before. Also there are changes to the internal API which is not fully supported for outside use, so if you have used that, you will need to verify everything works separately.
More info here
Frends Agent container image path changed
The path for the assemblies inside of the container image is now /app. If there are modifications to the official container image, the new path should be taken into account.
Agents required to have access to the UI
The Agents now fetch their Process and Task packages through the UI, so firewalls on the Agents need to allow outbound access to the Frends UI: <tenant>.frendsapp.com on port 443.
Agent bundled installation LocalDB requires Visual C++ Redistributable (Frends 5.7.3+)
Because the bundled LocalDb for the Legacy Agent was updated, you will need to install Visual C++ 2019 redistributable before installing the bundle. The installer available from here: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
OpenId Connect (SSO)
Customers who use their own O365 or Azure AD (Entra) for Frends Authentication will need to modify the App Registration they created as of Frends version 5.7, The Redirect URI needs to include the Application (client) ID:
Previously if the Redirect URI was https://myfrendstenant.frendsapp.com and the Application (client) ID was 3e89b538-f75c-42b5-96f1-402f1ac0a549
The new Redirect URI would be https://myfrendstenant.frendsapp.com/signin-oidc-3e89b538-f75c-42b5-96f1-402f1ac0a549
Note: These following changes were already present in 5.5 and are listed here for visibility
Service Bus for Windows (for pre 5.5 installations)
Support for Service Bus for Windows Server is removed, when updating to 5.5+ switching to RabbitMQ for full on-premise deployments is mandatory. This also means that using the Service Bus Trigger no longer works with Service Bus for Windows Server.
Remote Subprocesses (for pre 5.5 installations)
Because of changes to the message busses used by Frends, Agent groups within an Environment should be reinstalled at the same time. This is required when Remote Subprocesses are being used.
Frends.Tasks.Attributes support to be removed
Frends Tasks Attributes was a way of modifying the Parameter editor for Tasks before Frends 4.5.6, when it was deprecated and support for it was removed in 5.5.3. Previously imported Tasks will continue to work normally, but new Task imports will require migration to System.ComponentModel.Annotation to support conditional parameter displays etc.
SQL Server requirements
The minimum supported version of SQL Server is now MS SQL Server 2017 for on-premise deployments.
What has changed
5.7.4
6th of September 2024 (hotfixed 2nd of October)
UI
Improvements
The Process editor now warns the user about incompatible NuGet dependencies which may cause runtime errors. Before 5.7 these were left ignored, but now they are notified about and the user has to either acknowledge the warning and continue with the build, or get updated versions of Tasks that have compatible dependencies
Agent
Bug fixes
The Agent now works the same way as previously to try to support the use of incompatible package versions. This is to ensure backwards compatibility for Process versions and for cases where the developer knows and has tested that the dependency version conflicts do not cause any issues
(hotfix) Fixed issue with resolving some System package dependency versions, e.g. System.Text.Json
5.7.3
19th of June 2024 (hotfixed 13th of August 2024)
Note:
Because the bundled LocalDb for the Legacy Agent was updated, you will need to install Visual C++ 2019 redistributable before installing the bundle. The installer available from here: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
UI
Bug fixes
Duplicate Process version rows caused by concurrent builds of the same Process are now fixed during update to 5.7.3
Fixed issue with API deployments sometimes failing due to SQL failure
Fixed issue with API key protected SwaggerUI not prompting for API key
Log service
Bug fixes
Fixed issue with logging Processes with long Trigger names
Agent
Improvements
LocalDB in the bundled installer is now updated to version 2022
Bug fixes
Fixed issue with API Passthrough matching when the path contains a datetime string
Fixed issue with installing Process with Tasks that have conflicting indirect dependency versions
(Hotfix) Fixed issue with Legacy Agent not being able to deploy Processes with Tasks that have system dependencies
5.7.2
30th of April 2024
UI
Improvements
Process Template list now remembers the users choice of how many items to show
Process Template list can now be sorted according to Tags and Template used in
Process Template list can be linked to filtered by a Tag
Added Frends API endpoints for managing API Passthroughs
Process Template list is now paginated and filtered on the backend
Made the cookie acceptance dialog more clear with a description of what the cookies are used for. Also it is mandatory to make the cookie choice before doing anything else on the UI
Processes can now be linked to a Process Template that is created from them
It is now possible to unlink a Process from a Process Template
Bug fixes
Improved Process Instance array result viewing to be more clear between elements
Fixed Process editor view issue with screen going blank after removing an unhandled error handler
Fixed issue with Process version diff view not highlighting all changes when a Task test execution was associated with a Process
Fixed issue with the Process editor view not being able to search for Tasks with a space, e.g. HttpRequest worked, but Web HttpRequest did not
Fixed issue when importing API Processes not being linked automatically to the correct API specification when there are API specifications with identical paths
Agent Triggers view no longer show Passthroughs that had failed to initialize
Fixed issue with Process Instance view showing the first loop iteration as 0 instead of 1
Fixed issue with configuring API Passthrough header modifications action type being applied to multiple modifications
Fixed issue with importing multiple Processes at the same time
Fixed issue with Process having two "active" version in the database which would block deploying the Process
Process Variables are correctly retained after when updating Processes from a Process Template
Fixed issue with Process instance duration being shown with the wrong duration when auto-refresh is enabled due to timezone conversion
Fixed issue with Frends API not generating ProblemDetails correctly
Fixed issue with the Error message toast not showing the error message in all cases
Fixed issue with Process editor showing multiple warning icons being shown for a Subprocess when there is an obsolete parameter is being used
Fixed issue with Process cleanup being too eager when multiple Processes are being cleaned up simultaneously
Fixed issue with switching Process version when the old version is not supported by the Development Agent group, example:
Version 1.0.0 (Target framework: .NET Framework 4.7.1)
Version 2.0.0 (Target framework: .NET 8)
Cross-platform Development Agent Group
Previously switching back to version 2.0.0 was blocked, but now it is allowed even though it will not be possible to execute on the Development Agent Group
Log service
Fixed issue with Log service not being able to clean up dead lettered Service Bus messages
Process that are marked as Zombies are now updated with the correct end state and error if the actual Process end message is received
Agent
Bug fixes
Remote Subprocess execution messages are now immediately consumed to prevent a Remote Subprocess from being executed multiple times
Fixed issue with Agent running out of memory when doing large Process updates due to excessive loading of data from the database
Fixed issue with Agent not being able to load Passthrough when the API specification's server is in invalid format
Fixed issue with API Passthrough not working when the specification has endpoints with differing method configurations
Fixed issue with a Task dependency NuGet that contains a deps.json file blocking the deployment of a Process
5.7.1
2nd of April 2024
UI
Improvements
Template list can be downloaded as a CSV-file
Templates can be pinned in the Process Templates list
Improved API Monitoring filters to only show the most relevant filters initially
Bug fixes
Fixed UI trying to show a Passthrough after it was deleted from the UI
Fixed Process Instance count graph using UTC time instead of local time
Fixed not being able to set an Environment variable value through the Frends API when the value did not previously exist
Fixed API Monitoring not always being able to load new rows when scrolled fast
API Passthrough active state is now based on if the status of the Agent instead of the configuration on the UI
Fixed issue with not being able to view the API Management page without Edit rights
Fixed issue with not being able to cleanup old Process versions when the Process has been renamed at some point
Fixed issue with Process Instance list not showing milliseconds correctly on hover over the Duration of the Instance
Fixed issue with not being able to build a Process that is creating JTokens in Code shapes
Fixed issue with unlinked(orphaned) API Processes not being shown in the API Management view
Agent
Bug fixes
API Spec is now correctly removed from the Agent Swagger UI when Passthroughs are deleted
Fixed issue with API Passthroughs causing errors when the Passthrough wasn't deleted correctly from the Agent
Fixed issue with Agent Heartbeat sending failure causing the Agent to crash
5.7.0
29th of February 2024
UI
The UI has been migrated from .NET Framework 4.7.1 to .NET8. This will allow us to keep up to date with the latest changes and improvements in the .NET ecosystem.
Notable changes, improvements and features:
Cross-platform Process compilation speed increased dramatically
.NET and Standard Process compilation was rebuilt to match and outperform the Framework Process compilation speeds of previous versions
.NET Processes now target .NET8
NuGet libraries update
Instead of using Blob containers or the filesystem for hosting the internal NuGet feed, the Frends UI hosts a NuGet v3 compliant feed
The NuGet client libraries on both the Cross-platform and Legacy Agent have been updated to 6.8.0, which provides support for the packages that require it
This also means that Cross-platform Agents now use the Process NuGets instead of having prebuilt and packaged Process Host Packages with all the dependencies built-in. This means that the dependencies will be cached on the Agent and when a Process is updated, it will only have to fetch the new version of only the Process NuGet and not the dependencies
Note: Existing NuGets will be migrated from the old NuGet repository to the new one and the old one will continue to serve Agents that are on a previous version. The migration can take some time depending on the amount of Processes and Process versions, this will require a development freeze on during the update.
If you have a lot of Processes (>500) and are unsure of the effect the update will have, please don't hesitate to contact us
Library updates
The transition from .NET Framework to .NET8 necessitated a lot of different library updates for the UI
A multitude of minor improvements and fixes
New feature - Process Templates
Process Templates offer a way of creating reusable templates for Processes with specific Process Variable parameters. Processes that are based on these Templates can be easily updated when the Template is changed to provide a way of managing and updating large amounts of Processes that have the same structure but differ on a parameter level.
Process Templates can either be created from an existing Process or they can be imported from a Template's export file. When the Template needs to be updated, a new version can be created by modifying a Process and then creating a new version of an existing template from it. When a new version of a Template is created, the Processes that are based on it can be updated.
Templates will be an integral part of the future Business Integration Portal and will allow easy provisioning of Processes there. Also in the future there will be a Template feed which will provide ready to use Templates.
New feature - API Passthroughs
Previously creating passthrough APIs always required a Process even if the request was not modified in any way. API Passthroughs provide a way of exposing API endpoints without the need for a Process, the API Passthroughs work like a proxy for API endpoints in Frends. The target URL and headers for the call can be modified when the API is called and it passes the request to the target URL.
Note: Passthroughs are only available on Cross-Platform Agents and due to the passthrough nature, they will not handle any sort of authentication themselves, it will need to be handled by the target backend server.
However, the upcoming API Policy feature will provide a way of enabling authentication for any endpoint exposed by a Frends Agent, including passthrough APIs.
New feature - API Monitoring
Because the API Passthroughs don't have actual Processes behind them, they won't be logged as Process executions and viewable in the Process Instance lists. Instead we are introducing the API Monitoring feature, which allows to see all HTTP requests coming into Frends. This is integrated into the API view, and you can easily see calls related to a specific API or API endpoint there.
Note: This will also mean that you can also see requests that aren't targeting any exposed endpoints (API passthroughs, API or HTTP Triggers), so you will also see requests that are caused by web crawlers, etc. This is normal for any publicly exposed HTTP endpoints and this does not mean that the Agent has been compromised. As well as Passthroughs, API Monitoring is only available on Cross-Platform Agents.