Skip to content

CAP-PFM-NOT-013Send operational alerts to Rhythm HQ

Markdown

CAP-PFM-NOT-013

Send operational alerts to Rhythm HQ

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
Operational events create Slack work for Rhythm staff.Retained outcomes and payloads exclude the Slack credential.
Surfaces
slackjob
Intent sources
services-platform:docs/milestones/PLAT-M23-notifications-core-and-in-app.md#D1services-platform:docs/proposals/notifications/23-decisions.md#D-12services-platform:docs/milestones/plans/PLAT-M23-plan.humanized.md#PLAT-M23-S14

Controls

49 controls apply, from the corpus control catalogue.

TC-AVL-004 TC-AVL-005 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-CHG-001 TC-CHG-002 TC-CHG-003 TC-CHG-004 TC-CHG-005 TC-CHG-006 TC-CRY-001 TC-CRY-002 TC-CRY-003 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-006 TC-IAM-001 TC-IAM-002 TC-IAM-003 TC-IAM-004 TC-IAM-005 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-005 TC-MON-001 TC-MON-002 TC-PI-001 TC-PI-002 TC-PI-004 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-PRV-004 TC-SEC-001 TC-SEC-002 TC-SEC-003 TC-SEC-004 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Business Rules

11 rules, 8 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
HQ alerts use ordinary pipeline requests, notices and deliveries inside the reserved Rhythm system workspace; the Platform publication interface bypasses personal preferences, identities and workspace configuration.
no proof recorded yet
policyservicetest
services-platform:modules/notifications/tests/integration/services/system/system-audience.integration.spec.js#is accepted as one request, one instance with no recipient and one queued slack_system delivery with the Block Kit payload
02must prove
Proposed
System audiences are accepted only in the Rhythm system workspace and do not select people; Customer system-audience requests are invalid; recipient-less notices belong only to the system workspace.
no proof recorded yet
invariantservice, databasetest
services-platform:modules/notifications/tests/integration/services/system/system-audience.integration.spec.js#is refused in a customer’s tenant as audience_kind_not_allowed, even for a definition that declares it, and nothing is made
03must prove
Proposed
A code-maintained channel map routes system definitions, including both provisioning outcomes to operations; missing mappings reject registration and make corresponding requests invalid.
no proof recorded yet
validationservicetest
services-platform:modules/notifications/tests/unit/hq-channels.spec.js#refuses a system definition with no entry in the map, naming the definition and the audience_kinds path
04must prove
Proposed
Each mapped channel receives a separate notice and Slack delivery without a console delivery or personal recipient; repeated publication of the same occurrence is deduplicated.
no proof recorded yet
invariantservicetest
05must prove
Proposed
Slack payloads include a bold title, body, HQ context with Eastern time, open-action link buttons and plain-text fallback; operation actions are omitted, text is escaped and capped at 3,000 characters, and routing uses channel keys rather than stored Slack identifiers.
no proof recorded yet
calculationservicetest
services-platform:modules/notifications/tests/unit/slack-system-render.spec.js#is exactly a bold title and the body, the Rhythm HQ context line in Eastern time, one URL button and a plain fallback
06must prove
Proposed
A secret supplies the Slack bot token; Success retains the provider message reference; throttling respects Slack's minimum delay; missing channels, membership, valid credentials or active accounts fail permanently; other errors retry; missing secret or channel configuration skips delivery with a warning.
no proof recorded yet
policyservicetest
services-platform:modules/notifications/tests/unit/slack-system-adapter.spec.js#answers a 429 as a retryable failure carrying Retry-After
07must prove
Proposed
The Slack credential is absent from retained delivery outcomes and payloads.
no proof recorded yet
invariantservicetest
services-platform:modules/notifications/tests/unit/slack-system-adapter.spec.js#never puts the token in a log line, an outcome or the payload it stored
08
Proposed
Permanent HQ-alert failure increments failure accounting and alerts the operations topic.
policyservicedocumented
09
Proposed
Provisioning completion and failure publish once-per-job alerts at the requester-notification points; Requester e-mail remains independent, and alert publication failure does not fail provisioning.
policyservicedocumented
10
Proposed
Installing the HQ Slack adapter does not enable personal Slack delivery before its milestone.
policyservicetest
services-platform:modules/notifications/tests/integration/services/system/system-audience.integration.spec.js#is still skipped until its milestone, though the system adapter is installed beside it
11must prove
Proposed
System-workspace initialization creates a missing reserved support workspace once, under its demonstration customer, without live status or a licence.
no proof recorded yet
invariantservice, databasetest
services-platform:modules/notifications/tests/integration/services/system/system-audience.integration.spec.js#is a support tenant of its own demo customer, active but never live, with no licence company

Scenarios

IdGivenWhenThenProvenance
01HQ provisioning for Acme Dental ends in failure.The provisioning job settles.Operations Slack receives the failed-provisioning alert with its reason and job link; customer History receives no copy.test

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.