Compare commits

...

3 Commits

Author SHA1 Message Date
lilleman 0a9c79d08f Refuse a malformed admin DSN before postgres 4 connects to the host it misreads
CI / full-gate (push) Waiting to run
2026-11-08 23:26:03 +01:00
renovate-bot 44f94c7ab0 Update dependency postgres to v4
Release-Bump: major
2026-11-08 23:26:03 +01:00
renovate-bot 2f75995b3d Update renovate/renovate Docker tag to v44.222.3
CI / full-gate (push) Waiting to run
2026-11-08 23:25:58 +01:00
4 changed files with 8 additions and 7 deletions
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
-e RENOVATE_PLATFORM=gitea \ -e RENOVATE_PLATFORM=gitea \
-e RENOVATE_REPOSITORIES=${{ github.repository }} \ -e RENOVATE_REPOSITORIES=${{ github.repository }} \
-e RENOVATE_TOKEN \ -e RENOVATE_TOKEN \
renovate/renovate:44.199.2 renovate/renovate:44.222.3
# After the renovate job, cut ONE tag covering the renovate-bot commits merged to main since the # After the renovate job, cut ONE tag covering the renovate-bot commits merged to main since the
# last tag (batch per run). Targets origin/main — the real post-merge tip; the checkout SHA is the # last tag (batch per run). Targets origin/main — the real post-merge tip; the checkout SHA is the
+5 -5
View File
@@ -9,7 +9,7 @@
"@larvit/log": "2.4.0", "@larvit/log": "2.4.0",
"ejs": "7.0.2", "ejs": "7.0.2",
"lucide-static": "1.70.0", "lucide-static": "1.70.0",
"postgres": "3.4.9" "postgres": "4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@mdn/browser-compat-data": "8.1.8", "@mdn/browser-compat-data": "8.1.8",
@@ -427,12 +427,12 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/postgres": { "node_modules/postgres": {
"version": "3.4.9", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/postgres/-/postgres-3.4.9.tgz", "resolved": "https://registry.npmjs.org/postgres/-/postgres-4.1.0.tgz",
"integrity": "sha512-GD3qdB0x1z9xgFI6cdRD6xu2Sp2WCOEoe3mtnyB5Ee0XrrL5Pe+e4CCnJrRMnL1zYtRDZmQQVbvOttLnKDLnaw==", "integrity": "sha512-s+0WH67YAyLdBQUb6XczbziBhY+C9uiQsg9S8R5RHdZhk6sdyK6202E+T2tXpiInSEEjDLRSJ3OpYBe3PN6MsQ==",
"license": "Unlicense", "license": "Unlicense",
"engines": { "engines": {
"node": ">=12" "node": ">=18"
}, },
"funding": { "funding": {
"type": "individual", "type": "individual",
+1 -1
View File
@@ -19,7 +19,7 @@
"@larvit/log": "2.4.0", "@larvit/log": "2.4.0",
"ejs": "7.0.2", "ejs": "7.0.2",
"lucide-static": "1.70.0", "lucide-static": "1.70.0",
"postgres": "3.4.9" "postgres": "4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@mdn/browser-compat-data": "8.1.8", "@mdn/browser-compat-data": "8.1.8",
+1
View File
@@ -20,6 +20,7 @@ export interface ProvisionResult {
// so it is swallowed here. The driver, not `new URL`, decides what parses: it takes a multi-host DSN. // so it is swallowed here. The driver, not `new URL`, decides what parses: it takes a multi-host DSN.
function connect(adminUrl: string): ReturnType<typeof postgres> { function connect(adminUrl: string): ReturnType<typeof postgres> {
try { try {
new URL(adminUrl); // postgres 4 connects to whatever a malformed DSN parses to, and its error names that host
return postgres(adminUrl, { connect_timeout: 10, max: 1 }); return postgres(adminUrl, { connect_timeout: 10, max: 1 });
} catch { } catch {
throw new Error("PLUGIN_DB_ADMIN_URL must be a Postgres URL (its value is not shown; percent-encode special characters in a password)"); throw new Error("PLUGIN_DB_ADMIN_URL must be a Postgres URL (its value is not shown; percent-encode special characters in a password)");