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
-
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.
Elastic Search
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
ECOMMERCE SEARCH
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
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:
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):
With that list, you compare with the list from the following SQL query:
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.