Skip to main content

Menu Item

A Menu Item defines an entry in the tSM navigation (left menu, personal bookmarks, self-care portal).
Admins compose the information architecture by arranging items into a tree, setting visibility and privileges, and routing each item to a screen or listing.

What it’s for

  • Main navigation — domain sections like Ticketing, CRM, DMS.
  • Deep links — direct access to filtered listings or dashboards.
  • Personalization — user-level bookmarks/favorites.
  • Self-care — separate navigation for customer/partner portals.

Menu items support localization, validity windows, role-based visibility, and ordering to deliver a consistent navigation experience across modules.


Typical Uses

  • Build a Ticketing section with children: All Tickets, My Queue, SLAs, Reports.
  • Provide shortcuts for power users (e.g., “My Open Orders”, “Approvals”).
  • Expose Self-care entries separate from internal UI.
  • Hide WIP features via validity or feature flag stored in config/dataTags.
  • Mirror Modules with top-level nodes; place related screens underneath.

Routing & Display

  • routerLink — front-end route the item opens (preferred).
  • url — backend endpoint associated with the screen/listing (optional; useful for tooling and deep link generators).
  • icon — icon identifier used in UI.
  • parentId — builds the menu tree (item becomes a child of the parent).

Visibility is governed by privilege (role/permission), visible flag, and validity; order is defined by sortOrder.


Reference

FieldTypeRequiredRead-onlyDescription / Notes
idUUIDIdentifier (not intended for end-user display).
codeStringYesUnique ASCII code (no spaces). Stable key referenced by UI/admin tools.
nameStringYesLabel shown to users (localized via localizationData).
descriptionStringTooltip/longer help text.
validityFrom/ToDateActive window for the item.
validBoolYesComputed from validity; not stored.
routerLinkStringFront-end route to open (preferred for navigation).
urlStringBackend URL associated with the screen/listing; helps deep-link tooling and integrations.
iconStringIcon identifier used in UI.
parentIdUUIDParent menu item (self.id); defines hierarchy.
typeEnumMENU, BOOKMARK, or SELFCARE.
sortOrderLongYesDisplay order among siblings (lower first).
privilegeStringPermission/role required to see the item.
visibleBoolExplicit show/hide flag (in addition to privilege/validity).
useDefaultSettingBoolIf true, UI may apply default behavior (e.g., inherited filters/layout) for this item.
userIdUUIDWhen set, the item is user-specific (e.g., personal bookmark).
configMapFree-form admin/UI metadata (e.g., default filters, feature flags).
dataTagsListLabels for grouping/reporting (e.g., core, pilot, selfcare).
localizationDataObjectTranslations for name/description.
auditInfoObjectStandard audit metadata.

type values

  • MENU — standard navigation item (can have children).
  • BOOKMARK — user or team favorite (often with userId).
  • SELFCARE — item intended for customer/partner portal navigation.

Good Practices

  • Prefer routerLink for consistent client-side routing; keep url as informational/auxiliary.
  • Stable code — treat it as immutable; referenced by imports, scripts, and admin tools.
  • Order & hierarchy — use sortOrder and parentId to build predictable trees; avoid excessive nesting.
  • Guard with privilege — hide sensitive areas; combine with visible=false for staged rollouts.
  • Use dataTags to flag bundles (e.g., pilot) for environment-specific toggles.
  • Localize early — populate localizationData to keep navigation consistent across languages.
  • Keep config lean — store only UI hints (filters, default views); business rules live in forms/processes.

See Also

  • System Settings: Module — business-domain grouping behind navigation sections
  • System Settings: EntityType — types that many menu screens refer to
  • System Settings: Microservice — backends that power the routed screens