dbt

dbt-core & dbt Cloud — profiles.yml

dbt is a different shape of workload than a BI tool: it issues writes (CREATE TABLE / MERGE) alongside reads (tests, source freshness checks, documentation queries). Pointing dbt at the Gateway is straightforward; the interesting decision is which parts to cache and which to let pass through. Invalidation rules do the heavy lifting — DML from a dbt build automatically busts cached reads on the affected tables.

Should dbt go through the Gateway?

Three layers of dbt traffic, three different answers:

Update profiles.yml

Edit ~/.dbt/profiles.yml (or the dbt Cloud connection config) and replace the warehouse host with your gateway address.

Before (Snowflake)
my_project:
  target: prod
  outputs:
    prod:
      type: snowflake
      account: your-account
      user: dbt_runner
      role: TRANSFORMER
      warehouse: TRANSFORM_WH
      database: ANALYTICS
      schema: dbt_prod
After (Snowflake)
my_project:
  target: prod
  outputs:
    prod:
      type: snowflake
      account: your-slug.gateway.airbrx.ai
      user: dbt_runner
      role: TRANSFORMER
      warehouse: TRANSFORM_WH
      database: ANALYTICS
      schema: dbt_prod

For Databricks, change host: to your gateway address and leave http_path: alone — the Gateway forwards that part unchanged.

Authentication

Use whatever credentials your dbt service runner used before — typically a service-account user with key-pair auth (Snowflake) or a Personal Access Token (Databricks). The Gateway forwards them; no Airbrx-issued credential is involved unless you choose to use one.

Pair with invalidation rules

This is where dbt + Airbrx earns its keep. When a dbt run lands new data in a table, you want every cached read on that table to refresh on the next request — not wait out a one-hour TTL. An invalidation rule says exactly that: "on INSERT / MERGE / UPDATE / DELETE on table X, invalidate any cache rule keyed by table X."

Rules of thumb:

Verify the cache is doing work

dbt's own logs don't surface response headers, so use the App's traffic page filtered by the dbt service-account user. You'll see the typical dbt fingerprint — many short tests, repeated source freshness queries, the occasional MERGE — and which of them are hitting cache.

# Sample headers on a dbt test query (cached on second run) X-Airbrx-Cache-Status: HIT X-Airbrx-Rule-Id: cache-dbt-tests X-Airbrx-Execution-Time: 7ms X-Airbrx-Tenant: your-slug

Notes worth knowing

Where to go next

Ready to point dbt at a gateway address?

Airbrx is in private preview. Create an account and we'll set you up.

Create an account