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

# Neon

> Serverless Postgres — members & access

<Tabs>
  <Tab title="Overview">
    Connect Neon with an API key to sync organization members and projects, and run access reviews. Read-only.

    <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 one Neon **organization** — the organization DSALTA resolves from the key (see *How to connect*). Neon's members endpoint returns no display name, so each row shows the member's **email address** in place of a name, with their organization role and the date they joined. Neon reports no account status, so every member is shown as **Active**. Neon does report per-member MFA, so the **MFA** column shows **Yes** or **No**, and **Unknown** for a member whose record carries no MFA 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 Neon organization member roster — email addresses, roles, join dates and MFA status — which appears on your **Access** page; and the organization's Neon **projects**, which appear on your **Inventory** page with their region, Postgres version, IP allowlist size, whether public or VPC connections are blocked, HIPAA status and maintenance window.

    It calls these Neon endpoints:

    * `/api/v2/users/me/organizations`
    * `/api/v2/organizations/{id}/members`
    * `/api/v2/projects?org_id={id}`

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

    ## Troubleshooting

    <AccordionGroup>
      <Accordion title="The Access page shows the wrong organization">
        When the key can see more than one organization and no **Organization ID** was entered at connect time, DSALTA syncs the organization with the lowest ID. To pin a different one, disconnect, then connect again with the **Organization ID** field filled in (Neon shows it under **Organization settings → General**). Note that disconnecting permanently deletes the data already collected from Neon.
      </Accordion>

      <Accordion title="The connection is rejected">
        The key is invalid or revoked, or an **Organization ID** was entered that the key cannot see. A personal key only sees organizations the key's owner belongs to.
      </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 Neon API key (organization key recommended). Read-only.

    **Before you begin**

    * A Neon account with access to the organization you want reviewed. To create an **organization** API key you must be an organization **Admin**; a personal key needs no special role.

    You will need:

    | Field                          | Where to find it                                                                                          | Example                      |
    | ------------------------------ | --------------------------------------------------------------------------------------------------------- | ---------------------------- |
    | **API Key**                    | **Organization settings → API keys** (organization key) or **Account settings → API keys** (personal key) | `napi_…`, shown once         |
    | **Organization ID** (optional) | **Organization settings → General**                                                                       | Only to pin one organization |

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

      <Step title="Create an API key">
        In the [Neon Console](https://console.neon.tech), prefer an organization key: open **Organization settings → API keys** and generate a key. Only organization **Admins** can create one, and it keeps working when individual members leave the team. A personal key also works: open your avatar menu → **Account settings → API keys** and generate a key there.

        <Tip>
          Use the organization key. A personal key is tied to its creator — if that person leaves the organization the key stops seeing it, and the DSALTA connection breaks with them.
        </Tip>

        <Info>
          Neon shows the secret exactly once (it starts with `napi_`). If you lose it, revoke the key and create a new one. Do not create a **project-scoped** key: it is limited to a single project and cannot read the organization member list.
        </Info>
      </Step>

      <Step title="Connect Neon">
        Return to the connect panel, paste the API key, and click **Connect**. The organization is detected automatically — enter an **Organization ID** only to pin a specific one when the key can see several.
      </Step>
    </Steps>

    <Check>
      DSALTA validates the key when you click **Connect**, by listing the organizations the key can see and resolving the one to sync. 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.** Invalid or revoked API key, a key that sees no organization, or an Organization ID the key cannot see.

      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/neon/user-access-to-critical-system-should-be-valid) | Info     | Checks that everyone with Neon access is an active employee on the People page.     |
    | [Offboarded users should not have active access](/integrations/neon/offboarded-users-should-not-have-active-access) | High     | Checks that offboarded employees no longer have active Neon access.                 |
    | [MFA should be enabled for all users](/integrations/neon/mfa-enabled-for-all-users)                                 | High     | Checks that every Neon organization member has multi-factor authentication enabled. |
  </Tab>

  <Tab title="Useful links">
    | Topic       | Link                                                                    |
    | ----------- | ----------------------------------------------------------------------- |
    | Setup       | [Manage API keys](https://neon.com/docs/manage/api-keys)                |
    | Remediation | [Manage organization members](https://neon.com/docs/manage/orgs-manage) |
    | General     | [Neon Console](https://console.neon.tech)                               |
    | DSALTA      | [Connection error messages](/troubleshooting/connection-error-messages) |
  </Tab>
</Tabs>
