Dear Sitefinity CMS customers and partners! We are excited to announce the release of Sitefinity CMS 12.1. This
version contains the following updates, enhancements and fixes:
What's new
Visual email template editor for forms completions and system notifications
Sitefinity CMS adds a visual email template editor that you can use to customize any email that Sitefinity CMS
sends. That includes form completion notifications and internal notifications.
The template editor provides options to edit email subject and body, as well as to define sender
name and sender email. You can compose templates with rich text with the familiar Sitefinity CMS WYSIWYG editor
and insert dynamic data in the email's subject and body.
The system email templates can be configures for all sites or for selected site only. Learn
more...
Forms: Email widget and confirmation emails
Email widget
With the new Email widget, it is now easier to design forms with email fields. You do
not have to make additional configurations to the Textbox widget to get a respondent's email - you
simply drag and drop the Email widget.
Confirmation emails
In addition to sending email notifications to a list of subscribers when someone submits a form response, you can
now also send confirmation emails to the respondents upon successful form submission. You can also customize the
content of the email messages sent to subscribers and respondents. You can insert all form fields as dynamic
data in the email subject or body. Learn
more...
Mechanism for preventing Cross-Site Request Forgery (CSRF)
Sitefinity CMS Web Security module enables IT Administrators to configure a centralized mechanism that helps
secure the website cookies, thus preventing CSRF vulnerability. Website administrators can set a minimum
security policy for all website cookies by configuring the SameSite, HttpOnly, and
Secure attributes. Learn more…
Back-end search
Search for users and roles:
- Find users quickly by searching using their first and last name, in addition to email. Learn
more…
- Search for roles based on the role name. Learn
more…
Search in Advanced settings:
Search in advanced settings by title, key, and description. That will make you more efficient when you are
dealing with Sitefinity CMS settings. To leverage this search capability, you need to maintain a newly introduce
search index. Learn more…
Libraries storage relocation
Improved logging provides more details regarding specific actions performed during library storage relocation. The process has been made more tolerant to failure, so when relocation of a media item fails, the process will continue. A listing of failed relocation steps is provided at the completion. Learn
more…
New content editing experience: Add related data and media
As of this release, content editors, working with the new content editing experience, can create related media or
related data items on the go from the related data selector. When adding related content, they can either
select an item from a list with existing content or create a new item of the same type. By default, the new
item is stored in the Default source for this site. Learn
more…
Related data and media: Select providers
Once you relate content via Related data and Related media fields, you can configure each field
to work with different shared content provider. You can change the provider at any time. You can, for example,
decide that you want to provide content editors with the flexibility to use related images from the content
sources of all sites, not just one. This way, they can choose from which source to select related data or
media. Learn
more…
MVC
Set predefined values to widget properties
You can now configure how a specific widget behaves and looks and what content it displays by pre-filling the
values for a wide range of widget properties. Such properties range from simple ones, such as configuring which
news items to display, to more complex, such as a CSS class and canonical URL tags. Properties can also be
defined on different levels of the widget properties hierarchy. You can set default values for properties of all
Sitefinity CMS widgets, as well as of dynamic content widgets and custom widgets.
This way, you provide consistency in behavior and appearance of a specific widget and make it easier
for users to work with widgets by avoiding the need to look for specific properties throughout the widget
designer or having to know their exact property values.
Once the property values are set, they are not read-only and can be edited at any time. That is, you can still
edit and override any of these predefined properties per widget in the widget designer. Learn
more…
User-friendly routing
The out-of-the-box Sitefinity CMS MVC widgets enable you filter the displayed content or change the paging via
user-friendly routing options. For example, if you have a news widget on your page, you can directly type a
category name, appending it to the page URL in the browser. Sitefinity CMS filters the list of news and display
only the ones marked with the specified taxonomy. Learn
more...
Optimize the size of loaded client-side scripts
As of this version, by default, Sitefinity CMS serves a minified version of all built-in scripts that are
referenced in the out-of-the-box widgets. To make debugging easier, a source map is included alongside each
minified script. Developers can provide a minified version of the script files, referenced in their custom
widgets, and Sitefinity CMS will load it automatically. Learn
more...
Output cache: On-demand distributed cache invalidation mechanism
To assist in situations where distributed output cache must be invalidated on-demand, Sitefinity CMS now exposes
a suitable web service. By calling the /restapi/cache/clear
endpoint, website
administrators or authorized users can effectively purge the distributed output cache. Learn more...
Health check service: Search service check
Enables website administrators to add an automated check whether the the website search service is operational.
The check covers external search services and can proactively identify connectivity problems. Learn more...
Translation service: Automatically configure translation connectors
Now you can automatically configure a connector to a translation service using an assembly attribute. When the
website initializes, Sitefinity CMS looks in the /bin folder for assemblies that contain connector
implementations and are marked with this attribute. In case it finds such assemblies, Sitefinity CMS
automatically adds the translation connector’s configurations that are specified in the assembly
attribute. Learn more...
Sitefinity DEC connector
Connector access keys
Digital Experience Cloud changed the way you connect your sites with DEC. To secure the connection between
Sitefinity CMS and data centers, DEC now uses access keys as the authentication mechanism. Each access key is a
JSON Web token which uniquely identifies each connection to Sitefinity CMS, or any specific site or instance. An
access key is perpetually valid, however, an admin can deactivate it manually. Thus, you no longer need to enter
user credentials when configuring the DEC connector settings. Learn
more...
Read only DEC configuration to discard site traffic
With the new read-only DEC connector configuration setting, you can stop all server-side and client-side
tracking and data collection for all sites on a particular Sitefinity CMS instance, while still
using DEC data to customize content. This option is particularly useful in scenarios with multiple instances
serving different purposes, such as content staging and production. In this scenario, a DEC read-only
configuration should be set on the staging instance to avoid recording all test traffic on staging sites, and a
full read-write configuration on the production instance (default).
Personas: Enhancements in persona scoring rules
To make audience segmentation more multi-dimensional, in addition to persona scoring rules based
on visitor behavior, you can now define rules based on any defined or automatically detected contact
profile property and its string value. To define personalization segments with greater accuracy,
you can also create rules with a combination of contact properties. Personalizing your visitors’ experiences
based on such criteria helps you account for personal characteristics, demographics, or even specific marketing
campaigns. Learn
more...
Support for longer conversion windows
When defining or editing conversions, you can now specify conversion windows up to 18 months, so that
longer transactions are properly captured. To do this, you use the two extra options for 12 and
18 months, added to the Conversion window section. Learn more…
Contacts: Enhancements in searching, filtering, and exporting contacts
You can now search, filter, and export contacts based on the date, on which their last interaction with
your website was reported to DEC. This may include visitors' web journey interactions or
interactions, imported from other systems.
To filter contacts based on the last interaction date, you use the Last Visit On criterion and
filter further via the predefined time periods or custom ones you define. You can combine filtering criteria for
a more through search in the contacts' list and more focused result. Learn
more…
Translation
Machine translation connector for Microsoft Translator
Database diagnostics
DB diagnostics module
- The Database diagnostic module integrates with your Sitefinity website and provides administrators with
valuable insight about the website database health. Rebuild database indexes with a click of a button. Learn more...
Visual Studio Extension (Sitefinity VSIX/CLI)
- Added support for Visual Studio 2019
- You can now add a blank integration test project to your solution via VSIX and use the
samples from Sitefinity GitHub repo. This enables developers to verify project functionality after
upgrade or adding new customization. Learn more...
- Integrate custom logic leveraging Sitefinity modular architecture and following best practices. Use the
bare bones custom module projects added through VSIX or use the sample from Sitefinity GitHub
repo. Learn more...
- Added CLI and VSIX versioning dialog
- Reduced size footprint of the CLI
- CLI performance improvements
Security updates
- Cumulative security fixes and protections.
What's fixed
New content editing experience
- Guid field in module builder is hidden in AdminApp (FP)
- Events: AllDay event cannot be edited in AdminApp (FP)
- Slow redirect when accessing page for the first time in AdminAp
- Content block could be shared even if Generic content is removed from the site (FP)
- New Content Block Designer cannot be loaded in non-English setup(FP)
- Contextual Help configuration - toggle to enable/disable contextual help
- Slow chained responses waiting each other during AdminApp Start up
- Cannot create page in SecondSite when AdminApp is enabled
- Copying text with different size into the AdminApp Rich Text Editor leads to text with smaller font
size (FP)
- AdminApp UI: Scheduled Publish field date will change to Last Modified after an item is published (FP)
- AdminApp: Custom Filter does not pre-populate the drop down with results (FP)
- AdminApp: MultipleChoices custom field for Pages doesn't upgrade properly from 11.1 to 11.2 and the AdminApp
breaks (FP)
- AdminApp: SingleChoice field does not work properly with more than 64 items (FP)
- AdminApp: Custom classifications filters don't fall back to the default language if there is no translation
- AdminApp Workflow: Cannot reject item without reason
- AdminApp: The states information in Address field is not fetched from Locations settings (FP)
- AdminApp: Additional URLs don't work for Pages
- AdminApp: A potentially dangerous request was detected from the client (FP)
- AdminApp: When filtering more than 20 content items, the load more button is not shown (FP)
- AdminApp: Locked for Editing page always shows the LastModifiedBy user of the page as responsible for
locking it(FP)
Users
-
When you click on the “Search…” button the cursor is not focused on the search input.
-
When you make a search and then you start to use the filters in the right sidebar the results do not
consider the searched keyword.
-
When you make a search and then go to create a new user, after the creation the search filter is persisted.
Roles
- AppRoles tab is added in the roles grid where the roles in AppRoles provider are displayed.
MVC
- Incorrect MVC dynamic module child widget routing (FP)
- Thumbnail size is not persisted for images inserted in the mvc content block (FP)
- MVC Login Status widget breaks page indexing for personalized pages (FP)
- MVC Login Widget doesn't redirect to the Detail view of a restricted item after user authenticates (FP)
- "Select a page" window is unusable in MVC Navigation widget with using Bootsrap4 page template (FP)
- Page location gets trimmed inside MVC Navigation widget (FP)
- Line breaks removed from blog posts for MVC (FP)
- MVC Navigtation widget can't be added a custom property that can be edited in the designer (FP)
- MVC selectors: Using sf-master="true" in multilingual site results in No applicable method 'AND' exists in
type (FP)
- Comments for MVC widgets not submitted when containing "\n" in the message
- MVC: Cannot filter when the taxonomy starts with digit (FP)
- MVC: Content Widgets cannot be filtered by a non-default taxonomy and paged simultaneously (FP)
- Subscribe and Unsubscribe widgets on the same page trigger both action on clicking of either button(FP)
- evt.Controls is empty on MVC IFormValidatingEvent (FP)
SEO
- SEO Description meta tag is not added to head if SEO enabled is false in Settings
- SEO: The detail item's Title is displayed on a page even if 'DoNotSet' is configured for PageTitleMode of
the widget (FP)
- OpenGraph: OpenGraph title is automatically taken from the content item Title or the page Title for
search engines fields if you do not fill it out, explicitly.
Other Fixes
- Cache doesn't invalidate on load balanced setup when storage mode is set to Database (FP)
- WorkflowManager.MessageWorkflow does not work under https
- Allowing the creation of dynamic modules with duplicate name leads to issues (FP)
- Diagnostics Module not respecting connection String in web.config when in Azure and storage mode set to
Database (FP)
- Tags Widgets does node render correct HTML when widget property ShowItemCount is set to True
- Hero card view of the Card Widget not working when there is a special character (') (apostrophe) in the
Image url (FP)
- RadEditor's RemoveLink button does not work (FP)
- Various Languages in Chrome break Tracking Consent settings (FP)
- You are able to create custom field with name as System name for static modules (FP)
- Administration backend page styling is broken
- The Export/Import module of sitefinity doesnt exports the Additional URLs field values of pages (FP)
- Search: Search results page with View permissions causes incorrect redirect by the Search box widget (FP)
- "System.Exception: Error extracting the text content of a document..." generic error when indexing documents
- Forms: When creating a form from a second provider with different connection, a Object reference not set to
an instance of an object exception is thrown (FP)
- In "New form response" notification, the Form link doesn't work when UseAjaxSubmit is true (FP)
- Database lock issue when syncing content items with taxonomies
- Revision history for media content does not keep the current file after the upgrade to 12.0
- Setting for RememberMe checkbox in OpenID backend login page not working
- Images: SVG image that sets colors in CDATA section is uploaded with black color (FP)
- Archive widget throws Object reference... error when working with custom DateField
- Date fields are not visible for the List view of Dynamic Content Modules (FP)
- Redirect loop after login in case of virtual folder (FP)
- Amazon Search: Search by custom field does not work
- Cross links crash the w3wp process (FP)
- Dоcuments&Files filter section is missing in version 11 (FP)
- Syncing personalization segment with DEC Persona syncs as inactive in Target (FP)
- N+1 problem when loading related media (or static related data) items
- Synchronization.log doesn't show the Id of the synced Personalization segment
- Personalization: Preview site as does not work if Inline editing is disabled (FP)
- SiteSync: Template theme reverted to basic
- Search filters not working as expected in ElasticSearch (FP)
- HtmlSanitizer changing iframe attr sandbox to allow-scripts allow-same-origin (FP)
- Scheduling multiple item translations for publishing sets a wrong PublicationDate (FP)
- ContentLocations are registered to content modules when email campaigns are created with the module widget
present in the issues (FP)
- Client cache is not working for .axd resources requested for the second request, because of the incorrect
Vary:* response header
- When there is a plus (+) symbol in the Settings of PageLayouts the view breaks (FP)
- Expose public API to generate URL for pages in design mode (FP)
- Last-Modified header is set with zero date when using output cache profile without sliding expiration (FP)
- "&" special character forces options to next in WebForms forms (FP)
- Versioning on javascript files is not added when files are coming from Resource package (FP)
- useMultilingualSplitTables configuration lost in process of upgrade when storagemode is set to Database (FP)
- Classifications: Enabling new Languages on a site with existing custom classifications will not show the
items published in the default Language (FP)
- Fix Inline editing upgrade
- Fix etag header to use double quotes for value
- Redundant Vary headers returned in response when the client cache is on
-
Introduce API to flush the entire output cache
-
ETag is updated when the page is published with output cache warmup set to Full
- Saving custom DesignerView.Simple.cshmtl reverts to default designer (FP)
- Issues with URL's included in rich text editor in 11.0 (FP)
- Missing properties from ControllerToolboxItemAttribute (FP)
- Azure Search Service does not respect the orderby Clause from search Results (FP)
- Multilingual: Orphaned entries in sf_cnt_location table after deleting a page (FP)
- Archive widget throws Object reference... error when working with custom DateField (FP)
- Document Manager: Link in table throws an error on Edge (FP)
- Labels & Messages: Deleting labels from the backend doesn't delete them from the resx files (FP)
- ModuleBuilder: Items cannot be filtered in case of a category with the same name (FP)
- Events API: GetOccurances gets all occurrences regardless of date range (FP)
- Calling the FormsService returns a SQL error (FP)
- Object references between two different object scopes are not allowed. when changing storage
provider (FP)
- Output Cache: setOmitVaryStar is not taking effect (FP)
- Database lock issue when syncing content items with taxonomies (FP)
- JavaScript SDK crashes with there is referrer but no decMetadata/ObjectMetadata (Sitefinity and
non-Sitefinity sites scenario) (FP)
- UrlPath.ResolveUrl returns NullReference in Search Indexing mode when Login Logout widget is dropped on the
page/template (FP)
- Azure Search: Items are not removed from the index when deleted in Sitefinity (FP)
- Invalid data item type "Telerik.Sitefinity.Publishing.Model.PublishingPoint" when creating search
index (FP)
- Revision history of child dynamic content types cannot be seen when parent type has a classification field
(FP)
- Tracking consent injects script right after the opening head section, displacing the meta charset out of the
1024 first bytes. (FP)
- Group page does not redirect to first child page when having a child redirect page (FP)
- Content in specific language is not available when having split table strategy enabled after upgrade in
MySQL(FP)
- Navigation control cache variation is not added to the output cache(FP)
Other changes
Connector for Marketo
- The connector requires a separate license which activates/enables the connector for Marketo. Licenses are requested through the Sitefinity Customer Advocacy team via email (sales-telerik@progress.com)
Developer Tools updates
- Progress Telerik UI for ASP.NET AJAX updated to version 2019.2.514.45
- Progress Telerik UI for WPF updated to version 2019.2.510.45
- Service Stack updated to version 5.5
- Angular JS ( login screen ) updated to version 1.7.8
- GeoLite database updated with source since July 2019
Documentation
API and DB Changes
API Changes
Database Changes
Upgrades
- Updated templates for sending workflow and system errors notification emails. You can now edit your system
templates using the visual
email template editor.
- A new search index is created and appears under Administration → Serch Indexes. This index is used for the
newly introduced search in
advanced settings.
- The sf_oc_items and sf_oc_dependencies tables are no longer used. They will remain in the
database to ensure smooth upgrades in NLB scenarios and will be dropped in upcoming releases.
- Sitefinity DEC connector – When upgrading to version 12.1 or higher, the access token will be migrated
from Password field to Access key field in configurations. This change concerns only
projects using the newly introduced access
token authentication.
Known issues
- Search in advanced settings uses Lucene.Net implementation of Lucene search by default so when you
search for items with "-", it splits the word combination instead of searching for it which is a known bug
in the current version of Lucene.Net (e.g. "in-line editing" will actually search for "in", "line" and
"editing" instead of "in-line" and "editing")
- Search in advanced settings in azure - Due to a bug in azure search there are different search results
compared to Lucene search. (problem with wildcards)
Regards,
Progress Sitefinity Team