Skip to content

Releases: bdeployteam/bdeploy

Release 7.2.0

20 Sep 12:23
Compare
Choose a tag to compare

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 to livenessProbe 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.

Release 7.1.7

09 Aug 11:35
Compare
Choose a tag to compare

Fixes

  • Fixes an issue with offline start of client applications.

Release 7.1.6

07 Aug 13:44
Compare
Choose a tag to compare

Improvements

  • Improved error messages when updating the Client Launcher fails due to it being currently running.
  • Improved logging for offline start handling of the Client Launcher.
  • Improved performance of loading of product versions from repositories during instance loading.

Fixes

  • Fixed an issue where the --key argument of the remote-product command was not properly validated (again).
  • Fixed Exception when calculating default user area on Windows.
  • Fixed BDeploy browser not recognizing the BDEPLOY_INTERNAL_HOMEDIR environment variable.
    • This had the effect that launcher/launcher.bat (on Unix/Windows) failed to open the browser if --homeDir was not provided.
  • Fixed versions being displayed multiple times in the dropdown menu of the instance creation panel if a product was uploaded in another browser session while the dialog was open.
  • Fixed offline start behavior for delegate launchers.
  • Corrected minor wrong message when migrating nodes.
  • Fixed usage of system variables as boolean values in conditional parameters.

Release 7.1.5

12 Jul 09:17
Compare
Choose a tag to compare

Fixes

  • Fixed an issue where delegate launching of applications from older BDeploy server versions would fail.
  • Fixed an issue where the Linux (only) scripts would pass parameters in the wrong order and thus make CLI commands fail in certain scenarios.
  • Fixed an issue where the --key argument of the remote-product command was not properly validated.
  • Fixed an issue where wrong tooltips would show in the client application launcher window.

Release 7.1.4

11 Jul 12:38
Compare
Choose a tag to compare

Fixes

  • Fixed an issue which would cause data directory paths on client applications to change in an unwanted way.

Release 7.1.3

11 Jul 08:15
Compare
Choose a tag to compare

Improvements

  • Launcher scripts are now re-created whenever required, which allows them to be updated automatically from older BDeploy versions.
  • Reduced logging of OpenId connect to avoid spamming the logs. Full logs can still be accessed via debug mode.
  • Continued internal code cleanup.

Fixes

  • Fixed the performance of the start scrips by circumventing the BDeploy launcher altogether. This also skips the check for updates of the client application.
  • Fixed offline starting of client applications to properly handle failed host resolution.
  • Fixed incorrect description of a drop target which caused confusion in the linking of central servers.
  • Fixed the .bat file responsible for launching BDeploy to no longer write output in case it updates internal components.

    Warning
    The .bat file is not automatically updated. In case you need this change, you need to manually copy the .bat file from the new release.

Release 7.1.2

04 Jul 15:31
Compare
Choose a tag to compare

Improvements

  • Improved validation of linked expressions in configuration file editor.
  • Added an environment variable BDEPLOY_LAUNCH_MODE which is set to PATH or ASSOCIATION (or not set at all by default) depending on the way the application was launched (e.g. as a script from the PATH, or through file association, e.g. double-click).
  • Added the possibility to specify a target system when creating instances from instance templates via the CLI.
  • Windows applications have been updated from the outdated .NET 4.5.2 to a still supported 4.7.2

    Warning
    On very old Windows versions this may now require .NET 4.7.2 to be installed. Affected Windows versions have been out of support for a long time, so this is not considered a breaking change. 4.7.2 is pre-installed since Windows 10 build 1803 (April 2018).

  • A lot of further code quality improvements internally.

Fixes

  • Fixed an issue where client application uninstallation would not remove association to scripts and file extensions properly.
  • Fixed the situation where client applications launched through a script would not correctly propagate their exit code.
  • Fixed an issue which caused the windows cmd to remove % signs from the passed parameters erronously.
  • Fixed an issue where the Install button of an instance which was never installed before was enabled despite the product being missing (because it was deleted after creating the instance).
  • Fixed an issue where a \ given in the path name of a data file would lead to a file that cannot be deleted anymore.
  • Fixed an issue where the client launcher would try to update itself (and fail) when starting an offlineStartAllowed client application whilst being offline.

Release 7.1.1

20 Jun 15:27
Compare
Choose a tag to compare

Fixes

  • Fixes a major oversight in the 7.1.0 release leading to potential duplicate downloads and installations of client applications when using the startScriptName feature introduced in 7.1.0 as well.

Release 7.1.0

20 Jun 10:58
Compare
Choose a tag to compare

Features

  • Support wait type WAIT_UNTIL_STOPPED for process control groups. Starting a process in such a group will wait for the process to exit again. Can be used (for instance) to run certain preparative tools before launching the actual application, or running certain tools in order which need to run in sequence.
  • It is now possible (and the new default) to expand variables in the command line preview of an application in Configure Parameters.
  • Introduce dedicated log file storage. Use the new --logData argument while init, or using the config command on existing installations to set this up. When not set up explicitly, the log data directory will resolve to the existing {{P:DATA}} for each instance. When set up, {{P:LOG_DATA}} will resolve to an instance specific subdirectory of the configured log data directory.
  • Support the "All Users" automatic user group, which allows configuration of "public" permissions for artifacts in BDeploy.

    Warning
    This change removes the "automatic" public status of Software Repositories. To emulate the previous behaviour, all Software Repositories need to have a READ permission assigned manually for the All Users group.

  • Support installing and activating instance configurations even when certain nodes participating in that configuration are offline. Installation of the missing bits is done when the node comes back online. Accompanying UI changes will hide node contents on the instance dashboard when the node is offline or not yet brought up to the required state (shown as "Synchronizing").
  • Autostart support for CLIENT applications. The BDeploy launcher will now add itself to operating system autostart when running the installer (always). On startup it will check for to-be-started applications and run them just as usual. Applications must specify that they are autostart-capable by setting the supportsAutostart attribute in the processControl section of app-info.yaml; autostart can then still be enabled or disabled in the instance configuration as well as manually by the end-user in the BDeploy launcher.
  • Add support for the startScriptName attribute in the processControl section of app-info.yaml. The given name will be made available in the PATH of the user installing the application. The user can then access the installed application using this name from any terminal.
  • Add support for better content assist and inline as well as overall configuration file validation regarding linked value expressione (e.g {{X:var}}). Unresolvable expressions will be marked as error in the editor, and saving will not be possible in the instance configuration.

    Warning
    This feature only validates when files are changed in the online editor. Also, there are a few things that worked in the past "by accident", for example referencing application parameters from a configuration file. This will no longer pass validation (intentionally). For now, these changes only affect the online editor, not the actual validation on the backend, so saving is possible even with warnings. This will change in a future release.

  • Add support for starting CLIENT applications even when the server is not reachable temporarily. This needs to be allowed using the offlineStartAllowed flag of the processControl section in app-info.yaml. If allowed, failing to contact the server will no longer abort the launch of an already installed application on the client.
  • Add support for file associations to CLIENT applications using the fileAssocExtension attribute of the processControl section in app-info.yaml. Setting this (e.g. to .myext) will associate files with this extension on the client PC with the application.

Improvements

  • Update all third party dependencies, most notably Angular 18.
  • Add support for loginStorage to the gradle plugin.
  • Many, many small improvements to the overall code quality, maintainability and readability.
  • Many, many small improvements to the user documentation (typos, capitalization, phrasing).
  • Many small improvements to user feedback, adding a lot more clarity to many messages and documentation.
  • Allow arithmetic (+ and -) for all linked values. Previously only template variables allowed arithmetic, now (almost) all expansions can use it, e.g. {{X:my-instance-var:+2}}.
  • Improved the hierarchical data files (and log files) browsers to be able to search for filenames in sub-directories. This functionality was lost when switching from a flat list to a hierarchical display.
  • Added support for writing launcher logs on linux as well.
  • Improved meta-data displayed for executables and associated files on Windows.
  • Add and align validators for certain use cases in the frontend, e.g. E-Mail addresses.
  • Removed the option to download a "portable" launcher as ZIP file from the Web UI. Those launcher ZIPs - if actually ever required - can be grabbed from the binary distribution ZIP file instead.
  • Improve disabled button handling in the frontend to explain better why buttons are disabled.
  • Add a --open flag to the remote-instance tool to open the instance dashboard in the browser directly from the CLI.
  • The local login tool (bdeploy login) now no longer listens to the BDEPLOY_REMOTE environment variable to avoid confusion with other commands, as the meaning was slightly different.
  • Add the --status flag to the remote-system tool to grab the overall runtime status report for each instance in a given system.
  • Add the --start, --stop and --restart flags to the remote-system tool, allowing to issue start/stop/restart commands to all instances in a system.
  • Add the possibility for secure password input request on the console of the remote-user tool when no password is given on the CLI.
  • Made the --version argument to the remote-transfer tool optional. Not passing it will transfer the determined latest version of the product.
  • Add the --regex argument to the remote-transfer tool allowing the --version argument to specify a regular expression instead of a full version.
  • Changed the remote-product tool to allow filtering the --list result by product key and version, optionally version being a regular expression.
  • Bulk-deletion of products now uses a single call to the backend to delete all selected products. This has multiple benefits including avoidance of connection overuse and also the ability to skip products which are still in use without aborting the overall process.
  • Added the optional --openUrl argument to the login commands --open argument, allowing to open any arbitrary URL within a given remote BDeploy in the browser.
  • Added the possibility to update bin/bdeploy.bat automatically during update.

    Warning
    This change does not affect existing installations of BDeploy. To be able to benefit from future updates, you need to manually copy bin/bdeploy.bat and bin/_bdeploy.bat from a 7.1+ installation or the 7.1+ distribution ZIP.
    Note
    The update of the bat file happens only when initially starting the bat file (e.g. on server boot). This is due to limitations in bat files in general.

  • Install and activate triggered through a CENTRAL will now properly update the MANAGED servers UI as well.
  • Updated splash art for the BDeploy launcher, as well as adding the SSI Schaefer logo to a few places (login, splash, readme, documentation).
  • Uninstalling an application will now ask for confirmation regardless of how and where it is being uninstalled. Previously only uninstalling from the launcher application would ask for confirmation. Now uninstalling from Add/Remove Software or from the CLI will also prompt for confirmation. If not wanted, this can be disabled using the --yes command line flag.

Fixes

  • Fixed processing order of template variables to be the same as defined in the template, not lexically sorted.
  • Fixed spelling of liveness probes - previously misspelled as lifeness probes.
  • Fixed cleanup logic related to BDeploy launchers to no longer erroneously delete launcher versions even though they are still required.
  • Fixed issues messing up the launcher UI when using dark theme on different operating systems.
  • Fixed discarding of streams (stdout and stderr) when launching applications to no longer block in case the target application writes output.
  • Fixed an issue where the system variables page would be initially empty even though variables existed.
  • Fixed an issue where operating system issues with process cleanup would break the process controller when trying to figure out exit codes of processes.
  • Fixed an issue where the --open flag of the login command would not properly hand over the one-time-password used for automated login to the browser application.
  • Fixed an issue where cookies would not be transferred correctly when proxying requests through BDeploy. This restores limited inline-capability for certain Web UI endpoints.

Release 7.0.0

28 Feb 13:24
Compare
Choose a tag to compare

Features

  • Object pooling was added which allows to configure (per BHive on the server) object pool directories. A pool will be populated with objects which are present multiple times (depending on configuration) in participating BHives by a Pool Re-organization Job. This runs once per day by default. This is opt-in and disabled by default in this release. Please refer to the documentation for details.
  • E-Mail based configuration transfer from MANAGED to CENTRAL server. Allows data exchange in setups where the CENTRAL cannot directly contact the MANAGED server (e.g. behind company firewalls, NAT, etc.).
  • Add possibility to escape link expressions for cetrain target configuration file types. For example use {{XML:X:myvar}} to escape the value of the instance variable myvar for an XML file, escaping any non-XML characters in the value.

    Warning
    Take care when adding this feature to app-info.yaml and other product included files (templates, etc.), since older BDeploy servers will not accept this expression.

Improvements

  • Improve icons in the data files and BHive browsers to be more easily visually distinguishable.
  • Add a job administration page which allows to view and trigger background jobs on the server.
  • Improve the information shown in the data files browser to be more useful.
  • Various improvements and ammendments to the documentation.
  • Remove the Download Content action on products. Instead there is a View Content which will allow online browsing and download of individual files and folders where required.
  • Improve the login CLI tooling.
    • Add a --replace action to force replacing an existing login in case there is one.
    • Add a --check action to verify that a given login is valid and can create a proper connection to the server.
    • Add a --open action to open the given login's Web UI in a browser on the system and log the user in automatically (only works on v7.0.0 and newer servers).
    • Add the possibility to override the location where logins are stored locally. This can be done per command using the new --loginStorage flag, or more globally using that flags environment variable fallback BDEPLOY_LOGIN_STORAGE.
  • Add the possibility to delete product versions from the CLI
  • Improve (or better: add in most places) the visual representation of the current location in the Web UI by adding breadcrumbs to the title of each page.
  • UI Endpoints will now no longer open the inline view panel in case inline viewing is not supported. Instead the UI is opened in a separate tab.
  • No longer auto-start instances regardless of their autostart configuration when the server restarts by itself, e.g. when applying an update or when pressing the Restart Server action in the administration page.
  • When navigating to the Instance Configuration page, immediately open the Instance Settings panel automatically.
  • Add an instance bulk operation to restart processes in addition to just starting and stopping.
  • Improve the expression preview for {{P:}} expressions to include the actual instance ID and omit the instance version (as this might differ from use case to use case).
  • Improve (or better: add) validation of dropped data on all drop targets in the UI. This prevents mistakingly dropping NODE information instead of MANAGED server information when connecting a MANAGED server and vice versa.
  • Add a requirement for an active instance version to be able to use the remote-process tool at all.
  • In case a product is uploaded to the backend while the instance configuration page is open in the UI, properly refresh the product and instance data to reflect this in the UI (using the Product Update Available button).
  • Improve behavior on concurrent BHive manipulations in many situations to avoid spurious and intermittent errors.
  • Add ability to copy and paste instance variables.
  • Properly lock the Install button on the instance dashboard in case another browser tab is doing that already and a push of the product to a MANAGED server is required prior to actually installing.
  • Improve the cleanup of stale transactions ("marker databases") when pruning a BHive. Also add handling for stale transactions from very old servers which did not have a way to detect whether the transaction owner still exists.
  • Add an icon representing the application start type (INSTANCE, MANUAL, MANUAL_CONFIRM) to the Instance Dashboard and Instance Configuration pages.
  • Properly reflect permissions inherited from groups in the user information panel as well as properly show inherited permissions in all the permission related pages.
  • As always, update a ton of third party dependencies.

Fixes

  • Fix a long standing issue with configuration file diff editors to correctly show the arrows in the glyph margin of the editor to allow applying individual diffs.
  • Fix an issue where the browser would slow down over time in the data files browser when using bulk manipulation.
  • Fix an issue where validation would not properly take variable overrides into account in templates.
  • Fix an issue where the TEA IDE integration would wrongfully push to a server even though archiving only was desired.
  • Fix the start script of BDeploy on Windows to handle exit codes properly.
  • Fix the handling of deprecated uid tags in YAML files to continue accepting old formats as input.
  • Fix issues in the administration pages with validation of passwords for external systems.
  • Fix issues with multi-selection of data instance configuration files in case files should be deleted.
  • Fix an issue with applying system templates which do not have any systemVariables.
  • Fix an issue where manually attaching an unreachable MANAGED server to the CENTRAL server would fail due to erronous duplicate requests.
  • Fix an issue where the Next button on system templates would not enable correctly if all variables are prefilled correctly from the start.
  • Fix an issue where pressing ENTER on the keyboard when a dialog with a default action was visible would additionally also trigger a focused button behind said dialog.
  • Fix an issue where navigating would properly collapse the menu if it was expanded but fail to properly update the content of the menu making it overflow and be cut off.
  • Fix an issue where an actually not required non-concurrent list would fail to update concurrently by removing it alltogether.
  • Fix an issue where replacing a node would not properly disable input fields in the panel leading to confusion.