Skip to content

docs(source/snowflake): remove unsupported timeout field from reference#3626

Open
anxkhn wants to merge 1 commit into
googleapis:mainfrom
anxkhn:docs/snowflake-remove-nonexistent-timeout
Open

docs(source/snowflake): remove unsupported timeout field from reference#3626
anxkhn wants to merge 1 commit into
googleapis:mainfrom
anxkhn:docs/snowflake-remove-nonexistent-timeout

Conversation

@anxkhn

@anxkhn anxkhn commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

The Snowflake source Reference table documents a timeout field
(integer, "The connection timeout in seconds. Defaults to 60."), but the
Snowflake source has no such option:

  • The Snowflake Config struct in internal/sources/snowflake/snowflake.go
    declares only name, type, account, user, password, database,
    schema, warehouse, and role. There is no timeout field, and
    initSnowflakeConnection never applies a connection timeout.
  • Source configs are parsed with a strict YAML decoder (yaml.Strict() in
    internal/util/util.go), so an unknown key is a hard error, not a silently
    ignored no-op.

The net effect is that a user who follows the docs and adds timeout: 60 to a
Snowflake source config does not get a 60-second timeout: their configuration
fails to load with an unknown field "timeout" error. The documented option
actively breaks config loading.

This PR removes the fabricated timeout row from the reference table. The
warehouse and role rows are left untouched: those defaults ("COMPUTE_WH" /
"ACCOUNTADMIN") really are applied in initSnowflakeConnection, so the docs are
correct there.

It also adds a table-driven parse-failure case to TestFailParseFromYaml in
internal/sources/snowflake/snowflake_test.go asserting that a config with
timeout: 60 is rejected. This ties the doc change to observable behavior and
guards against the field being re-documented without being implemented.

Scope note: adding an actual connection timeout would be a feat; this PR is
the surgical docs fix that makes the reference match current behavior.

PR Checklist

  • Make sure you reviewed CONTRIBUTING.md
  • Make sure to open an issue as a bug/issue before writing your code!
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)
  • Make sure to add ! if this involves a breaking change

Issue Reference

The Snowflake source Reference table documented a `timeout` field
(integer, "Defaults to 60"), but the Snowflake Config struct has no
such field and the source applies no connection timeout anywhere.

Source configs are decoded with a strict YAML decoder, so setting
`timeout:` in a Snowflake source config is a hard "unknown field"
error rather than a no-op, meaning the documented option actively
breaks config loading.

Remove the fabricated row from the reference table and add a
parse-failure test case asserting that `timeout: 60` is rejected, so
the docs and the strict-decode behavior stay in sync.

Signed-off-by: Anas Khan <83116240+anxkhn@users.noreply.github.com>
@anxkhn anxkhn requested a review from a team as a code owner July 15, 2026 03:35

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request removes the unsupported timeout configuration parameter from the Snowflake source documentation and adds a unit test to verify that configuring a timeout field results in an unmarshaling error. I have no feedback to provide as there are no review comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants