What's Changed Since 17.6.0-rc
📦 Dependencies
🐛 Bug Fixes
Full Changelog: release-17.6.0-rc...release-17.6.0-rc2
What's Changed Since the Previous Version (17.5.3)
📦 Dependencies
🚀 New Features
- Components: adds
umb-entity-frame component + Storybook stories by @leekelleher in #22844
- UFM: Add
umbMemberName component (closes #22147) by @leekelleher in #23165
- Media: Add umb-media-thumbnail with configurable checkerboard background (closes #23177) by @iOvergaard in #23178
- Media picker: Allows cancellation of folder creation, and adds buttons for better accessibility (closes #20452) by @iOvergaard in #23276
- Property Editors: Add value summary extensions for collection views by @nielslyngsoe in #23027
- Management API: Add endpoints to sort the children of a document or media item by a system field by @AndyButland in #23077
- Scheduled publishing: Add configurable period and optional clock-aligned scheduling by @AndyButland in #23127
- Media: Add support for Media URL providers with cache busting (Closes #23282) by @kjac in #23327
🚤 Performance
- Performance: Coalesce JavaScript chunks around the Backoffice to reduce the number of requests by @iOvergaard in #22896
- Performance: Embed package root manifests into umbraco-package.ts to reduce startup requests by @madsrasmussen in #22957
- Performance: Embed implementations directly in core manifests to reduce startup network requests by @madsrasmussen in #22944
- Performance: Parallelize independent boot API requests (server status/config + public extensions) by @iOvergaard in #23020
- Performance: Load stylesheets parallel to extensions in Tiptap by @nielslyngsoe in #23024
- Performance: Coalesce concurrent tree data requests (Management API client) by @iOvergaard in #23021
- Performance: Add index on
umbracoContent.contentTypeId by @AndyButland in #23328
- Performance: Batch the content cache delete on structural content type changes by @AndyButland in #23329
- Performance: Skip the content cache rebuild when a document type property is removed by @AndyButland in #23330
- Performance: Avoid heap allocations when converting between int & Guid by @Henr1k80 in #23389
- Children/Descendants: improve traversal performance (closes #22646) by @AndyButland in #22742
- Media: Port Children/Descendants traversal optimisations to media (#22742 follow-up) by @AndyButland in #23356
- Examine: Stream value sets to a single index during rebuild to reduce reindex peak memory by @AndyButland in #23150
- Caching: Add an optional bounded, limit to the published-content (L0) cache by @AndyButland in #23158
- Cache: Add scope-level cache version tier to reduce DB hits in bulk operations by @nikolajlauridsen in #22563
- Backoffice: Add Cache-Control headers to cache-busted backoffice assets (AB#68478) by @iOvergaard in #22951
- Request Logging: Avoid forcing a session store load when resolving the session id for logging (closes #23082) by @AndyButland in #23083
- Document URLs: Retrieve only the current culture's URL for the Info workspace links panel (closes #23196) by @AndyButland in #23265
🌈 Accessibility Improvements
- Accessibility: Added missing labels to code block copy button and embedded media URL input by @andreaslborg in #22825
- Accessibility: Added missing labels to webhook details and headers by @andreaslborg in #22918
- Image Cropper: Improve contrast of append label in crop options editor (closes #22878) by @andreaslborg in #22917
🐛 Bug Fixes
- Languages: Page through to load all configured languages by @AndyButland in #22765
- Repositories: Batch WHERE IN queries to avoid SQL Server 2100-parameter limit by @AndyButland in #22987
- Documents: Alias
DocumentVariantStateModel API model for backoffice client by @leekelleher in #22716
- Tiptap RTE: Ignore no-op transactions in onUpdate to prevent phantom dirty state (closes #22767) by @AndyButland in #22781
- Distributed background jobs: Improve gracefull shutdown behaviour by @Migaroez in #22796
- Content: Ensure correct variant change tracking when unpublishing variant content by @kjac in #22799
- Sort Children: Show loading state on Sort button (closes #22651) by @AndyButland in #22813
- SignalR: Mark
ServerEventSender as a distributed cache notification handler by @ronaldbarendse in #22818
- Backoffice: Preserve user-supplied property editor UI group names (closes #22189) by @AndyButland in #22196
- Core: Preserve path case in ShadowFileSystem by @nul800sebastiaan in #22838
- Log Viewer: Updated the saved log viewer searches for new installs to reference
Umbraco.Cms instead of Umbraco.Core. by @AndyButland in #22843
- Migrations: Add auto upgrade coordination for load-balanced setups by @nikolajlauridsen in #22815
- Blueprints: Fix UdiEntityTypeHelper.ToUmbracoObjectType() for document blueprint containers by @ronaldbarendse in #22875
- Redirect URL Tracker: Remove ability to toggle from the UI by @AndyButland in #22830
- Log Viewer: Defensively handle corrupt log files (closes #22820) by @AndyButland in #22826
- Content Editing: Fix save composition values on invariant content and save of default segment (closes #22800, #22865) by @AndyButland in #22846
- Block Grid: Fix inline create button width not updating on workspace resize (closes #22527) by @engijlr in #22928
- Background Jobs: Rewrite
RecurringHostedServiceBase with SemaphoreSlim and add signalling support by @ronaldbarendse in #22331
- Migrations: Append data-anchor value to href when missing in local link migration (closes #22860) by @AndyButland in #22936
- Body Layout: Replace overflow: auto with uui-scroll-container by @engijlr in #22950
- Management API: ensure the order from the search endpoints taking a collection of keys is preserved by @NguyenThuyLan in #22973
- Backoffice search: Preserve Lucene score order through content-picker lookups (closes #22862) by @AndyButland in #22977
- Members: Default Approved to true when creating a member (closes #22991) by @AndyButland in #22993
- Migrations: Convert all sibling RTE blocks (closes #22979) by @AndyButland in #22980
- Sort Dialog: Show current language node names (closes #22872) by @AndyButland in #22948
- Backoffice: Hide "Edit permissions" button in create modals from users without Settings section access (closes #22981) by @AndyButland in #22984
- Content Type Editor: Fix empty Design tab when opened in a modal workspace (closes #22855) by @AndyButland in #22954
- Backoffice: Render $index in block detail overlay label (closes #21154) by @AndyButland in #22959
- References: Fix missing node name when content referenced by media or member (closes #22990) by @AndyButland in #22965
- Link Picker: Render picked content/media as non-interactive when their workspace URL can't be resolved (closes #22955) by @AndyButland in #22964
- EF Core: Retry transient SQLite lock errors during long-running operations (closes #22939) by @AndyButland in #22969
- Document Recycle Bin: Checks user permission for Document "Read" by @leekelleher in #23041
- Media: Restore friendly naming of uploaded media items (closes #22989) by @AndyButland in #22998
- Block Grid: Guard validator against torn-down manager on navigation by @leekelleher in #22852
- Menu Structure: Guard against use-after-destroy in async structure request by @leekelleher in #23055
- Background Jobs: Resolve server role so recurring jobs run when no application URL is configured by @AndyButland in #23033
- Data Types: Tolerate invalid configuration when determining the editor value storage type (closes #23057) by @AndyButland in #23058
- Runtime Cache: Fix
IAppPolicyCache.ClearByKey intermittently failing to clear cached items (closes #23064) by @AndyButland in #23068
- Published Cache: Fix multi-site domains falling back to the first root node after restart by @AndyButland in #23084
- Tags: Fix null reference error in tags input on render (closes #23044) by @AndyButland in #23049
- Backoffice Search: Batch the ancestors lookup for search results to avoid exceeding the maximum URL length (closes #23032) by @AndyButland in #23048
- Backoffice: Pre-expand tree to target entity when opening Duplicate and Move To modals (closes #22015) by @madsrasmussen in #23063
- Package migrations: Surface a failed unattended package migration as a boot failure instead of getting stuck on the upgrade screen by @AndyButland in #23114
- Content/Media: Reload content on Sort to avoid data loss with partially loaded entities (closes #23120) by @AndyButland in #23128
- Background Jobs: Recover cache-sync and server-touch jobs when a database call hangs (closes #23106) by @AndyButland in #23119
- User Groups: Clear the user group cache when a language is deleted (closes #23121) by @AndyButland in #23131
- Tiptap RTE: Fixes toolbar button active state not updating on collapsed-cursor mark toggle (closes #22907) by @rammi987 in #22929
- Tiptap: Preserve wrapping link when editing an image (closes #23013) by @AndyButland in #23019
- Cache: Populate the domain cache eagerly during start-up by @kjac in #23139
- Content & Media: Enforce content type filters and allowed children/root rules when validating a create by @AndyButland in #23163
- Block Workspace: Support variant properties and make '$settings' a key-value-object (Closes #23095) by @nielslyngsoe in #23123
- Block RTE: Implement unsupported block rendering (closes #23071) by @leekelleher in #23126
- Entity Data Picker: Implement interaction memory + sync picker memory across all picker inputs by
Note truncated.