Skip to main content
Version: 2.4

Entity Specification

An Entity Specification (also called Configuration Profile in the tSM UI) defines a subtype of a business entity by grouping Characteristics into a coherent set. It is the primary mechanism for distinguishing between, for example, a Retail Customer and a Wholesale Customer — both are Customer entities, but each has a different Entity Specification with different dynamic attributes, forms, and rules.

What it's for

  • Subtype definition — create meaningful subtypes (specifications) for any EntityType.
  • Dynamic attributes — bundle one or more Characteristics that define the extra fields for the subtype.
  • Form assignment — assign default forms for create, detail, list, and other UI contexts.
  • Supporting entity rules — control which attachment types, comment types, worklog types, and notification types are allowed.
  • Access control — optionally link an access policy for row-level security.

Entity Specifications are first-class configuration entities — they have validity, localization, audit trail, and can be organized with dataTags and configType.

Naming Convention

According to the TM Forum standard, this entity is called EntitySpecification. The tSM API and backend use this name. The tSM UI refers to it as Configuration Profile for user-friendliness.

For the architectural context, see Entities & Characteristics.


Key concepts​

Characteristics binding​

The characteristics field holds a list of Characteristics codes that this Entity Specification includes. When an entity is created with this specification, the platform renders and validates the corresponding forms for each characteristic.

For finer control, the characteristicsSpecification list provides per-characteristic overrides:

FieldTypeDescription
idUUIDUnique identifier.
characteristicCodeStringCode of the referenced Characteristics.
configMapPer-specification configuration overrides for this characteristic.
defaultValueStringDefault value for this characteristic within this specification.
regexpStringValidation regex override for this specification.
descriptionStringDescription override for this specification context.
auditInfoObjectStandard audit metadata.

This allows the same Characteristics to behave differently in different Entity Specifications — for example, a contactEmail characteristic might be required in a Retail Customer specification but optional in a Wholesale Customer specification.

EntityType binding​

The entityType field (FK EntityType.code) declares which "class" of records this specification applies to. Common examples:

EntityTypeExample specifications
CustomerRetail, B2B, Wholesale, Internal
TicketIncident, Service Request, Change Request
OrderSDWAN Provisioning, Fiber Installation
ProductInternet Access, VoIP, IPTV

Form specification (formSpecification)​

The formSpecification map assigns default forms to UI contexts:

{
"new": "customer-retail-new",
"detail": "customer-retail-detail",
"list": "customer-retail-list",
"card": "customer-retail-card"
}

Keys are context identifiers (e.g., new, detail, list, card), and values are Form codes.

Supporting entity rules​

Entity Specifications can restrict which types of supporting entities are allowed:

FieldDescription
attachmentTypesList of allowed attachment type codes.
attachmentTypeAllowEmptyIf true, entities can exist without attachments. Default true.
commentTypesList of allowed comment type codes.
commentTypeAllowEmptyIf true, comments without a type are allowed. Default true.
defaultCommentTypeDefault comment type code for new comments.
worklogTypesList of allowed worklog type codes.
worklogTypeAllowEmptyIf true, worklogs without a type are allowed. Default true.
notificationTypesList of allowed notification type codes.
notificationTypeAllowEmptyIf true, notifications without a type are allowed. Default true.

Access policy​

The optional accessPolicyCode field links to an access policy that enforces row-level security — only users matching the policy can view or edit entities with this specification.

Mnemonic code​

The optional mnemonicCode field (FK MnemonicConfig.code) links to a mnemonic configuration for automatic business key generation for entities of this specification.

Expanded characteristics​

When requesting an Entity Specification via API with the CHARACTERISTICS expand key, the expandedCharacteristics field is populated with the full Characteristics objects (including their Forms), avoiding additional API calls.


Reference​

Entity Specification (attributes)​

FieldTypeRequiredRead-onlyDescription / Notes
idUUID––Identifier (not for end-user display).
codeStringYes–Unique ASCII code (no spaces). Used to reference the specification from entities and API.
nameStringYes–Human-readable name shown in admin UI.
descriptionString––Optional tooltip / longer description.
configTypeString––Business package this specification belongs to (FK ConfigType.code).
entityTypeString––Code of the EntityType this specification applies to (FK EntityType.code).
characteristicsList––List of Characteristics codes included in this specification.
characteristicsSpecificationList––Per-characteristic overrides (default value, regex, config). See section above.
formSpecificationMap––Default forms for UI contexts (new, detail, list, card, …).
attachmentTypesList––Allowed attachment type codes.
attachmentTypeAllowEmptyBool––Allow entities without attachments. Default true.
commentTypesList––Allowed comment type codes.
commentTypeAllowEmptyBool––Allow comments without a type. Default true.
defaultCommentTypeString––Default comment type for new comments.
worklogTypesList––Allowed worklog type codes.
worklogTypeAllowEmptyBool––Allow worklogs without a type. Default true.
notificationTypesList––Allowed notification type codes.
notificationTypeAllowEmptyBool––Allow notifications without a type. Default true.
accessPolicyCodeString––Access policy for row-level security.
mnemonicCodeString––Mnemonic configuration for business key generation (FK MnemonicConfig.code).
configMap––Additional general configuration.
dataTagsList––Labels for grouping and filtering.
validityFrom/ToDate––Optional validity window.
validBool–YesComputed from validity; true when within the validity interval.
localizationDataObject––Translations for name / description.
auditInfoObject–YesStandard audit metadata.
expandedCharacteristicsList–YesFull Characteristics objects (populated only with CHARACTERISTICS expand).

Good Practices​

  • Stable code — entity instances store their specification code; renaming breaks existing data.
  • One specification per meaningful subtype — don't over-split (one spec per process variant) or under-split (one spec for all). Match business categories.
  • Assign configType — always set a ConfigType so the specification appears in the correct business package for governance and navigation.
  • Set entityType explicitly — even though it's optional in the API, always specify it so the platform can properly route and filter specifications.
  • Configure supporting entity rules — restrict attachment, comment, and worklog types to what makes business sense. This prevents data quality issues.
  • Use formSpecification — assign context-specific forms (new, detail, list) for a polished user experience rather than relying on defaults.
  • Leverage characteristicsSpecification — use per-specification overrides (default values, validation regex) to tailor shared Characteristics to specific business contexts.
  • Provide mnemonicCode — for entities that need human-readable business keys (e.g., ticket numbers, order IDs), configure a mnemonic.
  • Tag consistently — use dataTags to categorize specifications (core, integration, pilot).

See Also​

  • Characteristics — the dynamic attributes grouped by this specification.
  • Form — the JSON Schema backing each characteristic and the forms assigned to UI contexts.
  • EntityType — the entity class this specification applies to.
  • ConfigType — business packaging for configuration entities.
  • Custom Entities — Custom Entities use Entity Specifications for their dynamic attributes.
  • Entities & Characteristics (Architecture) — conceptual overview of the TM Forum pattern.