> ## 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.

# GrowthBook

> Feature flags & experiments — members, flags & access

<Tabs>
  <Tab title="Overview">
    Connect GrowthBook with an admin Secret Key to sync organization members with their roles, projects, environments, SDK connections, feature flags and experiments, and the feature revision history, and run access reviews. Read-only. Data feeds into your Access accounts, Inventory and Changes 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 one GrowthBook **organization** the Secret Key belongs to — GrowthBook resolves the organization from the key itself. Each row shows the member's name (or their email address when GrowthBook reports none), their email, their global role (for example **Admin**, **Read Only**, **Collaborator**, **Engineer**, **Analyst** or **Experimenter**, or **Member** when GrowthBook reports none) and the date they were added to the organization. Pending invitations are kept by GrowthBook in a separate list and never appear, and API keys are separate objects that never appear as members. GrowthBook reports no account status, so every member is shown as **Active**. GrowthBook reports no per-user MFA state, so the **MFA** column is blank (shown as a dash).
    </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 GrowthBook organization member roster — names, emails, global roles and join dates — which appears on your **Access** page; your GrowthBook **projects**, **environments** (default state and project scope), **SDK connections** (environment, languages, SDK version and proxy setting — never the connection's keys), **feature flags** (value type, tags, owner and archived state), **experiments** (status, owner and archived state) and **data sources** (type), which appear on your **Inventory** page; and the **feature revision history**, which appears on your **Changes** page. Each revision arrives as a change titled with the feature key and revision number, with the actor (a member, an API key or the system), the comment, the base version and the publish or creation date in the description, priority always **Low** because GrowthBook attaches no severity to a revision, type **feature-revision**, and **GrowthBook** as the environment; a published revision has status **Deployed**, an unpublished one **Draft**. When GrowthBook's revision list answers empty — as it does on GrowthBook Cloud — the page falls back to the latest revision of each feature flag, so it shows one row per flag rather than a per-edit history. Feature flags, experiments and data sources appear once you have created them. Members' last-login dates, project-level roles and teams are not synced.

    It calls these GrowthBook endpoints on `api.growthbook.io/api` (or `<your API host>/api` for a self-hosted GrowthBook):

    * `/v1/members`
    * `/v1/projects`
    * `/v1/environments`
    * `/v1/sdk-connections`
    * `/v2/features`
    * `/v1/experiments`
    * `/v1/data-sources`
    * `/v2/feature-revisions`

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

    ## Troubleshooting

    <AccordionGroup>
      <Accordion title="The connection is rejected">
        The key is a **readonly** Secret Key — it cannot list the organization's members, so GrowthBook refuses the call — or an **SDK Connection** client key from **Features → SDKs**, which is public and rejected by the REST API. Create a Secret Key with the **admin** role. For a self-hosted GrowthBook, enter the API host only (for example `growthbook-api.example.com`): DSALTA strips any scheme or path and always calls `https://<host>/api`, so an API host that is not served over HTTPS cannot be connected.
      </Accordion>

      <Accordion title="The connection stopped working">
        A **Personal Access Token** stops working when its user leaves the organization or when personal access tokens are disabled for the organization. Create an organization **Secret Key** instead, then disconnect and connect again. Note that disconnecting permanently deletes the data already collected from GrowthBook.
      </Accordion>

      <Accordion title="Changes shows one row per flag, or Inventory is missing a type">
        Projects, environments, SDK connections, feature flags, experiments, data sources and revisions are read best-effort after the member roster: a failure on one of those calls leaves that part of the page empty without failing the sync. On GrowthBook Cloud the revision list answers empty, so the Changes page shows the latest revision of each flag rather than every edit. Click **Sync from integrations** on the **Integrations** page to retry.
      </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 GrowthBook organization Secret Key with the admin role. The organization is detected automatically. Read-only.

    **Before you begin**

    * A GrowthBook organization **Admin** — only an admin-role key can list members.
    * For a self-hosted GrowthBook, its API host.

    You will need:

    | Field | Where to find it | Example |
    | - | - | - |
    | **Secret Key (admin)** | **Settings → API Keys**, create a Secret Key with the **admin** role | `secret_…`, shown once |
    | **API host (optional)** | Only for a self-hosted GrowthBook | `api.growthbook.io` when left empty |

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

      <Step title="Sign in as an organization Admin">
        Sign in at [app.growthbook.io](https://app.growthbook.io) (or your self-hosted GrowthBook) with an Admin of the organization.
      </Step>

      <Step title="Create an admin Secret Key">
        Open **Settings → API Keys** and create a **Secret Key** with the **admin** role — a **readonly** key cannot list the organization's members. Copy the key: it is shown once.

        <Warning>
          **Do not use an SDK Connection client key.** The keys on **Features → SDKs** are public, and the REST API rejects them.
        </Warning>

        <Tip>
          If your console offers no role choice, an Admin's **Personal Access Token** (user menu → **Personal Access Tokens**) works too, but it stops working if that user leaves the organization.
        </Tip>
      </Step>

      <Step title="Connect GrowthBook">
        Return to the connect panel and paste the Secret Key. Enter an API host only for a self-hosted GrowthBook; leave it empty for GrowthBook Cloud. Then click **Connect**.
      </Step>
    </Steps>

    <Check>
      DSALTA validates the key when you click **Connect**, by listing the first page of your organization's members with it — the call that also proves the key's admin permission — and rejects a key that returns no members. 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, a readonly key (it cannot list members), an SDK client key, or a wrong API host.

      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/growthbook/user-access-to-critical-system-should-be-valid) | Info | Checks that everyone with GrowthBook access is an active employee on the People page. |
    | [Offboarded users should not have active access](/integrations/growthbook/offboarded-users-should-not-have-active-access) | High | Checks that offboarded employees no longer have active GrowthBook access. |
  </Tab>

  <Tab title="Useful links">
    | Topic | Link |
    | - | - |
    | Setup | [GrowthBook REST API authentication](https://docs.growthbook.io/api#authentication) |
    | Remediation | [User permissions](https://docs.growthbook.io/account/user-permissions) |
    | General | [GrowthBook](https://app.growthbook.io) |
    | DSALTA | [Connection error messages](/troubleshooting/connection-error-messages) |
  </Tab>
</Tabs>
