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

# Heroku

> Connect Heroku to Iru Compliance with a Platform API token to collect app, pipeline, add-on, team-access, and dyno configuration evidence for audits.

### About Heroku

Iru reads **app** and **dyno** configuration, **pipelines**, **add-ons**, and **team** access metadata via the **Heroku Platform API** using a **Bearer** token (CLI authorization or account API key).

### How It Works

```http theme={null}
Authorization: Bearer YOUR_TOKEN
```

| Detail             | Value                       |
| ------------------ | --------------------------- |
| **Category**       | PaaS / developer tooling    |
| **Authentication** | Platform API token (Bearer) |

Heroku tokens are **not** finely scoped; they inherit everything the generating account can access. Prefer a **dedicated** account with minimal team membership.

Official references: [Authentication](https://devcenter.heroku.com/articles/authentication), [Platform API](https://devcenter.heroku.com/articles/platform-api-reference), [CLI](https://devcenter.heroku.com/articles/heroku-cli).

### Prerequisites

* Access to the **Heroku CLI** **or** dashboard **API Key** section.
* Awareness of **SSO**: tokens may align to shorter session windows. See Heroku docs for **`--expires-in`**.

### Connect Heroku to Iru

<Tabs>
  <Tab title="Heroku">
    <Note>
      Complete this tab before you connect the source in Compliance.
    </Note>

    <Steps>
      <Step title="Choose CLI or dashboard">
        Most teams use the **Heroku CLI** so the token is scoped as an **authorization**. If you cannot use the CLI, use the dashboard **API Key** path in the steps below instead.
      </Step>

      <Step title="Sign in with the Heroku CLI">
        On a trusted workstation, run **`heroku login`** (or **`heroku login -i`** for CI-style flows) and complete authentication with an account that can create authorizations.
      </Step>

      <Step title="Create an authorization token">
        Run **`heroku authorizations:create --description "Iru Compliance"`**. Default expiry is often **one year**; SSO orgs may see shorter lifetimes. Add **`--expires-in`** when your policy requires a shorter TTL.
      </Step>

      <Step title="Copy the Token value from CLI output">
        Copy the **Token** string from the command output and store it in a vault until you paste it into Iru.
      </Step>

      <Step title="Dashboard alternative: open Account settings">
        In the [Heroku Dashboard](https://dashboard.heroku.com), select your **avatar** → **Account settings** (or **Account**).
      </Step>

      <Step title="Dashboard alternative: reveal or regenerate API Key">
        Open the **API Key** section. Use **Reveal** to copy the existing account-wide key, or **Regenerate** to issue a new one. **Regenerate** invalidates the prior key everywhere, so update every integration that used the old key, not only Iru.
      </Step>
    </Steps>

    <Note>
      Continue on the [**Iru Compliance**](#iru-compliance) tab.
    </Note>
  </Tab>

  <Tab title="Iru Compliance">
    <Note>
      Finish the [**Heroku**](#heroku) tab first.
    </Note>

    <Steps>
      <Step title="Open Sources">
        In Iru Compliance, on the left navigation bar, expand **Compliance** and select **Sources**.

        <Frame>
          <img src="https://mintcdn.com/iru/7HsGH7lnQ8GpVmI0/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=7HsGH7lnQ8GpVmI0&q=85&s=595982441fd777b333b3ecfea24adc24" alt="Left navigation: Compliance expanded, Sources selected" width="424" height="1056" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Turn on Heroku">
        Find **Heroku** (use **Category** or **Search by name or description**). On that card, turn on the **toggle**. A browser tab or window may open for the connector wizard.
      </Step>

      <Step title="Paste the Platform API token">
        Paste the token into the **Bearer** field.
      </Step>

      <Step title="Finish the connection">
        Click **Submit Bearer Token**. When the connection succeeds, the wizard shows **Connection Configured**.
      </Step>

      <Step title="Confirm the source is Active">
        Close the **Iru is requesting access to external services** browser tab, then return to **Compliance** → **Sources** and confirm the **Heroku** card is **Active**.
      </Step>
    </Steps>
  </Tab>
</Tabs>

### Troubleshooting

<AccordionGroup>
  <Accordion title="Nothing opens when you turn the source on">
    Check **pop-up blocker** settings for the Iru site and try again.
  </Accordion>

  <Accordion title="401 Unauthorized">
    Full token; SSO session may require a fresh authorization.
  </Accordion>

  <Accordion title="Stale after regenerate">
    Dashboard regeneration invalidates old tokens. Update Iru.
  </Accordion>

  <Accordion title="Missing apps">
    Token’s account must belong to the right **teams**.
  </Accordion>
</AccordionGroup>

### Considerations

<CardGroup cols={2}>
  <Card title="Iru is read-only: no deploys, scales, or restarts." icon="circle-info">
    Iru is **read-only**; no deploys, scales, or restarts.
  </Card>
</CardGroup>

### Related Articles

<CardGroup cols={2}>
  <Card title="Sources Management" icon="plug" href="/en/compliance/sources-management">
    Browse and manage every Compliance source.
  </Card>

  <Card title="Getting Started With Compliance" icon="rocket" href="/en/compliance/getting-started-with-compliance">
    Frameworks, actions, and **Artifacts**.
  </Card>

  <Card title="Iru Overview" icon="layer-group" href="/en/iru/platform-overview/iru-overview">
    How Endpoint, Compliance, and Identity fit together.
  </Card>

  <Card title="Artifacts Management" icon="folder-open" href="/en/compliance/artifacts-management">
    Upload, review, and organize evidence from sources and actions.
  </Card>
</CardGroup>
