Skip to content

CAP-PFM-INT-003Adopt an integration with reviewed access

Markdown

CAP-PFM-INT-003

Adopt an integration with reviewed access

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
The saved installation reflects the administrator’s choices within the declared access.Installation suspension blocks use, and removal ends its subscriptions.
Surfaces
consoleapi
Intent sources
services-platform:docs/milestones/INTG-M1-find-install-connect.md#D4services-platform:docs/milestones/INTG-M1-find-install-connect.md#D7services-platform:docs/milestones/INTG-M1-find-install-connect.md#D11services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S03services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S04services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S13services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S17

Controls

35 controls apply, from the corpus control catalogue.

TC-AVL-004 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-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-PI-001 TC-PI-002 TC-PI-003 TC-PI-004 TC-PI-005 TC-PRV-001 TC-PRV-002 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
Installation requires an integration offered to the workspace and allows one installation per integration; attempts to install an existing enabled or suspended installation are refused without a second record.
validationservice, databasetest
02must prove
Proposed
Accepted capabilities, events, data fields and Rhythm permissions must fit the current integration declaration at installation and on edit; previously withdrawn declared access can be accepted again.
validationserviceobserved
03must prove
Proposed
Installation settings are validated against the provider’s declared form on creation and change, with each problem identified and no invalid value saved.
validationservice, consoletest
04must prove
Proposed
An installation edit must use the version read; a stale edit leaves the newer settings and acceptance untouched.
validationservicetest
05must prove
Proposed
Withdrawing a capability blocks the next bound call before provider contact, and credential leases omit permissions the installation no longer accepts.
policyservicetest
06must prove
Proposed
Suspension requires a reason, pauses active and degraded connections, and resume restores only connections paused by that installation; repeated state changes are refused.
lifecycleservicetest
services-platform:modules/integrations/tests/integration/services/installations/installation-lifecycle.integration.spec.js#suspends the active and degraded connections of the installation when it is suspended
07must prove
Proposed
An enabled or suspended installation can be uninstalled only after all its connections are disconnected; refusal identifies the remaining connections and successful removal preserves the installation record.
lifecycleservicetest
services-platform:modules/integrations/tests/integration/services/connections/disconnect-discard-uninstall.integration.spec.js#is refused while a connection is not disconnected, naming each by id, name and status
08must prove
Proposed
Uninstalling deletes the installation’s subscriptions and prevents new deliveries for them.
policyservicetest
services-platform:modules/integrations/tests/integration/services/connections/disconnect-discard-uninstall.integration.spec.js#removes every subscription of the installation with the uninstallation, and no other installation’s
09must prove
Proposed
Reinstallation reuses the uninstalled record, enables it with the new acceptance and records a reinstallation event.
lifecycleservicetest
services-platform:modules/integrations/tests/integration/services/installations/installation-lifecycle.integration.spec.js#installs again as the same row, enabled with the new acceptance, audited as a reinstallation
10must prove
Proposed
Accepted installation changes enter integration history and the security trail, including whether access widens; refused changes enter neither trail.
invariantservicetest
11must prove
Proposed
Workspace deletion purges that workspace’s integration records and removes protected history last, without touching another workspace’s records.
lifecycleservice, databasetest
services-platform:modules/integrations/tests/integration/services/maintenance/tenant-participant.integration.spec.js#leaves every table of the module empty of the tenant, the ones the application can delete included
12must prove
Proposed
A different workspace’s administrator is refused installation and connection reads and writes, including requests using known record identifiers.
permissionapi, databasetest
services-platform:modules/integrations/tests/e2e/reader-access.e2e.spec.js#is refused every tenant route of this tenant, by id as by list (403)

Scenarios

IdGivenWhenThenProvenance
01A provider requests several payment capabilities.The administrator installs it with a reduced selection, then submits access outside the declaration.The reduced selection is retained and undeclared access is refused.test
02Staff want to stop trusting an installed provider.They suspend it, disconnect its accounts and uninstall from suspended.Use pauses and removal succeeds after the connection prerequisites are satisfied.test
services-platform:modules/integrations/tests/e2e/disconnect-and-uninstall.e2e.spec.js#answers the uninstallation of a suspended installation 200 once every connection is disconnected

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.