Release 7.2.0
Features
- Instance Variables now have a proper definition in products. Instance templates are now no longer the place to define them, those now only contribute values to instance variables defined in the product. This enables tracking, creation, removal and general updating of existing variables when updating the product.
Note
The old mechanism (defining variables in the instance template) is still in place, but deprecated. Both mechanisms work hand in hand, however the new one should be used going forward, as the old one will be removed in future releases. - A complete rewrite of the instance variables and system variables UI aligns those to how the process parameter UI has been working a long time.
- The client launchers delegation mechanism has been removed. Instead of installing a matching launcher version for each used server, the newest launcher is now responsible always, regardless of server version. This works for all servers all the way back to
2.0.0
.Warning
This finally breaks compatibility of the launcher with 1.x servers. In case 1.x servers are still used, this is not possible when simultaneously using a 7.2+ server on the same launcher installation. - System templates will now search for and import products automatically if not yet present in the instance group. The logic will search all software repositories to find suitable product versions.
- Checking for product updates is now done in a separate call to improve load performance of the instance list.
Note
BDeploy will no longer show a "product update available" icon in the instance list, as this was tied to the information being calculated immediately. However this very much negatively impacted loading performance of large instance lists. The update information is now only available the entering an instance dashboard or configuration page. - Loading performance of the instance group browser and instance browser have been improved.
Improvements
- Add a lot more tests to assert release quality in the future.
- A lot of code cleanup to facilitate maintenance and development.
- Add a cycle detection when resolving variable references to avoid StackOverflowException.
- Improved detection of backend restart even if it is so fast that no requests from the frontend fail.
- Add the functionality to create a stack dump of the BDeploy server from the BDeploy Update UI without the need to restart it.
- Update all third party dependencies.
- Retheme and improve the UI of the client launchers application browser.
- Make sure right clicking a row in the client launcher will select this row before opening the context menu.
- Add a shortcut (F5) to the "Refresh All" action in the client launcher.
- Make sure that updates to the start scripts in the client launcher will not eagerly update information from the server.
- Update the start scripts to avoid unnecessary output when update succeeds.
- Add
-XX:-OmitStackTraceInFastThrow
as default parameter for the server, to avoid stack traces being unavailable for repeated exceptions. - Improved performance of instance group loading by no longer loading all instances. Instead, an alternative ID lookup is used, as this is the only required information to make instance searchable by ID from the instance group list.
- Opening a BDeploy link with
/api
at the end in the browser will now strip the/api
and redirect to the Web UI. - Add a cache that will serve repeated queries for products on the server. The cache is invalidated when products change or after 10 minutes.
- Completely remove locking from instance process controllers. This locking was simply too much (a left-over), as parallel operation is not only possible, but desired. This locking was causing deadlocks in very rare and very specific cases.
- Always prune BHives during master cleanup. This may prolong cleanup runs substantially, but the assumption that we only need to prune when cleanup actually deleted something was wrong; during normal daily operation manifests are created and deleted. Nightly cleanup must prune the objects of those.
- Make sure external links have
noreferrer
set to not give away user information. - When deleting instance versions, make more clear in the message that this is a normally undesired operation, and should only be performed if there is technical need.
- Support different development environments for BDeploy - Eclipse (backend only), VS Code and IntelliJ IDEA.
- Properly implement configuration file validation per node on the backend when editing instances.
- Add managed server named and URIs to the searchable properties of instance groups. Those can now be used to find instance groups on the instance group browser.
- Add copy & paste support for custom process parameters. This further aligns them with the new implementation of instance and system variables.
- Improved (and added where missing) the display of IDs throughout the Web UI. A copy action was added to ease copying of those IDs.
- Improve performance of areas of the Web UI which accesses the clipboard by making sure to process content only when it changes.
- Add restart and shutdown possibility to node maintenance. This allows to restart or shutdown any node, even the master. This can be done through the Web UI or through the
remote-master
CLI command. - Update a few icons in the Web UI and the client launcher to better align them.
- CLI tabular output has been much improved to take the terminal width into account and scale columns accordingly. If terminal width cannot be determined, a minimum width of 80 is assumed.
- Add possibility to manipulate all Web UI session timeout configuration in the
config
CLI command. Also document those timeouts. - Make sure to cleanup any token and ident files already created when
init
fails.
Fixes
- Fixed an issue where the process probes would not be displayed if there was only a liveness probe, but no startup probe.
- Fixed some column names in headers of CLI command output.
- Fixed an issue where updating the name of a client application in the configuration UI would not be properly reflected.
- Fixed an issue where long running BHive fetches could fail if the manifests to fetch were deleted in the meantime. This could happen easily for "quickly rotating" data using the
ManifestDeleteOldByIdOperation
operation to clean up old versions. - Fixed an issue for administrators where action titles would become empty when viewing actions on the server from a global scope, e.g. the Administration UI.
- Fixed a potential NullPointerException in the product update code related to instance variables.
- Fixed an issue where the
remote-central
command would fail if--sortByVersion
was not given. - Fixed an issue where we broke compatibility with tokens issued in 1.x releases of BDeploy. This is an issue when properly upgrading a server since 1.x - the tokens used internally or by central are typically still from that 1.x setup.
- Fixed an issue where the CLI would fail to properly detect parameter changes due to changed parameter conditions.
- Fixed an issue where deleting all files in a folder in data files would break the breadcrumb component.
- Fixed an issue where a recovering liveness probe would trigger a wrong/misleading entry in the instance history.
- Fixed an issue where bulk manipulation of products would use a different logic to calculate whether a product is used than the product details panel.
- Fixed an issue where setting an optional, not-present, global process parameter from the CLI would unintentionally overwrite other parameters.
- Fixed an issue where application uninstallers on linux where not working properly.
- Fixed an issue related to Firefox' clipboard implementation which made it nearly impossible to click or type on certain pages/panels. The "fix" is to disable clipboard access on Firefox for the time being.
- Fixed an issue where the repeatedly scheduled node monitoring on the master would stop for unknown reasons.
- Fixed an issue where having more than one node in an instance would lead to "Synchronization Failed" status on all but one node.
- Fixed an issue where the renaming of
lifenessProbe
tolivenessProbe
would make those probes disappear on older managed servers. - Fixed an issue with the validation of
{{IF:
expressions in the Web UI. - Fixed an issue where slow Windows & Anti-Virus combinations would exceed our retry timeout when renaming folders in certain scenarios - by increasing the timeout.
- Fixed an issue where setting a global parameter through an instance template would not set all instances of that parameter properly - but only when applied using a system template or the CLI.
- Fixed an issue where bulk-deleting a specific amount of instances would lead to a spurious error being displayed.