snowflakedb / snowflakedb/snowflake-connector-python
SNOW-1858462: Support authentication via private_key_base64
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 730
- Forks
- 574
- Avg merge
- 5h 45m
- Merged PRs (30d)
- 16
Description
What is the current behavior?
Not too long ago, the JDBC driver enabled a parameter called private_key_base64 (https://docs.snowflake.com/en/developer-guide/jdbc/jdbc-parameters#private-key-base64) to pass a key directly via parameter, not requiring a PEM file. As far as I can tell from experimenting and looking at the code, this isn't supported by snowflake-connector-python in any way.
What is the desired behavior?
Just like passing private_key to the connector right now, passing private_key_base64 should be a supported option.
How would this improve snowflake-connector-python?
Feature parity (at least in this aspect) with JDBC; reduces the initial barrier for setting up a connection.
References and other background
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the connector's existing handling of the private_key option and compare it with the JDBC private_key_base64 parameter described in the linked Snowflake documentation. Trace how connection authentication receives and processes private_key, then define done as accepting private_key_base64 and establishing authentication without requiring a PEM file. Add coverage alongside the existing private_key behavior if the relevant tests can be located.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- authentication, databases
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100