Skip to main content

Layered Architecture

Powersheet follows a three-tier architecture: a server extension running inside Polarion, a client application rendered in the browser, and a configuration layer stored as YAML files in the project SVN repository. diagram

Server Extension

The server extension runs as a plugin inside the Polarion application server. It is responsible for:
  • Query translation — Converting client requests into Polarion Lucene queries to retrieve work items
  • Metadata generation — Reading domain model YAML and producing a typed metadata schema that the client uses for rendering and validation
  • Save operations — Processing cell edits, new work item creation, and link management through the Polarion API
  • Configuration management — Loading, parsing, and serving YAML configuration files from the repository
The server extension registers itself into Polarion’s administration interface under Administration > Nextedy POWERSHEET, where administrators manage domain models, sheet configurations, setup, and licensing.

Client Application

The client application runs in the user’s browser and renders the interactive sheet. It receives the parsed configuration and metadata from the server, then builds the sheet UI with:
  • Hierarchical row expansion based on the domain model’s expansion paths
  • Inline cell editing with type-aware editors (text, dropdowns, pickers)
  • Column filtering and sorting including multi-column sort
  • Row grouping by column values with collapsible headers
  • Keyboard shortcuts for common operations such as adding rows, exporting, and freezing columns
The client waits for the metadata system to fully initialize before rendering. This prevents displaying an empty sheet while data is still loading — a common source of confusion when network latency is high.

Configuration Layer

All behavior in Powersheet is driven by two types of YAML files stored in the project SVN repository:
File TypePurposeManaged Via
Domain modelDefines entity types, properties, relationships, cardinality, and constraintsAdministration > Nextedy POWERSHEET > Domain Models
Sheet configurationDefines columns, views, formatters, column groups, and data sourcesAdministration > Nextedy POWERSHEET > Sheet Configurations
The domain model acts as a semantic abstraction layer over Polarion’s native work item types and link roles. This means you can reuse the same sheet configuration across projects that have slightly different Polarion configurations — only the domain model mapping needs to change. The sheet configuration is assigned to a document through a custom field on the Polarion LiveDoc. When a user opens that document, Powersheet reads the assigned configuration and renders the sheet accordingly.
A single sheet configuration can be referenced by multiple documents. This is especially useful when you have several LiveDocs that should present data in the same format but from different document scopes.

How a Sheet Loads

When a user opens a Powersheet document, the following sequence occurs:
  1. The document’s custom field identifies which sheet configuration to use
  2. The server loads the sheet configuration YAML and the referenced domain model YAML
  3. The server generates typed metadata from the domain model and sends it along with the configuration to the client
  4. The client initializes the sheet, builds columns from the configuration, and executes the data source query
  5. The query expands along the configured expansion paths, loading related entities at each level
  6. The sheet renders with all rows, columns, and formatting applied
The domain model does not store data. It defines the structure of the data — which entity types exist, how they relate, and what properties they expose. All actual data lives in Polarion as work items and links.

Administration Integration

Powersheet registers four administration pages within Polarion:
  • Domain Models — File manager for editing domain model YAML files
  • Sheet Configurations — File manager for editing sheet configuration YAML files
  • Setup — Initial setup and configuration options
  • License — License status and management
These pages are available at project, project group, and repository (global) scope, following Polarion’s standard administration hierarchy. Global configurations provide defaults that can be supplemented or overridden at the project level.
KB ArticlesSupport TicketsSource Code
  • prod-powersheet-src/com.nextedy.powersheet.client/src/modules/Powersheet/Powersheet.tsx
  • model.yaml
  • powersheet.yaml
  • prod-powersheet-src/com.nextedy.powersheet/src/com/nextedy/powersheet/PowersheetService.java
  • rtm_model.yaml