Skip to content

Commit 2062375

Browse files
Haoyu Huangdimitri
authored andcommitted
WALRecevier read password from env var (#40)
primary_conninfo string is too long with password. Wal receiver reads the password from NEON_AUTH_TOKEN instead.
1 parent 0b59fde commit 2062375

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

src/backend/replication/libpqwalreceiver/libpqwalreceiver.c

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,11 @@ libpqrcv_connect(const char *conninfo, bool logical, bool must_use_password,
133133
{
134134
WalReceiverConn *conn;
135135
PostgresPollingStatusType status;
136-
const char *keys[6];
137-
const char *vals[6];
136+
/* BEGIN_NEON */
137+
const char *keys[7];
138+
const char *vals[7];
139+
char * neon_auth_token = NULL;
140+
/* END_NEON */
138141
int i = 0;
139142

140143
/*
@@ -152,6 +155,24 @@ libpqrcv_connect(const char *conninfo, bool logical, bool must_use_password,
152155
*/
153156
keys[i] = "dbname";
154157
vals[i] = conninfo;
158+
159+
/* BEGIN_NEON */
160+
if (pg_strcasecmp(appname, "walreceiver") == 0)
161+
{
162+
neon_auth_token = getenv("NEON_AUTH_TOKEN");
163+
if (neon_auth_token != NULL)
164+
{
165+
elog(LOG, "Use NEON_AUTH_TOKEN to connect");
166+
keys[++i] = "password";
167+
vals[i] = neon_auth_token;
168+
}
169+
else
170+
{
171+
elog(LOG, "NEON_AUTH_TOKEN is undefined in the environment");
172+
}
173+
}
174+
/* END_NEON */
175+
155176
keys[++i] = "replication";
156177
vals[i] = logical ? "database" : "true";
157178
if (!logical)

0 commit comments

Comments
 (0)