Skip to content

Commit 8d1da1c

Browse files
HaoyuHuangmmeent-databricks
authored andcommitted
WALRecevier read password from env var
primary_conninfo string is too long when the token is included. Wal receiver reads the password from NEON_AUTH_TOKEN instead.
1 parent 8882db0 commit 8d1da1c

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
@@ -147,8 +147,11 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical,
147147
bool must_use_password, const char *appname, char **err)
148148
{
149149
WalReceiverConn *conn;
150-
const char *keys[6];
151-
const char *vals[6];
150+
/* BEGIN_NEON */
151+
const char *keys[7];
152+
const char *vals[7];
153+
char * neon_auth_token = NULL;
154+
/* END_NEON */
152155
int i = 0;
153156

154157
/*
@@ -206,6 +209,23 @@ libpqrcv_connect(const char *conninfo, bool replication, bool logical,
206209
keys[++i] = "fallback_application_name";
207210
vals[i] = appname;
208211

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

0 commit comments

Comments
 (0)