---
id: CAP-PFM-INT-002
title: Explore the integrations available to a workspace
feature: FEAT-PFM-INT-01
product_area: platform
module: integrations
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - CAP-INT-CAT-002
  - CAP-INT-LIB-001
  - CAP-INT-LIB-003
  - CAP-INT-LIB-004
  - CAP-INT-LIB-019
  - CAP-INT-LIB-020
  - CAP-INT-SEC-001
  - CAP-INT-SEC-013
  - CAP-INT-SEC-014
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D3'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D4'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S01'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S02'
  - 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#A1'
purpose: Staff compare the integrations available to their workspace before deciding which one to adopt.
outcomes:
  - The workspace finds precisely the integrations offered to it.
  - 'Provider details explain supported jobs, requested access and available releases.'
concepts:
  - CON-PFM-INT-001
actors:
  - ACT-PFM-017
  - ACT-PFM-018
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: platform.integrations.read
    where_checked: api
    scope: tenant
  - key: platform.integrations.read
    where_checked: console
    scope: tenant
rules:
  - id: BR-CAP-PFM-INT-002-01
    proved_by: [ATS-PFM-INT-001-14, ATS-PFM-INT-002-01, TST-PFM-INT-344, TST-PFM-INT-515]
    statement: >-
      The workspace catalogue includes active integrations with a published current release only where public
      availability, a restricted grant or Rhythm staff access permits them.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/catalog/catalog.integration.spec.js#shows
      a restricted integration only to the tenant granted it
    origin: 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D3'
  - id: BR-CAP-PFM-INT-002-02
    proved_by: [ATS-PFM-INT-002-02, TST-PFM-INT-345, TST-PFM-INT-437, TST-PFM-INT-515]
    statement: >-
      An integration hidden from the workspace is absent from its catalogue and returns not found at its
      direct address.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/catalog/catalog.integration.spec.js#answers
      no detail for an integration the tenant may not see
    origin: 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S02'
  - id: BR-CAP-PFM-INT-002-03
    proved_by: [ATS-PFM-INT-002-03, TST-PFM-INT-015, TST-PFM-INT-107, TST-PFM-INT-515]
    statement: >-
      Provider detail presents the current release, capability contracts and feature meanings, requested
      access, and published or deprecated releases with their notes.
    kind: policy
    enforced_at:
      - api
      - console
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/catalog/catalog.integration.spec.js#answers
      the contracts the version implements, with their schemas and feature meanings
    origin: 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#INTG-M1-S01'
  - id: BR-CAP-PFM-INT-002-04
    proved_by: []
    statement: Catalogue results support category and current-capability filters and paginate in integration-key order.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: false
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/catalog/catalog.integration.spec.js#filters
      by a capability the current version implements
    origin: none
  - id: BR-CAP-PFM-INT-002-05
    proved_by: [ATS-PFM-INT-002-04, ATS-PFM-INT-002-06, TST-PFM-INT-490, TST-PFM-INT-552]
    statement: >-
      An availability reduction hides the catalogue offer while preserving reads of the workspace’s existing
      installation and connections.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/integrations/tests/integration/services/installations/narrowed-availability.integration.spec.js#stays
      readable to the tenant that holds it: the installation, the connection and their lists answer, and the
      catalog entry stays hidden
    origin: none
  - id: BR-CAP-PFM-INT-002-06
    proved_by: [ATS-PFM-INT-002-05, TST-PFM-INT-390, TST-PFM-INT-391, TST-PFM-INT-454, TST-PFM-INT-455, TST-PFM-INT-489]
    statement: >-
      Integration readers can inspect Library records without secrets or change controls; callers without
      integration rights see access denied and are refused by protected routes.
    kind: permission
    enforced_at:
      - api
      - console
    must_prove: true
    provenance: test
    source: >-
      react-console:lib/integrations/access.test.ts#shows a reader every screen, with no change control and no
      secret
    origin: 'services-platform:docs/milestones/INTG-M1-find-install-connect.md#D4'
  - id: BR-CAP-PFM-INT-002-07
    proved_by: []
    statement: >-
      The Library is reached through Configuration, earlier integration addresses resolve to it, and unknown
      Library addresses show the console’s not-found page.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/library/INT-ACC-0001.spec.ts#INT-ACC-0001'
    origin: 'services-platform:docs/milestones/INTG-M1-find-install-connect.plan.md#A1'
scenarios:
  - id: SC-CAP-PFM-INT-002-01
    given: The test integration is the only publicly published offer.
    when: The administrator searches for Dummy in the catalogue.
    then: A single offer opens to the provider’s capabilities and requested access.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/catalog/INT-ACC-0080.spec.ts#INT-ACC-0080'
  - id: SC-CAP-PFM-INT-002-02
    given: An integration is offered only to a different customer.
    when: The administrator opens its direct address.
    then: The catalogue detail returns not found.
    provenance: test
    source: 'react-console:acceptance/integrations/playwright/journeys/security/INT-ACC-0518.spec.ts#INT-ACC-0518'
edge_cases: []
constraints: []
depends_on:
  - CAP-PFM-INT-001
related:
  - CAP-PFM-INT-003
journeys:
  - JNY-PFM-INT-001
open_questions: []
evidence:
  - >-
    services-platform source inventory: modules/integrations/services/catalog/catalog.ts
    (catalogVisibilityPredicate), aws/api/integrations.routes.ts; rule-level automated test references;
    docs/milestones/INTG-M1-find-install-connect.md and .plan.md.
  - >-
    react-console source inventory: lib/integrations/library-routes.ts, lib/integrations/access.ts,
    components/integrations/catalog-screen.tsx, provider-detail.tsx;
    acceptance/integrations/playwright/journeys/catalog and library.
  - 'Operation coverage: listIntegrationCatalog, getIntegrationCatalogEntry.'
  - >-
    Persistent record coverage: integration_definitions, integration_availability_grants,
    integration_versions, integration_capabilities.
  - 'End-to-end definition inventory: integrations.e2e.spec.js, narrowed-availability.e2e.spec.js.'
controls: [TC-AVL-001, TC-AVL-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-005, TC-CRY-001, TC-CRY-002, TC-CRY-003, TC-CRY-004, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-IAM-003, TC-LOG-001, TC-LOG-004, TC-LOG-005, TC-MON-001, TC-PI-001, 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]
exercised_by: [FAS-PFM-INT-01-01, FAS-PFM-INT-01-02, FAS-PFM-INT-01-03, FAS-PFM-INT-01-04, FAS-PFM-INT-01-05]
suites: [TST-PFM-INT-015, TST-PFM-INT-107, TST-PFM-INT-344, TST-PFM-INT-345, TST-PFM-INT-390, TST-PFM-INT-391, TST-PFM-INT-437, TST-PFM-INT-454, TST-PFM-INT-455, TST-PFM-INT-489, TST-PFM-INT-490, TST-PFM-INT-515, TST-PFM-INT-552]
---
# Explore the integrations available to a workspace

## Purpose

Staff compare the integrations available to their workspace before deciding which one to adopt.

## How It Works

An administrator enters the Library through Configuration and opens the catalogue. Categories and capability choices help staff find an appropriate provider. Provider detail gives the information needed to review an installation rather than assume every listed service meets the need. Readers can inspect the same offer without being able to adopt it. A hidden provider looks absent to someone outside its audience. Existing installations remain accessible when the offer later changes. The product should make availability understandable without suggesting that a catalogue search removes an existing connection.

## Relationships

- Requires publish integration releases for eligible customers to supply the prerequisite configuration or operation.
- Connects with adopt an integration with reviewed access through shared integration records.
