The four-component model
Every working powersheet setup relies on four collaborating elements. Each one can be configured independently, but they must reference each other correctly at runtime.Domain model
The domain model is a YAML file that creates a semantic layer between Polarion’s native work item types and the structured entities that Powersheet works with. Think of it as a “lens” placed over the raw Polarion data — it does not create new work item types or modify existing ones. Instead, it maps them into a typed hierarchy that Powersheet can navigate, query, and enforce rules upon. A domain model declares three things:- Entity types (
domainModelTypes): each entry names an entity type and maps it to a Polarion work item type via thepolarionTypeproperty. Entity types also declare their availableproperties— the fields that can appear as columns in the sheet. - Relationships: connections between entity types that specify the
fromandtoentity types, thecardinality(one-to-one, one-to-many, many-to-one, or many-to-many), thestoragemechanism (typicallylinkedWorkItemsusing Polarion’s native link system), and thelinkRolethat identifies which Polarion link role stores the connection. Each relationship creates a pair of navigation properties — adirectproperty on the source entity and abackproperty on the target entity — enabling traversal in both directions. - Constraints: optional rules that filter which work items appear in
pickdialogs (picker constraints), controlling what users can select. Picker constraints can filter bydocumentproperties such asmoduleFolder,moduleName,type, orcomponent. Thecomponentconstraint supports dynamic context references like$context.source.document.componentfor runtime-resolved filtering.
A common misconception is that the domain model determines which columns appear in the sheet. It does not — the domain model defines what data exists and how it connects. Which columns are visible, how they are labeled, and how they behave is the responsibility of the sheet configuration.
The standard RTM example
Throughout this documentation, the standard Requirements Traceability Matrix (RTM) example is used to illustrate concepts. It defines five entity types linked in a chain:UserNeed —> SystemRequirement —> DesignRequirement —> Hazard —> RiskControl
Each arrow represents a relationship with defined cardinality, link role, and navigation properties. This hierarchy models a typical regulated-industry traceability chain from high-level needs through system-level requirements, design artifacts, and risk management entities.
For a complete YAML reference of this model, see Example Models Reference.
Sheet configuration
The sheet configuration is a separate YAML file that controls what users see and how they interact with the data. While the domain model defines the data landscape, the sheet configuration defines the data presentation. It references entity types and navigation properties from the domain model and specifies:- Columns: each column is identified by a binding path — a dot-separated key that maps to a domain model property or navigates through a relationship. For example,
titlebinds to a direct property, whilesystemRequirements.systemRequirement.severitytraverses a relationship to reach a property on a related entity. Each column definition supports properties includingtitle(display header),width(pixel width),minWidth(minimum responsive width),visible(default visibility),formatter(conditional styling reference),columnGroup(visual grouping assignment),multiItem(for one-to-many relationship columns), andisReadOnly(edit protection). - Sources: data source definitions that connect the sheet to its domain model. Each source specifies a
modelreference (the domain model name), aquery(which entity type to load as the root), and anexpandtree (which relationships to follow when fetching data). The expand tree determines the depth and breadth of hierarchical data loading. - Views: named presets that control which columns are visible for a given analysis perspective. Multiple views can exist within a single sheet configuration, allowing users to switch between different column sets without creating separate configurations.
- Column groups (
columnGroups): visual groupings that cluster related columns under a shared header. Each group has agroupName, optionalgroupStyleandheaderStylefor color theming, and acollapseToproperty that specifies which column remains visible when the group is collapsed. - Sort order (
sortBy): default sort configuration specifying the column and direction (ascordesc) for initial row ordering.
Powersheet Drive
Powersheet Drive is a sidebar navigation panel that gives users a central place to discover and open all powersheet documents in their project. It queries for Polarion documents that have thenextedySheetConfig custom field populated and presents them in a drive-style navigator.
Powersheet Drive becomes available once the powersheet topic is added to the project’s navigation views in Polarion administration. From the user’s perspective, it functions like a file browser scoped to powersheet documents, showing document names, folder paths, and the assigned configuration.
The query used by Powersheet Drive to discover documents is configurable via project properties. The default behavior finds all documents with the
nextedySheetConfig field populated.LiveDoc (document entry point)
Each powersheet is anchored to a Polarion LiveDoc — a standard Polarion module document. What makes a LiveDoc into a powersheet document is the presence of thenextedySheetConfig custom field, which holds the identifier of a sheet configuration file. When a user opens this document through Powersheet Drive, the application reads the configuration reference, loads the associated domain model, executes the data query, and renders the interactive sheet.
The PowersheetService handles document management operations: creating new powersheet documents, duplicating from templates, and retrieving document metadata. When creating a document, the service assigns the appropriate module type (defaulting to the type containing powersheet), sets the configuration reference, and generates document URLs in the format /polarion/#/project/{projectId}/powersheet?document={path}&documentTitle={title}.
Documents can also include an “Open with Nextedy POWERSHEET” button via a Velocity macro, providing bidirectional navigation between the standard LiveDoc view and the sheet view.
How the components connect at runtime
When a user opens a powersheet document, the loading sequence follows a deterministic chain:- The user selects a document from Powersheet Drive (or navigates directly to the document URL)
- The application reads the
nextedySheetConfigcustom field value from the LiveDoc to identify which sheet configuration to use - The sheet configuration YAML is loaded and parsed, extracting column definitions, source configurations, views, and formatters
- The
sources[].modelproperty in the sheet configuration identifies the domain model by name; the domain model YAML is loaded and its entity types are translated into a metadata structure - A data guard component monitors initialization state and blocks rendering until the metadata system is ready. Once ready, the data source query executes (expanding relationships as defined in the source
expandtree), columns are resolved against entity metadata, and the interactive sheet renders
| Component | Managed in | References |
|---|---|---|
| Domain model | Administration > Nextedy POWERSHEET > Domain Models | Polarion work item types, link roles |
| Sheet configuration | Administration > Nextedy POWERSHEET > Sheet Configurations | Domain model (by name) |
| LiveDoc | Project documents | Sheet configuration (via nextedySheetConfig field) |
| Powersheet Drive | Administration > Portal > Topics | Documents with nextedySheetConfig set |
Separation of concerns
The split between the domain model and the sheet configuration is a deliberate architectural decision. It enables two important patterns: One domain model, many sheet configurations. A single domain model defining the RTM entity hierarchy can serve multiple sheet configurations — one for requirements review (showing requirement-focused columns), another for risk analysis (showing hazard and risk control columns), and a third for traceability auditing (showing link completeness columns). All three sheets share the same underlying entity types and relationships. One project, many domain models. A project can host multiple domain models for unrelated concerns. A requirements traceability domain model and a risk management domain model can coexist, each with its own entity types, relationships, and sheet configurations. This separation also means that changes to presentation (adding a column, creating a new view, adjusting column widths) never require modifications to the data structure. And changes to the data structure (adding a new entity type, defining a new relationship) do not automatically affect existing sheets — columns must be explicitly added to display new data. For a detailed comparison of what belongs in which file, see Data Model vs Sheet Configuration. For practical tutorials on building each component, see the Getting Started section. For the complete YAML property reference, see the Sheet Configuration Reference and Data Model Reference.Sources
Sources
Source Code: DomainModelV2.java, whole_rtm.template.yaml, Powersheet.tsx, SheetComponent.tsx, ViewModel.ts, PowersheetService.javaTickets: Configuration setup guidance, domain model configuration support, first-time setup troubleshooting