pathwaycom / pathwaycom/pathway

Support for client certificate authentication in PostgreSQL connectors

Open
#189 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
62.3k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

Is your feature request related to a problem? Please describe.
Add support for mutual TLS authentication parameters in pw.io.postgres.write, dict to enable client certificate-based authentication.

Describe the solution you'd like
The parameters to implement are:

  • sslcert - path to the client certificate file
  • sslkey - path to the client private key file
  • sslpassword - password for decrypting the private key (if encrypted)

These parameters follow the standard libpq connection parameter specification and should work analogously to other PostgreSQL drivers and clients.

They must be parsed from postgres_settings parameter.

Describe alternatives you've considered
The connector currently supports:

  • sslmode (all six standard modes)
  • sslrootcert (server certificate validation)

So the implementation is not an absolute urgency, still the current set is not enough.

Additional context

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the pw.io.postgres.write entry point and inspect how the postgres_settings parameter currently handles sslmode and sslrootcert. Add support for sslcert, sslkey, and sslpassword according to the PostgreSQL libpq SSL documentation, then verify that all three values are parsed for client certificate authentication.

Written by the indexing model from the issue text.

Assessment

Tech stack
postgresql, python
Domain
databases
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.