Compare Releases
Contributors
Of the 156 bug fixes and feature additions after v17.6.2, up to (and including) 17.7.0, a total of 24 of them have been contributed by the community, by 16 unique contributors.
We're welcoming 4 brand new contributors who have made their first pull request for Umbraco-CMS. Welcome to the contributor club: Arnel Robles, Derek Noonan, jamie, Jorik van Veen 🏆
All community contributors to this release
Anders Bjerner1 PR
Andreas Lykke Borg2 PRs
Arnel Robles2 PRs
Asbjørn Riis-Knudsen2 PRs
Bjarne Fyrstenborg2 PRs
Chris Houston1 PR
Daniel Andersson1 PR
⭐
Derek Noonan1 PR
Dirk Seefeld1 PR
⭐
jamie1 PR
Johannes Lantz1 PR
⭐
Jorik van Veen1 PR
lumikrynd1 PR
Pasang Tamang1 PR
patrickdemooij95 PRs
Shekhar Tarare1 PR
⭐ = First pull request to Umbraco-CMS
Changes in v17.7.0
3 new features, 0 breaking changes, and 153 issues & tasks were implemented
Make sure to read the version specific upgrades notes for guidance.
Features
3
#23409
Extension API: Add userEntryPoint extension type (closes #19485)
#22817
Installer: Write connection string to the final available appsettings.*.json (closes #21833)
#21215
Bulk Actions: Show progress in a shared dialog for bulk publish, unpublish, delete, move & copy (closes #20797)
Issues & Tasks
153
#23761
Document Link Picker: Scope search results to the selected/inherited culture
#23759
Auth: Obsolete services already removed in V19
#23730
Published Cache: Stop writing unread member rows to the database cache (closes #23070)
#23727
OpenIddict: Compare ConsentType and ApplicationType only when the descriptor sets them (follow-up to #23599)
#23726
Block Grid: Fx clean up Blocks from Areas
#23721
Variant selector: avoid rendering fallback shortly
#23720
Block Rich Text Editor Impl.: cleanup & deprecate
#23716
TipTap RTE: Remove toolbar shadow before scroll (closes #23710)
#23715
oEmbed: Fix HttpClient initialization race in OEmbedProviderBase (closes #23697)
#23710
TipTap toolbar should not have a shadow until scrolled
#23709
Migrations: Don't rebuild the published cache after a failed migration plan (closes #23612)
#23707
Members: Indicate that withheld sensitive values exist instead of showing their defaults
#23704
Migrations: Resolve date default constraints by lookup rather than by convention (closes #23702)
#23702
Upgrade to v17 fails in `SetDateDefaultsToUtcNow` when a date default constraint has a non-canonical name or is missing
#23697
Potential HttpClient initialization race condition in OEmbedProviderBase?
#23692
Blocks: Inline editing hides the box if only a single box would be presented
#23691
Segments: Handle segment values for `IsPropertyValid`
#23686
Cleanup: refinement of cleanup localization
#23685
Management API: Add `hasChildren` to document and media collection responses
#23680
Dependencies: Update NuGet packages to latest minor and patch versions (v17)
#23673
Performance: Only load server information once when instantiating the backoffice
#23670
Tree: Avoid reloads on no-change config updates
#23669
Tiptap RTE: Fix table toolbar menu staying open after deleting table (closes #23658)
#23668
Content Workspace: get languages from context
#23658
TipTap Table dropdown misaligned after deletion of table
#23655
Authentication: Log silent auto-link failures in `BackOfficeSignInManager` and `MemberSignInManager` (closes #23632)
#23642
Document Tree: Add card and table views
#23632
AutoLinkAndSignInExternalAccount fails completely silently
#23622
Localization: Update Danish translations
#23621
Localization: Restore from recycle bin and image crops property editor
#23615
Navigation Cache: Change from `HashSet<T>` to `ConcurrentHashSet<T>` in `NavigationSnapshot` (closes #23577)
#23614
Documentation: Add a warning that discourages the use of `StripHtml` for XSS prevention
#23612
Upgrading from Umbraco 13.14 to 17.3.5 “LockObject with id=-344 does not exist"
#23611
Content type designer: add root property styles
#23610
Blocks: Inline Editing Context API Race Condition (Closes #22444)
#23606
Pickers: Show the number of selected items in the tree and collection item picker modals
#23605
Image Cropper: Fix button labels (closes #23604)
#23604
Crop Editor Save Button Label wrong
#23602
Migrations: Correct conversion of nested single block list values (for 17) (closes #23596)
#23599
OpenIddict: Prevent `ConcurrencyException` when several instances register the same application (closes #23544)
#23596
Blocks: Upgrade migration corrupts nested Single Block values inside Block List editors
#23593
Tree Item Picker: Make table rows and cards with children navigable in pickers during selection
#23587
Segments: Fix mandatory segment property validation (closes #23576)
#23586
Published cache: Populate the ID/key map from seeded and cached content (closes #23583)
#23584
Array State: support value to be undefined
#23583
Perf: Pre-populate `IdKeyMap` when IPublishedContent is loaded/created
#23578
Code Block: style update
#23577
Concurrent collection error when deleting content in a loop
#23576
Segment variant validation on publish fails when mandatory property has no segment-specific value (no fallback to invariant/base value)
#23571
Collections: Remember the view, filter, ordering and page of a collection (closes #22418)
#23567
Localization: Add missing Swedish translations
#23563
Tiptap RTE: Fix crash when content contains an embedded media node
#23562
Dependencies: Update Tiptap to 3.29.2
#23560
Preview: Add the CSP nonce to the injected preview badge script (closes #23530)
#23555
SignalR Events: Filter document and media notifications by the recipient's start-node access
#23554
Publishing: Save the document before publishing it with descendants (closes #14925)
#23552
Logging: Include the GUID key alongside the integer id in log messages (closes #23547)
#23547
Log messages show integer ID
#23544
Concurrent instances fail with ConcurrencyException registering the back-office OpenIddict application
#23543
Localization: Danish translation for BlockEditor confirmDeleteBlockTitle
#23542
Confirm Modal: Escaped special characters in item names
#23539
Basic Authentication: Allow preview requests from an authenticated back-office user (closes #23475)
#23538
Tiptap RTE: Prevent duplicate toolbar items when reordering a newly dragged item (closes #23524)
#23537
Cache rebuilds triggered per-migration during upgrade — intentional? (v13 to v17 Upgrade experience).
#23533
Migrations: Only rebuild the published cache for migration plans that request it (closes #23537)
#23530
Preview - cannot run with a nonce-based CSP using strict-dynamic
#23527
Block editors: Pair inner block values by block key when merging variant data (closes #23525)
#23525
Block editors: inner block values shift onto neighbouring blocks when saving a subset of variants
#23524
Duplicate entries within UDA file
#23521
Imaging: Enforce max width/height when HMAC is configured
#23519
Navigation Cache: Prevent concurrent alias map corruption (closes #23518)
#23518
fix(navigation): prevent concurrent alias map corruption
#23511
Block Grid: Use the content element type name in the invalid-location tag (closes #23092)
#23508
Code Quality: Resolved warnings
#23507
Tiptap RTE: Retain media folder context across picker modals (closes #23367)
#23506
Micro-optimisations: Delivery API node parse improvement
#23501
Login: Remove @hey-api/openapi-ts from the login project (closes #23500)
#23500
Login: Backport removal of @hey-api/openapi-ts from the login project to v17
#23499
Management API: Generate valid operation IDs for minor API versions, and upgrade @hey-api/openapi-ts
#23497
Tiptap RTE: Load configured stylesheets regardless of extension styles (closes #21819)
#23496
Micro-optimisation: Avoid `Activator.CreateInstance` when creating `MediaWithCrops`
#23493
Content Types: Fix `MovePropertyType` orphaning the property when moving it to no group (closes #23481)
#23489
Tiptap RTE: Preserve block-level elements nested in `<div>` containers (closes #22654)
#23488
Tiptap RTE: Render `umbLink` via `MarkView` to stop `data-router-slot` attribute leaking into stored HTML
#23483
Micro-optimisations: Improve memory usage for `ReplaceMany` string extension method
#23481
IContentTypeBase.MovePropertyType(alias, null) orphans the property instead of moving it to "generic properties"
#23479
Localization: Fix punctuation in resetFocalPoint string
#23475
Content creation and edits fail to save, publish or preview when Basic Authentication is enabled
#23474
Micro-optimisations: Avoid redundant allocations in file name and log filter
#23471
Micro-optimisation: Speed & memory improvements for `CompositeStringStringKey`
#23460
Log Viewer: Send log viewer date range as local-day instants and honour time portions (closes #14710)
#23456
Routing: Add close button to access denied route when displayed in modal (closes #23451)
#23451
Users stuck in “Access denied” modal when opening an item they don't have access to from a picker
#23450
Preview: Refresh external preview tabs and their token on repeat preview (closes #21820)
#23449
Block Workspace: Guard block label render against a destroyed workspace (closes #22745)
#23448
Recycle bin: Support restoring a document or media item without its descendants at the service level (closes #23417)
#23447
Media: Narrow sibling name-uniqueness fetch so writes scale on large libraries (closes #23446)
#23446
Media library write operations (upload, folder creation) become extremely slow with large item counts
#23445
Content Types: Fix stale published cache when property variance changes without content type variance changing
#23439
Backoffice: Tidy up leftover `elementName` constants
#23433
Content Types: Allow editing compositions on document types that are inherited from (closes #23103)
#23426
Backoffice: Support running in insecure browser contexts (plain HTTP on IP addresses)
#23425
Normalize culture code casing in SetCultureInfo and SetPublishInfo
#23424
Scoping: Restore `LogIncompletedScopes` warning for uncompleted child scopes (closes #15243)
#23423
Logging: Prevent session-id log enricher recursion / stack overflow (closes #16744)
#23421
Maindom: Broadcast cache instructions without maindom (closes #23219)
#23417
Recycle bin restore always cascades to descendants: no option to restore a single node
#23416
Config Repositories: Defer store-backed config observables via a shared base so consumers need not await initialized
#23415
Users: Validate avatar uploads against configured image file types
#23413
Imaging: Respect `ImageFileTypes` configuration in management API factories
#23408
Current User: Re-fetch the current user when authorization is regained after a session timeout
#23406
Collection Views: Accumulate table selection across pages (closes #23403)
#23404
Migrations: Migrate settings values for block editors when a block has no content values (closes #23392)
#23403
Table collection view: 'Select all' replaces selection instead of accumulating across pages
#23395
Extension API: Guard against a cleared manifest when an extension is unregistered mid-initialization (closes #23384)
#23392
Block Grid Settings values (cssClasses/customCSS) not migrated to new `values` array after 13→17 upgrade
#23391
Member Types: Fixed issue with missing icon for workspace design view
#23385
Content Workspaces: Redirect stale variant workspace URLs when the content type variance changes
#23384
Fresh install 17 - TypeError: Cannot read properties of undefined (reading ‘api’)
#23383
Block Editors: Preserve published state of property-less blocks on upgrade (closes #23379)
#23379
MIGRATE V13 -> V17: Block without properties in RTE doesn't publish
#23373
Date Time Picker: Honour min/max config on the time-zone-aware editors (closes #23372)
#23372
DateTimeWithTimeZonePicker does not handle min/max config
#23367
Link and media picker loses media folder context in RTE in V17
#23358
Content & Media: Batch cold read-through for Children()/Descendants() traversal
#23315
IElementContainerPermissionService replacement not reflected in backoffice UI action visibility
#23245
HTML Utilities: Ensure that space is added between all elements in `StripHtmlTags`
#23244
StripHtml method removes space after elements, resulting in words getting combined
#23219
Load balancing: publisher silently stops writing cache instructions after failing to acquire MainDom (cached permanently, needs restart)
#23116
Media Picker: Show ancestor breadcrumb path in search results table view (closes #23101)
#23103
Compositions are locked on a document type when other document types inherit from it
#23101
Media Picker search - add disambiguation of search results, particularly for folders!
#23092
Error label at block doesn't seem to consider UFM
#23070
Option to disable Members NuCache
#22861
Extension Insights: Migrate Extension collection table view to table kind
#22858
Webhook Delivery: Migrate custom table collection view to generic table kind
#22745
Block workspace: use-after-destroy race condition in async label rendering (getIsNew / getCurrent crash)
#22739
Media: drag n drop CTA for Collections and Pickers (Closes #18332)
#22654
RTE content source structure altered after upgrade from v13 to v17
#22519
Backoffice Performance: Defer decorator controller creation to hostConnected
#22444
Newly added block renders empty until collapse/expand in nested block list
#22401
Acceptance Tests: Export `UiBaseLocators` in `acceptance-test-helpers`
#21848
Fix: Block thumbnail picker restricted to image files
#21820
Preview does not refresh the page for custom UrlProvider
#21819
Tiptap with minimal configuration not loading the css files
#20797
Bulk publishing in collection doesn't show any loading indicator while in progress
#20574
Block thumbnail picker should be restricted to image files
#19485
v15/v16: Race conditions after UMB_AUTH_CONTEXT -> isAuthorized and private manifests
#18332
Drag and Drop hint in a Media Folder
#16744
Serilog Stackoverflow exception
#15243
LogIncompletedScopes was removed but still documented
#14925
Save & Publish with descendants does not save or publish the actual root node
#14710
Log Viewer date selector doesn't work correctly due to browser / server date difference.