github umbraco/Umbraco-CMS release-19.0.0-beta1
19.0.0-beta1

latest release: release-13.16.4
pre-release5 hours ago

Welcome to the first beta of Umbraco 19. The highlights of this release are:

  • Built on .NET 11: Umbraco now runs on Microsoft's newest version of .NET and opts in to .NET's new runtime async. If you run into any problems with runtime async during the beta, please let us know.
  • Reusable content in every block editor: content from the Library can be used in Block List, Block Grid, Single Block and the Rich Text Editor. Change it once and every page that uses it updates.
  • Search in core: the search abstraction introduced as a package for Umbraco 17 and 18 moves into core and becomes the single search layer for the backoffice, the Delivery API and templates. Examine is the default provider and can be swapped for another.
  • Better control of content variants: on multilingual sites, you can set per user group who may edit content shared across all languages. For personalization, segment content now travels with its language version and is validated when you publish.
  • Document Blueprints in the Library: Blueprints move from Settings to the Library, where they get folders, permissions, and rules for which document types can use them.

Before upgrading, please review the pre-release guide, requirements and the breaking changes.

What's Changed

๐Ÿ™Œ Notable Changes

  • Global Elements: Reusable Content of Blocks by @kjac in #22448
  • Authentication: Cookie-based authentication for the backoffice by @iOvergaard in #23484
  • Search abstractions in core by @Zeegaan in #23321
  • Build: Opt in to .NET 11 runtime async by @AndyButland in #24109
  • Document Blueprints: Move from the Settings section to the Library section by @lauraneto in #23905
  • Document Blueprints: Scope blueprint management per user group and user by @lauraneto in #23906
  • Search: Library element search index by @Zeegaan in #24017
  • Property Editors: Treat a configured minimum item count as a floor only once items are added, not as implying mandatory (closes #23486) by @AndyButland in #23693

๐Ÿ’ฅ Breaking Changes

  • Imaging: Upgrade ImageSharp to v4 (keep v2 as a supported option) by @AndyButland in #23334
  • Developer Experience: Reorganize launchSettings.json profiles section by @mistyn8 in #22427
  • Auth: Leverage the default backoffice auth cookie to view trashed media by @kjac in #23616
  • Partial View: entry point 'Umb.EntryPoint.Partial View' renamed to 'Umb.EntryPoint.PartialView' by @nielslyngsoe in #23634
  • Auth: Reuse the backoffice auth cookie to authorize preview by @kjac in #23698
  • Database: Remove the connect-timeout fallback for the command timeout by @AndyButland in #23834
  • Property Value Converters: Shadow default converters instead of removing or excluding them by @ronaldbarendse in #23849
  • Tiptap RTE: Adds support for Reusable Content of Blocks by @leekelleher in #23195
  • Migrations: Honour pre-fetched column information in AsyncMigrationBase column helpers by @ronaldbarendse in #23984
  • Code Tidy: Remove obsolete code and action TODOs scheduled for Umbraco 19 by @AndyButland in #24015
  • Variation: Rethink the segment model by @kjac in #23060
  • Property Editors: Remove configuration-driven typed models and deprecate the Multi Node Tree Picker by @AndyButland in #23853
  • Dependencies: Update to .NET 11 RC 1 by @AndyButland in #23955
  • ModelsBuilder: Default to a models mode that needs no optional package by @AndyButland in #23756
  • Permissions: Add explicit group level permissions to edit culture invariant (shared) properties for culture variant content by @kjac in #24022
  • Code Tidy: Remove further obsolete code and action TODOs scheduled for Umbraco 19 by @AndyButland in #24177
  • Document Blueprints: Constrain which document types a blueprint may be created for by @lauraneto in #23908
  • Deprecations: Client-side removal of v19 deprecated code by @leekelleher in #24189
  • Segments: Abstract Workspace Variant Options for extensibility by @nielslyngsoe in #24222
  • Property Editors: Use range property editor for min/max configuration (closes #16444, #17509) by @AndyButland in #23470
  • Code Tidy: Remove remaining obsolete code and action TODOs scheduled for Umbraco 19 by @AndyButland in #24285
  • Segments: Enable segment variance for Elements by @kjac in #24104
  • Publishing: Scheduled publishing should respect invariant-for-variant access at user group level by @kjac in #24314
  • Elements: Contextualize variant blocks rendering for invariant content by @kjac in #22790

๐Ÿ“ฆ Dependencies

  • Dependencies: Bumps @umbraco-ui/uui from 2.1.0 to 2.1.1 by @iOvergaard in #24154
  • Dependencies: Update .NET 11 SDK and Microsoft/System packages to RC2 by @AndyButland in #24214
  • Dependencies: Upgrade to Examine 4 final by @kjac in #23758
  • Dependencies: Update NuGet packages to latest minor and patch versions by @AndyButland in #24161
  • Dependencies: Update NuGet packages to latest minor and patch versions by @AndyButland in #24233
  • Dependencies: Update NuGet packages to latest minor and patch versions by @AndyButland in #24232
  • Dependencies: Update NuGet packages to latest minor and patch versions and remove obsolete transitive pins by @AndyButland in #24282
  • Dependencies: Update to .NET 11 RC3 by @AndyButland in #24352

๐Ÿ”’ Security

๐Ÿš€ New Features

  • Tiptap RTE: Show a name label and reference icon on Block entries by @leekelleher in #23872
  • Search: Export an alias constant for the index provider name condition by @iOvergaard in #24005
  • Relations: Reference awareness for trash, delete, and publish flows by @leekelleher in #23625
  • Media: Show media type picker when dropping multiple files (closes #24196) by @andreaslborg in #24197
  • Rendering: Add identity root tracking by @kjac in #23753
  • Search: Deffered index build by @Zeegaan in #23769
  • Auth: Refresh the backoffice session on activity by @kjac in #23791
  • Search: Implement indexing of reusable blocks by @Zeegaan in #23830
  • Icons: add custom unlink icon + general icons update by @nielslyngsoe in #23874
  • Reference: new purple color by @nielslyngsoe in #23623
  • Members: Add entityItemRef for Member Group picker by @leekelleher in #23973
  • Search: Merge values from different content indexers by @kjac in #23989
  • Authentication: Let Management API endpoints decide their no-auth handling by @kjac in #24120
  • Scheduled Publishing: Schedule all selected languages at once by @AndyButland in #23375
  • Block Editors: Make Single Block and Block Editor interchangeable by @kjac in #24144
  • Elements: Send Server Events for Elements and Element containers by @leekelleher in #24171
  • Document Blueprints: Choose a destination folder when creating a blueprint from a document by @lauraneto in #23907
  • Search: Add file-to-text indexing extension by @kjac in #24080
  • Log Viewer: Add copy button to log entries by @AleksandrRiabov in #24209
  • Folders: Add support for moving folders in the Document Type, Media Type, Member Type, Data Type and Document Blueprint trees (closes #9754) by @AndyButland in #23637
  • Block Editors: Show Library Element states on block entries by @leekelleher in #24242
  • Block Editors: Display Library Element's name and keep it in sync when the Element is updated by @leekelleher in #24221
  • Users: Show document blueprint access the same way as the other start nodes in the user access overview by @lauraneto in #24140
  • Block Editors: Add Library action to the Create bar by @leekelleher in #24248
  • Documents: Awareness when publishing references unpublished Elements by @leekelleher in #23665
  • Search: Index external members in the member indexes by @Zeegaan in #24269
  • Search: Index external block elements and reindex referencing documents on element change by @lauraneto in #23271

๐Ÿšค Performance

๐Ÿ› Bug Fixes

  • Block Editors: Hide "Transfer to Library" action when not allowed by @leekelleher in #23267
  • Block Editors: Inline Editing mode, use workspace modal for Library Elements by @leekelleher in #23186
  • Search: Fix culture-dependent decimal facet parsing and integration tests failing on SQL Server (closes #23783) by @AndyButland in #23800
  • Scoping: Explicitly complete scopes that write, take write locks or publish notifications by @ronaldbarendse in #23845
  • Rich Text: Tolerate a new block layout data-key attribute in server-side markup parsing by @leekelleher in #23870
  • Extend frontend timer on http requests by @iOvergaard in #23808
  • Auth: Fix 2FA challenge for external login providers by @kjac in #23840
  • Pickers: Show umb-entity-frame border on selected referenced items by @leekelleher in #23972
  • Search: Actually index variant blocklist by @kjac in #23990
  • Search: Render the index detail box label as its headline by @iOvergaard in #24013
  • Block Grid: Keep column span of external content blocks on load by @leekelleher in #24056
  • Segments: Include segment values in validation when publishing by @kjac in #24099
  • Public Access: Link member groups from the dialog and stop single-item pickers from being sortable (closes #23902) by @AndyButland in #24135
  • Documents: Create a deterministic property output (closes #23526, #23717) by @kjac in #23938
  • Password reset: Show a friendly message when the reset email cannot be sent by @AndyButland in #24042
  • Profiling: Read debug mode from the server rather than hardcoding it (closes #23609) by @AndyButland in #23646
  • User Groups: Page through all User Groups in the picker rather than stopping at the first 100 (closes #24027) by @AndyButland in #24136
  • Detail Request Manager: Return the saved item after an update instead of a stale cached copy by @iOvergaard in #24142
  • Detail Request Manager: Pass the create and update request types in the right order by @iOvergaard in #24147
  • Content Types: Refresh composing types when a property is added to a composition (closes #24117) by @AndyButland in #24126
  • Password reset: Report an unconfigured application URL before the user lookup and always apply the minimum response time by @iOvergaard in #24152
  • Validation: Render validation messages through sanitizeHTML, and use the backoffice message element for Block Grid areas by @iOvergaard in #24148
  • Management API: Serve the data cache to consumers constructed mid-session by @iOvergaard in #23788
  • Notifications: Show an error when a notification handler cancels an operation without a message by @iOvergaard in #24169
  • Bulk actions: Do not announce a failed action as executed, allowing problems with single-item bulk operations to be reported (closes #23930) by @AndyButland in #23933
  • Extensions: Run user entry points only after the signed-in user has loaded by @iOvergaard in #24167
  • Documents: Show an error notification when moving a document fails by @iOvergaard in #24172
  • Notifications: Resolve onClose when the notification is dismissed or times out by @iOvergaard in #24166
  • Resources: Report a request aborted by a timeout signal as a cancellation by @iOvergaard in #24165
  • Resources: Let the UmbError type guards accept null and undefined by @iOvergaard in #24178
  • Block Editors: Ignore the order of block values when detecting unpublished changes (closes #23526) by @kjac in #24164
  • Languages: Remove pending content schedules when deleting a language (closes #24183) by @AndyButland in #24185
  • Rollback: List document versions for culture-invariant documents that have segment variants (closes #23590) by @AndyButland in #23675
  • Search: Handle deletion of element types by @Zeegaan in #24094
  • Search: Treat missing range facet bounds as unbounded by @kjac in #24216
  • URL Aliases: Ignore aliases of unpublished documents (cherry-pick #23967) by @AndyButland in #24215
  • Data access: Fixes infinite loop in SqlServerSyntaxProvider that can hang the site by @zpqrtbnk in #24226
  • Log Viewer: Make plain-text search case-insensitive by @AleksandrRiabov in #24208
  • Authentication: Compress the back-office authentication ticket to keep the auth cookie within request size limits (closes #23810, #23875, #24170) by @AndyButland in #23841
  • Block Editors: Hide Disconnect from Library on unsupported blocks by @leekelleher in #24241
  • Block Editors: Keep the content key of external content when pasting a block by @leekelleher in #24180
  • Tiptap RTE: Keep the block layout key in markup in sync when cloning blocks by @leekelleher in #24181
  • OpenAPI: Apply backoffice security requirements to operations mapped to a document at runtime (closes #24107) by @lauraneto in #24220
  • Block Editors: Transfer to Library: Check permissions and languages, and publish Element on transfer by @leekelleher in #24194
  • Content Workspaces: Only redirect stale variant URLs for the editor who changes the variance in the document type modal by @iOvergaard in #24251
  • Search: Show the name and icon of elements in the Search dashboard by @Zeegaan in #24275
  • Extension API: Make the onUnload export of entry point modules optional by @iOvergaard in #24239
  • Users: Return 403 instead of 401 when a user or user group save is refused by @lauraneto in #24270
  • Segment: data merge accepts any segmented values by @nielslyngsoe in #24286
  • Rich Text Editor: Render every block when the markup contains more than one (closes #24320) by @AndyButland in #24327
  • Search: Track indexes that need rebuild at startup by @Zeegaan in #24338
  • SQLite: Take write locks before reading in post-commit relation handlers to prevent trash and create hangs (closes #24322) by @AndyButland in #24332
  • Auth: Follow redirects in the API clients and recognise the login bounce by @iOvergaard in #24037
  • Members: Ignore stale async collection responses while filtering (closes #23914) by @andreaslborg in #23917
  • Published Cache: Cache nulls for keys the batched cold read-through gets nothing for (closes #24296) by @KDDJMuir in #24297

๐Ÿงช Testing

  • Tests: Use system paths in PhysicalFileSystemTreeService ancestor test by @andr317c in #24110
  • Build: Raise NUnit AssemblySelectLimit so integration test filters are honoured by @Zeegaan in #24106
  • Document Blueprints: Add acceptance tests for the Library move, start node access and destination folder by @lauraneto in #24021

๐Ÿ›ก๏ธ Code Quality, Documentation and Refactoring

  • Search: further restructure of search projects in core by @Zeegaan in #23911
  • Block Editors: Derive exposed/published state on the shared block entry context by @leekelleher in #23871
  • Chore: Refactor search constants to make migrations easier by @kjac in #24089
  • Block Editors: Extract a shared name-slot mixin for block ref/inline components by @leekelleher in #23999
  • Search: Add proper viewmodelling to controllers by @Zeegaan in #24119
  • Entity refs: Abstract shared entity frame into UmbEntityItemRefFrameMixin by @leekelleher in #24020
  • Invariant permissions: strengthen code flow by @nielslyngsoe in #24227

๐Ÿง‘โ€๐Ÿ’ป Developer Experience

  • Mocks: Add "Blocks: Reusable Content" mock data set by @leekelleher in #23428
  • Mocks: Add variant scenarios to the "Blocks: Reusable Content" mock data set by @leekelleher in #24043

New Contributors

Full Changelog: release-18.3.0-rc2...release-19.0.0-beta1

Don't miss a new Umbraco-CMS release

NewReleases is sending notifications on new releases.