Skip to main content

Storage in Relationships

The storage property is required on each relationship definition in the relationships array. It determines how the link between two entity types is physically stored in Polarion.
NameTypeDefaultDescription
storagestringNone (required)Specifies how the relationship is persisted in Polarion

Supported Storage Values

ValueDescriptionPolarion Mechanism
linkedWorkItemsUses Polarion’s native work item link mechanismPolarion link roles between work items
customFieldStores references in custom fieldsPolarion custom field values
Use linkedWorkItems for most relationships. This leverages Polarion’s built-in link role infrastructure and provides bidirectional traceability visible in both Powersheet and native Polarion views.

Relationship Storage Example

relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: systemRequirements
    back:
      name: userNeeds
When storage is set to linkedWorkItems, the linkRole property must also be specified to identify which Polarion link role implements the connection. See Link Roles for details.

Storage in Properties

The storage property can also appear on individual property definitions within an entity type. It controls how the property value is persisted.
NameTypeDefaultDescription
storagestringSee applicationDefines how the property value is persisted in Polarion

Property Storage Values

ValueDescription
customFieldProperty value stored in a Polarion custom field
When a property uses customField storage, the customFieldName property specifies the corresponding Polarion custom field ID.
domainModelTypes:
  Hazard:
    polarionType: hazard
    properties:
      riskLevel:
        storage: customField
        customFieldName: c_riskLevel
The storage property interacts with several other relationship and property configuration fields:
Related PropertyRelationshipDescription
linkRoleRequired when storage: linkedWorkItemsIdentifies the Polarion link role name
customFieldNameRequired when storage: customField on propertiesSpecifies the Polarion custom field ID
cardinalityPaired with storageControls relationship multiplicity. See Cardinality
readableAccess controlControls whether the relationship or property can be read. See Permissions
diagram

Complete YAML Example

domainModelTypes:
  UserNeed:
    polarionType: userNeed
    properties:
      description:
      severity:
      component:

  SystemRequirement:
    polarionType: systemRequirement
    properties:
      description:
      severity:
      riskLevel:
        storage: customField
        customFieldName: c_riskLevel

  DesignRequirement:
    polarionType: designOutput
    properties:
      description:

  Hazard:
    polarionType: hazard
    properties:
      description:
      severity:

  RiskControl:
    polarionType: riskControl
    properties:
      description:

relationships:
  - from: UserNeed
    to: SystemRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: systemRequirements
    back:
      name: userNeeds

  - from: SystemRequirement
    to: DesignRequirement
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: refines
    direct:
      name: designRequirements
    back:
      name: systemRequirements

  - from: Hazard
    to: RiskControl
    cardinality: one-to-many
    storage: linkedWorkItems
    linkRole: mitigates
    direct:
      name: riskControls
    back:
      name: hazards
The storage value must be consistent with the corresponding Polarion project configuration. If linkedWorkItems is specified, the referenced linkRole must exist in Administration > Work Item Link Roles. If customField is specified, the referenced customFieldName must be defined in the Polarion custom field configuration.
Source Code
  • Relationship.java
  • Property.java
  • todosBig_model.yaml
  • todos_model.yaml
  • model.yaml