add support for snowflake - #649
Conversation
✅ Deploy Preview for flowfile-wasm canceled.
|
|
Claude finished @Edwardvaneechoud's task in 1m 59s —— View job Claude finished reviewing this PRTodo list:
SummaryThis is a well-executed, thoroughly self-consistent implementation that follows the repo's existing Correctness
Conventions
Tests & migrations
Minor observations (non-blocking)
No functional issues found. Nice work keeping the migration, both execution paths (local/worker), the sharing/anti-repoint guard, project projection, frontend form, and docs all in sync in one PR. |
|
Claude finished @Edwardvaneechoud's task in 4m 10s —— View job Claude finished reviewing this PR updateTodo list:
SummaryCommit Correctness — found a real bugSwitching a connection's auth method back to "password" doesn't reliably discard a leftover private key, and the stale key can then be silently reused for authentication. The intended invariant is explicit in the code's own comment (
Suggested fix: base Everything else looks solid
|
|
Claude finished @Edwardvaneechoud's task in 1m 45s —— View job Review of latest commit (
|
|
Claude finished @Edwardvaneechoud's task in 4m 0s —— View job Review of latest commit (
|
| endpoints = resolve_oauth_endpoints(db_connection) | ||
| except (HTTPException, ValueError) as e: | ||
| detail = e.detail if isinstance(e, HTTPException) else str(e) | ||
| return HTMLResponse(_callback_html("error", str(detail)), status_code=400) |
| ) | ||
| except SnowflakeOAuthError as e: | ||
| logger.error("DB OAuth token exchange failed for %s: %s", connection_name, e) | ||
| return HTMLResponse(_callback_html("error", f"Token exchange failed: {e}"), status_code=400) |
This pull request adds first-class support for Snowflake as a database connection in Flowfile, including both backend and documentation changes. It introduces a new
extra_paramsfield to database connections to support dialect-specific parameters (such as Snowflake's account, warehouse, and role), updates the database connection creation and usage logic to handle these parameters, and documents Snowflake usage throughout the user and API documentation. The changes also include an example integration and update the UI and feature descriptions to reflect Snowflake support.Snowflake support and backend changes:
extra_paramsJSON column to thedatabase_connectionstable (with Alembic migration) to store dialect-specific connection parameters, such as those required by Snowflake. [1] [2]extra_params, and to pass them through to connection creation and query execution. [1] [2] [3] [4] [5] [6]extra_paramswhen connecting to databases, enabling support for Snowflake's required fields. [1] [2] [3] [4]Documentation and UI updates: