Skip to main content

How the Domain Model Works

The domain model is a YAML configuration file that declares three things:
  1. Entity types — what kinds of objects exist (e.g., UserNeed, SystemRequirement, Hazard)
  2. Relationships — how entity types connect to each other, with cardinality and link roles
  3. Properties — which fields each entity type exposes, mapped to Polarion work item fields
These three layers drive everything downstream: sheet sources determine which entities to query, expansion paths follow relationship definitions, and column bindings resolve against properties.
┌─────────────────────────────────────────────────────────┐
│                     Domain Model                        │
│                                                         │
│  ┌──────────────┐     relationships     ┌─────────────┐ │
│  │ EntityType A  ├─────────────────────►│ EntityType B │ │
│  │ - properties  │     cardinality      │ - properties │ │
│  │ - constraints │     linkRole         │ - constraints│ │
│  │ - polarionType│     direct / back    │ - polarionType│
│  └──────────────┘                       └─────────────┘ │
│                                                         │
│         ▼ maps to ▼                 ▼ maps to ▼         │
│    Polarion Work Item Types + Link Roles + Fields       │
└─────────────────────────────────────────────────────────┘

Entity Type Configuration

  • Domain Model Types — Entity type definitions: name, polarionType, nested properties, and plural name generation
  • Polarion Type Mapping — How polarionType maps domain entities to Polarion work item types, including multi-type mappings

Relationships and Navigation

  • Cardinality — Relationship multiplicity options (one-to-one, one-to-many, many-to-one, many-to-many) and how each affects source expansion and column binding
  • Link Roles — Mapping domain model relationships to Polarion link role identifiers
  • Navigation Directions — Forward (direct) and reverse (back) navigation properties, naming conventions, and how directions drive expansion paths

Constraints and Access Control

  • Constraints — Load, create, and pick constraint rules that scope which Polarion items an entity type includes, using Lucene query syntax
  • Permissions — Entity-level and property-level access control: readable, updatable, createable, and isReadOnly flags
  • Context Expressions Reference — Dynamic context expressions for runtime evaluation in constraints and filters

Quick Orientation

ConceptKey YAML PropertyReference
Define an entity typedomainModelTypes.TypeNameDomain Model Types
Map to PolarionpolarionTypePolarion Type Mapping
Add fieldspropertiesProperties
Connect entity typesrelationships[]Relationships
Set multiplicitycardinalityCardinality
Name navigation pathsdirect.name / back.nameNavigation Directions
Assign Polarion linklinkRoleLink Roles
Restrict loaded itemsconstraintsConstraints
Control editabilityisReadOnly, updatablePermissions
Start with the Creating Your First Data Model tutorial for a guided walkthrough, then return here for property-level details. For complete working models, see the Example Models Reference.
The domain model defines what exists. Sheet sources define what to query and expand. Columns define what to display. Navigation property names from the domain model are the thread connecting all three layers. See Cardinality for end-to-end examples showing how each cardinality type flows from model through source expansion to column binding.