Skip to content

Commit e4030cd

Browse files
Haoyu Huangtristan957
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 73cb438 commit e4030cd

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

src/backend/replication/libpqwalreceiver/libpqwalreceiver.c

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,11 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical,
145145
{
146146
WalReceiverConn *conn;
147147
PostgresPollingStatusType status;
148-
const char *keys[6];
149-
const char *vals[6];
148+
/* BEGIN_NEON */
149+
const char *keys[7];
150+
const char *vals[7];
151+
char * neon_auth_token = NULL;
152+
/* END_NEON */
150153
int i = 0;
151154

152155
/*
@@ -204,6 +207,23 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical,
204207
keys[++i] = "fallback_application_name";
205208
vals[i] = appname;
206209

210+
/* BEGIN_NEON */
211+
if (pg_strcasecmp(appname, "walreceiver") == 0)
212+
{
213+
neon_auth_token = getenv("NEON_AUTH_TOKEN");
214+
if (neon_auth_token != NULL)
215+
{
216+
elog(LOG, "Use NEON_AUTH_TOKEN to connect");
217+
keys[++i] = "password";
218+
vals[i] = neon_auth_token;
219+
}
220+
else
221+
{
222+
elog(LOG, "NEON_AUTH_TOKEN is undefined in the environment");
223+
}
224+
}
225+
/* END_NEON */
226+
207227
keys[++i] = NULL;
208228
vals[i] = NULL;
209229

0 commit comments

Comments
 (0)