Skip to content

CAP-PFM-NOT-004Render recipient-specific notification content

Markdown

CAP-PFM-NOT-004

Render recipient-specific notification content

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleStaff Notifications and Association CommunicationsRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Each eligible recipient receives content rendered for that person.Navigation uses an absolute destination when the console base is configured; retained request data conceals declared link values.
Surfaces
jobconsole
Intent sources
services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S01

Controls

21 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-PI-001 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Business Rules

8 rules, 4 to be proved before approval. A rule's product intent is derived from its origin: 0 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
Rendering uses each recipient's locale and time zone; an unavailable regional locale falls back to its language, and an undeclared language falls back to English.
no proof recorded yet
calculationservicetest
services-platform:modules/notifications/tests/unit/render-message.spec.js#renders an instant in the recipient’s zone, not the server’s
02
Proposed
Template inputs combine request data with Platform-supplied recipient, organization, subject-record and destination objects.
policyservicetest
services-platform:modules/notifications/tests/unit/render-message.spec.js#renders the platform’s four objects: the person, the organization, the record and the destination
03must prove
Proposed
Console rendering truncates titles beyond 140 characters and bodies beyond 2,000 instead of rejecting delivery.
no proof recorded yet
calculationservicetest
services-platform:modules/notifications/tests/unit/render-message.spec.js#cuts a title longer than 140 characters rather than refusing the notification
04must prove
Proposed
Console destinations are workspace-relative and open in the notice's workspace; other channels use its console base address when available; HQ destinations retain their HQ path, and missing route parameters prevent destination construction.
no proof recorded yet
calculationservice, consoletest
services-platform:modules/notifications/tests/unit/render-message.spec.js#gives the in-app record the tenant-relative path, and every other channel the absolute link under the workspace
05must prove
Proposed
After rendering, retained data replaces declared link values with a redaction marker while preserving their fields.
no proof recorded yet
policyservicetest
06
Proposed
The resulting notice includes category, severity, subject-record identity and label, and occurrence time.
policyservicetest
services-platform:modules/notifications/tests/unit/render-message.spec.js#carries the severity, the record and the instant it happened
07
Proposed
The console opens internal workspace routes in the current tab and absolute HTTPS destinations in another tab.
policyconsoletest
react-console:components/notifications/__tests__/destination.test.ts#keeps an absolute https link and opens it in a new tab
08
Proposed
Platform does not resolve resource names for responsibility wording; Organization-wide notices name the organization; scoped notices leave resource naming to the console.
policyservice, consoledocumented

Scenarios

IdGivenWhenThenProvenance
01Jane's Northeast assignment uses English locale and Eastern time.Platform renders her assignment item.Recipient content and time formatting follow her settings, and its action reaches My Responsibilities in her workspace.inferred

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.