Skip to content

Commit d61583a

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 185fb6f commit d61583a

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
@@ -127,8 +127,11 @@ libpqrcv_connect(const char *conninfo, bool logical, const char *appname,
127127
{
128128
WalReceiverConn *conn;
129129
PostgresPollingStatusType status;
130-
const char *keys[5];
131-
const char *vals[5];
130+
/* BEGIN_NEON */
131+
const char *keys[7];
132+
const char *vals[7];
133+
char * neon_auth_token = NULL;
134+
/* END_NEON */
132135
int i = 0;
133136

134137
/*
@@ -137,6 +140,24 @@ libpqrcv_connect(const char *conninfo, bool logical, const char *appname,
137140
*/
138141
keys[i] = "dbname";
139142
vals[i] = conninfo;
143+
144+
/* BEGIN_NEON */
145+
if (pg_strcasecmp(appname, "walreceiver") == 0)
146+
{
147+
neon_auth_token = getenv("NEON_AUTH_TOKEN");
148+
if (neon_auth_token != NULL)
149+
{
150+
elog(LOG, "Use NEON_AUTH_TOKEN to connect");
151+
keys[++i] = "password";
152+
vals[i] = neon_auth_token;
153+
}
154+
else
155+
{
156+
elog(LOG, "NEON_AUTH_TOKEN is undefined in the environment");
157+
}
158+
}
159+
/* END_NEON */
160+
140161
keys[++i] = "replication";
141162
vals[i] = logical ? "database" : "true";
142163
if (!logical)

0 commit comments

Comments
 (0)