Skip to content

Bizzkit 23.0.0

Version 23.0.0
Release Date 09 May 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.9 7.17.9, 7.17.10 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.

Highlights

  • CMS now runs on .NET 6

  • Cloud version of MAIL officially released

  • New Not equals operator for global list type filters which makes it easy to exclude values when filtering

    Not equals operator

  • New attribute level filter operators to easily filter products that may or may not inherit a certain attribute

Changes

CMS

Enhancements

BCMS-839 CMS .NET 6 upgrade

New application runtime

CMS now runs on the .net 6 runtime like most other Bizzkit products.

The CMS Lucene index is swapped with an Elastic Search index. This means that you will have to set up an Elastic Search instance and configure the CMS (see upgrade instructions).

You must update the CMS configuration before upgrading. This also applies if you use the Bizzkit Installer to upgrade your CMS application.

Article schedule timezones

Given the new cross-platform capabilities of CMS, time zones will be described in the IANA format going forward when NOT running on Windows. Very few time zones have been identified as incompatible between these time zone standards, but it is still relevant investigating your data before upgrading, especially if you plan on using CMS from cloud at a later stage. See upgrade instructions for a way of investigating this.

Concretely, this means for the end user that the names of the time zones will differ in drop downs for Article Schedule Preferences, and Article Schedule Settings based on the operating system hosting CMS. No changes should be percieved if CMS will continue to run on Windows!

Other

BCMS-889 Add pipelines for building and releasing cloud CMS .NET 6 version of the application

CMS releases now include associated docker images

BCMS-861 CMS API documentation is produced automatically and deployed to https://docs.bizzkit.com

BCMS-868 "Getting started" guide for solution partner developers

DAM

Bug fixes

BDAM-995 Image is not autorotated when downloaded in original size and explicitly choosing a file format

BDAM-1128 Importing files using archives can cause database and file storage inconsistencies

BDAM-1178 When importing files from archive, the username does not correspond to the actual user who imported the files

BDAM-1192 Image is not oriented correctly on upload

New features

BDAM-1175 Add web hook implementation for DAM events

Two endpoints have been added related to web hooks:

  • POST /webhooks/{event-type} allows subscription to DAM events such as AfterFileCreated or AfterFileDeleted. Returns the ID of the subscription and a secret to be used for authentication

  • DELETE /webhooks/{id} allows removing a subscription by providing its ID. All events that have been scheduled for that subscription but not yet sent will be removed (and not sent) when the subscription is removed

Enhancements

BDAM-30 Improve the naming of public DAM API endpoint methods and routes

  • All DAM API endpoint paths have been prepended with api/.

  • Most methods in the SDK DamClient have slightly changed their method names, adding plural s to the first part of their name. Example: File_SearchAsync → Files_SearchAsync

  • Some methods in the SDK DamClient had their names shortened to remove repeated parts, (especially in the attributesController). Examples:

    • File_ListFileNamesAsync → Files_ListNamesAsync
    • Attribute_CreateStringAttributeAsync → Attributes_CreateStringAsync

Some API endpoints have changed: (other than the prepended api/)

  • {culture}/bulk-operation → api/{culture}/bulk-operations

  • POST {culture}/folders/permissions → POST api/{culture}/folders/{folderId}/permissions (folderId previously being part of the request model)

  • GET {culture}/folders/children/{folderId} → GET api/{culture}/folders/{folderId}/children

  • GET {culture}/folders/files/{folderId}/{sortOptions} → GET api/{culture}/folders/{folderId}/files/{sortOptions}

  • PUT {culture}/files/replace-from-uri → PUT api/{culture}/files/{fileId}/replace-from-uri (fileId previously being part of the request model)

  • PUT {culture}/files/replace-from-byte-data → PUT api/{culture}/files/{fileId}/replace-from-byte-data (fileId previously being part of the request model)

  • GET {culture}/files/attributes-with-values-categorized/{fileId} → GET api/{culture}/files/{fileId}/attributes-with-values-categorized

  • GET {culture}/files/chosen-info/{fileId} → GET api/{culture}/files/{fileId}/chosen-info

BDAM-641 Use OpenAPI v3 in DAM API

DAM API has started to use OpenApi v3 schema. There are some breaking changes introduced with this change:

  • OpenApi v3 doesn't support nullable values

  • Assigning null value to a value that is not defined as nullable is not available anymore

BDAM-1152 Build Dockerfile.ImagingFunctions

Solution partners and non-DAM Bizzkit developers can use this docker image for DAM Imaging Azure Functions for development.

BDAM-1156 Upgrade node version to the 18.15.0

Deprecated

BDAM-1159 Remove obsolete configuration values

The following configurations have been removed from "MediaBank.Elements.dll.config":

  • MediaBank.ImageTransformation.preserveGifAnimations
  • MediaBank.Installer.databaseServer
  • MediaBank.Installer.databaseName
  • MediaBank.Installer.databaseSchema
  • MediaBank.Installer.databaseUser
  • MediaBank.Installer.databasePassword
  • MediaBank.Installer.databaseEncryptConnection

Other

BDAM-270 Remove ignored methods in public DAM API

All methods in the public DAM API that are marked with the attribute "IgnoreApi" are removed.

BDAM-1179 DAM images with less than 256 colors should not be reduced

Bug fixes

BECS-1427 The docker files in the documentation sites does now update databases.

Other

BECS-1382 Changes made to contexts are now shown in the publication view

BECS-1397 Improved did you mean suggestions

BECS-1407 Added support for commercial parameters on Suggestions, so that they are sorted better

MAIL

First release of the brand new cloud version of MAIL which is available in Bizzkit Cloud only.

Note

MAIL is still supported for onprem partners but going forward the onprem offering will be known as MAILOFFICE in the release notes.

PIM

Bug fixes

BPIM-3225 Having the dashboard overview page open for long periods may lead to duplicate dashboards being created

BPIM-3309 Ordering columns in product catalogue doesn't work until reloading page

BPIM-3316 Product filters targeting a PDecimal9 field breaks search UI

BPIM-3342 Searching within Brand filter is very slow

BPIM-3409 Setting page size on the product list doesn't work with the new product filters

BPIM-3411 Reloading after changing freetext search query causes the query to revert to old value

BPIM-3224 Filters targeting a PTimeSpan field cause an error when searching

Enhancements

BPIM-3067 Attribute selector should indicate when more results are available

The attribute selector dropdown now indicates to the user when the shown results are a subset of matches, and that the search should be narrowed down

BPIM-3390 The default segment should to be selectable when creating an advanced product filter

BPIM-2777 Product filters should support inherited values, including presence operators

BPIM-3162 Support the "does not equal" product filter operator on fields which have a global list data source

BPIM-3246 Relational type selector should indicate when more results are available

The selector for relational types, e.g. product categories, now indicates to the user when the shown results are a subset of matches, and that the search should be narrowed down

BPIM-3301 The URLs for Sort and Search are now configurable from the PIM administration UI

BPIM-3220 Upgrade node version to the 18.15.0

Node (JS) versions have been updated to 18.15.0 LTS

Deprecated

BPIM-2846 Attribute value group support are disabled by default

Attribute value groups have been disabled by default in preparation for removing the feature entirely in upcoming major versions.

If the installation is already making use of this feature, it can be temporarily re-enabled by setting the environment variable FEATURE_FLAGS_PIM__Enable_Attribute_Value_Groups to the value 'true', however it is strongly recommended that alternative strategies are explored as soon as possible.

Warning

If attribute value groups are configured in the database, migration will be blocked until the feature flag described above is enabled.

BPIM-3403 Tenant ID is removed from all public APIs

The TenantID property has been removed from all public API routes and parameters, and all SDK methods in preparation for removing the feature entirely in upcoming major versions.

Breaking changes

The changes to SDK signatures is likely to cause compile-time errors in customer solutions. The changes to the API routes is a breaking change and will cause run-time errors in manually created API clients.

Please refer to the Swagger UI/Swagger.JSON reference files to verify the new signatures.

The changes are not compatible with any previous versions of the SDK.

When using the Products_ImportFromCsvAsync endpoint, callers must now pass an empty string in includedAttributes if the paramter was null before, otherwise the request will fail.

Warning

TenantID values from all published views, and response models on the API will be removed in subsequent releases.

Other

BPIM-3333 Support for an environment variable prefix when overriding configuration values from environment

If an environment variable named 'PRODUCT_ENV_PREFIX' is set, the value of this variable is interpreted to be a required prefix for all configuration override environment variables.

INSTALLER

Other

BINSTAL-375 Add CMS Elastic Index settings

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.

CMS

Elastic Search

Before the system can be upgraded, Elastic Search node for the CMS must be set up, and the following placeholder values must be added to the CMS placeholder configuration file:

1
2
3
4
5
6
7
8
  <add name="ElasticsearchIndexNamePrefix" value="bizzkit-cms-index" />
  <add name="ElasticsearchUseFuzzy" value="True"/>
  <add name="ElasticsearchServer" value="https://localhost:9200" />
  <add name="ElasticsearchUsername" value="" />
  <add name="ElasticsearchPassword" value="" />
  <add name="ElasticsearchApiKey" value="" />
  <add name="ElasticsearchApiId" value="" />
  <add name="ElasticsearchCloudId" value="" />

Please note the following rules regarding the configuration values:

  • ElasticsearchIndexNamePrefix must be a valid Elastic Search index name. Defaults to cms if not set. Unless you run multiple CMS applications on the same server, you do not need to set this.
  • ElasticsearchUseFuzzy defaults to True for backwards compatibility.
  • IF ElasticsearchCloudId is set, ElasticsearchServer should be empty.
  • IF ElasticsearchCloudId is empty, ElasticsearchServer should be set.
  • IF ElasticsearchCloudId is set, EITHER ElasticsearchApiKey AND ElasticsearchApiId should be set, OR ElasticsearchUsername AND ElasticsearchPassword should be set.
  • IF ElasticsearchApiId is empty, ElasticsearchApiKey should be empty. ElasticsearchUsername and ElasticsearchPassword are optional in this case.

It is recommended to only use ElasticsearchServer in development and test. It is recommended to use ElasticsearchApiId and ElasticsearchApiKey in production.

CMS Auth Configuration

CMS now relies on another sign in redirect URL. You have to append the following: /signin-oidc to the redirect URI of the interactive CMS downstream client such that a URL like https://cms.customer.com/ becomes https://cms.customer.com/signin-oidc.

Furthermore, please disable the "Legacy Application" flag, as it is no longer required.

CMS Elastic Index

Whenever upgrading from a prior version of the CMS, you must now trigger a rebuild of the page index once the upgrade is complete. The task can be enqueued from the Background Services section in the CMS Settings page. The same must be done whenever a new segmentation is added to the system, regardless of being a migrated or a brand new project.

Article schedule timezones

From your server environment, the following code snippet can be used as inspiration on retrieving which time zone ids that will not work going forward (Requires at least .NET 6):

var incompatibleTimeZoneIds = TimeZoneInfo.GetSystemTimeZones().Where(info => !TimeZoneInfo.TryConvertWindowsIdToIanaId(info.Id, out _)).Select(info => info.Id).ToList();

With that list, you compare with the list from the following SQL query:

1
2
3
4
5
6
SELECT [TimeZoneSettings_TimeZone_Id] 
FROM [ArticleSchedulesPreferences] 
UNION SELECT [TimeZoneSettings_TimeZone_Id] 
FROM [ArticleSchedule]
UNION SELECT [TimeZoneSettings_TimeZone_Id] 
FROM [PublishedArticleScheduleHistoryItem]

PIM

EFCore DAL implementation

Renamed environment variable

The environment variable used to enable/disable the EFCore experimental DAL implementation has been changed in this update.

To continue running a PIM installation on the EFCore DAL implementation, before starting the upgrade process, ensure that an environment variable with the name FEATURE_FLAGS_PIM__Enable_Experimental_EFCore_DataLayer has been created, and assigned the value "true". After completing the upgrade process, the old environment variable named BIZZKIT_PIM__Enable_Experimental_EFCore_DataLayer may be deleted as it is no longer in use.

Updating the elastic index

For the new attribute presence operators to function, the elastic index must be rebuilt. Please trigger the rebuild manually after updating.

Other filter operators continue to function while the rebuild is in process.

Important

If the PIM is being manually updated, it is important that the consolidate-pim (p) console command is run before the JobRunner is started again after the upgrade. Failure to do so may cause corruption of the ElasticSearch index definitions which can only be fixed by dropping and recreating the index.

This does not risk a loss of data, but may be an inconvenience to the user as the PIM product search will produce unreliable results until the rebuild is completed.

If the PIM installation is maintained and upgraded using the Bizzkit Installer this consolidation will happen automatically.