Skip to content

Bizzkit 21.51.0

Version 21.51.0
Release Date 14 Feb 2023
Download Bizzkit universal feed
SDKs Bizzkit nuget feed

Requirements

Requirement Minimum supported version Tested version(s) Requirement of
SQL Server SQL Server 2016 SQL Server 2017 All
Elastic 7.17.8 7.17.8, 7.17.9 DAM, Ecommerce Search, PIM
Redis 6 6 Ecommerce Search
Click for explanation...

SQL Server 2017 is the earliest version that is available as a docker image and so even though Bizzkit officially supports 2016, testing is done on 2017.

Elasticsearch is known to introduce breaking changes in minor releases and we therefore explicitly test the Bizzkit products with the two most recent releases. Other 7.17.x versions may work but are not tested explicitly.

Cloud highlights

  • Bizzkit Commerce Cloud private preview for Blueprint.

Changes

AUTH/IAM

Bug fixes

BIMV2-634 Password requirements for local login is different in AUTH/IAM and the installer command 'seedadmin'

BIMV2-736 Auth must create OpenId scopes during initial installation

BIMV2-738 ScheduleTokenRenewalAsync Is creating race condition

After this change issues MAY occur if an Auth instance < 21.8 (released on Sep 06, 2021) is updated directly to this version. If an older version < 21.8 is updated to this version, the authentication tokens may become invalidated (fixed by re-authenticating) . This can be remedied by updating to an intermediate version before updating to this.

Enhancements

BIMV2-671 Add error message when REST API tries to create a Bizzkit app.

BIMV2-672 The create downstream client rest API must reflect underlying database restrictions on the string length

BIMV2-723 Sprint 62: Security update backend

DAM

New features

BDAM-943 As operations, I need a command in DAM installer for migrating the Hangfire database, to support database migrations in the cloud environment and on-prem

  • Added command 'migrate-hangfire-db' to create the Hangfire database tables

BDAM-944 As a product owner I want DAM to switch to Hangfire, to ensure better performance and scalability

  • Use Hangfire for background jobs
  • Introduce new Job runner for hosting Hangfire (which may run as a windows service)
  • The API no longer handles background jobs

BDAM-947 As a customer team I want to be able to deploy Bizzkit.Dam.JobRunner, to be able to process background jobs using Hangfire

  • Add support for installing the new Hangfire Job Runner as either a Windows service

Deprecated

Api endpoints that are obsolete with the introduction of Hangfire:

  • /_/task-runner/periodic-tasks-enabled

Currently it returns false and will be removed in the future.

Bug fixes

BECS-663 Remove request localization on the search Host

BECS-747 ISearchClientFactory.CreateUnauthenticatedClientAsync() requires a HttpClient as argument

BECS-926 Dashboard sorting should be descending by default

BECS-955 Product sorting order is random for equal sorting score in 8.0.4

BECS-957 Stock isn't returned when set in the scope

BECS-970 Courier Affinities jobs not working

BECS-998 As a frontend developer, I need to show an error message if a Bad Request 400 returns as a response when editing scope

BECS-1000 Hangfire enqueues recuring job multiple times

BECS-1012 Compare view scoring does not work

BECS-1041 userAffinityId should just be userId

BECS-1056 Sku and product Ingestion endpoints need to be updated

BECS-1063 When creating a segment with same segmentId but Camelcase, I get an http 500 error

BECS-1066 SDK Options for ECS Admin API has incorrect naming

New features

BECS-295 As a user of the context facets i want to be able to specify how facets should match

BECS-874 As an integrator, I want automatic suggestion generation, so I'm spared from implementing my own solution.

PIM

Bug fixes

BPIM-2854 As a PIM user using the dashboard details page, I do not want to see add widget button on the dashboard that I cannot edit to avoid confusion

BPIM-3074 As a PIM user, I want to close DateTimePicker popup by pressing Enter or ESC inside mass edit.

BPIM-2448 As a PIM user, when performing an operation, I want the disabled "next" button not to perform an action when click on, so I do not navigate without valid data

BPIM-2662 Product export size does not match filter result set size

New features

BPIM-2495 As a PIM user, I want to be able to work with multi valued global lists in mass edit, so I can easily set a value for attributes that use this on multiple products

Other

BPIM-2962 View all dashboards in dashboard overview and change card design

INSTALLER

New features

BINSTAL-363 As an admin, I want support for DAM Job runner in order to be able to install the entire Bizzkit suite

BINSTAL-365 As a user, I would like to be able to control the Database Encrypt flag for the Bizzkit products (PIM, CMS, DAM, Mail)

Upgrade instructions

Note

In upgrade instructions, it is assumed that onprem installations use configuration files supplied by Bizzkit as is. If not, then placeholder changes must be merged manually.

Please refer to the CMS and DAM configuration files for reference.

AUTH/IAM

If you wish to customize password requirements for local login, add MinimumPasswordLength property to LocalLogin in installationOptions.json (if using the consolidate pattern) or appSettings.json (if not):

1
2
3
"LocalLogin": {
    "MinimumPasswordLength": 4
}

DAM

Setting up the Hangfire job runner service

Add the following placeholders in the MediaBank.Elements.dll-Placeholder.config file:

1
2
3
4
5
6
7
8
<add name="HangfireConnectionString" value="" />
<add name="HangfireDatabaseSchema" value="hangfire" />
<add name="JobrunnerHostPort" value="" />
<add name="SlidingInvisibilityTimeoutInMin" value="5" />
<add name="NumberOfWorkers" value="20" />

<add name="JobrunnerWindowsServiceName" value="" /> 
<add name="JobrunnerWindowsServiceRootDir" value="..\Deploy\JobRunner\bin" />

Set HangfireConnectionString to a valid connection string.

It is recommended to use a separate database for Hangfire; it will automatically be created during the migration if it does not exist. If you are not using the Bizzkit Installer for upgrading, migration must be initiated by executing the following commands in the DAM installer.

beginmigratedb
endmigratedb

Leave JobrunnerWindowsServiceName empty until node is upgraded and only set if windows service should be installed on the node.

When upgrading the node which hosts the job runner it should be installed using the following commands (remember to update the JobrunnerWindowsServiceName config value):

install-jobrunner
start

The API can still be kept as a Windows service. The TaskRunnerInstance is no longer used to determine which API instance is the job runner, but is still used to determine the url the API is available at.

Important

The Windows service will by default use the LocalSystem account. If the DAM storage is hosted on a network drive and/or requires a different account to access the files, the Windows service must be manually updated to use the correct account.

If the API is hosted as a Windows service the job runner service should use the same account as the API service.

Clean up MediaBank.Elements.dll.config

This section is only relevant if you're not using the configuration files that Bizzkit supplies.

After upgrading the following can be removed from MediaBank.Elements.dll.config in the api section as they are no longer used:

  • rebuildMissingTimerInterval
  • rebuildExpiredTimerInterval
  • precacheTimerInterval
  • purgeOldLogItemsTimerInterval
  • purgeOldJobStatusesTimerInterval

If timer intervals were previously customized, the new cron expressions may be updated to match in the MediaBank.Elements.dll.config.

1
2
3
4
5
6
<jobs
    rebuildMissingCronExpression="2/5 * * * *"
    rebuildExpiredCronExpression="*/5 * * * *"
    precacheCronExpression="*/5 * * * *"
    purgeOldLogItemsCronExpression="*/5 * * * *"
    purgeOldJobStatusesCronExpression="0 * * * *" />

Setting up imaging

With BDAM-986, partners must provide a valid ImageGlue license through the DAM configuration which is set in the placeholder values for ImagingGlueLicence and ImagingGlueLicenceType where the first is the key and the latter is the key type (single, trial, redistribution).

Add new placeholders in the MediaBank.Elements.dll-Placeholder.config file:

1
2
3
4
5
<add name="ImagingServiceUri" value="" />
<add name="ImagingGlueLicence" value="" />
<add name="ImagingGlueLicenceType" value="" />
<add name="ImagingServiceManagedIdentityClientId" value="" />
<add name="ImagingServiceTokenRequestContextScope" value="" />

Hesehus may use 'redistribution' license obtained from Passwordstate.

INSTALLER

If you’re using the Bizzkit Installer CLI to install products, you must add new configuration settings in the product specific configuration files that are passed to the CLI install command.

All of the new placeholders mentioned in the previous section must be added in the DAM configuration file.

A DatabaseEncryptConnection placeholder:

<add name="DatabaseEncryptConnection" value="False" />

must be added in the CMS and DAM configuration files.

A database.encryptConnection setting:

<add key="database.encryptConnection" value="False"/>

must be added in the PIM configuration file that is passed to the CLI install command.