Skip to content

CAP-PFM-INT-004Maintain a verified provider account connection

Markdown

CAP-PFM-INT-004

Maintain a verified provider account connection

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
Successful account verification establishes connection usability.A binding prevents accidental removal of the connection it selects.An abandoned initial connection can be discarded.
Surfaces
consoleapijob
Intent sources
services-platform:docs/milestones/INTG-M1-find-install-connect.md#D7services-platform:docs/milestones/INTG-M1-find-install-connect.md#D9services-platform:docs/milestones/INTG-M1-find-install-connect.md#D10services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S05services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S06services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S09services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S11services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S12services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S19

Controls

39 controls apply, from the corpus control catalogue.

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-DAT-004 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-LOG-001 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.manageapitenant
platform.integrations.readapitenant
platform.integrations.manageconsoletenant

Business Rules

12 rules, 12 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
Creation requires an enabled installation and supported authentication, pins the current published release and waits for credentials; a platform-account connection instead begins verification with a job.
lifecycleservicetest
services-platform:modules/integrations/tests/e2e/integrations.e2e.spec.js#connects a platform account, which starts verifying with its job
02must prove
Proposed
A connection uses its supplied identifier or one derived from its name, conforms to configuration identifier syntax and is unique within the workspace; conflicts identify the taken value.
validationapi, service, databasetest
services-platform:modules/integrations/tests/e2e/integrations.e2e.spec.js#refuses a second connection of the tenant whose name derives to a taken id, 409 naming the id
03must prove
Proposed
An installation cannot hold two non-disconnected connections for the same provider account; verification of a duplicate ends in failed verification with its cause.
invariantservice, databasetest
services-platform:modules/integrations/tests/integration/db/integration-connections.table.integration.spec.js#refuses the same provider account connected twice under the installation
04must prove
Proposed
Connection changes use permitted named transitions, leave disconnected final and write both audit trails and binding notifications; a refused transition makes no change.
invariantservicetest
services-platform:modules/integrations/tests/unit/services/connection-state-machine.spec.ts#is chapter 09 §4.3’s, edge for edge, and the three discards of INTG-M1 (D7)
05must prove
Proposed
Passing verification records the account and supported features, activates the connection and provisions its declared webhook endpoints; failure records the provider’s reason and can be retried.
lifecycleservicetest
06must prove
Proposed
Only active or degraded connections can be suspended, suspension blocks their use, and suspension and resume record the actor and reason.
lifecycleservicetest
services-platform:modules/integrations/tests/integration/services/installations/history-and-security-trail.integration.spec.js#refuses a suspension of a connection that is not active, recording it in neither trail
07must prove
Proposed
Disconnection accepts active, degraded, suspended, re-authorization-required or previously verified failed connections, but refuses while any current binding selects it, identifies the bindings and offers no override.
policyapi, servicetest
services-platform:modules/integrations/tests/e2e/disconnect-and-uninstall.e2e.spec.js#answers a disconnection of a bound connection 409, code connection_has_bindings, naming each binding
08must prove
Proposed
An initial connection awaiting authentication, verifying for the first time or failed without prior success may be discarded into disconnected, with a discard reason, so it no longer prevents uninstall.
lifecycleservicetest
services-platform:modules/integrations/tests/integration/services/connections/disconnect-discard-uninstall.integration.spec.js#ends a pending_auth connection disconnected, by the caller, with a reason saying it was discarded before it was ever connected
09must prove
Proposed
Disconnection disables webhook endpoints, revokes credentials for later secret deletion, clears connection notices and records the responsible person and reason.
policyservicetest
10must prove
Proposed
Only active or degraded connections can move to a different published release of the same integration; newly requested access must already be covered by the old release or acceptance, and the pin changes after successful verification of the same account.
policyserviceobserved
11must prove
Proposed
Concurrent requests for the same open verification or health check reuse its job rather than create another.
no proof recorded yet
invariantservicetest
12must prove
Proposed
Connection discovery can filter for active connections with a verified capability feature, without exposing credentials.
no proof recorded yet
policyapi, servicetest
services-platform:modules/integrations/tests/e2e/integrations.e2e.spec.js#discovers the connection once it is active with the feature verified, and answers no credential

Scenarios

IdGivenWhenThenProvenance
01The browser closes during an initial connection attempt.The administrator returns to remove the installation.Discarding the unfinished connection permits the subsequent uninstall.test
02Two business-unit bindings select Main account.The administrator requests disconnection.The refusal identifies both dependent bindings.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.