Skip to content

CAP-PFM-INT-007Assign provider connections to business needs

Markdown

CAP-PFM-INT-007

Assign provider connections to business needs

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
A business scope retains a single current connection choice.Invalid choices expose their cause and notify administrators.Historical call records retain the choice that actually served them.
Surfaces
consoleapi
Intent sources
services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D4services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D9services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S01services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S03services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S21services-platform:docs/milestones/INTG-M1-find-install-connect.md#D4

Controls

31 controls apply, from the corpus control catalogue.

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

Permissions

KeyChecked atScope
platform.integrations.manageapitenant
platform.integrations.readapitenant
platform.integrations.manageconsoletenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Proposed
A binding selects a capability major, scope and connection; each record, business unit, application or workspace scope has one current binding, and replacement advances its revision.
invariantservice, databasetest
02must prove
Proposed
Binding creation preserves the existing choice on refusal and requires a bindable contract, valid allowed scope, matching record application, known and verified required features and a usable workspace connection implementing that major.
validationapi, servicetest
03must prove
Confirmed
Sensitive money-moving capabilities default to refusal on an ineligible connection, while other capabilities default to continuing to a broader binding.
policyservicetest
04must prove
Proposed
Removing a binding supersedes it without replacement, exposes broader scope resolution and retains the removed choice in history.
lifecycleservicetest
05must prove
Proposed
Binding changes append immutable snapshots in newest-first scope history, retaining at most two hundred recent revisions per binding.
invariantservice, databasetest
services-platform:modules/integrations/tests/integration/db/integration-binding-revisions.table.integration.spec.js#refuses an UPDATE of a revision by the application role, so a history cannot be rewritten
06must prove
Proposed
A binding becomes invalid with a reason when connection state, installation suspension, capability support or required features prevent use, and reactivates when eligibility returns.
lifecycleservicetest
services-platform:modules/integrations/tests/integration/services/bindings/invalidation.integration.spec.js#invalidates its active bindings with connection_suspended, at the next revision
07must prove
Proposed
Invalidating active bindings sends one post-commit e-mail per connection naming affected choices and reasons, while restoration sends none.
policyservicetest
services-platform:modules/integrations/tests/integration/services/bindings/invalidation.integration.spec.js#tells the administrators once, after the commit, naming both bindings and why
08must prove
Confirmed
An administrator can move at most two hundred active bindings to another active connection under normal eligibility rules; dry run saves nothing and one failed move does not roll back successful moves.
policyapi, servicetest
services-platform:modules/integrations/tests/integration/services/bindings/binding-move.integration.spec.js#replaces every active binding of the source with one choosing the target, at the same scope, policy and note
09must prove
Proposed
Migration copies bindings to another capability major under normal validation, optionally supersedes the source, writes nothing in dry run and identifies previously completed copies on repetition.
policyapi, servicetest
services-platform:modules/integrations/tests/integration/services/bindings/binding-migration.integration.spec.js#refuses each ineligible binding with its reason and leaves the already migrated one alone
10must prove
Proposed
Integration read permits binding and revision reads, and integration manage is required for changes.
permissionapi, consoletest
11must prove
Proposed
Binding operations also record before-and-after scope, connection, status and revision in security history, marking creation, replacement, restoration and copying as widening.
no proof recorded yet
invariantservicetest

Scenarios

IdGivenWhenThenProvenance
01Two merchant accounts serve different business scopes.Staff assign Payrix to one account and Stripe to the other business unit.Resolution uses the record choice for the first and the business-unit choice for the second.test
services-platform:modules/integrations/tests/e2e/integration-bindings.e2e.spec.js#explains a tender on B: Stripe, by its business unit, after finding no resource binding
02Two business units select Main account.Staff move both choices to Events account before disconnecting Main account.The business units use the replacement and the former account ends disconnected.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.