---
id: JNY-PFM-INT-002
title: Move dependent work before retiring an integration
feature: FEAT-PFM-INT-02
product_area: platform
module: integrations
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: observed
supersedes:
  - INT-ACC-0063
  - INT-ACC-0027
  - INT-ACC-0262
  - INT-ACC-0012
  - INT-ACC-0013
  - INT-ACC-0124
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-PFM-017
goal: 'Replace a retiring account in its bindings, disconnect the accounts and remove their installation.'
capabilities:
  - CAP-PFM-INT-004
  - CAP-PFM-INT-007
  - CAP-PFM-INT-003
screens:
  - '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
  - '/console/{tenantId}/configuration/platform/integrations/{integrationKey}'
  - '/console/{tenantId}/configuration/platform/integrations/bindings'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
    action: 'Pause an account with an explanation, then resume it.'
    capability: CAP-PFM-INT-004
    expected: 'The state moves through suspended to active, and the history records both operators and explanations.'
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0063.spec.ts#INT-ACC-0063'
  - 'n': 2
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
    action: Request account disconnection.
    capability: CAP-PFM-INT-004
    expected: The refusal identifies the bindings that still select this account and offers replacement.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0027.spec.ts#INT-ACC-0027'
  - 'n': 3
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
    action: Select another account for those bindings and confirm the move.
    capability: CAP-PFM-INT-007
    expected: 'The bindings select the replacement, with the change retained in each history.'
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/bindings/INT-ACC-0262.spec.ts#INT-ACC-0262'
  - 'n': 4
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
    action: Request and confirm disconnection after the move.
    capability: CAP-PFM-INT-004
    expected: 'The account becomes disconnected, its credential is revoked and its endpoints close.'
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/bindings/INT-ACC-0262.spec.ts#INT-ACC-0262'
  - 'n': 5
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}'
    action: Disconnect the other accounts and remove the installation.
    capability: CAP-PFM-INT-003
    expected: Removal identifies any remaining connected account and succeeds once all accounts are disconnected.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0012.spec.ts#INT-ACC-0012'
alternates:
  - from_step: 5
    condition: An account setup remains incomplete
    path: Discard the unfinished connection rather than disconnecting it
    outcome: Installation removal can proceed
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0013.spec.ts#INT-ACC-0013'
failures:
  - from_step: 2
    condition: A read-only colleague requests disconnection through the service
    path: Deny the request before inspecting dependent bindings
    outcome: Preserve every record
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/e2e/disconnect-and-uninstall.e2e.spec.js#refuses a reader
      the disconnection (403) before it looks at the bindings
rules_in_play:
  - BR-CAP-PFM-INT-004-06
  - BR-CAP-PFM-INT-004-07
  - BR-CAP-PFM-INT-004-09
  - BR-CAP-PFM-INT-007-08
  - BR-CAP-PFM-INT-003-07
  - BR-CAP-PFM-INT-003-08
assertions:
  - id: AS-JNY-PFM-INT-002-01
    statement: Current bindings prevent disconnection and appear in its refusal.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0027.spec.ts#INT-ACC-0027'
  - id: AS-JNY-PFM-INT-002-02
    statement: Moving every active binding off the source account permits its disconnection.
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/bindings/binding-move.integration.spec.js#leaves
      the source with no active binding, so its disconnection is no longer refused
  - id: AS-JNY-PFM-INT-002-03
    statement: Any account that remains connected prevents installation removal.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0012.spec.ts#INT-ACC-0012'
e2e_policy: required
e2e_reason: >-
  Browser acceptance must exercise binding refusal, replacement confirmation and final retirement as one
  administrator sequence.
evidence:
  - >-
    Steps, alternates, failures and assertions cite the acceptance journeys and service tests at the commits
    in source_sha.
intent_sources:
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D7'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D9'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D11'
  - 'services-platform:docs/milestones/INTG-M2-calls-through-the-gateway.md#M2-D9'
proved_by: []
---
# Move dependent work before retiring an integration

## Story

An administrator first pauses and resumes an account, then asks to retire it. The product identifies dependent bindings. After confirming their replacement, the administrator disconnects the account and removes the installation when its other accounts are also disconnected. The capability rules define the safeguards; this journey shows their order.
