# DuckDB

{% hint style="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).
{% endhint %}

### Add the DinoAI agent environment connection

To add the DuckDB DinoAI agent environment connection, follow these 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 **DuckDB** and fill out the corresponding fields.

### Configuration for a DuckDB connection

In the DinoAI agent environment setup screen, fill in the form with the connection details DinoAI will use to run dbt™ models against a DuckDB database.

In this example we are connecting to `s3` to read/write `parquet` files using an AWS access key and secret. These secrets can be stored in the [user environment variable settings](https://docs.paradime.io/app-help/documentation/settings/environment-variables/code-ide-env-variables).

<figure><img src="https://2337193041-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHET0AD04uHMgdeLAjptq%2Fuploads%2FrUowLBLKWbtUucFzT0FK%2FScreenshot%202024-07-29%20at%2022.24.55.png?alt=media&#x26;token=ca53a62c-d150-4010-90ed-c83d1639d81f" alt="" width="484"><figcaption></figcaption></figure>

#### Field details

<table><thead><tr><th width="172">Field</th><th width="365">Description</th><th width="482">Example</th><th>Level<select><option value="68214e8af13b4195be9680e885fb53b6" label="🏢 Workspace level" color="blue"></option><option value="8d5e011bb33d4009b5d0ff39e2f65168" label="👥 User level" color="blue"></option></select></th></tr></thead><tbody><tr><td>Profile Name</td><td>The profile name set in your <code>dbt_project.yaml</code>. See more <a href="https://docs.getdbt.com/docs/core/connect-data-platform/connection-profiles">here</a>.</td><td><strong><code>dbt-duckdb</code></strong></td><td><span data-option="68214e8af13b4195be9680e885fb53b6">🏢 Workspace level</span></td></tr><tr><td>Target</td><td>The target name used to identify the DinoAI agent environment connection. See more <a href="https://docs.getdbt.com/reference/dbt-jinja-functions/target">here</a>.</td><td><strong><code>dinoai</code></strong></td><td><span data-option="68214e8af13b4195be9680e885fb53b6">🏢 Workspace level</span></td></tr><tr><td>Profile Configuration</td><td><ul><li>Define the path to the DuckDB database where dbt™ will run.</li><li>Configure any supported <a href="https://duckdb.org/docs/extensions/overview">DuckDB extensions</a> by listing them in the <code>extensions</code> field.</li><li>Set additional <a href="https://duckdb.org/docs/sql/configuration">DuckDB configuration options</a> via the <code>settings</code> field, including options supported by loaded extensions.</li></ul></td><td><pre class="language-yaml"><code class="lang-yaml">      extensions:
      - httpfs
      - parquet
      path: ./dbt.duckdb
      settings:
        s3_access_key_id: '{{ env_var("S3_ACCESS_KEY_ID") }}'
        s3_region: '{{ env_var("S3_REGION", "us-west-1") }}'
        s3_secret_access_key: '{{ env_var("S3_SECRET_ACCESS_KEY") }}'
</code></pre></td><td><span data-option="8d5e011bb33d4009b5d0ff39e2f65168">👥 User level</span></td></tr><tr><td>Schema</td><td>The default schema used to build dbt™ objects during DinoAI background agent sessions.</td><td><strong><code>dbt_dinoai</code></strong></td><td><span data-option="8d5e011bb33d4009b5d0ff39e2f65168">👥 User level</span></td></tr><tr><td>Threads</td><td>The number of threads used in this connection. See more <a href="https://docs.getdbt.com/docs/running-a-dbt-project/using-threads">here</a>.</td><td><strong><code>8</code></strong></td><td><span data-option="8d5e011bb33d4009b5d0ff39e2f65168">👥 User level</span></td></tr></tbody></table>

{% hint style="info" %}
For additional supporting docs see the [DuckDB SQL reference](https://motherduck.com/docs/category/duckdb-sql-reference).
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.paradime.io/app-help/documentation/settings/connections/dinoai-background-agent-environment/duckdb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
