Skip to content

CAP-PFM-INT-008Explain and select the connection for a call

Markdown

CAP-PFM-INT-008

Explain and select the connection for a call

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleIntegration access, customer extensions and shared workflow configurationRevision1

Read atservices-platform ad3f6a65macroservice-libraries 54536a44react-console baf6dae3

The Formal Contract

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

Outcomes
Resolution selects the configured eligible connection or refuses before provider contact.An explanation exposes the same checks an application’s call uses.
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.plan.md#A3services-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-S02services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.plan.md#INTG-M2-S04

Controls

30 controls apply, from the corpus control catalogue.

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

Permissions

KeyChecked atScope
platform.integrations.readapitenant
platform.integrations.readconsoletenant

Business Rules

10 rules, 10 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
Confirmed
Resolution examines available scopes in record, business unit, application and workspace order, skipping scopes missing from the call context.
calculationservicetest
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#asks every scope the policy allows and the context names, most specific first
02must prove
Proposed
The trace records eligibility checks for binding state, connection state, installation, deployed usable release, capability major and mode, verified features, amount and geography constraints, circuit state, and caller authorization with accepted capability access.
validationservicetest
03must prove
Confirmed
An ineligible sensitive binding or refuse-policy binding stops resolution; other policies continue to broader scopes and report a skipped-binding warning.
policyservicetest
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#stops at the first ineligible binding with binding_ineligible, never reaching the broader scope
04must prove
Proposed
When no scope has a binding, resolution refuses for missing configuration and records every scope examined.
validationservicetest
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses no_binding with every visited scope recorded, each with no binding
05must prove
Proposed
Retired or sunset contract majors refuse before binding reads, deprecated majors remain usable before sunset and unknown capabilities are invalid requests.
lifecycleservicetest
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#refuses contract_retired after its sunset, reading no scope
06must prove
Proposed
Degraded connections remain eligible with a warning, while suspended or re-authorization-required connections are ineligible.
policyservicetest
services-platform:modules/integrations/tests/integration/services/bindings/resolve.integration.spec.js#resolves with the connection_degraded warning while the circuit is closed
07must prove
Proposed
An open circuit appears in the trace without invalidating its binding, so the gateway refuses provider availability on the selected connection rather than switches providers.
policyservicetest
services-platform:modules/integrations/tests/unit/services/binding-resolution.spec.ts#resolves a payment whose processor’s circuit is open rather than refusing it binding_ineligible
08must prove
Proposed
Explicit-connection calls bypass bindings but require a usable workspace connection on a deployed release supporting the capability and mode; disconnected is reported distinctly from other unavailable states.
validationservicetest
services-platform:modules/integrations/tests/integration/services/bindings/resolve.integration.spec.js#reaches the processor that took the payment through its named connection
09must prove
Proposed
Integration readers may Explain using the same application context and trace as resolution, including refusal when an explicitly named connection lacks support.
permissionapi, consoletest
10must prove
Proposed
Resolution uses a read-only transaction, rereads workspace records on each request and caches catalogue facts for no more than sixty seconds.
no proof recorded yet
invariantservicetest
services-platform:modules/integrations/tests/integration/services/bindings/resolve.integration.spec.js#read the tenant’s rows afresh on every resolution: a suspension is seen at once

Scenarios

IdGivenWhenThenProvenance
01A meeting record’s room account lacks webinars, while the application’s broader account supports them.The application resolves a webinar call for that record.Resolution uses the broader account and warns that it skipped the record choice.test
services-platform:modules/integrations/tests/e2e/integration-bindings.e2e.spec.js#explains a webinar: the main account, by the application, warning that the resource binding was skipped

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.