Two Configuration Files, Two Responsibilities
Every Powersheet deployment relies on two distinct YAML files that serve complementary purposes:
This separation is intentional. A single data model can power many different sheet configurations, each offering a different perspective on the same underlying data. Think of it like a relational database: you define the schema once, then write as many queries and views as you need.
Anatomy of a Sheet Configuration
A sheet configuration file is organized into several top-level sections, each controlling a distinct aspect of the rendered sheet:Columns: The Core Building Block
Thecolumns section is where most configuration effort goes. Each entry maps a binding path — a dot-separated property reference from the data model — to display settings:
title) references a simple property on the root entity. The second column (systemRequirements.systemRequirement.title) follows a navigation path through a relationship defined in the data model: from the root entity, through the systemRequirements relationship, to the systemRequirement entity type, and finally to its title property.
Column Groups: Visual Organization
Column groups cluster related columns under a shared header with consistent styling. They are purely visual — they do not affect data retrieval:collapseTo property specifies which column remains visible when the group is collapsed, giving users a compact summary view.
Views: Named Perspectives
Views let administrators define named column visibility presets. A single sheet configuration can offer multiple analysis perspectives — for example, a “Risk Focus” view that hides requirement columns and emphasizes risk-related fields, or a “Full Traceability” view that shows everything:visible property of columns. Users switch between views at runtime without modifying the underlying configuration. For more on how views shape analysis workflows, see Views as Analysis Perspectives.
Formatters and Styles: Conditional Presentation
Formatters apply conditional styling rules to cells based on their values. A formatter definition pairs an expression (the condition) with a style (the visual effect):isReadOnly property to true or applying a read-only formatter prevents user editing regardless of permissions. This is useful for computed or derived columns that should only be viewed, not modified.
Sources: Where Data Comes From
Thesources section defines which entity types to load as root items, what query filters to apply, and how to expand related entities. Sources connect the sheet configuration to live Polarion data through the data model:
Configuration Storage and Discovery
Powersheet configurations are stored in the Polarion repository (SVN) and can exist at two scopes:- Global configurations are stored in a shared repository location, available to all projects. Their identifiers start with
/and display with a “(Global)” suffix in the selection UI. - Project-specific configurations are stored within a project’s repository space. Their identifiers use the filename without a path prefix.
nextedySheetConfig) stores the configuration file reference. Powersheet dynamically discovers all available configuration files at both scopes and presents them as selectable options through the Administration > Nextedy Powersheet interface.
Users must explicitly select a configuration for each Powersheet document. There is no automatic default assignment — this is deliberate, because every document’s data model and column needs differ. The system does include a bundled
powersheet.yaml as a starter template, accessible through the built-in configuration editor.Configuration Scoping: Instance, Template, Default
The configuration editor supports three levels of scope that allow fine-grained override control:
This layered approach means you can define a standard configuration template that multiple documents share, while still allowing individual documents to override specific settings. The scope control can be enabled, disabled, or disallowed at the administrator level, preventing end users from making scope changes when organizational consistency is required.
How Configuration Becomes a Sheet
Understanding the runtime flow helps clarify why the configuration is structured the way it is:- Load — Powersheet reads the YAML configuration from the repository location stored in the document’s custom field. If the file cannot be read or parsed, an error is surfaced (YAML parse errors are logged but do not crash the application).
- Validate against data model — Column binding paths are resolved against the data model. Each dot-separated segment must match a known property or navigation path. Unresolvable paths produce rendering failures for those specific columns.
- Fetch metadata — The metadata system translates entity types and relationships from the data model into a queryable schema that the client uses for data retrieval.
- Execute sources — Source definitions trigger queries against Polarion, filtered by the specified query expressions. Expansion paths are followed to load related entities at each hierarchy level.
- Render — Columns are laid out according to their defined widths, groups, and visibility settings. Formatters evaluate their expressions against cell values and apply styles. Views determine which columns are visible in the current perspective.
The Data Model as Contract
The data model is not just a separate file — it is the contract that all sheet configurations must honor. It defines:- Entity types via
domainModelTypes— each mapping a logical name (likeUserNeedorSystemRequirement) to a Polarion work item type through thepolarionTypeproperty - Properties — the fields available on each entity type, which become valid column binding targets
- Relationships — the navigation paths between entity types, including cardinality (one-to-one vs. one-to-many) and direction (direct vs. back)
systemRequirements.systemRequirement.title, the data model must define: (1) a relationship called systemRequirements on the root entity, (2) that relationship’s target entity type SystemRequirement, and (3) a title property on that entity type.
For deeper coverage of data model concepts, see Model-Driven Design and Entity Types and Relationships.
Common Misconceptions
“Changing the data model automatically updates sheet configurations.” It does not. The data model defines what is possible; sheet configurations define what is shown. If you add a new entity type to the data model, no existing sheet configuration will display it until you explicitly add columns and sources that reference it. “Column keys are display labels.” Column keys are binding paths — they follow the data model’s property and relationship structure. Thetitle property within each column definition controls the display label. Two columns can have the same display title but different binding paths.
“Global configurations override project configurations.” They coexist as separate options in the selection list. A global configuration is simply one that is available to all projects. There is no inheritance or override relationship between global and project-specific configurations — a document uses exactly one configuration file.
Configuration Editor
Powersheet includes a built-in YAML editor accessible through the Polarion interface. The editor provides:- Syntax-aware editing with support for both YAML and JSON content languages
- JSON Schema validation that checks your configuration against the expected structure
- Language conversion — content can be switched between JSON and YAML representations
- Scope awareness — the editor shows which scope level (instance, template, or default) you are editing
- History — links to revision history for tracking configuration changes over time
Relationship to Other Concepts
The YAML configuration system is the foundation that connects most other Powersheet concepts:- Core Components — explains the runtime subsystems that consume the configuration
- Data Model vs Sheet Configuration — dives deeper into the separation of concerns between the two file types
- Navigation Properties — details how dot-notation binding paths traverse relationships
- Hierarchy and Traceability — shows how expansion paths in sources build multi-level views
- Global vs Project-Specific Configuration — covers storage scopes and sharing strategies
- Dynamic Value Expressions — explains how
$contextexpressions in sources are resolved at runtime