How to Manage PostgreSQL Source Credentials in Skippr
July 2026
Keep PostgreSQL source credentials safe by separating endpoint fields from the secret, interpolating POSTGRES_SOURCE_PASSWORD or a connection-string env var, and granting only the read access the source needs.
Short Answer
Manage PostgreSQL source credentials in Skippr by keeping the connection target visible and only the secret hidden. The docs support either individual fields such as host, port, user, password, and database or one connection_string, and the safe pattern is to interpolate password or the full DSN from environment variables instead of writing either secret directly into skippr.yaml.
That gives you a cleaner operational split. Hostname, port, database, and table or query selection are not secrets and should remain reviewable. The password is the secret, so it belongs in POSTGRES_SOURCE_PASSWORD or a dedicated source connection-string variable that the runtime resolves at execution time.
Why Teams Struggle with This
PostgreSQL setups become confusing when teams either hide too much or expose too much. If everything becomes one opaque connection string, reviewers cannot see what the source is pointed at. If the password stays in YAML, the reviewable config becomes a secret leak.
- Keeping a literal password in
skippr.yamlis the most common avoidable mistake. - Using a full connection string can be useful, but it should still come from an environment variable if it includes credentials.
- Switching from
tablestoquerychanges the extraction contract and should stay explicit in config. - If you plan to use logical replication for CDC later, the source role and permissions need to be chosen with that future path in mind.
How Skippr Handles It
Skippr gives PostgreSQL teams flexibility without forcing them into a less safe auth pattern. You can keep separate fields for readability or use a single DSN, and in both cases the docs point you toward environment interpolation for the secret-bearing value.
That makes the config easier to review and the secret easier to rotate. You can see which Postgres server and database feed the pipeline without revealing the password that unlocks them.
- Supports field-based config with
password: ${POSTGRES_SOURCE_PASSWORD}. - Also supports a full
connection_stringwhen teams prefer DSN-based management. - Keeps
host,port,database,tables, andqueryreviewable as normal config. - Fits both straightforward table reads and future logical-replication CDC setups.
What the First Useful Version Looks Like
The first useful version is one Postgres read role, one database, and one table such as public.orders. That proves the credential boundary and the extraction boundary together.
If your team already standardizes on DSNs, use a source-specific environment variable for the full string. If not, keep the endpoint fields visible and hide only the password.
