Skip to content

[dev] [Marfuen] mariano/prisma-ssl-pool-fix#2420

Merged
Marfuen merged 1 commit intomainfrom
mariano/prisma-ssl-pool-fix
Apr 2, 2026
Merged

[dev] [Marfuen] mariano/prisma-ssl-pool-fix#2420
Marfuen merged 1 commit intomainfrom
mariano/prisma-ssl-pool-fix

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 2, 2026

This is an automated pull request to merge mariano/prisma-ssl-pool-fix into dev.
It was created by the [Auto Pull Request] action.

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment Apr 2, 2026 2:30pm
comp-framework-editor Ready Ready Preview, Comment Apr 2, 2026 2:30pm
portal Ready Ready Preview, Comment Apr 2, 2026 2:30pm

Request Review

@cursor
Copy link
Copy Markdown

cursor bot commented Apr 2, 2026

PR Summary

Medium Risk
Touches database connection initialization across multiple apps/packages; mis-parsing the connection string or SSL settings could cause connection failures in some environments.

Overview
Ensures Prisma’s Postgres adapter uses only the explicit ssl option by stripping sslmode=... from DATABASE_URL before passing it as connectionString, preventing pg from independently applying/overriding SSL behavior.

Applies the same cleanUrl logic across all Prisma client entrypoints (API/app/portal/framework-editor and packages/db, including the generated client.ts emitted by combine-schemas.js).

Written by Cursor Bugbot for commit 8ba459d. This will update automatically on new commits. Configure here.

@Marfuen Marfuen merged commit 00e6f13 into main Apr 2, 2026
11 checks passed
@Marfuen Marfuen deleted the mariano/prisma-ssl-pool-fix branch April 2, 2026 14:31
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

const ssl = getSslConfig(url);
// Strip sslmode from connection string — pg parses it independently and
// can override our explicit ssl config. We handle SSL entirely via the ssl option.
const cleanUrl = url.replace(/[?&]sslmode=\w[\w-]*/g, '').replace(/\?&/, '?').replace(/\?$/, '');
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regex produces malformed URL when sslmode is first parameter

High Severity

When sslmode is the first query parameter and other parameters follow (e.g. ?sslmode=require&pool_timeout=10), the first .replace() consumes the ? along with sslmode=..., leaving &pool_timeout=10 with no leading ?. The second .replace(/\?&/, '?') is meant to fix this, but it can never match because the ? was already removed. The result is a malformed connection string (e.g. host/db&pool_timeout=10), which will cause database connection failures in any environment where DATABASE_URL has sslmode as the first query parameter followed by other parameters. This affects all six files with this identical logic.

Additional Locations (2)
Fix in Cursor Fix in Web

claudfuen pushed a commit that referenced this pull request Apr 2, 2026
# [3.14.0](v3.13.1...v3.14.0) (2026-04-02)

### Bug Fixes

* add SSL support to PrismaPg adapter for RDS/staging (rejectUnauthorized: false) ([#2418](#2418)) ([451c6a1](451c6a1))
* **api:** pin prisma@7.6.0 in Dockerfile generate step (prevents stale v6 binary resolution) ([#2423](#2423)) ([13a7b77](13a7b77))
* **api:** upgrade Dockerfile base images for Prisma v7 Node.js requirement (bun 1.3.11, node 22) ([#2425](#2425)) ([dc9351c](dc9351c))
* **app:** comment button gets disabled with numbered formatting ([#2368](#2368)) ([0586dfe](0586dfe))
* **auth:** make Microsoft OAuth tenantId configurable via env var ([#2412](#2412)) ([ffb260b](ffb260b)), closes [#2411](#2411)
* **company:** make Access Request form options in Documents ([#2369](#2369)) ([f461c4d](f461c4d))
* **db:** point prisma.config.ts to schema directory for multi-file schema support in migrations ([#2422](#2422)) ([8a05e29](8a05e29))
* **db:** remove dotenv/config import from prisma.config.ts (not available in Docker build context) ([#2426](#2426)) ([a98cf93](a98cf93))
* **db:** use process.env fallback for DATABASE_URL in prisma.config.ts ([#2416](#2416)) ([3e29382](3e29382))
* default to SSL for non-localhost connections, remove buggy cleanUrl stripping ([#2430](#2430)) ([98213f8](98213f8))
* Enable 'Ready for Review' menu for client on Document Finding ([#2404](#2404)) ([12e5e3a](12e5e3a))
* handle stale Ramp sync provider in legacy orgs ([3d6d1d4](3d6d1d4))
* install ca-certificates before wget, clean apt after download ([#2433](#2433)) ([772ac48](772ac48))
* install ca-certificates before wget, clean apt after download ([#2434](#2434)) ([b7b7944](b7b7944))
* **portal:** remove getJwtToken and use session-cookie auth directly ([67aacf5](67aacf5))
* scope stale provider cleanup to ramp only ([a3313cd](a3313cd))
* set trigger.dev runtime to node-22 (Prisma v7 requires node >=20.19 || >=22.12) ([#2419](#2419)) ([f688334](f688334))
* strip sslmode from connection string before passing to pg (prevent double-parsing) ([#2420](#2420)) ([00e6f13](00e6f13))
* strip sslmode from DATABASE_URL to avoid conflict with explicit ssl option ([#2435](#2435)) ([335dcd2](335dcd2))
* use AWS RDS CA bundle for proper SSL verification, simplify client SSL config ([#2432](#2432)) ([863f14b](863f14b))
* use installed prisma binary instead of bunx (fixes prisma/config resolution in Docker) ([#2427](#2427)) ([fab6693](fab6693))
* use process.env fallback for DATABASE_URL in all prisma.config.ts files (build envs have no DB) ([#2417](#2417)) ([977a705](977a705))

### Features

* **app, api, framework-editor:** restructure compliance app and add framework editor CLI ([30516d4](30516d4))
* migrate prisma from v6 to v7 ([59e0db9](59e0db9))
* remove Ramp integration entirely ([a04c486](a04c486))
@claudfuen
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.14.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants