> ## Documentation Index
> Fetch the complete documentation index at: https://help.dsalta.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CloudAMQP

> Managed RabbitMQ & LavinMQ — members, MFA & access

<Tabs>
  <Tab title="Overview">
    Connect CloudAMQP with a Customer API key to sync team members with their two-factor status, instances and VPCs, and run access and MFA reviews. Read-only. Data feeds into your Access accounts and Inventory pages.

    <Info>
      **Read-only access.** DSALTA only reads data from this integration. It never creates, modifies, or deletes anything in your environment, and every remediation step is performed by your team directly in the third-party product.
    </Info>

    <Info>
      **What you'll see.** The Access page lists the **members** of the CloudAMQP team the key belongs to. CloudAMQP's team roster carries no name field, so each row shows the member's **email address** in place of a name, together with their CloudAMQP roles (for example **Admin**, or **Member** when none is reported). CloudAMQP reports no account status and cannot tell a pending invitation from a member, so every row — including an invited address that has not yet accepted — is shown as **Active** and stamped with the date of the sync. CloudAMQP does report per-member two-factor authentication, so the **MFA** column shows **Yes** or **No**, and is blank (a dash) for a member whose record carries no value.
    </Info>

    <Note>
      DSALTA collects this integration's data when you connect it — you can refresh it at any time with **Sync from integrations** on the **Integrations** page. The compliance checks below re-run once a day at 02:00 America/New\_York.
    </Note>

    ## What DSALTA reads

    DSALTA reads the CloudAMQP team roster — email addresses, roles and two-factor status — which appears on your **Access** page; and your CloudAMQP **instances** and **VPCs**, which appear on your **Inventory** page, each instance with its region, plan, provider and tags, and each VPC with its region, subnet and tags. An instance's detail record, which contains the instance's own Console API key, is never read, and neither are the broker's own RabbitMQ or LavinMQ users.

    It calls these CloudAMQP endpoints on `customer.cloudamqp.com/api`:

    * `/team`
    * `/instances`
    * `/vpcs`

    Every request is a read. DSALTA has no code path that creates, modifies, or deletes anything in your CloudAMQP environment.

    ## Troubleshooting

    <AccordionGroup>
      <Accordion title="The connection is rejected">
        The key is not the account-level **Customer API key**. CloudAMQP has two screens labelled **API Access**: the one on an instance's detail page shows that instance's Console API key, which cannot list your team and is rejected. Create the key on **Account settings → API Access** instead. Accounts created through the Heroku add-on cannot use the Customer API at all.
      </Accordion>

      <Accordion title="Inventory is empty while Access works">
        Instances and VPCs are read best-effort after the team roster: a failure on either call leaves that part of the Inventory page empty without failing the sync, and an account that has not created an instance yet has nothing to list. Click **Sync from integrations** on the **Integrations** page to retry.
      </Accordion>

      <Accordion title="Someone who never accepted their invitation is listed as a member">
        CloudAMQP's roster has no status field and no separate list of invitations, so an invited address is indistinguishable from a member until it is removed from **Account settings → Team**.
      </Accordion>
    </AccordionGroup>

    <AccordionGroup>
      <Accordion title="How do I check whether the connection is healthy?">
        Open **Integrations** in the DSALTA sidebar, stay on the **Connected** tab, and click **Manage** on the integration's card. Open the **Status** tab: it shows either **Connected and working properly** or **Connection issues detected**.

        Use the **Status** tab, not **Overview** — Overview always reports **Connected** regardless of the real state.
      </Accordion>

      <Accordion title="A check shows Failed and nothing changed on my side">
        On an integration-powered check, **Failed** normally means DSALTA was blocked rather than that you are non-compliant. Open the test, go to **Source Data**, and read the result code: **403** is a missing permission, **428** is a setting DSALTA still needs, **500** is a failure on DSALTA's side.

        A real compliance gap shows **207** and leaves the test looking **Completed**. See [Understanding Test Results](/guides/compliance/test-results).
      </Accordion>

      <Accordion title="Data looks out of date">
        Compliance checks re-run once a day at 02:00 America/New\_York. To refresh sooner, open **Integrations → Connected** and click **Sync from integrations** at the top right — it refreshes every connected integration at once.
      </Accordion>

      <Accordion title="How do I repair a broken connection?">
        There is no Reconnect, Repair or Refresh Token button. The only repair available is to disconnect and connect again.

        <Warning>
          **Disconnecting is destructive and cannot be undone.** DSALTA removes the access records, inventory, vulnerabilities, code changes, incidents and device records collected from this integration, and deletes the test results tied to the connection. Export anything you still need as audit evidence first — see [Integration errors](/troubleshooting/integration-errors).
        </Warning>
      </Accordion>

      <Accordion title="Configure scope will not let me change anything">
        That is expected. **Configure scope** is read-only — it shows what DSALTA is permitted to read, and has no Save action. To change what DSALTA can see, change the permissions on the credential in the third-party product, then disconnect and connect again.
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="How to connect">
    A CloudAMQP account-level Customer API key. The team is detected automatically. Read-only.

    **Before you begin**

    * A CloudAMQP account created directly on cloudamqp.com — accounts created through the Heroku add-on cannot use the Customer API.

    You will need:

    | Field | Where to find it | Example |
    | - | - | - |
    | **Customer API key** | Header dropdown → **Account settings → API Access** (`customer.cloudamqp.com/apikeys`) | Copied from the API Access page |

    <Steps>
      <Step title="Start in DSALTA">
        Open **Integrations** in the DSALTA sidebar, find **CloudAMQP**, and click **Connect** to open the connect panel.
      </Step>

      <Step title="Open the account-level API Access page">
        Sign in at [customer.cloudamqp.com](https://customer.cloudamqp.com). Open the dropdown in the header, then **Account settings → API Access**. If the page is read-only, unlock Account settings first; they lock again after about 15 minutes.
      </Step>

      <Step title="Create a Customer API key">
        Create a Customer API key on that page and copy it.

        <Warning>
          **Do not use the API Access key shown on an instance's detail page.** That is the per-cluster Console API key: it cannot list your team, and DSALTA rejects it at connect time.
        </Warning>
      </Step>

      <Step title="Connect CloudAMQP">
        Return to the connect panel, paste the Customer API key, and click **Connect**.
      </Step>
    </Steps>

    <Check>
      DSALTA validates the key when you click **Connect**, by listing your team with it. On success the integration moves to the **Connected** tab, and **Manage → Status** reads **Connected and working properly**. Checks begin reporting after the first sync.
    </Check>

    <Warning>
      **If the connection is rejected.** An invalid key, an instance's Console API key instead of the account-level Customer API key, or an account created through the Heroku add-on.

      The on-screen message is generic — see [Connection error messages](/troubleshooting/connection-error-messages).
    </Warning>
  </Tab>

  <Tab title="Automated checks">
    Each check below re-runs once a day, at 02:00 America/New\_York, while this integration is connected. Click any check for step-by-step remediation guidance.

    | Check | Severity | What it verifies |
    | - | - | - |
    | [User access to Critical System should be valid](/integrations/cloudamqp/user-access-to-critical-system-should-be-valid) | Info | Checks that everyone with CloudAMQP access is an active employee on the People page. |
    | [Offboarded users should not have active access](/integrations/cloudamqp/offboarded-users-should-not-have-active-access) | High | Checks that offboarded employees no longer have active CloudAMQP access. |
    | [MFA should be enabled for all users](/integrations/cloudamqp/mfa-enabled-for-all-users) | High | Checks that every CloudAMQP team member has two-factor authentication enabled. |
  </Tab>

  <Tab title="Useful links">
    | Topic | Link |
    | - | - |
    | Setup | [CloudAMQP API keys (Customer API vs Console API)](https://www.cloudamqp.com/docs/api.html) |
    | Remediation | [User access control](https://www.cloudamqp.com/docs/cloudamqp-user-access-control.html) · [Two-factor authentication](https://www.cloudamqp.com/docs/two-factor-authentication.html) |
    | General | [CloudAMQP console](https://customer.cloudamqp.com) |
    | DSALTA | [Connection error messages](/troubleshooting/connection-error-messages) |
  </Tab>
</Tabs>
