Skip to content

Commit f2b96ed

Browse files
committed
Fix ../../data/*.pem path in database URL
1 parent 1b3ae71 commit f2b96ed

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

@app/config/extra.js

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
11
// These are the connection strings for the DB and the test DB.
22
// NOTE: in production you probably want to add ?ssl=true to force SSL usage.
33
// NOTE: these used to be in `.env` but now it is used by docker-compose we can't use expansions
4-
process.env.DATABASE_URL =
5-
process.env.DATABASE_URL ||
6-
`postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`;
7-
process.env.AUTH_DATABASE_URL =
8-
process.env.AUTH_DATABASE_URL ||
9-
`postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`;
10-
process.env.SHADOW_DATABASE_URL =
11-
process.env.SHADOW_DATABASE_URL ||
12-
`postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`;
13-
process.env.SHADOW_AUTH_DATABASE_URL =
14-
process.env.SHADOW_AUTH_DATABASE_URL ||
15-
`postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`;
4+
const { resolve } = require("path");
5+
6+
function fixFilePaths(connectionString) {
7+
// Connection string may contain '../../data/amazon-rds-ca-cert.pem' or
8+
// similar; but we might be running it from somewhere other than `@app/*/`
9+
// (e.g. maybe `@app/*/dist/`). To solve this, we make the file path concrete
10+
// here.
11+
return connectionString.replace(
12+
/\.\.\/\.\.\/data\//g,
13+
resolve(__dirname, "../../data")
14+
);
15+
}
16+
17+
process.env.DATABASE_URL = process.env.DATABASE_URL
18+
? fixFilePaths(process.env.DATABASE_URL)
19+
: `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`;
20+
process.env.AUTH_DATABASE_URL = process.env.AUTH_DATABASE_URL
21+
? fixFilePaths(process.env.AUTH_DATABASE_URL)
22+
: `postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}`;
23+
process.env.SHADOW_DATABASE_URL = process.env.SHADOW_DATABASE_URL
24+
? fixFilePaths(process.env.SHADOW_DATABASE_URL)
25+
: `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`;
26+
process.env.SHADOW_AUTH_DATABASE_URL = process.env.SHADOW_AUTH_DATABASE_URL
27+
? fixFilePaths(process.env.SHADOW_AUTH_DATABASE_URL)
28+
: `postgres://${process.env.DATABASE_AUTHENTICATOR}:${process.env.DATABASE_AUTHENTICATOR_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_shadow`;
1629

1730
// Always overwrite test database URL
1831
process.env.TEST_DATABASE_URL = `postgres://${process.env.DATABASE_OWNER}:${process.env.DATABASE_OWNER_PASSWORD}@${process.env.DATABASE_HOST}/${process.env.DATABASE_NAME}_test`;

0 commit comments

Comments
 (0)