Expand Configuration Properties
Each entry in thesources[].expand array accepts the following properties:
| Name | Type | Default | Description |
|---|---|---|---|
name | string | Required | Navigation property name from the domain model relationships. Must match a direct.name or back.name value on the parent entity type. |
title | string | None | Display title for the expanded entity group in the sheet header row. If omitted, the navigation property name is used. |
expand | array | None | Nested expand definitions for multi-level hierarchies. Each entry follows the same schema recursively. |
Expansion Path Syntax
Expansion paths follow navigation properties defined in the domain model. Eachname value must correspond to a relationship property on the parent entity type.
Single-Level Expansion
Load direct related entities of the root entity type:Chapter entity associated with each UserNeed via the many-to-one chapter navigation property.
Multi-Level Expansion
Load deeper levels by nestingexpand arrays inside each other:
expand resolves relative to its parent entity type.
Parallel Branches
A single entity type can expand multiple navigation properties at the same level. List multiple entries in the sameexpand array:
SystemRequirement entities (via the association) and the parent Chapter alongside each UserNeed.
Cardinality and Expansion Patterns
The relationship cardinality defined in the domain model determines the expand syntax and the resulting UI behavior in the sheet.Many-to-One (N:1)
Each child entity references exactly one parent. The navigation property is scalar (singular name). Domain model relationship:chapterrenders as a single-value reference picker (scalar navigation property).chapter.titlerenders the referencedChapterentity’s title as a read-only column.
One-to-Many (1:N)
A parent entity has a collection of children. This is the reverse side of a many-to-one relationship. The navigation property is plural (collection name). Source expand:userNeedsexpands into child rows in the sheet, creating a new hierarchical level.- No dot-notation is needed for the expand itself; the expand directly opens the child level.
Many-to-Many (M:N)
Many-to-many relationships use an association entity between the two types. The expansion requires two nested levels: first to the association collection, then through to the target entity.Many-to-many expansion patterns use an implicit association entity generated by the domain model. The exact association entity structure depends on how the relationship is defined. Consult a domain expert when configuring complex M:N expansions for the first time.
- The source expand uses two levels:
systemRequirements(association collection) followed bysystemRequirement(target entity). - Column binding uses dot-notation matching the expand path:
systemRequirements.systemRequirement. - The column renders as a multi-item reference picker.
Cardinality Summary
| Cardinality | Model Definition | Source Expand | Column Binding | UI Behavior |
|---|---|---|---|---|
| N:1 | cardinality: many-to-one, direct.name: chapter | - name: chapter | chapter, chapter.title | Single-value reference picker |
| 1:N | Reverse of N:1, back.name: userNeeds | - name: userNeeds | userNeeds | Child rows (new sheet level) |
| M:N | cardinality: many-to-many, back.name: systemRequirements | - name: systemRequirements then nested - name: systemRequirement | systemRequirements.systemRequirement | Multi-item reference picker |
Expand and Column Binding Alignment
Every column with a navigation binding path must have a corresponding expansion in the source configuration. The expand hierarchy must match the column binding path structure.| Column Binding Path | Required Expand |
|---|---|
title | None (direct property on root entity) |
chapter | expand: [{ name: chapter }] |
chapter.title | expand: [{ name: chapter }] |
systemRequirements.systemRequirement | expand: [{ name: systemRequirements, expand: [{ name: systemRequirement }] }] |
systemRequirements.systemRequirement.title | Same as above |
Query Execution
The expand clause is converted to dot-notation strings for query execution. Nested expand arrays are recursively flattened:| YAML Expand | Dot-Notation Query |
|---|---|
- name: chapter | chapter |
- name: systemRequirements with nested - name: systemRequirement | systemRequirements.systemRequirement |
Validation
Expand property paths are validated against the domain model metadata at query time. If aname references a navigation property that does not exist on the entity type, the query fails with a validation error.
Document Context
When a source definesconstraints.applyCurrentDocumentTo, the expand clause operates within the document scope. Expanded entities are filtered to those associated with the current document context. See Document Filtering for details.
Performance Considerations
| Factor | Impact | Recommendation |
|---|---|---|
| Expand depth | Each level adds query overhead | Keep to 3-4 levels for responsive loading |
| Entity count per level | Large collections at each level multiply data volume | Use predicates to filter root entities |
| Parallel branches | Multiple expands at the same level fetch independently | Combine into views to show only needed branches |
| M:N associations | Association entities add an extra level | Account for the association level when planning depth |
Maximum supported expand depth and performance characteristics depend on the Polarion server configuration and the number of entities at each level.
Complete YAML Example
A full requirements traceability matrix (RTM) configuration showing multi-level and parallel expand paths:- Queries
UserNeedentities scoped to the current document. - Expands the parent
Chapter(N:1) for each user need. - Expands
SystemRequiremententities through the M:N association (systemRequirements.systemRequirement). - Further expands
DesignRequiremententities through another M:N association at the next level. - Binds columns to display titles at each level with appropriate pickers.
Related Pages
- EntityQuery — top-level query structure containing the expand clause
- Sources — source configuration including expand, constraints, and query settings
- Binding Syntax — column binding paths that must align with expand paths
- Relationships — domain model relationships defining available navigation properties
- Navigation Directions — direct and back navigation direction semantics
- Cardinality — relationship cardinality rules governing expand patterns
- Document Filtering — how document constraints interact with expanded data
Sources
Sources
Source Code
PolarionQueryProcessor.java— query execution, constraint application, navigation expansionQueryDataTest.java— expand integration tests for N:1, 1:N, and M:N relationshipsQueryManager.tsx— client-side expand clause processing and dot-notation conversionOrderByClause.java— property path validation used by expand resolution