From a8fc567c5c2a0af0b6069e6b87293d2d420cd668 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Thu, 15 Oct 2026 01:04:07 -0500 Subject: [PATCH] chore(core): redact params in database query errors (#55621) --- .../core/src/database/drizzle/sqlite-core/effect/session.ts | 2 +- packages/core/test/database-drizzle.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core/src/database/drizzle/sqlite-core/effect/session.ts b/packages/core/src/database/drizzle/sqlite-core/effect/session.ts index d53f2544765..3200c02bb42 100644 --- a/packages/core/src/database/drizzle/sqlite-core/effect/session.ts +++ b/packages/core/src/database/drizzle/sqlite-core/effect/session.ts @@ -277,7 +277,7 @@ export class SQLiteEffectPreparedQuery< } assertUnreachable(cacheStrat) - }).pipe(Effect.mapError((e) => new EffectDrizzleQueryError({ query: queryString, params, cause: Cause.fail(e) }))) + }).pipe(Effect.mapError((e) => new EffectDrizzleQueryError({ query: queryString, params: params.map(() => "[redacted]"), cause: Cause.fail(e) }))) } getQuery(): Query { diff --git a/packages/core/test/database-drizzle.test.ts b/packages/core/test/database-drizzle.test.ts index e863b7f6b58..ef858464325 100644 --- a/packages/core/test/database-drizzle.test.ts +++ b/packages/core/test/database-drizzle.test.ts @@ -48,7 +48,7 @@ test("selects rows through Effect-yieldable query builders", async () => { ) }) -test("maps query failures with query, params, and cause", async () => { +test("maps query failures with query, redacted params, and cause", async () => { await run( Effect.gen(function* () { const db = yield* EffectDrizzleSqlite.makeWithDefaults() @@ -56,7 +56,7 @@ test("maps query failures with query, params, and cause", async () => { expect(error).toBeInstanceOf(EffectDrizzleQueryError) expect(error.query).toBe("select * from missing_table where id = ?") - expect(error.params).toEqual([42]) + expect(error.params).toEqual(["[redacted]"]) expect(Cause.isCause(error.cause)).toBe(true) if (!Cause.isCause(error.cause)) return expect(error.cause.reasons[0]?._tag).toBe("Fail")