Entity Types: The Building Blocks
An entity type represents a category of work item in your engineering process. In the data model YAML, entity types are declared under thedomainModelTypes section. Each entity type maps to a Polarion work item type and declares which properties (fields) are visible in the sheet.
UserNeed is the entity type name used throughout Powersheet configuration. It maps to the user_need Polarion work item type and exposes three properties for display and editing in the sheet.
Key aspects of entity types:
Why Entity Types Matter
Entity types serve as the translation layer between Polarion’s flat work item storage and the structured data model that Powersheet uses to build hierarchical views. Without entity types, Powersheet would have no way to know that auser_need work item type should appear as a top-level requirement, or that a hazard work item type represents a risk that traces back to a system requirement.
This translation layer is what enables Powersheet to present the same underlying Polarion data in fundamentally different ways. A requirements traceability matrix, a risk analysis sheet, and a design verification view can all draw from the same project data — the data model defines which entity types participate and how they relate.
Multiple Polarion Types per Entity
A single entity type can map to multiple Polarion work item types. ThepolarionType property accepts either a single string or an array:
Requirement entity type.
Entity Type Properties
Properties declared on an entity type control which fields are visible and editable in the sheet. Each property key corresponds to a Polarion work item field (built-in or custom). When a property is declared with a null value, it uses default configuration:systemRequirements.systemRequirement.severity, you are navigating through relationships and accessing a declared property. If severity is not declared in the entity type’s properties, it will not be available in the sheet.
Relationships: The Connections
Relationships define how entity types connect to each other. Each relationship specifies a source and target entity type, a cardinality pattern, a storage mechanism, and navigation properties that enable traversal in both directions.direct— The forward navigation property, created on thefromentity type. In the example above, navigating fromUserNeedto its relatedSystemRequirementitems uses the property namedsystemRequirements.back— The reverse navigation property, created on thetoentity type. Navigating fromSystemRequirementback to its originatingUserNeeditems uses the property nameduserNeeds.
UserNeed and expand into SystemRequirement items (using the direct navigation). A reverse traceability view might start from SystemRequirement and expand back to UserNeed items (using the back navigation).
By convention, singular names (like
chapter) indicate many-to-one relationships (one target), while plural names (like systemRequirements) indicate one-to-many or many-to-many relationships (multiple targets). This naming convention is not enforced by the system but makes configurations easier to read and maintain.Cardinality: How Many Can Connect
Cardinality defines the multiplicity of a relationship — how many instances of each entity type can participate. Powersheet supports three cardinality patterns, and each one determines how the relationship appears in the sheet, how sources expand data, and how columns bind to navigation properties.Many-to-One (N:1)
Each instance of thefrom entity belongs to exactly one instance of the to entity. This is the simplest relationship pattern.
Example: Each UserNeed belongs to exactly one Chapter.
chapter column shows one value and allows selecting a different Chapter entity. You can also display properties of the referenced entity using dot notation:
chapter provides a picker for selecting the parent chapter. The column chapter.title displays the title of the linked chapter as a read-only field.
One-to-Many (1:N)
Each instance of theto entity has multiple instances of the from entity. This is the reverse view of a many-to-one relationship — same underlying link, different perspective.
Example: Each Chapter has multiple child UserNeed items.
expand clause in the source configuration tells Powersheet to load the related items and nest them under their parent.
userNeeds column represents the expanded child level. No dot notation is needed because the expand directly opens the child level in the sheet hierarchy.
Many-to-Many (M:N)
Both sides of the relationship can have multiple instances. This is the most complex pattern and uses an association entity as an intermediate layer. Example:UserNeed items linked to multiple SystemRequirement items and vice versa.
systemRequirements (the association collection), then systemRequirement (the actual target entity). Column bindings use dot notation to reach through the association:
systemRequirements.systemRequirement acts as a multi-item reference picker, allowing users to link multiple system requirements to a single user need.
Cardinality Summary
Storage Mechanisms
Thestorage property determines how Powersheet persists relationships in Polarion. The only supported storage mechanism is linkedWorkItems, which uses Polarion’s native link mechanism. The relationship is stored as a typed link between work items, identified by the linkRole property.
The linkRole must match a link role defined in the Polarion project configuration. Common link roles include parent, refines, decomposes, verifies, and mitigates.
The Three-Layer Connection
Entity types and relationships form just the first layer. Understanding how the three configuration layers connect is essential for building working sheets:- Data model — Defines entity types and relationships with navigation property names
- Sources — Define how to query and expand those relationships using the navigation property names
- Columns — Define how to display the resulting data using binding paths that follow the navigation property chain
direct and back are the glue. The same name appears in the data model relationship, the source expand clause, and the column binding path. If any layer uses a different name, the chain breaks.
For a deeper exploration of how sources connect to data model navigation properties, see Source Configuration. For the reference of all relationship properties, see Data Model Reference.
A Complete Example
Bringing all concepts together, here is a minimal but complete data model that demonstrates entity types, relationships across multiple cardinality patterns, and the standard RTM entities:Chapter entities group UserNeed items (many-to-one), while SystemRequirement and UserNeed share a many-to-many traceability link. Each relationship declares both direct and back navigation properties, enabling sheets to traverse the hierarchy from either direction.
Common Misconceptions
“Every entity type needs properties” — Not true. An entity type can be declared with no properties at all. It will still participate in relationships and appear in the sheet hierarchy. Properties only need to be declared for fields you want to expose as columns. “Relationships are always bidirectional” — While Powersheet creates navigation properties in both directions (direct and back), not every sheet needs to use both. A sheet starting from UserNeed may only use the direct navigation to SystemRequirement without ever traversing the back direction.
“The second linked column works the same as the first” — When a sheet has two different entity types linked to the same parent (for example, design outputs and design verifications both linked to system requirements), the second linked column must be declared with multiItem: true in the sheet configuration. This is a non-obvious requirement that frequently blocks new users during initial setup. See Multi-Item Columns for details.
Next Steps
- Navigation Properties — How navigation properties enable expansion paths and column bindings
- Link Cardinality — Detailed cardinality rules and their impact on sheet behavior
- Data Model vs Sheet Configuration — How data model and sheet configuration complement each other
- Configure a Relationship — Step-by-step guide to adding relationships