Releases: bdeployteam/bdeploy
Release 7.1.5
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 theremote-product
command was not properly validated. - Fixed an issue where wrong tooltips would show in the client application launcher window.
Release 7.1.4
Fixes
- Fixed an issue which would cause data directory paths on client applications to change in an unwanted way.
Release 7.1.3
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
Improvements
- Improved validation of linked expressions in configuration file editor.
- Added an environment variable
BDEPLOY_LAUNCH_MODE
which is set toPATH
orASSOCIATION
(or not set at all by default) depending on the way the application was launched (e.g. as a script from thePATH
, 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
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
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 whileinit
, or using theconfig
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 aREAD
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 thesupportsAutostart
attribute in theprocessControl
section ofapp-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 theprocessControl
section ofapp-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 theofflineStartAllowed
flag of theprocessControl
section inapp-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 thefileAssocExtension
attribute of theprocessControl
section inapp-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 theremote-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 theBDEPLOY_REMOTE
environment variable to avoid confusion with other commands, as the meaning was slightly different. - Add the
--status
flag to theremote-system
tool to grab the overall runtime status report for each instance in a given system. - Add the
--start
,--stop
and--restart
flags to theremote-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 theremote-transfer
tool optional. Not passing it will transfer the determined latest version of the product. - Add the
--regex
argument to theremote-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 thelogin
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 copybin/bdeploy.bat
andbin/_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 theMANAGED
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 thelogin
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
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
toCENTRAL
server. Allows data exchange in setups where theCENTRAL
cannot directly contact theMANAGED
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 variablemyvar
for an XML file, escaping any non-XML characters in the value.Warning
Take care when adding this feature toapp-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 fallbackBDEPLOY_LOGIN_STORAGE
.
- Add a
- 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 ofMANAGED
server information when connecting aMANAGED
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 theCENTRAL
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.
Release 6.2.2
Note
Issues with the updated manifest list cache in 6.2.0 are causing troubles with servers during nightly cleanup. Please make sure to update any 6.2.0 and 6.2.1 servers ASAP to 6.2.2 to avoid any problems.
Fixes
- Properly update internal manifest list cache to maintain integrity upon updates during a 10 minute timespan.
- Clear the manifest list cache before pruning (the only "destructive" action in a BHive) to avoid any problems in case of cache problems in the future.
- Properly reschedule the LDAP sync job after execution only in case the schedule changed.
Release 6.2.1
Fixes
- Fix a regression which resulted in too strict BHive validation, preventing pushes to ZIP archives - this almost exclusively affected build tools like the Gradle and TEA integrations and the CLI in corner cases.
Release 6.2.0
Improvements
- Updates to Java 21, Angular 17, NodeJS 20 and many, many more smaller updates.
- Add bulk operations for users and groups, e.g. assigning permission to multiple users, assigning multiple users to a group, etc.
- Add a shortcut to the product used in a certain instance version from the instance history page, to facilitate quick finding and downloading of the related product.
- Linux client launcher installer: There is better hinting in case ImageMagick is missing, and a
SKIP_ICON
environment switch which will skip icons alltogether in case installing ImageMagick is not an option. - Multiple synchronize calls (e.g. from the command line, not possible through the Web UI) will be accepted and wait for the result of the first one to ease writing scripts that might interfere with each other.
- Improve the UI of the token generation for users, default to generating CLI suitable full authentication packs.
- The Data Files browser now works hierarchical, similar to the BHive browser. A new "breadcrumb" component eases navigation through complex path hierarchies.
- The BHive browser also received the new "breadcrumb" to work and feel similar to the Data Files browser.
- Add an option to specify the applicable OS(s) per application in instance templates using
applyTo
. This way it is easy to create templates which provide a different set of applications depending on the platform the template is applied to. - Split the header and graph components in server nodes on the instance dashboard. This removes the visual misalignment of elements, as they are separated above each other now.
- Client applications will now also provide the 'Jump to Configuration' action on the application details panel in the instance dashboard.
- Improve internal
Manifest
caches to no longer invalidate on pretty much any modification. This should give much improved performance in repeated operations during a set timeframe. The caches lifetime is still limited to 10 minutes at the moment. - Add a selectable tooltip to expression editor previews so cut-off values can be read and interacted with (i.e. select and copy them).
- Improve gradle plugins log output a lot (thanks to lrep, PR #6).
- Improve the bulk 'Set Product Version' action on the instance browser to show a hint if any of the selected instances has active version restrictions (regular expression). Also fail per instance in case the restriction is not met.
- When the server is restarted either due to update or by pressing the restart button in the Administration area, the server will create a stack-dump prior to doing so, in case further analysis is required. A maximum of four rolling stack dumps will be kept around in the log area.
Fixes
- Fix (more) issues where missing path normalization could lead to erronously denied requests.
- Fix an issue where the Okta authentication button on the login page would show even if Okta authentication was not configured.
- Fix angular material theming integration to be up to date, get rid of legacy themes and streamline styles.
- Fix a regression where stopping a process was not possible unless it was considered fully started - in case of issues during start there was no possibility to interrupt the start process anymore. This is now possible again using the stop button.
- Fix an issue where specifying a local directory as
--remote
target for certain commands would not verify that this directory is a valid target. - Fix an issue where the tooltip on the grouping panel button would be cut off exactly the same way as the button's label itself.
- Fix an issue where browser autofill on the login page would leave the 'Login' button disabled until fields were visited.
- Fix an issue where the
remote-product
command was unable to list products in software repositories if the user had no global permissions. - Fix an issue where the 'Application Type' column on the instance dashboard was calculated wrong for many applications (and stayed empty).
- Fix an issue where specifying a non-existant managed server to transfer products to would result in success instead of failing.
- Fix an issue where 'Enter' and 'Escape' keys were not properly handled in custom editor popups in case the popup was opened within a popup dialog itself.