Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion docs/administration/back_office/back_office_configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,38 @@
catalogs_limit: 10
```

## Copy subtree limit
## Subtree operations

### Copy subtree limit

Copying large subtrees can cause performance issues, so you can limit the number of content items that can be copied at once by setting the `ibexa.system.<scope>.subtree_operations.copy_subtree.limit` [configuration key](configuration.md#configuration-files).

The default value is `100`. You can set it to `-1` for no limit, or to `0` to completely disable copying subtrees.

You can copy a subtree by calling the following command in CLI: `bin/console ibexa:copy-subtree <sourceLocationId> <targetLocationId>`.

### Query subtree limit

When working with large content trees, counting child items or calculating subtree sizes can cause significant performance degradation due to unbounded database queries.

Check warning on line 55 in docs/administration/back_office/back_office_configuration.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/back_office_configuration.md#L55

[Ibexa.EOLWhitespace] Remove whitespace characters from the end of the line.
Raw output
{"message": "[Ibexa.EOLWhitespace] Remove whitespace characters from the end of the line.", "location": {"path": "docs/administration/back_office/back_office_configuration.md", "range": {"start": {"line": 55, "column": 170}}}, "severity": "WARNING"}
You can limit these count operations by setting the `ibexa.system.<scope>.subtree_operations.query_subtree.limit` [configuration key](configuration.md#configuration-files):

``` yaml
ibexa:
system:
<scope>:
subtree_operations:
copy_subtree:
limit: 100
query_subtree:
limit: 500
```

The default value for `query_subtree.limit` is `500`.
You can set it to `-1` to disable the limit.

This limit is applied when the back office needs to determine if a location has children or calculate the number of items in a subtree.
Instead of performing a full count, the query stops after finding the specified number of items, which significantly improves performance on locations with large numbers of children.

## Default locations

Default location IDs for [content structure, Media, and users](locations.md#top-level-locations) in the menu are configured with the `ibexa.system.<scope>.location_ids` [configuration key](configuration.md#configuration-files):
Expand Down
9 changes: 9 additions & 0 deletions docs/release_notes/ibexa_dxp_v5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@ month_change: false

<div class="release-notes" markdown="1">

<!--DRAFT for v5.0.6 release -->
#### Query subtree limit configuration

A new `query_subtree.limit` configuration option improves performance when working with large content trees by limiting count operations.
This prevents performance degradation from database queries when determining if locations have children or calculating subtree sizes.

For more information, see [Subtree operations configuration](back_office_configuration.md#subtree-operations).


[[% set version = 'v5.0.5' %]]

[[= release_note_entry_begin("Ibexa DXP " + version, '2026-01-15', ['Headless', 'Experience', 'Commerce']) =]]
Expand Down