File tree Expand file tree Collapse file tree
migrations/20250621175427_add_transformed_payload_to_webhook_logs
web/src/pages/dashboard/settings Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ -- AlterTable
2+ ALTER TABLE " WebhookLog" ADD COLUMN " transformedPayload" JSONB;
Original file line number Diff line number Diff line change @@ -358,11 +358,12 @@ model WebhookLog {
358358 webhookId String
359359 Webhook Webhook @relation (fields : [webhookId ] , references : [id ] , onDelete : Cascade )
360360
361- requestBody Json
362- responseCode Int ?
363- responseBody String ? @db.Text
364- error String ? @db.Text
365- duration Int ? // in milliseconds
361+ requestBody Json
362+ transformedPayload Json ?
363+ responseCode Int ?
364+ responseBody String ? @db.Text
365+ error String ? @db.Text
366+ duration Int ? // in milliseconds
366367
367368 createdAt DateTime @default (now () )
368369
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ export const handleWebhook = async (
2020 let responseCode : number | undefined
2121 let responseBody : string | undefined
2222 let errorMessage : string | undefined
23+ let transformResult : any = null
2324
2425 try {
2526 const webhookId = req . params . webhookId
@@ -58,7 +59,7 @@ export const handleWebhook = async (
5859 }
5960
6061 // Transform the payload
61- const transformResult = await transformPayload ( webhook , req , webhookId )
62+ transformResult = await transformPayload ( webhook , req , webhookId )
6263 if ( ! transformResult . success ) {
6364 responseCode = transformResult . status || 500
6465 responseBody = JSON . stringify ( { error : transformResult . error } )
@@ -93,6 +94,7 @@ export const handleWebhook = async (
9394 data : {
9495 webhookId : req . params . webhookId ! ,
9596 requestBody : req . body ,
97+ transformedPayload : transformResult ?. data || null ,
9698 responseCode,
9799 responseBody,
98100 error : errorMessage ,
Original file line number Diff line number Diff line change @@ -215,6 +215,7 @@ export function WebhookDetails() {
215215 < TableHead > Timestamp</ TableHead >
216216 < TableHead > Duration</ TableHead >
217217 < TableHead > Request Body</ TableHead >
218+ < TableHead > Transformed Payload</ TableHead >
218219 < TableHead > Response</ TableHead >
219220 </ TableRow >
220221 </ TableHeader >
@@ -254,6 +255,22 @@ export function WebhookDetails() {
254255 </ pre >
255256 </ details >
256257 </ TableCell >
258+ < TableCell >
259+ { log . transformedPayload ? (
260+ < details className = "cursor-pointer" >
261+ < summary className = "text-sm text-muted-foreground hover:text-foreground" >
262+ View transformed
263+ </ summary >
264+ < pre className = "mt-2 max-w-[300px] overflow-auto rounded bg-muted p-2 text-xs" >
265+ { JSON . stringify ( log . transformedPayload , null , 2 ) }
266+ </ pre >
267+ </ details >
268+ ) : (
269+ < span className = "text-sm text-muted-foreground" >
270+ -
271+ </ span >
272+ ) }
273+ </ TableCell >
257274 < TableCell >
258275 { log . error ? (
259276 < details className = "cursor-pointer" >
Original file line number Diff line number Diff line change 11{
2- "version" : " 0.9.20-beta.6 " ,
2+ "version" : " 0.9.20-beta.7 " ,
33 "name" : " letterspace" ,
44 "private" : true ,
55 "scripts" : {
You can’t perform that action at this time.
0 commit comments