Knowledge Hub Technologies PostgreSQL
PostgreSQL

On-premises PostgreSQL and cloud-managed instances (Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL). JDBC-based connectivity with metadata browsing, data preview, and read/write pipeline support.

Connection Fields

FieldRequiredDefaultDescription
Display NameYesA human-readable label for this connection, shown across the platform.
HostYesHostname or IP address of the PostgreSQL server. For RDS, use the RDS endpoint.
PortYes5432PostgreSQL server port. Change if your server uses a non-default port.
DatabaseYesThe default database to connect to. Used as the initial catalog for metadata browsing.
UsernameYes*Database username. Not required when using RDS IAM authentication.
PasswordYes*Database password. Stored encrypted. Not required for RDS IAM auth.
SSL ModeNopreferSee SSL / TLS section below. Recommended: require for cloud-hosted instances.
Connection Timeout (s)No30Number of seconds before a connection attempt times out.
Additional JDBC ParametersNoOptional key=value pairs appended to the JDBC URL (e.g., currentSchema=myschema). Separate multiple parameters with &.

Authentication Methods

DataKnits supports three authentication methods for PostgreSQL connections:

SSL / TLS

The SSL Mode field controls whether and how SSL is enforced on the JDBC connection.

ModeDescriptionWhen to Use
disableNo SSL. All traffic is unencrypted.Internal development environments only. Not recommended for production.
allowUse SSL if the server supports it; fall back to unencrypted if not.Legacy environments where SSL availability is uncertain.
preferPrefer SSL but allow unencrypted fallback.Default. Provides encryption where available.
requireSSL is required. Fails if the server does not support SSL. Server certificate is not validated.Cloud-hosted PostgreSQL instances where SSL is always available.
verify-caSSL required. Server certificate is validated against a trusted CA. Does not verify hostname.Private cloud or on-premises with internal CA.
verify-fullSSL required. Server certificate validated and hostname must match the certificate CN/SAN.Highest security. Required for PCI-DSS and HIPAA compliant deployments.

SSH Tunneling

When a PostgreSQL instance is in a private subnet with no direct inbound access, DataKnits can route the JDBC connection through an SSH bastion host.

FieldRequiredDescription
SSH HostYesHostname or IP of the SSH bastion server.
SSH PortYesSSH port. Default: 22.
SSH UsernameYesLinux username on the bastion host.
SSH Private Key (PEM)Yes*PEM-encoded RSA or Ed25519 private key. Required if not using password auth for SSH.
SSH PasswordYes*Bastion host password. Use only if private key is not available.

When SSH tunnel is enabled, DataKnits opens an SSH connection to the bastion host and forwards the JDBC port over the tunnel. The PostgreSQL Host field should be the address of the database as reachable from the bastion host (e.g., 10.0.1.45 or an internal DNS name), not the public address.

RDS IAM Authentication

Amazon RDS PostgreSQL and Aurora PostgreSQL support IAM-based authentication. Instead of a static password, the platform generates a short-lived authentication token using AWS STS.

To enable RDS IAM authentication:

  1. Enable IAM database authentication on the RDS instance in the AWS Console.
  2. Create a database user with the rds_iam role: GRANT rds_iam TO your_user;
  3. Attach an IAM policy to the role or user that DataKnits assumes, granting rds-db:connect on the target instance and username.
  4. In DataKnits, select Auth Method: IAM Role, enter the Role ARN, and leave the Password field empty.
RDS IAM tokens expire after 15 minutes. DataKnits re-generates the token automatically before each pipeline execution — no manual rotation is needed.

Write Modes

When PostgreSQL is configured as a pipeline target, the following write modes are available:

ModeBehaviour
OverwriteTruncates the target table and writes all incoming rows. Equivalent to TRUNCATE + INSERT.
AppendInserts all incoming rows without modifying existing data.
Merge (Upsert)Matches rows by a user-defined key. Updates matching rows; inserts new rows. Generates INSERT ... ON CONFLICT (...) DO UPDATE SET ....
Create if Not ExistsCreates the table using the DataFrame schema if it does not exist, then appends data.

Known Limitations