Skip to main content

Group ๐Ÿšง

Maturity

Official URL: https://bcgov.github.io/nr-pies/docs/spec/element/message/group

JSON Schema URL: https://raw.githubusercontent.com/bcgov/nr-pies/refs/heads/main/docs/spec/element/message/group.schema.json

Represents a message envelope for grouping related assets together.

Scopeโ€‹

This message type allows systems to group related assets together. The message represents an assertion from the originating system's perspective. Consuming systems must validate the grouping and implicitly trust the assertion source.

A Group message is scoped to a collection of related assets and captures the relationships between them, similar in structure to a linkage message but specific to asset groups.

Structureโ€‹

A group message shall contain all flattened Header properties.

All groups shall be denoted with a kind property value of GROUP as defined in Message Kind.

Groups shall declare the following properties in addition to flattened Header properties:

NameCardinalityTypeDescription & Constraints
asset_set1..*Asset[]An array of assets that are grouped together with the primary header asset.
relation_kind1..1CodeThe kind of relation between the primary asset and the linked asset (for example, MERGES, RELATES, SELF, SPLITS).

Binding Constraintsโ€‹

The asset_set field expresses membership of assets within the group and typically originates from the declaring system:

  • The asset_set represents a classification or grouping for the relationship as defined by the asset-owning system
  • The relation_kind specifies the nature of the link (MERGES, RELATES, SELF, SPLITS)
  • A Group connects the primary asset (defined in Header) to related assets via this asset set

Specificationโ€‹

Loading ....

Implementation Guidanceโ€‹

Purposeโ€‹

The Group message defines a specific relationship between a primary asset and a set of related assets. Consuming systems may use this message to implicitly bind assets together.

Creating Group Messagesโ€‹

When generating a Group message:

  • Include the asset_set of assets being grouped
  • Declare the relation_kind to specify the nature of the link (MERGES, RELATES, SELF, SPLITS)

Single-Relation Assertionโ€‹

Each Group message must represent a single assertion from one system. Always create separate messages when an asset needs to assert different relationship kinds.

Linkage Orthogonalityโ€‹

The Group message is orthogonal to the Linkage message, meaning that both can coexist and express the same relationships without conflict. While the Group message implicitly binds a primary asset to a set of related assets, the Linkage message explicitly defines a relationship between individual asset pairs. Systems may use both message types to represent different aspects of various asset relationships.

Referencesโ€‹