Skip to content

Conversation

@AndyButland
Copy link
Contributor

@AndyButland AndyButland commented Aug 11, 2025

Prerequisites

  • I have added steps to test this contribution in the description below

Relates to discussion in #18892 around boot time.

Description

When Umbraco boots it will seed the hybrid cache based on configured settings. It currently does this via the hybrid cache's GetOrCreate method, which means that on start up, when the memory cache is empty, each seeded item makes a database request to get a single value back. This can add up to a lot of SQL calls if a large number of items are seeded.

This PR optimizes this to handle the seeding in batches of 100. For each batch it'll check for each if they are available in the cache. For all not found it'll make one database request to get all the documents or media to cache, and then cache them one at a time. In doing so this we change to fewer, larger database calls from many small ones.

Support for "Exists" in Hybrid Cache

Note that the hybrid cache API doesn't support an "Exists" check currently, but based on the discussion here it looks to be possible to create one. I've used this code to add an ExistsAsync extension method. I've done this a little differently though. The shared code worked by setting flags on the HybridCacheEntryOptions to disable writing of the cache, which had this downside:

... since we are disabling writing on L1, if the value is present in L2 we are not taking it in L1 for the next access, meaning we'll go to L2 every single time...

Which isn't what we want for seeding. By seeding we are saying we do want these values in memory, so in the L1 cache. As such I've modified the code such that, if we don't find a value, we'll write a "null" but then immediately remove it again. That seems right for our needs where we aren't expecting to cache null values for documents and media.

Performance

To test this adds benefit I've created an Umbraco setup with increasing number of content nodes selected for seeding, and look to get positive results:

Number of Documents Seeded Time Taken (Before) Time Taken (After)
500 928 ms 260 ms
1000 1629 ms 328 ms
2000 3218 ms 514 ms

Testing

Once Umbraco has started up with seeding, verify pages load without SQL requests using MiniProfiler.

@AndyButland AndyButland changed the title Optimize document and media seeding by looking up from database in batches WIP: Optimize document and media seeding by looking up from database in batches Aug 11, 2025
@AndyButland AndyButland changed the title WIP: Optimize document and media seeding by looking up from database in batches Optimize document and media seeding by looking up from database in batches Aug 12, 2025
@AndyButland AndyButland marked this pull request as ready for review August 12, 2025 06:43
Copilot AI review requested due to automatic review settings August 12, 2025 06:43
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR optimizes document and media seeding by replacing single database requests with batch processing to improve Umbraco's boot time performance. The optimization reduces SQL calls from many individual requests to fewer, larger batches of 100 items.

  • Implements batch processing for cache seeding with 100-item groups
  • Adds HybridCache extension methods for existence checking and value retrieval
  • Introduces bulk database methods for fetching multiple content/media sources

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
HybridCacheExtensions.cs New extension methods providing ExistsAsync and TryGetValueAsync functionality for batch operations
HybridCacheExtensionsTests.cs Comprehensive test coverage for the new extension methods
DocumentCacheService.cs Refactored seeding logic to use batch processing and existence checking
MediaCacheService.cs Applied similar batch optimization as document cache service
IDatabaseCacheRepository.cs Added interface methods for bulk content/media retrieval
DatabaseCacheRepository.cs Implemented bulk database operations for efficient batch queries
DocumentHybridCacheMockTests.cs Updated tests to reflect new batch processing behavior
DocumentBreadthFirstKeyProviderTests.cs Minor formatting change adding blank line

@AndyButland AndyButland requested a review from Zeegaan August 12, 2025 07:24
Copy link
Member

@Zeegaan Zeegaan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good 🚀

@Zeegaan Zeegaan merged commit 4efe8f5 into main Aug 12, 2025
24 of 25 checks passed
@Zeegaan Zeegaan deleted the v16/improvement/optimize-document-and-media-seeding branch August 12, 2025 09:58
@enkelmedia
Copy link
Contributor

@AndyButland Seems like a great improvement! Did you pick 100 just as a "random number" or why was that number picked? I'm wondering if it could be beneficial to be able to change this number or if it could be calculated based on the seed size in any way.

We have some sites where we will have to seed over 20k nodes and (guessing) that it might be faster if we loaded them in batches of 1000 or something. Did you play with different batch sizes?

@Zeegaan
Copy link
Member

Zeegaan commented Aug 12, 2025

Good point @enkelmedia , We already had a similar concept with the NuCacheSettings.SqlPageSize, so we could apply the same concept here 😁

@AndyButland
Copy link
Contributor Author

Yes, good idea to have some flexibility here. I've proposed moving this to configuration in #19894

alexsee pushed a commit to alexsee/umbraco-container that referenced this pull request Sep 8, 2025
Updated [Umbraco.Cms](https://github.com/umbraco/Umbraco-CMS) from
16.1.1 to 16.2.0.

<details>
<summary>Release notes</summary>

_Sourced from [Umbraco.Cms's
releases](https://github.com/umbraco/Umbraco-CMS/releases)._

## 16.2.0

<!-- Release notes generated using configuration in .github/release.yml
at release-16.2.0 -->

## What's Changed
### 🙌 Notable Changes
* UFM: JavaScript-like Expressions by @​leekelleher in
umbraco/Umbraco-CMS#19685
* Make logging more friendly for docker by @​Migaroez in
umbraco/Umbraco-CMS#19818
* Adds abstraction around boot time checks for database availability by
@​AndyButland in umbraco/Umbraco-CMS#19848
* Optimize document and media seeding by looking up from database in
batches by @​AndyButland in
umbraco/Umbraco-CMS#19890
* Added configuration option UseStrictDomainMatching, which allows
control over whether content is routed without a matching domain by
@​AndyButland in umbraco/Umbraco-CMS#19815
### 📦 Dependencies
* Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#19819
* Tiptap RTE: Upgraded to latest v2.x by @​leekelleher in
umbraco/Umbraco-CMS#19869
* build(deps): bump @​umbraco-ui/uui to 1.15.0 by @​iOvergaard in
umbraco/Umbraco-CMS#19981
### 🚀 New Features
* V16: Siblings endpoints by @​nikolajlauridsen in
umbraco/Umbraco-CMS#19657
* UFM: Adds `markedExtension` extension-type by @​leekelleher in
umbraco/Umbraco-CMS#19684
* UFM: Make Block Settings data available by @​leekelleher in
umbraco/Umbraco-CMS#19686
* Adds background worker to check timeout state by @​iOvergaard in
umbraco/Umbraco-CMS#19702
* V16: Build Backoffice externals with Vite by @​iOvergaard in
umbraco/Umbraco-CMS#19716
* Tiptap RTE: Custom CSS Variables for min/max height/width by
@​leekelleher in umbraco/Umbraco-CMS#19841
* Provides an abstraction for creating the JavaScriptEncoder used in
SystemTextConfigurationEditorJsonSerializer by @​AndyButland in
umbraco/Umbraco-CMS#19849
* Tiptap RTE: Refactor Table menus to use `menu` extension-type by
@​leekelleher in umbraco/Umbraco-CMS#19789
### 🐛 Bug Fixes
* Amend accessibility modifiers on file upload property editor
components to support extension by @​PeterKvayt in
umbraco/Umbraco-CMS#19643
* Docs: Tree example by @​madsrasmussen in
umbraco/Umbraco-CMS#19624
* Hide Document/Media Collection Workspace View until the item is
created by @​madsrasmussen in
umbraco/Umbraco-CMS#19644
* Title returns "Server Error" in non-debug mode by @​PeterKvayt in
umbraco/Umbraco-CMS#19665
* Fix issue with preview in delivery API for MNTP property editor by
@​AndyButland in umbraco/Umbraco-CMS#19668
* Adds support for custom granular permissions when aggregating across
user groups by @​AndyButland in
umbraco/Umbraco-CMS#19660
* Fixes issues with creation of documents from blueprints that have
populated file upload properties by @​AndyButland in
umbraco/Umbraco-CMS#19655
* Clear member cache by older user name when member user name is updated
(16) by @​AndyButland in
umbraco/Umbraco-CMS#19690
* V16 QA Removed unused API acceptance tests by @​nhudinh0309 in
umbraco/Umbraco-CMS#19679
* V16 QA Added acceptance tests for granular document permission by
@​nhudinh0309 in umbraco/Umbraco-CMS#19546
* V16 QA Reverted npx command by @​nhudinh0309 in
umbraco/Umbraco-CMS#19699
* Fixes Block Catalogue Modal Filter by @​leekelleher in
umbraco/Umbraco-CMS#19700
* Fix issue forceHideContentEditorInOverlay not available in RTE by
@​NguyenThuyLan in umbraco/Umbraco-CMS#19698
* V16: Property editor file upload does not validate file types by
@​iOvergaard in umbraco/Umbraco-CMS#19714
* Fix failing integration tests in SQL Server by @​lauraneto in
umbraco/Umbraco-CMS#19725
* Populate name for content and media on URL picker if title is left
empty by @​AndyButland in
umbraco/Umbraco-CMS#19677
* Forward merge #​19720 to V16 by @​kjac in
umbraco/Umbraco-CMS#19735
* Include /.well-known/jwks in the paths covered by OpenIddict by @​kjac
in umbraco/Umbraco-CMS#19749
* Add flag to exclude trashed media by @​rammi987 in
umbraco/Umbraco-CMS#19746
* V16 Added acceptance tests for the regression issue #​16985 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19712
* V16 Added acceptance tests for the regression issue #​19529 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19713
* V16 QA Added acceptance tests for creating a document using blueprint
by @​nhudinh0309 in umbraco/Umbraco-CMS#19708
* Allow saving blueprints with validation errors by @​lauraneto in
umbraco/Umbraco-CMS#19748
* Make internal & private classes sealed where possible, to avoid code
for virtual dispatch by @​Henr1k80 in
umbraco/Umbraco-CMS#19719
* add missing translation for DA by @​rammi987 in
umbraco/Umbraco-CMS#19740
* Add a backing field for EditorUIAlias and track changes when its set.
by @​KevinJump in umbraco/Umbraco-CMS#19733
* Template with Block List field with Inline Editing Mode causes
Collection List View to shrink by @​NguyenThuyLan in
umbraco/Umbraco-CMS#19754
 ... (truncated)

## 16.2.0-rc2

<!-- Release notes generated using configuration in .github/release.yml
at release-16.2.0-rc2 -->

## What's Changed
### 📦 Dependencies
* build(deps): bump @​umbraco-ui/uui to 1.15.0 by @​iOvergaard in
umbraco/Umbraco-CMS#19981
### 🐛 Bug Fixes
* fix: pins the UmbracoExtension `@​hey-api/*` versions to that of the
Backoffice client by @​iOvergaard in
umbraco/Umbraco-CMS#20016
### ✍️ Documentation
* Chore: JSDocs for RTE CSS Props by @​leekelleher in
umbraco/Umbraco-CMS#20008


**Full Changelog**:
umbraco/Umbraco-CMS@release-16.2.0-rc...release-16.2.0-rc2

## 16.2.0-rc

<!-- Release notes generated using configuration in .github/release.yml
at release-16.2.0-rc -->

## What's Changed
### 🙌 Notable Changes
* UFM: JavaScript-like Expressions by @​leekelleher in
umbraco/Umbraco-CMS#19685
* Make logging more friendly for docker by @​Migaroez in
umbraco/Umbraco-CMS#19818
* Adds abstraction around boot time checks for database availability by
@​AndyButland in umbraco/Umbraco-CMS#19848
* Optimize document and media seeding by looking up from database in
batches by @​AndyButland in
umbraco/Umbraco-CMS#19890
* Added configuration option UseStrictDomainMatching, which allows
control over whether content is routed without a matching domain by
@​AndyButland in umbraco/Umbraco-CMS#19815
### 📦 Dependencies
* Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#19819
* Tiptap RTE: Upgraded to latest v2.x by @​leekelleher in
umbraco/Umbraco-CMS#19869
* build(deps): bump @​umbraco-ui/uui from 1.14.2 to 1.15.0-rc.0 by
@​iOvergaard in umbraco/Umbraco-CMS#19870
### 🚀 New Features
* V16: Siblings endpoints by @​nikolajlauridsen in
umbraco/Umbraco-CMS#19657
* UFM: Adds `markedExtension` extension-type by @​leekelleher in
umbraco/Umbraco-CMS#19684
* UFM: Make Block Settings data available by @​leekelleher in
umbraco/Umbraco-CMS#19686
* Adds background worker to check timeout state by @​iOvergaard in
umbraco/Umbraco-CMS#19702
* V16: Build Backoffice externals with Vite by @​iOvergaard in
umbraco/Umbraco-CMS#19716
* Tiptap RTE: Custom CSS Variables for min/max height/width by
@​leekelleher in umbraco/Umbraco-CMS#19841
* Provides an abstraction for creating the JavaScriptEncoder used in
SystemTextConfigurationEditorJsonSerializer by @​AndyButland in
umbraco/Umbraco-CMS#19849
* Tiptap RTE: Refactor Table menus to use `menu` extension-type by
@​leekelleher in umbraco/Umbraco-CMS#19789
### 🐛 Bug Fixes
* Amend accessibility modifiers on file upload property editor
components to support extension by @​PeterKvayt in
umbraco/Umbraco-CMS#19643
* Docs: Tree example by @​madsrasmussen in
umbraco/Umbraco-CMS#19624
* Hide Document/Media Collection Workspace View until the item is
created by @​madsrasmussen in
umbraco/Umbraco-CMS#19644
* Title returns "Server Error" in non-debug mode by @​PeterKvayt in
umbraco/Umbraco-CMS#19665
* Fix issue with preview in delivery API for MNTP property editor by
@​AndyButland in umbraco/Umbraco-CMS#19668
* Adds support for custom granular permissions when aggregating across
user groups by @​AndyButland in
umbraco/Umbraco-CMS#19660
* Fixes issues with creation of documents from blueprints that have
populated file upload properties by @​AndyButland in
umbraco/Umbraco-CMS#19655
* Clear member cache by older user name when member user name is updated
(16) by @​AndyButland in
umbraco/Umbraco-CMS#19690
* V16 QA Removed unused API acceptance tests by @​nhudinh0309 in
umbraco/Umbraco-CMS#19679
* V16 QA Added acceptance tests for granular document permission by
@​nhudinh0309 in umbraco/Umbraco-CMS#19546
* V16 QA Reverted npx command by @​nhudinh0309 in
umbraco/Umbraco-CMS#19699
* Fixes Block Catalogue Modal Filter by @​leekelleher in
umbraco/Umbraco-CMS#19700
* Fix issue forceHideContentEditorInOverlay not available in RTE by
@​NguyenThuyLan in umbraco/Umbraco-CMS#19698
* V16: Property editor file upload does not validate file types by
@​iOvergaard in umbraco/Umbraco-CMS#19714
* Fix failing integration tests in SQL Server by @​lauraneto in
umbraco/Umbraco-CMS#19725
* Populate name for content and media on URL picker if title is left
empty by @​AndyButland in
umbraco/Umbraco-CMS#19677
* Forward merge #​19720 to V16 by @​kjac in
umbraco/Umbraco-CMS#19735
* Include /.well-known/jwks in the paths covered by OpenIddict by @​kjac
in umbraco/Umbraco-CMS#19749
* Add flag to exclude trashed media by @​rammi987 in
umbraco/Umbraco-CMS#19746
* V16 Added acceptance tests for the regression issue #​16985 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19712
* V16 Added acceptance tests for the regression issue #​19529 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19713
* V16 QA Added acceptance tests for creating a document using blueprint
by @​nhudinh0309 in umbraco/Umbraco-CMS#19708
* Allow saving blueprints with validation errors by @​lauraneto in
umbraco/Umbraco-CMS#19748
* Make internal & private classes sealed where possible, to avoid code
for virtual dispatch by @​Henr1k80 in
umbraco/Umbraco-CMS#19719
* add missing translation for DA by @​rammi987 in
umbraco/Umbraco-CMS#19740
* Add a backing field for EditorUIAlias and track changes when its set.
by @​KevinJump in umbraco/Umbraco-CMS#19733
* Template with Block List field with Inline Editing Mode causes
Collection List View to shrink by @​NguyenThuyLan in
umbraco/Umbraco-CMS#19754
 ... (truncated)

Commits viewable in [compare
view](umbraco/Umbraco-CMS@release-16.1.1...release-16.2.0).
</details>

Updated
[Umbraco.Cms.Persistence.Sqlite](https://github.com/umbraco/Umbraco-CMS)
from 16.1.1 to 16.2.0.

<details>
<summary>Release notes</summary>

_Sourced from [Umbraco.Cms.Persistence.Sqlite's
releases](https://github.com/umbraco/Umbraco-CMS/releases)._

## 16.2.0

<!-- Release notes generated using configuration in .github/release.yml
at release-16.2.0 -->

## What's Changed
### 🙌 Notable Changes
* UFM: JavaScript-like Expressions by @​leekelleher in
umbraco/Umbraco-CMS#19685
* Make logging more friendly for docker by @​Migaroez in
umbraco/Umbraco-CMS#19818
* Adds abstraction around boot time checks for database availability by
@​AndyButland in umbraco/Umbraco-CMS#19848
* Optimize document and media seeding by looking up from database in
batches by @​AndyButland in
umbraco/Umbraco-CMS#19890
* Added configuration option UseStrictDomainMatching, which allows
control over whether content is routed without a matching domain by
@​AndyButland in umbraco/Umbraco-CMS#19815
### 📦 Dependencies
* Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#19819
* Tiptap RTE: Upgraded to latest v2.x by @​leekelleher in
umbraco/Umbraco-CMS#19869
* build(deps): bump @​umbraco-ui/uui to 1.15.0 by @​iOvergaard in
umbraco/Umbraco-CMS#19981
### 🚀 New Features
* V16: Siblings endpoints by @​nikolajlauridsen in
umbraco/Umbraco-CMS#19657
* UFM: Adds `markedExtension` extension-type by @​leekelleher in
umbraco/Umbraco-CMS#19684
* UFM: Make Block Settings data available by @​leekelleher in
umbraco/Umbraco-CMS#19686
* Adds background worker to check timeout state by @​iOvergaard in
umbraco/Umbraco-CMS#19702
* V16: Build Backoffice externals with Vite by @​iOvergaard in
umbraco/Umbraco-CMS#19716
* Tiptap RTE: Custom CSS Variables for min/max height/width by
@​leekelleher in umbraco/Umbraco-CMS#19841
* Provides an abstraction for creating the JavaScriptEncoder used in
SystemTextConfigurationEditorJsonSerializer by @​AndyButland in
umbraco/Umbraco-CMS#19849
* Tiptap RTE: Refactor Table menus to use `menu` extension-type by
@​leekelleher in umbraco/Umbraco-CMS#19789
### 🐛 Bug Fixes
* Amend accessibility modifiers on file upload property editor
components to support extension by @​PeterKvayt in
umbraco/Umbraco-CMS#19643
* Docs: Tree example by @​madsrasmussen in
umbraco/Umbraco-CMS#19624
* Hide Document/Media Collection Workspace View until the item is
created by @​madsrasmussen in
umbraco/Umbraco-CMS#19644
* Title returns "Server Error" in non-debug mode by @​PeterKvayt in
umbraco/Umbraco-CMS#19665
* Fix issue with preview in delivery API for MNTP property editor by
@​AndyButland in umbraco/Umbraco-CMS#19668
* Adds support for custom granular permissions when aggregating across
user groups by @​AndyButland in
umbraco/Umbraco-CMS#19660
* Fixes issues with creation of documents from blueprints that have
populated file upload properties by @​AndyButland in
umbraco/Umbraco-CMS#19655
* Clear member cache by older user name when member user name is updated
(16) by @​AndyButland in
umbraco/Umbraco-CMS#19690
* V16 QA Removed unused API acceptance tests by @​nhudinh0309 in
umbraco/Umbraco-CMS#19679
* V16 QA Added acceptance tests for granular document permission by
@​nhudinh0309 in umbraco/Umbraco-CMS#19546
* V16 QA Reverted npx command by @​nhudinh0309 in
umbraco/Umbraco-CMS#19699
* Fixes Block Catalogue Modal Filter by @​leekelleher in
umbraco/Umbraco-CMS#19700
* Fix issue forceHideContentEditorInOverlay not available in RTE by
@​NguyenThuyLan in umbraco/Umbraco-CMS#19698
* V16: Property editor file upload does not validate file types by
@​iOvergaard in umbraco/Umbraco-CMS#19714
* Fix failing integration tests in SQL Server by @​lauraneto in
umbraco/Umbraco-CMS#19725
* Populate name for content and media on URL picker if title is left
empty by @​AndyButland in
umbraco/Umbraco-CMS#19677
* Forward merge #​19720 to V16 by @​kjac in
umbraco/Umbraco-CMS#19735
* Include /.well-known/jwks in the paths covered by OpenIddict by @​kjac
in umbraco/Umbraco-CMS#19749
* Add flag to exclude trashed media by @​rammi987 in
umbraco/Umbraco-CMS#19746
* V16 Added acceptance tests for the regression issue #​16985 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19712
* V16 Added acceptance tests for the regression issue #​19529 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19713
* V16 QA Added acceptance tests for creating a document using blueprint
by @​nhudinh0309 in umbraco/Umbraco-CMS#19708
* Allow saving blueprints with validation errors by @​lauraneto in
umbraco/Umbraco-CMS#19748
* Make internal & private classes sealed where possible, to avoid code
for virtual dispatch by @​Henr1k80 in
umbraco/Umbraco-CMS#19719
* add missing translation for DA by @​rammi987 in
umbraco/Umbraco-CMS#19740
* Add a backing field for EditorUIAlias and track changes when its set.
by @​KevinJump in umbraco/Umbraco-CMS#19733
* Template with Block List field with Inline Editing Mode causes
Collection List View to shrink by @​NguyenThuyLan in
umbraco/Umbraco-CMS#19754
 ... (truncated)

## 16.2.0-rc2

<!-- Release notes generated using configuration in .github/release.yml
at release-16.2.0-rc2 -->

## What's Changed
### 📦 Dependencies
* build(deps): bump @​umbraco-ui/uui to 1.15.0 by @​iOvergaard in
umbraco/Umbraco-CMS#19981
### 🐛 Bug Fixes
* fix: pins the UmbracoExtension `@​hey-api/*` versions to that of the
Backoffice client by @​iOvergaard in
umbraco/Umbraco-CMS#20016
### ✍️ Documentation
* Chore: JSDocs for RTE CSS Props by @​leekelleher in
umbraco/Umbraco-CMS#20008


**Full Changelog**:
umbraco/Umbraco-CMS@release-16.2.0-rc...release-16.2.0-rc2

## 16.2.0-rc

<!-- Release notes generated using configuration in .github/release.yml
at release-16.2.0-rc -->

## What's Changed
### 🙌 Notable Changes
* UFM: JavaScript-like Expressions by @​leekelleher in
umbraco/Umbraco-CMS#19685
* Make logging more friendly for docker by @​Migaroez in
umbraco/Umbraco-CMS#19818
* Adds abstraction around boot time checks for database availability by
@​AndyButland in umbraco/Umbraco-CMS#19848
* Optimize document and media seeding by looking up from database in
batches by @​AndyButland in
umbraco/Umbraco-CMS#19890
* Added configuration option UseStrictDomainMatching, which allows
control over whether content is routed without a matching domain by
@​AndyButland in umbraco/Umbraco-CMS#19815
### 📦 Dependencies
* Bump linkifyjs from 4.3.1 to 4.3.2 in /src/Umbraco.Web.UI.Login by
@​dependabot[bot] in umbraco/Umbraco-CMS#19819
* Tiptap RTE: Upgraded to latest v2.x by @​leekelleher in
umbraco/Umbraco-CMS#19869
* build(deps): bump @​umbraco-ui/uui from 1.14.2 to 1.15.0-rc.0 by
@​iOvergaard in umbraco/Umbraco-CMS#19870
### 🚀 New Features
* V16: Siblings endpoints by @​nikolajlauridsen in
umbraco/Umbraco-CMS#19657
* UFM: Adds `markedExtension` extension-type by @​leekelleher in
umbraco/Umbraco-CMS#19684
* UFM: Make Block Settings data available by @​leekelleher in
umbraco/Umbraco-CMS#19686
* Adds background worker to check timeout state by @​iOvergaard in
umbraco/Umbraco-CMS#19702
* V16: Build Backoffice externals with Vite by @​iOvergaard in
umbraco/Umbraco-CMS#19716
* Tiptap RTE: Custom CSS Variables for min/max height/width by
@​leekelleher in umbraco/Umbraco-CMS#19841
* Provides an abstraction for creating the JavaScriptEncoder used in
SystemTextConfigurationEditorJsonSerializer by @​AndyButland in
umbraco/Umbraco-CMS#19849
* Tiptap RTE: Refactor Table menus to use `menu` extension-type by
@​leekelleher in umbraco/Umbraco-CMS#19789
### 🐛 Bug Fixes
* Amend accessibility modifiers on file upload property editor
components to support extension by @​PeterKvayt in
umbraco/Umbraco-CMS#19643
* Docs: Tree example by @​madsrasmussen in
umbraco/Umbraco-CMS#19624
* Hide Document/Media Collection Workspace View until the item is
created by @​madsrasmussen in
umbraco/Umbraco-CMS#19644
* Title returns "Server Error" in non-debug mode by @​PeterKvayt in
umbraco/Umbraco-CMS#19665
* Fix issue with preview in delivery API for MNTP property editor by
@​AndyButland in umbraco/Umbraco-CMS#19668
* Adds support for custom granular permissions when aggregating across
user groups by @​AndyButland in
umbraco/Umbraco-CMS#19660
* Fixes issues with creation of documents from blueprints that have
populated file upload properties by @​AndyButland in
umbraco/Umbraco-CMS#19655
* Clear member cache by older user name when member user name is updated
(16) by @​AndyButland in
umbraco/Umbraco-CMS#19690
* V16 QA Removed unused API acceptance tests by @​nhudinh0309 in
umbraco/Umbraco-CMS#19679
* V16 QA Added acceptance tests for granular document permission by
@​nhudinh0309 in umbraco/Umbraco-CMS#19546
* V16 QA Reverted npx command by @​nhudinh0309 in
umbraco/Umbraco-CMS#19699
* Fixes Block Catalogue Modal Filter by @​leekelleher in
umbraco/Umbraco-CMS#19700
* Fix issue forceHideContentEditorInOverlay not available in RTE by
@​NguyenThuyLan in umbraco/Umbraco-CMS#19698
* V16: Property editor file upload does not validate file types by
@​iOvergaard in umbraco/Umbraco-CMS#19714
* Fix failing integration tests in SQL Server by @​lauraneto in
umbraco/Umbraco-CMS#19725
* Populate name for content and media on URL picker if title is left
empty by @​AndyButland in
umbraco/Umbraco-CMS#19677
* Forward merge #​19720 to V16 by @​kjac in
umbraco/Umbraco-CMS#19735
* Include /.well-known/jwks in the paths covered by OpenIddict by @​kjac
in umbraco/Umbraco-CMS#19749
* Add flag to exclude trashed media by @​rammi987 in
umbraco/Umbraco-CMS#19746
* V16 Added acceptance tests for the regression issue #​16985 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19712
* V16 Added acceptance tests for the regression issue #​19529 by
@​nhudinh0309 in umbraco/Umbraco-CMS#19713
* V16 QA Added acceptance tests for creating a document using blueprint
by @​nhudinh0309 in umbraco/Umbraco-CMS#19708
* Allow saving blueprints with validation errors by @​lauraneto in
umbraco/Umbraco-CMS#19748
* Make internal & private classes sealed where possible, to avoid code
for virtual dispatch by @​Henr1k80 in
umbraco/Umbraco-CMS#19719
* add missing translation for DA by @​rammi987 in
umbraco/Umbraco-CMS#19740
* Add a backing field for EditorUIAlias and track changes when its set.
by @​KevinJump in umbraco/Umbraco-CMS#19733
* Template with Block List field with Inline Editing Mode causes
Collection List View to shrink by @​NguyenThuyLan in
umbraco/Umbraco-CMS#19754
 ... (truncated)

Commits viewable in [compare
view](umbraco/Umbraco-CMS@release-16.1.1...release-16.2.0).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants