You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
connector create: support snowflake + databricks dialects #1
ana connector create today enumerates exactly one dialect:
// internal/connector/create.go:12// v1 only supports the `postgres` dialect; other values are a usage error.// ...fs.Var(cli.EnumFlag(&typ, []string{"postgres"}), "type", "connector type (postgres — required)")
Anything else → usage error. Scripted provisioning of Snowflake / Databricks connectors therefore requires hitting the private RPC directly or using the UI.
Why it hurts
Came up mid-flow on a mock-data-forge demo: loaded a cross-source dataset (Snowflake + Databricks), needed two new connectors pointed at the freshly-loaded schemas, hit the CLI wall, had to context-switch to UI to finish the load step. Fine for one demo — painful for the recurring pattern this tool is meant to accelerate.
All dialect secrets route through --*-stdin (mirrors --password-stdin); no plaintext on argv. Each leaf is unit-covered and exercised live via opt-in e2e (make e2e) against real TextQL + dedicated Snowflake/Databricks test accounts.
Shape deviation from the proposed sketch
Shipped as a subcommand tree (ana connector create <dialect> <mode>) rather than --type <dialect> with per-dialect flags. Functionally equivalent for the scripted-provisioning use case this issue was driven by; auth modes compose cleanly into their own leaves.
Deferred: connector update dialect parity
internal/connector/update.go is still postgres-only — this issue's scope notes called it out and we should have paired it in. Credential rotation and scripted config tweaks against Snowflake/Databricks connectors remain blocked on the UI / raw RPC.
Activity
ci: skip build/release jobs on docs-only changes + CLAUDE.md maintena…
bradfair commentedon Apr 22, 2026
Substantially resolved via #17 (Snowflake) and #21 (Databricks). Closing in favor of a scoped follow-up for
connector update.Shipped
ana connector create snowflake <mode>(PR #17, merged 2026-04-21):password/keypair/oauth-sso/oauth-individualana connector create databricks <mode>(PR #21):access-token/client-credentials/oauth-sso/oauth-individualAll dialect secrets route through
--*-stdin(mirrors--password-stdin); no plaintext on argv. Each leaf is unit-covered and exercised live via opt-in e2e (make e2e) against real TextQL + dedicated Snowflake/Databricks test accounts.Shape deviation from the proposed sketch
Shipped as a subcommand tree (
ana connector create <dialect> <mode>) rather than--type <dialect>with per-dialect flags. Functionally equivalent for the scripted-provisioning use case this issue was driven by; auth modes compose cleanly into their own leaves.Deferred:
connector updatedialect parityinternal/connector/update.gois still postgres-only — this issue's scope notes called it out and we should have paired it in. Credential rotation and scripted config tweaks against Snowflake/Databricks connectors remain blocked on the UI / raw RPC.Filing a scoped follow-up and closing this.
bradfair commentedon Apr 22, 2026
Follow-up filed as #22.