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

# Galileo

> AI evaluation & observability — members & access

<Tabs>
  <Tab title="Overview">
    Connect Galileo with an API key to sync organization members, projects, and datasets, and run access 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 Galileo **organization** the key's owner belongs to — members of any other organization are left out — with their name (or their email address when Galileo stores no first or last name for them), their email, their Galileo role (for example **Admin**, or **Member** when Galileo reports none) and the date their account was created. Invitations that have not been accepted are left out. Galileo reports no account status, so every member is shown as **Active**. Galileo 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 Galileo organization member roster — names, emails, roles and creation dates — which appears on your **Access** page; and your Galileo **projects** (the creator's email, the number of log streams and experiments, and whether it is one of Galileo's sample projects) and **datasets** (the creator's email, the row count and the number of projects using it), which appear on your **Inventory** page. The role catalogue, projects and datasets are read best-effort after the roster: if the role catalogue cannot be read, roles are shown as Galileo's raw role names in title case, and a failure on the project or dataset call leaves that part of the Inventory page empty until the next successful sync. Galileo seeds every new organization with sample projects and datasets, so Inventory has rows from the first sync. Scorers, log streams, experiments, project collaborators, groups and audit logs are not read, and no last-login time is shown: the Galileo member record carries none.

    It calls these Galileo endpoints on `api.galileo.ai` — the member and project listings are POST requests whose bodies carry only sort settings, with paging in the query string; the rest are plain reads:

    * `/v2/current_user`
    * `/v2/users/all`
    * `/v2/user_roles`
    * `/v2/projects/paginated`
    * `/v2/datasets`

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

    ## Troubleshooting

    <AccordionGroup>
      <Accordion title="The connection is rejected">
        Galileo API keys are personal and inherit the role of the user who created them: a key created by a **User** or **Read-only** account may not be able to list the organization's members, and a key scoped to a project sees only that project's collaborators, not the organization roster. DSALTA rejects a key that cannot list members. Create the key as the organization **Admin**, without a project scope, and connect again.
      </Accordion>

      <Accordion title="The connection stopped working">
        A Galileo API key expires after one year by default. When it lapses, every sync fails with an authentication error and nothing else changes — there is no warning beforehand. Create a new key, then disconnect and connect again. Note that disconnecting permanently deletes the data already collected from Galileo.
      </Accordion>

      <Accordion title="Inventory is empty while Access works">
        Projects and datasets are read best-effort after the roster: a failure on either call leaves that part of the Inventory page empty, without failing the sync, until the next successful sync. 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 Galileo API key created by the organization Admin. The organization is detected automatically. Read-only.

    **Before you begin**

    * A Galileo organization on the multi-tenant cloud (`app.galileo.ai`).
    * The **Admin** role: keys inherit the creator's role, and only Admin can list all users.

    You will need:

    | Field | Where to find it | Example |
    | - | - | - |
    | **API key** | User menu (bottom left) → **API Keys → + Create new key** | Shown once |

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

      <Step title="Sign in as the organization Admin">
        Sign in at [app.galileo.ai](https://app.galileo.ai) as the organization **Admin** — the account that created the organization. API keys are personal and inherit the creator's role; a User or Read-only key may not list members.
      </Step>

      <Step title="Create an API key">
        Open the user menu (bottom left), then **API Keys → + Create new key**. Name it and set the longest expiry offered: the default is one year, and the sync stops silently when it lapses. Do not scope the key to a project.

        <Info>
          Galileo shows the key once. If you lose it, create a new one — it cannot be retrieved later.
        </Info>
      </Step>

      <Step title="Copy the key and connect">
        Copy the key, return to the connect panel, paste it, and click **Connect**.
      </Step>
    </Steps>

    <Check>
      DSALTA validates the key when you click **Connect**, by reading the key's own user record and listing the organization's 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 or expired key, a key created by a User or Read-only account that cannot list members, or a key scoped to a project.

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

  <Tab title="Useful links">
    | Topic | Link |
    | - | - |
    | Setup | [Find your Galileo API key](https://docs.galileo.ai/references/faqs/find-keys) |
    | Remediation | [Access control](https://docs.galileo.ai/concepts/access-control) |
    | General | [Galileo](https://app.galileo.ai) |
    | DSALTA | [Connection error messages](/troubleshooting/connection-error-messages) |
  </Tab>
</Tabs>
