fix(db): RDS-CA i poolen (app+migrator delar TLS)
This commit is contained in:
@@ -118,10 +118,19 @@ say "GRIND 1 OK: .env på plats ($([ "$MODE" = production ] && echo 'produktions
|
||||
db_reachable() {
|
||||
(cd "$ROOT" && node -e "
|
||||
const { Client } = require('pg');
|
||||
const extraCa = process.env.NODE_EXTRA_CA_CERTS ? require('fs').readFileSync(process.env.NODE_EXTRA_CA_CERTS) : undefined;
|
||||
const ssl = extraCa ? { ca: extraCa } : undefined;
|
||||
const c = new Client({ connectionString: process.env.DB_URL, connectionTimeoutMillis: 3000, ...(ssl ? { ssl } : {}) });
|
||||
c.connect().then(() => c.end()).then(() => process.exit(0)).catch(() => process.exit(1));
|
||||
const fs = require('fs');
|
||||
const caPath = process.env.DATABASE_CA_CERT || process.env.NODE_EXTRA_CA_CERTS;
|
||||
const rawUrl = process.env.DB_URL || '';
|
||||
const hasSslmode = /sslmode=(require|verify)/.test(rawUrl);
|
||||
const url = rawUrl.replace(/[?&]sslmode=[^&]+/, '').replace(/\?$/, '');
|
||||
let ssl;
|
||||
if (caPath && fs.existsSync(caPath)) {
|
||||
ssl = { ca: fs.readFileSync(caPath), rejectUnauthorized: true };
|
||||
} else if (hasSslmode) {
|
||||
ssl = { rejectUnauthorized: false };
|
||||
}
|
||||
const c = new Client({ connectionString: url, connectionTimeoutMillis: 3000, ...(ssl ? { ssl } : {}) });
|
||||
c.connect().then(() => c.end()).then(() => process.exit(0)).catch((e) => { console.error(e.message); process.exit(1); });
|
||||
") 2>/dev/null
|
||||
}
|
||||
# Rå TCP-PING: alla svar (även -NOAUTH) bevisar att Redis är nåbar.
|
||||
@@ -147,6 +156,9 @@ start_docker_services() {
|
||||
}
|
||||
export DB_URL="$(get_env DATABASE_URL)"
|
||||
export R_URL="$(get_env REDIS_URL)"
|
||||
export DATABASE_CA_CERT="$(get_env DATABASE_CA_CERT)"
|
||||
EXTRA_CA=$(get_env NODE_EXTRA_CA_CERTS)
|
||||
[ -n "$EXTRA_CA" ] && export NODE_EXTRA_CA_CERTS="$EXTRA_CA"
|
||||
if DB_URL="$DB_URL" db_reachable; then
|
||||
say "Databasen svarar redan – ingen uppstart behövs."
|
||||
elif [ "$MODE" = "staging" ]; then
|
||||
|
||||
Reference in New Issue
Block a user