Metadata-Version: 2.4
Name: dbt-frostlake
Version: 0.1.0
Summary: dbt adapter for Frostlake — the dbt-snowflake adapter pointed at a Frostlake server
Author: MLorek
License-Expression: Apache-2.0
Project-URL: Homepage, https://frostlake.dev
Project-URL: Source, https://github.com/Frostlake-DB/frostlake-dbt
Project-URL: Issues, https://github.com/Frostlake-DB/frostlake-dbt/issues
Keywords: frostlake,dbt,snowflake,adapter,elt,analytics
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dbt-snowflake>=1.9
Requires-Dist: frostlake-connector>=0.1.0
Dynamic: license-file

# dbt-frostlake

A [dbt](https://www.getdbt.com/) adapter for [Frostlake](https://frostlake.dev) — the
dbt-snowflake adapter with its connection layer pointed at a Frostlake HTTP server, so a
Snowflake-shaped dbt project runs locally with zero warehouse cost.

The plugin declares `dependencies=["snowflake"]`, which hands it dbt-snowflake's entire macro
and materialization surface unchanged; only `open()` differs, connecting through
`frostlake_connector` (which raises the real `snowflake.connector` error classes, so
dbt-snowflake's error handling keeps working).

## Install

```bash
pip install dbt-snowflake -e ../frostlake-python -e ../frostlake_connector -e .
```

(`frostlake_connector` lives one directory up in this repository; `frostlake-python` is the
underlying PEP 249 driver.)

## Profile

```yaml
my_project:
  target: dev
  outputs:
    dev:
      type: frostlake
      host: localhost      # Frostlake HTTP server
      port: 18082
      database: demo_db
      schema: public
      threads: 1
```

`account`/`user` are accepted (the inherited schema has them) and ignored by the server.

## Smoke-tested surface

Against a booted `DatabaseHttpServer` (see `../demo`): `dbt debug`, `dbt seed` (typed CSV
loads incl. DECIMAL), `dbt run` (view + table materializations), `dbt test` (`unique`,
`not_null`), `dbt show`, and `dbt docs generate` (information_schema catalog) — all green.

## Start a server for it

```bash
cd ../../frostlake
mvn clean package -DskipTests
data/start-http-server.sh 18082 -f init.sql   # init.sql: CREATE DATABASE IF NOT EXISTS demo_db;
```
