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

# PostgreSQL

PostgreSQL is an open-source relational database system known for its reliability and feature robustness. As a DinoAI agent environment in Paradime, PostgreSQL enables running dbt™ models and queries during DinoAI background agent sessions.

<Warning>
  **IP RESTRICTIONS**

  Make sure to allow traffic from one of the Paradime IPs in your firewall depending on the data location selected.

  👉 See also: [Paradime IP addresses](https://docs.paradime.io/app-help/developers/ip-restrictions).
</Warning>

#### Setup Instructions

1. Click **Settings** in the top menu bar of the Paradime interface to access **Account Settings**
2. In the left sidebar, click **Connections**
3. Click **Add New** next to the **DinoAI Background Agent Environment** section
4. Select **PostgreSQL**
5. In the **Profile Configuration** field, add at least these required parameters. For additional configuration options, see the Profile Fields Reference section.

```yaml theme={"system"}
host: analytics-db.company.com                # Database host
port: 5432                                    # Connection port
user: analytics_user                          # DinoAI agent service user
password: ****                                # Service user password
database: analytics_prod                      # Database name
schema: dbt                                   # Default schema
```

<Info>
  After adding the configuration, ensure it's properly formatted using a YAML formatter like [YAML Formatter](https://jsonformatter.org/yaml-formatter).
</Info>

6. Provide a dbt™ **Profile Name** (this should match the profile name set in your `dbt_project.yml`).
7. In the **Target** field, enter **`dinoai`**. This is the target your dbt™ project will use during DinoAI background agent sessions.
8. The **Schema** field is pre-configured, but you can change it to specify the schema where dbt™ will build objects.
9. The **Threads** value is pre-configured to 1, but you can adjust this to specify how many parallel operations your dbt™ project can run.

***

#### Example Profile Configuration

<Frame>
  <img src="https://2337193041-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHET0AD04uHMgdeLAjptq%2Fuploads%2FJI1g2DXqdC6C6pWiKrqh%2Fimage.png?alt=media&token=a2dff84b-cce4-41fc-b2d6-cf48899d2a08" alt="" />
</Frame>

***

#### Profile Fields Reference

| Field            | Description                                                          | Example             | Default Value  | Required |
| ---------------- | -------------------------------------------------------------------- | ------------------- | -------------- | -------- |
| host             | Database server hostname or IP address                               | `db.company.com`    | None           | ✅        |
| user             | Authentication username for the DinoAI agent service user            | `postgres_user`     | None           | ✅        |
| password         | Authentication password for the DinoAI agent service user            | `your_password`     | None           | ✅        |
| port             | PostgreSQL server port number                                        | `5432`              | `5432`         | ✅        |
| dbname           | Name of the target database                                          | `analytics`         | None           | ✅        |
| schema           | Name of the target schema. Configured in the UI Schema field.        | `public`            | `public`       | ✅        |
| threads          | Number of concurrent operations. Configured in the UI Threads field. | `4`                 | `1`            | ✅        |
| keepalives\_idle | Time in seconds between connection keepalive pings                   | `60`                | `0`            | ❌        |
| connect\_timeout | Seconds to wait for connection establishment                         | `10`                | `10`           | ❌        |
| retries          | Number of times to retry failed connections                          | `3`                 | `1`            | ❌        |
| search\_path     | Order of schemas PostgreSQL will search through                      | `public, prod`      | `$user,public` | ❌        |
| role             | PostgreSQL role to assume when executing queries                     | `analytics_role`    | None           | ❌        |
| sslmode          | Level of SSL connection security                                     | `verify-full`       | `prefer`       | ❌        |
| sslcert          | Path to client SSL certificate file                                  | `/path/to/cert`     | None           | ❌        |
| sslkey           | Path to client SSL private key file                                  | `/path/to/key`      | None           | ❌        |
| sslrootcert      | Path to SSL root certificate authority file                          | `/path/to/root.crt` | None           | ❌        |


## Related topics

- [PostgreSQL](/products/settings/connections/development-environment/postgresql.md)
- [Scheduler environment](/products/settings/connections/scheduler-environment/index.md)
- [DinoAI Background Agent environment](/products/settings/connections/dinoai-background-agent-environment/index.md)
- [Code IDE environment](/products/settings/connections/development-environment/index.md)
