Skip to main content

EntityType

EntityType is the canonical classification of a record in tSM (e.g., Customer, Ticket, Order, Attachment).
Together with an entity’s ID, it forms a universal reference used by UIs, processes, integrations, and cross-module links.

Business value:

  • Consistent behavior — drives which forms, characteristics, rules, and widgets apply to a record.
  • Cross-module linking — powers generic relationships like ownerType / refType (e.g., an Attachment with ownerType="Ticket").
  • Discoverability & routing — ties an entity to its microservice and public API.
  • Presentation — provides iconography and card/list widgets for a coherent UI.

Think of EntityType as the “class” of your records. Everything else (forms, listings, actions) composes on top of it.


Typical Uses

  • Global references across modules: store ownerType="Ticket" + ownerId="019a7265-821f-70db-b8fe-f16e300ea061" to relate supporting entities (comments, attachments, …).
  • UI composition: choose card profile, listing widget, and icon based on the type for consistent rendering.
  • API discovery: resolve or override the public API URL for a type.
  • Governance: use validity to soft-enable/disable types in environments or during migrations.
  • Tagging & config: attach small bits of typed configuration and labels for admin tools and dashboards.

Examples

EntityEntityTypeDescription
Ticket TCKT-123TicketService request/incident
Customer C001CustomerBusiness or residential customer
Attachment A55AttachmentFile linked to another entity

Related concepts:

  • Entity specification / profile — subtype rules and UI configuration per type.
  • Characteristics — dynamic attributes bound to a type.
  • ownerType / refType — use the EntityType string to establish relationships system-wide.

Reference

EntityType (attributes)

FieldTypeRequiredRead-onlyDescription / Notes
idUUIDIdentifier (not intended for end-user display).
codeStringYesUnique ASCII code (no spaces). Used everywhere (links, rules, configs).
nameStringYesDisplay name shown in admin UI.
microserviceStringYesCode of the Microservice where this entity lives (routing & ownership).
publicApiUrlStringOptional override of the entity’s public API path relative to the microservice backendUrl. If not set, it’s derived from the entity code (kebab-case, plural).
defaultCardProfileStringUI card profile to render entity details by default.
listingCardWidgetStringUI component used to render items of this type in lists.
iconStringIcon identifier used in the UI.
descriptionStringLonger description / tooltip.
validityFrom/ToDateTime window when the type is considered active.
validBoolYesComputed from validity; not stored.
abbreviationStringShort label for compact UI (must be unique if used).
configMapFree-form, small configuration for admin/UI tooling (not a deployment substitute).
dataTagsListLabels for grouping/reporting (e.g., core, customer, ticketing).
localizationDataObjectTranslations for name / description.
auditInfoObjectStandard audit metadata.

Good Practices

  • Keep code stable — it becomes a key in references (ownerType, refType), configs, and API routing.
  • Set microservice correctly — drives discovery and helps tools find the right backend.
  • Prefer derived publicApiUrl unless you need a custom path; keep it relative to the microservice backendUrl.
  • Define UI hints (defaultCardProfile, listingCardWidget, icon) so lists and cards look consistent across the platform.
  • Use dataTags to group types in admin screens and reports (e.g., support, crm, files).
  • Leverage validity to phase in/out types without schema changes.

See Also

  • System Settings: Microservice — where the backends are registered
  • System Settings: Module — business-domain grouping that consumes entity types
  • Supporting Entities – Overview — how ownerType / refType reference entity types across modules