Skip to content

Commit db320a3

Browse files
committed
Save Transformed payload in logs
1 parent 4587884 commit db320a3

5 files changed

Lines changed: 29 additions & 7 deletions

File tree

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
-- AlterTable
2+
ALTER TABLE "WebhookLog" ADD COLUMN "transformedPayload" JSONB;

apps/backend/prisma/schema.prisma

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff 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

apps/backend/src/webhook/handler.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff 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,

apps/web/src/pages/dashboard/settings/webhook-details.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff 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">

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "0.9.20-beta.6",
2+
"version": "0.9.20-beta.7",
33
"name": "letterspace",
44
"private": true,
55
"scripts": {

0 commit comments

Comments
 (0)