Skip to content

CAP-PFM-INT-013Retain and verify incoming provider notifications

Markdown

CAP-PFM-INT-013

Retain and verify incoming provider notifications

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision1

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
Durable storage precedes notification acknowledgement.Duplicate handling avoids repeated processing except during an explicit replay.Operators can reprocess retained messages following a correction.
Surfaces
apijobconsole
Intent sources
services-platform:docs/milestones/INTG-M3-webhooks-events-deliveries.md#Objective

Controls

36 controls apply, from the corpus control catalogue.

TC-AVL-001 TC-AVL-004 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-CRY-001 TC-CRY-002 TC-CRY-003 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-IAM-001 TC-IAM-006 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-MON-001 TC-MON-002 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-004 TC-PI-005 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

Permissions

KeyChecked atScope
platform.integrations.readapitenant
platform.integrations.manageapitenant
platform.integration-executions.operateapitenant

Business Rules

9 rules, 9 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
Ingress accepts messages only for enabled provisioned endpoints, returns bodyless not found otherwise, refuses bodies over one megabyte and throttles each endpoint above fifty requests per second.
validationapi, servicetest
02must prove
Proposed
Ingress stores body and headers before recording and queueing the notification or acknowledging receipt, omitting authorization and cookies unless verification requires them.
invariantservicetest
services-platform:modules/integrations/tests/integration/services/webhooks/ingress.integration.spec.js#stores the body and headers, then records the event pending and queued with its digest and a queue row
03must prove
Proposed
Registration-challenge endpoints verify and return the adapter’s challenge response inline.
no proof recorded yet
policyservicetest
services-platform:modules/integrations/tests/integration/services/webhooks/ingress.integration.spec.js#answers a registration challenge inline with the adapter’s response, after verifying it
04must prove
Proposed
The worker verifies stored notifications with endpoint secrets, rejects invalid signatures without events and queues events from verified messages; retryable failures follow six asynchronous attempts and permanent failures stop immediately.
lifecycleservicetest
05must prove
Proposed
Processed provider event identifiers remain duplicates permanently, body duplicates on the same endpoint remain duplicates for twenty-four hours when no event identifier exists, and explicit replay bypasses both checks.
invariantservice, databasetest
services-platform:modules/integrations/tests/integration/services/webhooks/webhook-worker.integration.spec.js#ignores a second request with the provider event id of one already processed, pointing at the first
06must prove
Proposed
Verification provisions declared endpoints with minted secrets, and manually registered endpoints expose their address and secret once to an authorized administrator.
policyservice, apitest
07must prove
Proposed
Secret rotation accepts both old and new signing secrets for twenty-four hours and then accepts only the replacement.
lifecycleservicetest
08must prove
Proposed
Operators may replay an individual stored message or an endpoint window no longer than seven days, with each replay entering history.
policyapi, servicedocumented
09must prove
Proposed
Integration readers inspect endpoint and notification records without signing-secret values.
permissionapitest

Scenarios

IdGivenWhenThenProvenance
01The test provider posts a payment-state notification.Rhythm verifies and processes the retained message.A payment update is routed to Accounting and acknowledged.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.