---
id: JNY-PFM-INT-001
title: Install an integration and recover a failed connection
feature: FEAT-PFM-INT-01
product_area: platform
module: integrations
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: partially-observed
supersedes:
  - INT-ACC-0080
  - INT-ACC-0006
  - INT-ACC-0130
  - INT-ACC-0016
  - INT-ACC-0202
  - INT-ACC-0118
  - INT-ACC-0049
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-PFM-017
goal: >-
  Choose an offered integration, restrict its access and verify a provider account while preserving read-only
  access for colleagues.
capabilities:
  - CAP-PFM-INT-002
  - CAP-PFM-INT-003
  - CAP-PFM-INT-004
  - CAP-PFM-INT-005
  - CAP-PFM-INT-006
screens:
  - '/console/{tenantId}/configuration/platform/integrations/catalog'
  - '/console/{tenantId}/configuration/platform/integrations/catalog/{integrationKey}'
  - '/console/{tenantId}/configuration/platform/integrations/{integrationKey}'
  - '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/new'
  - '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
  - '/console/{tenantId}/configuration/platform/integrations/needs-attention'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/configuration/platform/integrations/catalog'
    action: Find the dummy integration in the catalog and view its offer.
    capability: CAP-PFM-INT-002
    expected: 'The matching card opens an overview of the capabilities, requested access and available versions.'
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/catalog/INT-ACC-0080.spec.ts#INT-ACC-0080'
  - 'n': 2
    surface: '/console/{tenantId}/configuration/platform/integrations/catalog/{integrationKey}'
    action: 'Start installation, clear two access choices and enter the required settings.'
    capability: CAP-PFM-INT-003
    expected: The saved installation displays the selected access and settings.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0006.spec.ts#INT-ACC-0006'
  - 'n': 3
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/new'
    action: Add an account using a key that the provider rejects.
    capability: CAP-PFM-INT-004
    expected: The connection displays a red verification failure and the provider’s explanation.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/catalog/INT-ACC-0130.spec.ts#INT-ACC-0130'
  - 'n': 4
    surface: '/console/{tenantId}/configuration/platform/integrations/needs-attention'
    action: View the Needs Attention list.
    capability: CAP-PFM-INT-006
    expected: The failed account appears with a recovery action and matching summary counts.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/catalog/INT-ACC-0118.spec.ts#INT-ACC-0118'
  - 'n': 5
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
    action: Open the connection details and supply an accepted key.
    capability: CAP-PFM-INT-005
    expected: >-
      The account becomes active, displays its verified features and reveals only the final four key
      characters.
    provenance: observed
    source: 'react-console:components/integrations/connection-detail.tsx:1162'
  - 'n': 6
    surface: '/console/{tenantId}/configuration/platform/integrations/{integrationKey}/connections/{connectionId}'
    action: Visit the same pages with a colleague’s read-only account.
    capability: CAP-PFM-INT-002
    expected: The colleague can inspect the records but receives neither editing controls nor secret values.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0049.spec.ts#INT-ACC-0049'
alternates:
  - from_step: 3
    condition: The administrator leaves account setup before verification finishes
    path: Discard the incomplete account connection
    outcome: The connection becomes disconnected and ceases to prevent uninstalling
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0013.spec.ts#INT-ACC-0013'
failures:
  - from_step: 2
    condition: Requested acceptance includes access absent from the offer
    path: Reject installation and identify the unsupported access
    outcome: Keep the installation unchanged
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/installations/history-and-security-trail.integration.spec.js#is
      never widened beyond what the integration declares: refused, naming it, and nothing is written
rules_in_play:
  - BR-CAP-PFM-INT-002-01
  - BR-CAP-PFM-INT-002-06
  - BR-CAP-PFM-INT-003-02
  - BR-CAP-PFM-INT-003-03
  - BR-CAP-PFM-INT-004-05
  - BR-CAP-PFM-INT-005-01
  - BR-CAP-PFM-INT-005-04
  - BR-CAP-PFM-INT-006-01
  - BR-CAP-PFM-INT-006-10
assertions:
  - id: AS-JNY-PFM-INT-001-01
    statement: Saved acceptance matches the administrator’s selections.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0006.spec.ts#INT-ACC-0006'
  - id: AS-JNY-PFM-INT-001-02
    statement: An accepted key produces an active account with the verified features.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/catalog/INT-ACC-0130.spec.ts#INT-ACC-0130'
  - id: AS-JNY-PFM-INT-001-03
    statement: The attention list retains the failed account until valid credentials pass verification.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/catalog/INT-ACC-0118.spec.ts#INT-ACC-0118'
  - id: AS-JNY-PFM-INT-001-04
    statement: A colleague with read permission receives no editing controls.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0049.spec.ts#INT-ACC-0049'
e2e_policy: required
e2e_reason: >-
  A browser walk must connect access selection, account setup and reader controls. Recovery remains a recorded
  gap in the current browser evidence.
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.plan.md#INTG-M1-S03'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S05'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S06'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S08'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D4'
proved_by: []
---
# Install an integration and recover a failed connection

## Story

An administrator reviews an offer and installs it with fewer permissions than requested. An invalid account key produces a visible failure. The administrator finds the account in the attention list and repairs credentials from its detail page. A colleague inspects the result with read permission. The browser recovery gap remains an examination finding; this story does not establish that the unfinished wizard supports the same repair.
