Skip to content

docs: expand update_connection_auth sample header for Snowflake keypair - #1844

Open
jacalata wants to merge 1 commit into
tableau:developmentfrom
jacalata:jac/samples-keypair-conversion
Open

docs: expand update_connection_auth sample header for Snowflake keypair#1844
jacalata wants to merge 1 commit into
tableau:developmentfrom
jacalata:jac/samples-keypair-conversion

Conversation

@jacalata

@jacalata jacalata commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Closes #1602.

Motivation

#1602 asked for an end-to-end example of converting a Tableau Cloud
datasource or workbook connection from Snowflake username/password auth
to keypair auth. The existing update_connection_auth.py already runs
the right code path -- it takes authentication_type as an arg and
sets embed_password=True. What it was missing was context: which
authentication_type strings are common, and the pre-saved-credential
prerequisite that applies to any embed_password conversion.

Initial draft of this PR added a dedicated keypair sample; folded that
into a header-comment update on update_connection_auth.py after
noticing the code duplication. See 949d602 for the fold-in.

Behavior change

Samples only -- no library changes. Adds a ~25-line header comment to
samples/update_connection_auth.py:

  • Lists common authentication_type values including auth-keypair,
    oauth, AD Service Principal, sqlserver, and Username Password
  • Explains that embed_password=True binds the connection to a
    matching pre-saved credential on the site, looked up by
    (username, connection class, role)
  • Spells out the Snowflake-keypair prerequisite: the private key must
    be saved on the site under Site Settings -> Saved Credentials for
    Data Sources before the sample runs. Without it, the update writes
    the new auth type into metadata but subsequent extract refreshes
    and connection tests fail.
  • Notes REST API version support (v3.27 for datasource/workbook
    connections, v3.28 for flows)

Test plan

Docs-only change to a sample; no automated tests exist for samples/.

  • python samples/update_connection_auth.py --help still shows the
    same args (help output unchanged)
  • Manual: against a Tableau Cloud site with a pre-saved Snowflake
    private-key credential, run the sample with
    authentication_type=auth-keypair; connection's auth_type flips
    and extract refresh succeeds
  • Manual: without pre-saved credentials, connection test fails
    post-update as documented

🤖 Generated with Claude Code

Adds samples/update_connection_to_keypair.py demonstrating how to
convert an existing Tableau Cloud datasource or workbook connection
from username/password to Snowflake keypair authentication using the
REST API v3.27 flow. Documents the prerequisite that the private key
must first be saved under Site Settings -> Saved Credentials for Data
Sources on the site.

Refs tableau#1602

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jacalata jacalata changed the title feat: add sample for converting connection auth to Snowflake keypair docs: expand update_connection_auth sample header for Snowflake keypair Aug 8, 2026
@jacalata
jacalata requested a lite review from Copilot August 17, 2026 20:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR aims to improve guidance for converting Tableau Cloud content connections from Snowflake username/password authentication to Snowflake keypair authentication, addressing the request in #1602 with an end-to-end example.

Changes:

  • Adds a new sample script that updates a datasource/workbook connection to auth-keypair and sets embed_password=True.
  • Documents prerequisites and version support within the sample’s header comments.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +1 to +4
####
# This script demonstrates how to convert an existing Tableau Cloud connection
# from username/password authentication to Snowflake keypair authentication.
#
Comment on lines +36 to +37
parser.add_argument("--token-name", "-p", help="name of the personal access token used to sign into the server")
parser.add_argument("--token-value", "-v", help="value of the personal access token used to sign into the server")
Comment on lines +7 to +10
# sample. Tableau Cloud stores the private key at the site level, keyed on
# (server address, username). If the credential has not been saved first, the
# update will succeed but subsequent extract refreshes / connection tests will
# fail authentication.
Comment on lines +12 to +13
# Supported since REST API v3.27.
# See: https://help.tableau.com/current/api/rest_api/en-us/REST/rest_api_ref_data_sources.htm#update_data_source_connection
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.

Key pair authentication while publishing to Cloud from onprem using Tableau SDK

2 participants