Metadata-Version: 2.4
Name: datadict-connector-snowflake
Version: 0.0.3
Summary: Snowflake connector for DataDict
Author-email: Datadict Team <support@datadict.co>
License-Expression: MIT
Project-URL: Homepage, https://github.com/datadict-dev/datadict
Project-URL: Repository, https://github.com/datadict-dev/datadict
Project-URL: Issues, https://github.com/datadict-dev/datadict/issues
Project-URL: Documentation, https://github.com/datadict-dev/datadict
Keywords: datadict,snowflake,database,connector,metadata
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: datadict-connector-base>=0.0.1
Requires-Dist: datadict-connector-sql-base>=0.0.1
Requires-Dist: pydantic>=2.0
Requires-Dist: pandas>=2.0
Requires-Dist: sqlglot<27.0.0,>=25.0.0
Requires-Dist: snowflake-connector-python<4.0,>=3.18
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: python-dotenv<2.0,>=1.0; extra == "dev"

# DataDict Snowflake Connector

The Snowflake connector synchronizes the database, schemas, tables, views, and columns visible to a
Snowflake role into DataDict's standard SQL catalog layout. View dependencies are extracted on a
best-effort basis from `GET_DDL` output.

```yaml
name: warehouse
type: snowflake
connection:
  profile: snowflake_test
```

```yaml
snowflake_test:
  account: my-organization-my-account
  user: DATADICT_USER
  password: ${SNOWFLAKE_PASSWORD}
  role: DATADICT_ROLE
  warehouse: COMPUTE_WH
  database: ANALYTICS
  schema: PUBLIC
```

`account`, `user`, `password`, `warehouse`, and `database` are required. `role`, `schema`, and
`host` are optional. The schema controls the session default; synchronization includes every
non-system schema in the configured database that is visible to the role.

The default test suite replays result-level cassettes and does not contact Snowflake. Run the live
tests with credentials from the repository-root `.env` file:

```shell
task test:live
```

Refresh the safe, result-only cassette after intentionally changing the test objects:

```shell
poetry run python scripts/record_snowflake_cassette.py
```
