From 40cfff683dc17a5832232b3e6dc2c7886b1d75b5 Mon Sep 17 00:00:00 2001 From: Mathis HERRIOT <197931332+0x485254@users.noreply.github.com> Date: Thu, 29 Jan 2026 17:44:50 +0100 Subject: [PATCH] fix: ensure decrypted PGP values are cast to text in SQL queries - Added `::text` cast to `pgp_sym_decrypt` function calls for consistent data type handling. --- backend/src/database/schemas/pgp.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/src/database/schemas/pgp.ts b/backend/src/database/schemas/pgp.ts index f872b26..15370e1 100644 --- a/backend/src/database/schemas/pgp.ts +++ b/backend/src/database/schemas/pgp.ts @@ -41,7 +41,9 @@ export const pgpEncrypted = customType<{ data: string; driverData: Buffer }>({ export function withAutomaticPgpDecrypt(column: T): T { const originalGetSQL = column.getSQL.bind(column); column.getSQL = () => - sql`pgp_sym_decrypt(${originalGetSQL()}, ${getPgpKey()})`.mapWith(column); + sql`pgp_sym_decrypt(${originalGetSQL()}, ${getPgpKey()})::text`.mapWith( + column, + ); return column; } @@ -59,5 +61,7 @@ export function pgpSymDecrypt( column: AnyPgColumn, key: string | SQL, ): SQL { - return sql`pgp_sym_decrypt(${column}, ${key})`.mapWith(column) as SQL; + return sql`pgp_sym_decrypt(${column}, ${key})::text`.mapWith( + column, + ) as SQL; }