Skip to main content

Module client

Module client 

Source
Expand description

A clean-room Snowflake client: external-browser SSO + the v1 query endpoint, with session-token renewal and keep-alive heartbeats.

Implemented from Snowflake’s documented REST protocol — no third-party connector. Unlike snowflake-connector-rs, it captures the master token at login, so the session token can be renewed (SnowflakeSession::renew) and kept alive (SnowflakeSession::heartbeat) — letting the daemon authenticate once and stay live indefinitely instead of dying when the ~1h session token lapses.

Verification status: the offline-decodable paths (result parsing, row→JSON, request shaping, callback parsing) are unit-tested; the live SSO/login/query/renew paths follow the documented protocol but need a real account to verify. Result sets that span external chunks are downloaded and appended transparently (gzip JSON chunks after the inline rows); only the Arrow result format is not yet supported (a clear Error::Unsupported is returned).

Re-exports§

pub use config::AuthMethod;
pub use config::BrowserConfig;
pub use config::BrowserLaunch;
pub use config::SnowflakeClientConfig;
pub use error::Error;
pub use error::Result;
pub use row::rows_to_payload;
pub use row::value_to_json;
pub use row::Column;
pub use row::Row;

Modules§

config
Configuration for the clean-room Snowflake client.
error
Error type for the clean-room Snowflake client.
row
Result rows and arbitrary-schema → JSON decoding.

Structs§

SnowflakeClient
A clean-room Snowflake client bound to one account/user configuration.
SnowflakeSession
A live, authenticated Snowflake session.