Dear Sitefinity customers and partners! We are excited to announce the release of Sitefinity 14.3. Below, you can find details about what is included in this release.
What's new in Sitefinity 14.3
AI content recommender for conversion rate optimization
The new Content recommender uses Sitefinity Insight’s AI algorithms to analyze the behavior patterns of your converting visitors and produce the next best step (a recommendation) for the current visitor’s journey to optimize the conversion rate.
We also included a new recommendation widget that you can configure to optimize a specific conversion and place on selected pages or templates of your Sitefinity sites to display the recommendations to your visitors at the critical junctions of their anticipated journeys. Custom recommendation widgets are also supported.
Section presets for .NET Core
Section presets is a new concept that will make the life of Sitefinity page editors easier. Presets are small page chunks, based on a Section widget, that can be reused across multiple .NET Core pages.
Section presets will come in handy in the case when several pages are designed to contain the same group of widgets. Now it is not necessary to recreate the widgets on every single page.
Once the preset is applied to the page it will be rendered as a section widget containing the group of the underlying child widgets. All widget settings are preserved.
Introducing a single built-in widget for displaying flat and hierarchical taxonomies in Sitefinity .NET Core page builder.
You have the ability to filter Content list widget's items on the frontend. It can be customized to filter the taxa by selected items, selected parent taxon, or by content type. You can sort items by custom sort expression.
The breadcrumb widget enables you to specify a breadcrumb-style navigation based on configurable options for generating the links in the breadcrumb itself.
This widget is analogous to the existing MVC breadcrumb widget and has feature parity with it.
Configure custom 404 pages for .NET Core
You can now configure custom error pages for .NET Core Renderer.
Facets enable easier navigation and drill down of search results. Visitors can use faceted navigation to filter the search results in Sitefinity CMS by properties such as categories, brands, authors, etc.
Facets can be configured for Azure Cognitive Search and Elastic search. Administrators can select which fields are facetable and how facets are ordered.
Filtering of search results in a common index by site
Some search services charge by the number of search indexes. Previously, if you wanted to create a search index for a specific content type (e.g. News) or a set of content types that only showed the content of the current site, you needed to create a separate search index for each site. So if you wanted site-specific news items search index, you needed to create an index per site. This may have resulted in higher costs.
Now, if you have multiple sites in an index, you can configure the index in advanced settings to show results from the currently used site only or all sites in the index. In this way, you can create an index to store data from multiple sites, but only show results from the current site.
The advanced settings configuration affects the whole project, but you can override this configuration via the search box widget, which allows you the flexibility to control the search results per project or per site.
NOTE: After upgrading, all indexes that existed in previous versions of Sitefinity must be deleted and recreated, not just reindexed, to have this feature available and working.
Filters and notifications for outdated content
Certain content types can have a life span after which they become outdated (expired), and need to be revised. Content editors can now quickly locate and act on outdated content items through the new filtering options on Content types. The functionality is available for pages as of Sitefinity CMS 14.2 and now added for the following content types: News, Events, Blog posts, List items, Content blocks, and all dynamic content types.
Some of the new capabilities, on top of the already existing
Outdated pages filter and notifications, are:
New configuration screen in Basic
New filters -
Last modified by
(both available as filtering options in the abovementioned content types);
Notification preferences for receiving both
user & email notifications
upon content expiration. Sitefinity users can turn ON or OFF the types of outdated content notifications that they want to receive individually;
New setting for pages - you can now set a custom expiration period for a single page/bulk pages.
The feature is OFF by default. Therefore, the
filter and respective notification preferences are NOT available on the user interface unless the feature is enabled.
A new basic settings configuration called "Script manager" has been added, which enables you to effortlessly configure how such scripts are automatically inserted on pages. The scripts can be inserted in all sites or in a selection of sites. They are loaded on MVC and .NET Core pages.
The script manager can be used to insert the Google Analytics tracking codes via Google Tag Manager.
GraphQL protocol support
GraphQL is a high-performance query language for working with RESTful API services. The GraphQL protocol is integrated out of the box with the existing user interface for managing RESTful API services in Sitefinity CMS backend. When creating a GraphQL web service, you have to specify the respective protocol option. GraphQL integration is distributed via a NuGet package. It is automatically available if you use
that installs Sitefinity CMS.
A/B tests for audience segments
Introduced the ability to create A/B tests to target specific audience segments, using Sitefinity segments with criteria such as geographic location, visit duration, demographic and other parameters, Insight persona and lead scoring models, and others.
When you have configured and enabled a DAM provider, you can now use your media content directly in built-in MVC content widgets and in custom MVC widgets, which utilize
image field / media field
The following MVC content widgets support out-of-the-box integration with a DAM provider: Image widget, Video widget, Document link widget, and Card widget.
Backend interface settings
The newly introduced Backend interface settings page allows administrators to determine how the backend interface looks and what options it offers to users from the backend UI. The screen can be opened by navigating to Administration » Basic Settings » Backend interface.
The configurations available in the settings can be applied to all sites or to selected sites only.
Important: Previously, users were able to create a
config.json file in the AdminApp folder in SitefinityWebApp. There they could specify these exact same settings in a JSON format. Now, this file is entirely deprecated and is not taken into account (all previously set settings in
config are migrated automatically). All supported settings are available in the Backend interface settings screen.
Improved Site shield experience: Restrict access to non-production environments
The overall Site shield experience has been improved by introducing the following configurations:
Redirect to login page - Specifies whether to redirect to the backend login page when the user does not have access to the site. When this configuration is not enabled, the users with insufficient permissions are presented with a page displaying the default Site shield message.
Additional custom roles with access - S pecifies custom roles that will be granted access to sites that are protected by Site shield, in addition to all backend users.
Web Security Module and policies
New HTTP security headers
You can make your Sitefinity website cross-origin isolated with the added support of the Cross-Origin-Embedder-Policy, Cross-Origin-Opener-Policy, Cross-Opener-Resource-Policy and Permissions-Policy headers. These headers aim to give you control over where resources can be loaded from in the browser.
Web Security Module public API for response headers white list
You can programmatically add domains to the Content-Security-Policy and Permissions-Policy and alter the value of the Cross-Origin headers while developing modules. This API works with any Sitefinity custom modules and static blob storage providers.
Other enhancements and improvements
The redesigned backend menu ensures faster navigation between backend pages and better utilization of the available screen space. When the items of a submenu exceed the height of the screen, they will be distributed in another column next to the previous one so no-scrolling will be needed to locate a submenu link.
Note: If you have customized the backend menu, you might need to remove or adjust your customizations as they might not be fully compatible with the new backend menu behavior.
Apply style to links
An easy way to apply style to links without HTML knowledge has been introduced, so that you can make them look like CTAs and make them consistent throughout the website. You can do this with a single configuration Link styles via the Backend interface settings.
Upload bigger files in chunk
This feature is turned off by default. To enable it, navigate to Sitefinity CMS backend » Administration » Settings » Advanced » Libraries » ChunkedUpload and enable " EnableChunkedUploads" setting (does not require restart). Note that currently chunked uploads can only be used for libraries which blob storage provider is the database. To avoid slow uploads or making a lot of requests to the server, we recommend that "The size of a chunk in bytes when upload media data" setting (accessible via Sitefinity CMS backend » Administration » Settings » Advanced » Libraries) is increased from the default 81920 bytes to a value of at least 5000000 (~5MB). Note: This value may not be supported by MySQL database.
Create integration tests with MSTest V2 framework
Аnother test framework for integration testing is now available - MSTest V2, which is the open source and cross-platform evolution of MSTest framework.
Note: Going forward, we recommend using MSTest V2 framework as best practice for testing, although Sitefinity CMS web test runner tool will continue to work.
- OpenID Connect external provider now supports authorization code flow flow and PKCE.
- New, more secure encryption algorithm is used
- Security improvements and enhancements are provided in the CMS backend administration.
Special thanks to:
- Jonathan Harper - firstname.lastname@example.org (Contrast Security, Inc.)
- Alvin Fong – email@example.com (Black Box Consulting Partners LLC)
- Mike Manzi - firstname.lastname@example.org (Advanced Open Integration LLC)
- Mark Capistrant - email@example.com
Configure connectors on live in read-only mode
With this release you have ability to configure Sitefinity connectors such as SalesForce or Marketo directly on production (live) when read-only mode is enabled without redeploying configurations from staging or development environment.
- The lastly published page becomes the site's home page in case "Enable filtering backend queries by Modify permissions" is enabled (475087)
- 'Page to redirect to' added while duplicating a redirecting page do not persist (289966)
- Pages grid: footer is overlapping with the items list when there are several .NET Core pages (477156)
- Revision History dialog of pages cannot be opened if Sitefinity is hosted as a child app under "content" (479638)
- Multilingual: Incorrect resolved URLs for child pages (479580)
- Missing end date when edit Event item (477302)
- Media content: OpenAccess timeout error when open library with big number of media items and folders (476621)
- "Value cannot be null." error when accessing image file using additional URL(471606)
- Custom size for image thumbnails is not persisted in the text editor (471428)
- Thumbnail generation task is failing (476471)
- Media content: Opening a library with a lot of images (1M) and folders (300k) takes ~40 seconds (478508)
- Slow upload and load of documents when there are a lot documents (477053)
- Error logging improvement for WebPImageProcessorExtender (479205)
- WebP exception on regenerating thumbnails when webp dlls are missing (479837)
- Selected Image/Video/Document is lost when switching between Advanced/Simple designer view (481047)
- Media Designer selectors filter the items by culture (479897)
- Dynamic content widget error when retrieving item from global provider (483751)
- Files and images are served no matter what is set as an extension in the url and the extension is a part of the cache key (457429)
- Form rules cause script tags of custom form fields to show in the HTML (472835)
- Reordering options in MVC Form Dropdown List results in unexpected behavior (291362)
- Forms field is deleted when translating to third language (482250)
- Sitemap: Selected items locations not included (471155)
- Sitemap interval schedule configurable in Advanced settings doesn`t get applied (474818)
- Sitemap: Resolving the url depends on the site id but not the actual folder's url (480845)
- Sitemap generator: Remove the option to ping search engines that do not accept sitemap pings (479087)
- SiteSync: Cannot sync an item in Vietnamese (474648)
- SiteSync: Filtering not working when selecting specific Pages for syncing (476411)
- SiteSync: Scheduled for publish item appears as pending after being published (477298)
- SiteSync: Failed site properties sync creates an entry in sf_sites (479499)
- SiteSync: Duplicated relations between items after sync (481405)
- Syncing items scheduled for publish does not sync relations (477036)
- Unpublished and Deleted items added as entries in search index after changing the global permissions of the content type (472788)
- Search indexes not opening after upgrade (473452)
- NativeChat doesn't work when Insight tracking is on (478155)
- Salesforce Connector: Mappings for .NET Core forms read developer name (480170)
- When Eloqua connector is disconnected, frontend pages still send requests to Eloqua. (477746)
- [HubSpot] Migrate from API key to bearer token authentication (479236)
For more information, refer to Sitefinity CMS documentation : Connect to HubSpot
- Configurations: Deleting a custom caching profile updates the SystemConfig with settings defined in the web.config (467572)
- Configurations: Upgrade fails when you have app settings for configurations only defined in the config file (478120)
- After upgrade changes made to the WebSecurityConfig.config file are saved in the database (478328)
- Custom widget config changes are stored in the database in Auto mode (311990)
- OData: GET /api/default/hierarchy-taxa exclude AppliedTo from the default data (473743)
- Creating OData service when GraphQL package is not installed (483710)
- Uploading files through OData services with umlauts in title does not work (471377)
- Support for filtering and sorting in GraphQL (477333)
- Translation: MS Translator connector breaks taxa in non-Latin language (473654)
- Cannot open translations dialogue from forms grid (483873)
New content editing experience:
- "Open this link in a new window" option not checked (474496)
- Related data Load More button broken after items reordered (477314)
- Related data order gets reset after navigation from item edit modal (477315)
- Wrong culture replacement in the url when duplicating a page for other site and culture (477731)
- [Rich Text Editor] When editing HTML that is longer than page, double scrollbar shows (473479)
- Pages grid: footer is overlapping with the items list when there are several .NET Core pages (477156)
- AdminApp: UrlName mirroring not working when duplicating an item and the module uses identifier field different than Title (480213)
- AdminApp: Url field mirroring not working as expected when using different identifier field and title at the same time (480214)
- AdminApp: Extensions not working (480413)
- AdminApp: The table wizard tool is disabled in the Rich text editor (480735)
- Fix multiple subscriptions that cause concurrent requests to be made in page editor (481670)
- Edit page partial URL replaces the whole URL instead of attaching to it in Iris standalone (482025)
- AdminApp: Child dynamic module does not resolve if configured separately as a backend page (479889)
- AdminApp: Url mirroring field not working as expected when using non-localizable main field (483489)
- AdminApp: Using "Bold" in table breaks the layout (389552)
- Custom editor tools in AdminApp extensions are not displayed (477945)
- External JQuery plugin does not work on Backend page in with AdminApp enabled (467863)
- AdminApp recent taxon service not respecting site-specific taxonomy (479472)
- AdminApp: Additional File URLs of media content do not redirect to default URL (471605)
- AdminApp: Dynamic hierarchical parent item's very long title is overlaid by the Create, Filter, and Settings buttons (468900)
- AdminApp: Using the Create a link tool duplicates anchor tags on existing links (474036)
.NET Core frontend:
- Support for setting custom fields when creating a user profile for .NET Core Registration widget (480932)
- Support for filtering by related data in the Content List Widget (475162)
- Trial and Site shield do not work for .NET Core frontend (475003)
- Add selection of fields for content list widget (474251)
- Unable to select file system Layout files from template selector on existing .NET Core pages in non-default sites (476989)
- Content list - when Selection range is Selected items & custom filter is applied, only the custom filter is applied (476049)
- Fix invalid host header passed to .NET Core frontend (478241)
- Fix resolving of links for nested link objects (478285)
- Deleted image widget breaks entire .NET Core page builder experience (479008)
- .Net Core pages throwing Unauthorized exception when using WebServiceApiKey (474570)
- Content list paging does not work on home page (476066)
- IsHomePage property of PageNodeDto is not set at the IRequestContext requestContext.PageNode (480659)
- Custom section does not work as expected in case of third level (480702)
- Fix batch requests authentication (481348)
- Role selector for approval levels not persisting selection across pages (467145)
- The "Created on" column in a taxon's "Applied To" screen shows incorrect date for dynamic content items (473773)
- Scheduled publish/unpublish not appearing in revision history 'Synced on' column (474414)
- Widget Designer: ContentViewDisplayMode property is not holding "Detail" value, reverting to "Automatic" (466016)
- Export/Import: Field appearance changes not reflected in Target (475913)
- Designer selectors show content in all languages (476641)
- ForumsModule.UpgradeTo11_1 upgrade method adds an attribute to a field unconditionally causing problems after upgrade (476545)
- Embedded YouTube video - link to YouTube doesn't work and console error is thrown (478240)
- Console error on frontend when embedding YouTube video (478115)
- Duplicating MVC Page template based on cshtml file throws exception that the Name for developers is duplicated (478741)
- Hide UI for RSS Change Data Structure as functionality is not implemented (474368)
- The KendoAll CDN reference points to a different version than the embedded one (479940)
- Enable documents integration with Frontify (479165)
- Export for deployment - new related data/media fields are always imported in the related data/media section (474815)
- AB Testing does not work when the site is under sub-folder (477527)
- Authorization tokens DB table size problem (480861)
- Fix ordering of widgets between two parent widgets (481854)
- Personalized widgets are not rendering correctly (479637)
- Add support for returning custom fields from the current user response (481813)
- Module Builder: Creating a module with Content type (singular) named with system reserved words causing issues (478973)
- Fix Sitefinity Cloud CORS issues with template and form editor (483797)
- Kendo UI upgraded to 2022.2.621
- Update NativeChat SDK to 3.2
- Telerik UI for WPF upgraded to 2022.2.621.45
- Telerik UI for ASP.NET AJAX upgraded to 2022.2.622.45
- ServiceStack upgraded to 6.1.0
- HtmlSanitizer upgraded to 7.1.542
- Elasticsearch.Net upgraded to 7.17.4
- ICSharpCode.SharpZipLib upgraded to 1.3.3
- WindowsAzure.Storage upgraded to 9.3.3
- Azure.KeyVault.Core upgraded to 3.0.5
- jQuery Migrate upgraded to 3.4.0
- AngularJS upgraded to 1.8.2
- angular-ui-router upgraded to 0.3.2
API and DB Changes
- The complete list of API changes is available here
- The complete list of API changes is available
Sunsetting of Universal Analytics and migration to Google Analytics v4
Google is sunsetting its current Analytics solution – Universal Analytics (UA) on July 1, 2023. They offer a replacement solution - Google Analytics 4. Sitefinity CMS Analytics dashboard relies on UA and therefore, it will stop working when UA stops working.
To make sure that you continue using uninterrupted analytics for your sites, we have prepared recommendations how to migrate to Google Analytics 4 in Sitefinity CMS. Learn more in this blog post.
Refer to Deprecated capabilities in Sitefinity CMS for a complete list of discontinued capabilities per product version.
backColor tool is configured in your Rich text editor configuration and you try to apply background color to a rich-text field in your content item, the change is not persisted in the database.
Fix is scheduled for the first patch of Sitefinity CMS 14.3. If you encounter this issue in the meantime, use the following workaround:
Navigate to Administration » Basic Settings » Backend interface and under Rich text editor section, set the
serialization.semantic Toolset option to
- When navigating to a .NET Core page, font awesome might not be loaded and the appropriate icons for editing widgets might not be visualized as expected. This is a new issue under investigation (483845).
- Windows Authentication - to use Windows Authentication with Sitefinity 14.3.8000.0+ you need to get the new version of the WindowsAuthWebHost from Sitefinity GitHub.
Progress Sitefinity Team